- You are here:
- GitLab Community Hub
- Contribute to GitLab
- Contributing to Development
These instructions are for development on all GitLab projects. Please note that use of the GitLab Development Kit is currently experimental on Windows. Linux or macOS are recommended for the best contribution experience.
- Create a public fork of any of the GitLab projects.
- Download and set up the GitLab Development Kit, see the GDK README for instructions on setting it up and Troubleshooting if you get stuck.
- Choose an issue to work on.
- You can find easy issues by looking at issues labeled
Accepting merge requests sorted by weight. Low-weight issues will be the easiest to accomplish.
- Be sure to comment and verify no one else is working on the issue, and to make sure we’re still interested in a given contribution.
- You may also want to comment and ask for help if you’re new or if you get stuck. We’re more than happy to help!
- If you work on Enterprise Edition features, you may need a license key. Please see our Code Contributor Program page for details on how you can get one.
- Add the feature or fix the bug you’ve chosen to work on.
- If it's a feature change that impacts users or admins, update the documentation.
- 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 Work in Progress to signal that you’re not done yet. If you're including documentation changes or need help with documentation, mention
- Add tests if needed , as well as a changelog entry.
- Make sure the test suite is passing.
- Wait for a reviewer. You’ll likely need to change some things once the reviewer has completed a code review for your merge request. You may also need multiple reviews depending on the size of the change. If you don't hear from anyone in a timely manner, feel free to find reviewers or reach out to Merge Request Coaches as mentioned in the getting help section.
- Get your changes merged!
For more information, please see the Developer Documentation.