IRC Bot

The primary Jenkins IRC Channel (#jenkins on the Libera Chat network) uses an administrator bot "jenkins-admin" so that some of the project operation work can be done by the community. This bot is available for anyone in the channel with "voice", which is an IRC jargon for those users who are trusted.

Available actions

Actions should be addressed to the jenkins-admin bot as if you are speaking directly to the robot.

IRC Management

Grant voice to a user

Any of the following variations will work for granting voice to a user named USER:

jenkins-admin: Make USER voice
jenkins-admin: Give USER voice
jenkins-admin: Grant USER voice
jenkins-admin: Add USER voice

Ungrant voice to a user

Any of the following variations will work for removing voice from a user named USER:

jenkins-admin: Remove USER voice
jenkins-admin: Delete USER voice
jenkins-admin: Ungrant USER voice

Get help

jenkins-admin: help

Get the version of the bot

jenkins-admin: version

Kick a user

Only should be used when dealing with spammers or otherwise highly abusive participants to the IRC channel.

jenkins-admin: kick USER

Set channel topic

jenkins-admin: set topic <TOPIC HERE>

GitHub Repo Management

The following actions are used for managing repositories in the jenkinsci organization on GitHub.

Grant a committer access

jenkins-admin: Make USER a committer of/to REPO
jenkins-admin: Give USER a commit access of/to REPO
jenkins-admin: Grant USER a commit access of/to REPO

This adds the user to the per-repo team in the specified repository, typically granting admin access.

Grant maintainer access to a team

jenkins-admin: Make USER a maintainer on TEAM
jenkins-admin: Give USER a maintainer on TEAM
jenkins-admin: Grant USER a maintainer on TEAM

For example:

jenkins-admin: Make some-user a maintainer on blueocean-plugin Developers

This adds the user to the specified team with the maintainer role.

Make team visible

jenkins-admin: Make TEAM team visible

This makes the specified team 'visible' (still requires organisation membership to see it), which makes the team show up in reviewers when using CODEOWNERS, and allows non members of the team to mention it.

Fork an existing repository on GitHub

jenkins-admin: Fork USER/REPO [on github]
jenkins-admin: Fork USER/REPO [on github] as NEW_REPO_NAME
jenkins-admin: Fork GITHUB_REPO_URL [on github] as NEW_REPO_NAME

This will fork a repository into Jenkins. The said user will be added as a committer to all the Jenkins repositories.

By convention, plugin repositories in Jenkins has the "PLUGINID-plugin" name, so please use the "as NEW_REPO_NAME" clause to adjust the repository name. A prefix of "jenkins" or any other irrelevant information should be removed.

For example:

jenkins-admin: fork example/jenkins-foobar as foobar-plugin
jenkins-admin: fork https://github.com/somebody/foobar-plugin

Create a new repository on GitHub

jenkins-admin: Create REPO on github
jenkins-admin: Create REPO on github for SOMEONE

In the latter form, the specified someone will get the commit access to the repository right away.

Issue Tracker Management

Create an issue tracker component

jenkins-admin: Create COMPONENT in the issue tracker for USER
jenkins-admin: Create COMPONENT in the bug database for USER

Where COMPONENT is the subcomponent name in the issue tracker (normally the name of the plugin), and USER is the jenkins-ci.org user ID who gets the initial notification when a new bug is filed.

Set default assignee of issue tracker component

jenkins-admin: Set USER as default assignee of COMPONENT
jenkins-admin: Make USER the lead of COMPONENT

Where COMPONENT is the subcomponent name in the issue tracker (normally the name of the plugin), and USER is the jenkins-ci.org user ID who gets the initial notification when a new bug is filed.

Remove the default assignee

jenkins-admin: Remove the default assignee of COMPONENT
jenkins-admin: Remove lead of COMPONENT

Rename the component

jenkins-admin: Rename component COMPONENT to NEW_NAME

Modify the component description

jenkins-admin: Set description of COMPONENT to "DESCRIPTION"
jenkins-admin: Set the description for component COMPONENT to "DESCRIPTION"

Remove the component

The command removes the specified component. All its issues will be moved to COMPONENT2

jenkins-admin: Remove component COMPONENT1 and move its issues to COMPONENT2
jenkins-admin: Delete component COMPONENT1 and move its issues to COMPONENT2

Hosting Requests

The IRC Bot provides hosting management commands which are used by the Jenkins Hosting Team to process the hosting requests for new Jenkins plugins, libraries and other components.

Verify the plugin/library hosting request from Jira

This command will launch the automatic hosting request checker. It will verify the hosting ticket in Jira and check the links supplied in the HOSTING tickets. Then it will also verify the Maven and Gradle settings and existence of the expected files in the repository. Other verification steps (e.g. security audit) should be done manually by contributors.

jenkins-admin: check hosting-XXXX

Approve and initiate a plugin/library request from Jira

This command will fork the repository on GitHub, add all listed users as committers and create a JIRA component with the issue submitter as the default assignee. (hosting-XXXX is the JIRA item that was submitted for hosting)

jenkins-admin: host hosting-XXXX