DEV Community

Rohan Satkar | Coderxrohan
Rohan Satkar | Coderxrohan

Posted on

My First Feature Contribution to Open Source: A Learning Journey with GitLab


Contributing a feature to a large open-source project for the first time is both exciting and intimidating—and recently, I had the opportunity to experience exactly that. My merge request !3074, which adds support for parsing absolute SSH remote URLs in the GitLab VS Code extension, was merged into main, marking my first feature-level contribution to a widely used open-source tool.

When I started exploring the issue, I didn’t initially set out to “build a feature.” I was browsing open issues to understand how real production bugs are identified and handled in mature projects. That’s when I came across a report explaining that SSH remotes formatted like

git@gitlab.com:/group/project.git

were not being recognized correctly.
On the surface, this looked like a minor parsing issue—but digging deeper revealed why it mattered.

The colon-slash (:/) syntax represents an absolute path on the remote server, and while it’s a valid SSH format, the existing logic didn’t account for it. This meant that for some users, the GitLab VS Code extension couldn’t correctly identify or link their repositories. It was a small gap, but one that directly affected user experience.

My first learning moment came from understanding the existing codebase. I spent time reading through the SSH normalization logic, understanding the different regex patterns already in use, and seeing how small ordering decisions could have big consequences. One key realization was that the fix wasn’t just about adding a new pattern—it had to be placed before the general SSH path matcher to avoid incorrect matches. That insight alone taught me how careful and intentional maintainers need to be when working with parsing logic.

Implementing the fix itself was straightforward, but doing it the right way took thought. I added a dedicated regex to detect absolute SSH paths and normalized them to a standard ssh:// format so downstream parsing would work consistently. More importantly, I backed the change with unit tests—something I’ve learned is non-negotiable in serious open-source projects. Writing tests for both simple and nested group paths helped me understand how edge cases are treated as first-class citizens in production code.

The review process was another major learning experience. Maintainers and reviewers provided clear, supportive feedback, and the overall tone was collaborative rather than intimidating. Seeing all threads resolved, tests passing, and the merge train succeed reinforced how much process and trust goes into every change—no matter how small it looks from the outside.

What stood out to me most was how focused the contribution needed to be. This wasn’t about adding new functionality for its own sake, but about fixing a specific user-facing issue without introducing regressions or breaking changes. That mindset—solve one problem well—has reshaped how I now think about open-source contributions.


Having this merge request included as part of the January 2026 GitLab Hackathon makes the experience even more meaningful. It validated not just the code, but the effort to understand the problem deeply, communicate clearly, and follow project standards.

This contribution gave me confidence that I can meaningfully participate in large open-source ecosystems. More importantly, it taught me that impactful contributions don’t always require massive features—sometimes, they come from noticing a small gap and taking the time to fix it properly.

This is just the beginning of my open-source journey, and I’m excited to keep learning, contributing, and giving back to the community that builds the tools we all rely on every day.

My successfully merged PRs:

  1. https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/merge_requests/3074

  2. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/220833

  3. https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/merge_requests/3070


"I'm proud to have earned the Level 2 Contributor badge from the GitLab community. It reflects the time and effort I've put into meaningful contributions, and it's motivating to see that impact recognized. Being part of an open-source ecosystem where collaboration drives innovation is incredibly rewarding, and this milestone pushes me to keep learning and giving back."


Official Page

Profile:

Top comments (0)