This guide will cover the entire plugin hosting process.
Once you’ve completed all steps described on this page you will have accomplished the following:
Your plugin source code will be hosted in a repository in the
jenkinsci GitHub organization.
You will have admin access to this repository.
You will be allowed to release the plugin to the Jenkins project Maven repository, which serves as a source for the Jenkins project operated update sites.
Complete the following steps before requesting plugin hosting with the Jenkins project:
|Our automated process makes it much easier to fork + delete (see below), rather than transfer repository ownership. If your repository already has a significant number of forks, issues, pull requests, or other auxiliary data, we can manually transfer it — just request so in the hosting request, and provide an explanation.|
A Jenkins project member will review your request within a few days. If any changes are requested, please implement them.
Once all requirements have been satisfied, your repository will be forked into the
jenkinsci organization and you will be invited to join it, and a JIRA component in the JENKINS project will be created for you.
At this point, you’re asked to delete your repository we forked from.
You can recreate it afterwards by forking from
This will ensure that the
jenkinsci repository is the root of the network graph on GitHub.
There will be no confusion which repository is the canonical one.
Source code search will succeed even without a significant number of watchers on GitHub.
Others are more likely to file pull requests in the
jenkinsci repository (which is ideal for collaboration).
The Jenkins project hosts a Jenkins instance to perform continuous integration builds for plugins.
We recommend you set up CI builds for your plugin in the
jenkinsci GitHub organization by creating a
Jenkinsfile in your plugin’s GitHub repository.
See the documentation for CI builds for details how to do this.
After your plugin source code has been forked into the
jenkinsci organization, you will need to file a request for upload permissions.
Follow the instructions in the README of this repository to do that.
Once you’ve completed this step and your request has been merged, you will be able to release your plugin. See that guide for release instructions.
Alternately, you can configure your plugin to be released automatically whenever interesting changes are pushed, or on demand. In this case you only need write permission to GitHub; you never need local credentials. Follow this guide for details.