The Jenkins project is spread across multiple organizations on GitHub. You are welcome to contribute to any repository in any of those organizations, or to any other Jenkins-related repository on GitHub.
jenkinsci - Main organization. Jenkins core, plugins and libraries reside there. To aid in classifying our 1000+ Git repositories, some naming conventions have been adopted:
plugins are named "*-plugin"
libraries are named "lib-*"
jenkins-infra - Jenkins infrastructure, including the website and other services
Various components in Jenkins have differing review and delivery policies, so please see the repositories for specific contributing guidelines.
There are more than 1800 plugins in Jenkins, and these plugins implement the majority of Jenkins functionality. Every plugin is an isolated component which can be developed independently of other parts of the project, with help of the APIs and development tools provided by the project.
Most Jenkins contributors work on plugins and it is often the best way to start contributing to the project. Here are some documentation links:
Jenkins core is the heart of any Jenkins installation. It provides the kernel functionality and extension APIs used by Jenkins plugins. Written mostly in Java, it includes multiple components and frameworks. The core also includes the standard Web container and acts as an executable WAR file which can be run in the instance.
See the jenkinsci/jenkins repository for the overview and documentation links.
As an independent open source project, the Jenkins project maintains most of its own infrastructure including services which help to keep the project running. The kind of things that fall into "infrastructure" can span from operating virtual machines, containers, configuring network or developing and maintaining project-specific applications to make the development of Jenkins core and plugins more efficient.
Because we strongly believe in Open Source principles, we also apply them to our infrastructure. As such we consider ourself as an open infrastructure project where everybody is invited to learn, share, contribute.
See the Infrastructure sub-project for more information and contributing guidelines.
There are hundreds of repositories which do not fall under categories below: libraries, packaging, developer tools, etc. You can discover these components by looking into special interest groups and sub-projects pages.
The Jenkins project always welcomes newcomer contributors. We maintain lists of newbie-friendly issues and encourage new contributors to work on those issues.
Presentation: Contributing to Jenkins (slides)
Outreach programs - Google Summer of Code, Outreachy, Hacktoberfest may be a good opportunity to start contributing to the project
Are you an established contributor to Jenkins and looking for a new challenge? The Jenkins Security Team is looking for members willing to help improve Jenkins security. Also, there are many special interest groups and sub-projects which are seeking contributors in order to push bigger projects forward.