Join our upcoming events

Join the next quarterly GitLab Hackathon to learn more and win amazing prizes!
Check out our virtual meetups group for the next event that might be tomorrow.

Finding an issue or a project to contribute to

  1. GitLab consists of a number of projects that use different technologies. In the issues to contribute table below, you can explore issues seeking contributions based on the available projects and the five available contributions areas: front-end, back-end, security, documentation, website/handbook.
  2. When finding issues to contribute to, start by leaving a comment. This helps the GitLab team and members of the wider GitLab community know that you will be working on that issue.
  3. If you would like to work on something that is not already captured in an issue, a feature for example, please open a new issue, select the appropriate template, and add all the necessary information about the work you are planning on doing. That way you can get more guidance and support from GitLab team members.
  4. You can find more information about GitLab's architecture in our docs.

Setting up the Development Enviroment

  1. Create a public fork of any of the GitLab projects you would like to contribute to.
  2. Some GitLab projects have a detailed contributing guide located in the README or CONTRIBUTING files in the repo. Reviewing these files before setting up your development environment will help ensure you get off to a good start.
  3. For setting up GitLab's development environment, you can do one of the following:
    • Download and set up the GitLab Development Kit, see the GDK README for instructions on setting it up and Troubleshooting if you get stuck. Alternatively, you can use GDK with Gitpod to run a pre-configured GDK instance in the cloud.
      • GDK is heavy. If you need to build something fast, by trial and error, you can consider doing so with an empty rails app and port it to GDK after.
    • Use Gitpod by selecting the caret (angle-down) next to Web IDE, and selecting Gitpod from the list when you are at the projects repo.
  4. If you want to contribute to the website or the handbook, you can do it through the WebIDE by clicking "Edit in Web IDE" located in the footer of the page you wish to edit.
  5. More detailed information on how to contribute to GitLab and related projects can be found in our docs.

Opening a Merge Request

  1. Open a merge request to merge your code and its documentation. The earlier you open a merge request, the sooner you can get feedback. You can mark it as a draft to signal that you’re not done yet.
    • If it's a feature change that impacts users or admins, update the documentation. If you're including documentation changes or need help with documentation, mention @gl-docsteam in the merge request description.
  2. When opening the merge request, make sure to fill out all the information requested in the template, such as why you are introducing these changes and a link to the issue this merge request is attempting to close/fix.
  3. Add tests if needed, as well as a changelog entry.
  4. More detailed information for opening a merge request can be found at the Merge Requests Workflow documentation.

Triaging Community Merge Requests

  1. When you open a merge request, our @gitlab-bot will automatically apply the "~Community contribution" label.
  2. In the next 24-48 hours after opening the merge request, a Merge Request Coach will review your merge request and apply stage, group, and type labels.
  3. After the appropriate labels are applied, a reviewer will be assigned to your merge request by an Engineering Manager.
  4. The goal is to have a merge request reviewed within a week after a reviewer is assigned. At times this may take longer due to high workload, holidays, or other reasons.
  5. Detailed information, along with expected timelines and how you can request help or escalate a merge request can be found in the Wider Community Merge Request guide.
  6. Once your merge request is reviewed and merged, your changes will be deployed to GitLab.com and included in the next release!

Need Help?

Contribution areas and issues

Contribution Area Guides Qualifying (for 5 points) Issues
Security Contributing to GitLab guide Qualifying issues
Front-end Frontend Development Guidelines
- Design and User Interface Changes guide
- UX-related Issues
- Frontend-related Issues
Back-end Contributing to GitLab guide
- GitLab's Architecture
- GitLab Agent for Kubernetes
- Stage: Package
- Group: Respond
- Group: Optimize
- Group: Source Code
- Group: Editor
- Group: Import
- Group: Pipeline execution
- Group: Release
Technical Writing Contributing to documentation Documentation issues
Website, Handbook You can contribute to any page, by clicking "Edit in Web IDE" located in the footer of the page. Although there is not a specific list of issues to contribute to, we encourage Hackathon participants to explore the website for typos, broken links and outdated information.