How I Shipped 15 Green MRs to GitLab in One Day: Inside Our Modern Contributor Tech Stack An engineering team shipped 15 fully green merge requests across three upstream GitLab repositories in a single day, reaching 4,197 contributor points toward GitLab's Level 4 milestone of 7,500. The work spanned Ruby, TypeScript, and Python and centered on GitLab Core's native Model Context Protocol support in Rails, including nine MCP tool endpoints such as list_pipeline_schedules, create_merge_request_pipeline, and save_work_item with optimistic locking and targeted description edits. Contributing to one of the largest open-source platforms in the world is usually described as slow, deliberate, and fraught with complex CI pipelines. Today, across three distinct upstream GitLab repositories, our engineering pipeline achieved a landmark milestone: 15 out of 15 Merge Requests 100% Green in CI, 100% assigned to maintainers and domain reviewers , and officially crossing 4,197 live contributor points on track to the prestigious Level 4 Contributor milestone 7,500 pts . How do you tackle 15 upstream issues across Ruby , TypeScript , and Python in a single sprint without breaking pipelines or getting bogged down in review cycles? Here is an architectural breakdown of the modern tech stack we use every day to solve GitLab issues at enterprise velocity. GitLab is no longer just a monolithic Ruby on Rails application. Modern AI-assisted software delivery requires a distributed ecosystem: ┌────────────────────────────────────────────────────────────────────────┐ │ Developer / Agentic Client │ │ Claude Desktop, Cline, Cursor, Antigravity │ └───────────────────────────────────┬────────────────────────────────────┘ │ Model Context Protocol JSON-RPC ▼ ┌────────────────────────────────────────────────────────────────────────┐ │ GitLab Core MCP Server Ruby on Rails │ │ lib/api/mcp/handlers & JSON-RPC Router │ │ │ │ • list pipeline schedules • create merge request pipeline │ │ • list work items filter • save work item description edits │ │ • list user events • get pipeline poll hints │ └───────────────────┬────────────────────────────────┬───────────────────┘ │ │ ▼ ▼ ┌──────────────────────────────────────┐ ┌──────────────────────────────┐ │ GitLab LSP TypeScript / Node.js │ │ AI Gateway Python / FastAPI│ │ editor-extensions/gitlab-lsp │ │ modelops/.../ai-assist │ │ │ │ │ │ • Virtual Workspace File Indexing │ │ • Agent Platform Guard │ │ • WebSocket Lifecycle & Leak Fix │ │ • Duo Workflow Service │ │ • Multibyte UTF-8 Chunk Decoder │ │ • APIStatusError Handling │ │ • CLI Slash Command Wake Queue │ │ • Tool Execution Loop │ └──────────────────────────────────────┘ └──────────────────────────────┘ GitLab Core is pioneering native support for Anthropic's Model Context Protocol MCP directly within its Rails application lib/api/mcp/ . This allows AI agents to interface directly with GitLab issues, pipelines, notes, and work items via structured JSON-RPC. rspec:predictive We implemented and polished 9 distinct MCP tool endpoints : list pipeline schedules 264856 : Exposing CI schedule discovery to AI agents. create merge request pipeline 264858 : Giving agents the ability to trigger targeted MR pipeline runs. save work item with description edits & expected updated at 264862 : Adding optimistic locking and targeted string replacement diffs to prevent concurrent edit collisions. list work items with parent id hierarchy filter 264859 : Allowing recursive task tree traversal. get pipeline with poll after seconds hint 264863 : Teaching AI agents how long to sleep before polling pipeline status. list user events 264864 : Activity feed telemetry tool for AI agents. 264852 : Transparently accepting query and search term . 264853 : Reporting unknown parameter names with suggestions. save note updating 264854 : Allowing AI agents to update existing issue notes. In GitLab Rails helpers, never declare unmemoized instance variables @variable . RuboCop will flag this under Gitlab/PredicateMemoization or helper encapsulation rules. Clean encapsulation in service classes keeps CI 100% green on the first push The gitlab-lsp powers language intelligence and Duo AI features inside VS Code, WebIDE, and JetBrains. ws 4537 , 3364 NodeJS.Timeout was not cleared. Over time, reconnect attempts created zombie timers that leaked memory. // Explicit cleanup on upgrade rejection this.ws.on 'unexpected-response', req, res = { this.clearHeartbeat ; this.emit 'error', new UpgradeError res.statusCode ; } ; 4538 , 3350 StringDecoder 'utf8' guarantees chunk boundary safety. 4536 , 2381 The ai-assist repository runs the GitLab AI Gateway—the engine orchestrating large language models and multi-agent execution loops. 7641 , 3394 7642 , 3345 status code from client APIStatusError exceptions rather than letting unhandled errors cascade into generic HTTP 500 crashes. | Metric | Standing | Impact | |---|---|---| | Current Live Score | 4,197 points | Verified Level 3 Contributor | | Points Added Today | +327 points | Verified through Contributor API | | Active Merge Requests | 15 MRs | 9 in Core, 4 in LSP, 2 in AI Gateway | | CI Success Rate | 15 / 15 100% Green | Zero test failures | | Reviewer Coverage | 15 / 15 Assigned | Zero unassigned MRs | | Unresolved Threads | 0 Blockers | Sub-30-minute review SLA readiness | | Projected Total Upon Merge | 7,545+ points | Surpasses Level 4 Target 7,500 pts | Follow our daily engineering journey across GitHub @hrlpavan https://github.com/hrlpavan and GitLab @hrlpavan https://gitlab.com/hrlpavan .