逆引きマニュアル: Jenkins: Slackプラグインの使用方法

投稿日: 更新日:

GUIでの設定場所

Jenkinsの管理→システムの設定

Groovyでの設定

スクリプトコンソールなどでは以下のようにできます。

  • ルームID:
  • ドメイン:
  • トークン:

無駄なimportがあるかと思いますがとりあえずこれで動きます。

import com.cloudbees.jenkins.plugins.sshcredentials.impl.*
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.common.*
import com.cloudbees.plugins.credentials.domains.Domain
import com.cloudbees.plugins.credentials.impl.*
import hudson.util.Secret
import java.nio.file.Files
import jenkins.model.Jenkins
import net.sf.json.JSONObject
import org.jenkinsci.plugins.plaincredentials.impl.*

def slackParameters = [
  slackRoom:                '{{ room }}',
  slackTeamDomain:          '{{ domain }}',
  slackToken:               '{{ token }}'
]

// get Jenkins instance
Jenkins jenkins = Jenkins.getInstance()

// get credentials domain
def domain = Domain.global()

// get credentials store
def store = jenkins.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()

// get Slack plugin
def slack = jenkins.getExtensionList(jenkins.plugins.slack.SlackNotifier.DescriptorImpl.class)[0]

// define form and request
JSONObject formData = ['slack': ['tokenCredentialId': 'slack-token']] as JSONObject
def request = [getParameter: { name -> slackParameters[name] }] as org.kohsuke.stapler.StaplerRequest

// add Slack configuration to Jenkins
slack.configure(request, formData)

// save to disk
slack.save()
jenkins.save()

公式サイト

マニュアル