IRC Bot

Table of Contents

The bot is named jenkins-admin and serves in the #jenkins-hosting room on the Libera Chat network. 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 REPO1[, REPO2, REPO3...]
jenkins-admin: Give USER a commit access of/to REPO[, REPO2, REPO3...]
jenkins-admin: Grant USER a commit access of/to REPO[, REPO2, REPO3...]

This adds the user to the per-repo team in the specified repositories, typically granting admin access. One or more repository may be listed by separating them with commas.

Grant maintainer access to a team

jenkins-admin: Make USER a maintainer on TEAM1[, TEAM2, TEAM3...]
jenkins-admin: Give USER a maintainer on TEAM1[, TEAM2, TEAM3...]
jenkins-admin: Grant USER a maintainer on TEAM1[, TEAM2, TEAM3...]

For example:

jenkins-admin: Make some-user a maintainer on blueocean-plugin Developers, figlet-buildstep-plgin Developers

This adds the user to the specified team(s) with the maintainer role. One or more team may be listed by separating with commas.

Remove a user from a team

jenkins-admin: Remove USER as committer on TEAM1[, TEAM2, TEAM3...]
jenkins-admin: Remove USER as member on TEAM1[, TEAM2, TEAM3...]

This removes the user from the teams associated with the repositories listed. One or more repositories may be listed by separating them with commas.

Make team visible

jenkins-admin: Make TEAM1[, TEAM2, TEAM3...] teams visible

This makes the specified teams '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 teams to mention them. One or more team may be listed by separating them with commas.

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 COMPONENT1[, COMPONENT2, COMPONENT3...]
jenkins-admin: Make USER the lead of COMPONENT1[, COMPONENT2, COMPONENT3...]

Where COMPONENTx 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. One or more components can be listed by separating them with commas.

Remove the default assignee

jenkins-admin: Remove the default assignee of COMPONENT1[, COMPONENT2, COMPONENT3...]
jenkins-admin: Remove lead of COMPONENT1[, COMPONENT2, COMPONENT3...]

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