Inspiration
Writing code is now fast. Getting it safely into production is still slow, manual and risky. After a merge request is approved, people still triage scan results by hand, write release notes, watch dashboards after a deploy, and write incident notes at 2 a.m. We wanted agents to carry that post-code work end to end, with humans approving only the risky step.
What it does
ShipSafe is a GitLab Duo Agent Platform flow that takes an approved merge request all the way to verified production: Triage: a Security Triage agent reads SAST, dependency and secret-detection results and classifies each finding as blocker, fixable or accepted risk. Blockers stop the release and an automated fix merge request is opened. Release: a Release agent writes the changelog, picks the version, and tags the release. Deploy: the pipeline builds the image, pushes it to Artifact Registry, and deploys a 10% canary to Google Cloud Run. Verify: a Verify agent compares canary and baseline health from Cloud Monitoring. Promotion is proposed only if (thresholds are configurable).
- Approve: a human approves promotion to 100% through a protected environment.
- Recover: if the canary degrades, an Incident agent shifts traffic back, opens an issue with the evidence, and drafts a postmortem.
- Record: every decision, action and outcome is written back to the merge request as an audit trail. ## How we built it GitLab Duo Agent Platform: a custom flow (ship-safe) with three custom agents (Security Triage, Release, Incident). Triggers: Merge request: Approved starts the flow, and Pipeline: Failed starts the Incident agent. An AGENTS.md file gives the agents project conventions. Runs are visible under AI > Sessions. GitLab CI/CD: SAST, dependency scanning, secret detection, tests, container build, canary and promote jobs, and a protected production environment with manual approval. Google Cloud: Cloud Run for deployment and traffic splitting, Artifact Registry for images, Cloud Monitoring for health signals, OpenTofu (an OSI-approved open source Terraform fork) for infrastructure, and keyless authentication from GitLab through Workload Identity Federation (no stored keys). Safety design: agents start read-only, write only through scoped tokens, never push to production directly, and every irreversible step needs a human ## Chall3enges we ran into Agents are non-deterministic, so the promote and rollback decision is a fixed numeric rule that the agent reports on and cannot override Triggers fire only on human actions, so the flow had to be designed around merge request events Keeping the demo honest: we show a real bad release being caught and rolled back, not only the happy path ## Accomplishments that we're proud of A complete loop from approval to a verified or rolled-back release, with no manual steps except the final approval Median time from approval to verified canary: [MEASURE] minutes, versus [MEASURE] minutes manually Rollback of a deliberately broken release in [MEASURE] seconds ## What we learned Suggested angle: agents are best at reading messy evidence (scan output, logs) and writing explanations, while fixed rules and humans should own the go or no-go decision.] ## What's next for ShipSafe Multi-service releases, cost and carbon-aware deploy windows, more clouds, and learning accepted-risk decisions from reviewer feedback.
Built With
- gitlab
Log in or sign up for Devpost to join the conversation.