upstream-contribution

Contribute bug fixes and missing endpoint wrappers to the GitLab client-go library.

37|4|Updated Apr 11, 2026
One-click install
npx skills add https://github.com/jmrplens/gitlab-mcp-server --skill upstream-contribution-jmrplens
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: upstream-contribution
Source: https://github.com/jmrplens/gitlab-mcp-server/tree/main/.github/skills/upstream-contribution
Command: npx skills add https://github.com/jmrplens/gitlab-mcp-server --skill upstream-contribution-jmrplens

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Contributing fixes to the upstream GitLab API client library (gitlab.com/gitlab-org/api/client-go) involves many non-obvious conventions: community-fork branching, conventional-commit titles with file scopes, bot commands for labels and reviewers, and rate limits that silently drop fields for non-member accounts. This Skill encodes all of those rules so a contribution merges cleanly instead of stalling. ## Core Features & Use Cases - Merge request workflow: Push branches to the community fork, open merge requests against the upstream project with conventional-commit titles, the project's three description headings, and a Related to link to the umbrella drift issue. - Bot automation handling: Request type:: labels and code-owner reviews via @gitlab-bot comments, while respecting rate limits, prepared_at timing, and fields silently dropped for non-member accounts. - Code and documentation compliance: Enforce the upstream review rubric (int64, any, PathEscape, doc comments, testify tests) and open matching documentation merge requests against gitlab-org/gitlab when a field is also missing from doc/api/. - Use Case: You discover the client-go Topic struct is missing organization_id. This Skill walks you through verifying the gap, recording it in the upstream-bugs register, opening a correctly shaped merge request, updating issue 2300, and retiring your local workaround after the release ships. ## Quick Start Use the upstream-contribution skill to open a merge request adding the missing field I found in the client-go Topic struct.

Frequently Asked Questions about upstream-contribution

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I contribute a fix to the GitLab client-go library?

Push a branch to the community fork (gitlab-community/gitlab-org/api/client-go), then open a merge request targeting the upstream project with a conventional-commit title scoped to the API file. Use the project's three description headings and reference the umbrella drift issue with a `Related to` line.

How do I request a reviewer on a GitLab merge request as a non-member?

Post `@gitlab-bot ready @<code owner>` as a comment, which emits the ready label and a review request for the named code owner. Setting `reviewer_ids` through the API is silently dropped for non-members, and a bare ready command picks a random coach instead.

Why are my merge request labels or reviewers not being set via the GitLab API?

GitLab silently drops `reviewer_ids`, assignees, labels, and milestones when the caller cannot administer the merge request. The API returns success but changes nothing, so non-members must use `@gitlab-bot` comment commands for labels and reviewer requests instead.

What code style rules does the GitLab client-go project enforce?

Use `int64` never `int`, `any` never `interface{}`, pointer structs for requests, `PathEscape()` on path parameters, and project/group IDs typed `any` parsed with `parseID()`. Every public symbol needs a name-first comment ending in a `// GitLab API docs:` link, and tests use `t.Parallel()` with testify.

When should I also open a documentation merge request to gitlab-org/gitlab?

Open one when a field missing from client-go is also absent from the GitLab API documentation in `doc/api/`. Update every example and attribute table on the page, place the field where the entity exposes it, and link the documentation and client-go merge requests to each other.