美しい

Slack 通知を飛ばす

美しいコマンド

背景

Jenkins の Slack Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Slack+Plugin

 
 
 
 
 
 
 
 
 

背景

Jenkins の Slack Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Slack+Plugin

image

 
 
 
 
 
 

背景

Jenkins の Slack Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Slack+Plugin

image

:confused:

 
 
 
 

背景

Jenkins の Slack Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Slack+Plugin

image

image

 

背景

Slack の attachment 使いたい

image

 
 
 
 

背景

Slack の attachment 使いたい

image

 
 

image

コマンド

cat <<-JSON | curl -X POST --data-urlencode payload@- https://hooks.slack.com/services/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
{
    "text": "\`$SERVER\` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}
JSON

 
 

JSON


{
    "text": "`$SERVER` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}

 
 
 

HEREDOC

<<-JSON
{
    "text": "\`$SERVER\` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}
JSON

 
 

HEREDOC

cat <<-JSON
{
    "text": "\`$SERVER\` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}
JSON

 
 

HEREDOC

cat <<-JSON
{
    "text": "\`$SERVER\` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}
JSON

:cat: :question:

 

HEREDOC

$ echo <<-HEREDOC
> hoge
> fuga
> HEREDOC
                      # シーーーン 💧
$ cat <<-HEREDOC
> hoge
> fuga
> HEREDOC
hoge
fuga

 
 
 
 
 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

 
 
 
 
 
 
 
 
 
 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

:question: payload@- :question:

 
 
 
 
 
 
 
 
 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

:question: payload@- :question:

要素 効果
payload payload= 属性名定義
@ 値をファイルから
- 値を標準入力(パイプ)から

 
 
 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

:question: payload@- :question:

payload={
    "text": "`$SERVER` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}

 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

:question: --data-urlencode :question:

payload={
    "text": "`$SERVER` デプロイを中止しました。",
    "attachments": [
        {
            "color": "danger",
            "text": "AS バイナリーが gerrit の最新コミットと一致していない。",
            "fields": [
                {
                    "title": "actionserver.elf のコミット",
                    "value": "$bin_commit"
                }
            ]
        }
    ]
}

 
 
 
 
 

curl

curl -X POST --data-urlencode payload@- https://hooks.slack.com/...

:question: --data-urlencode :question:

payload=%7B%22text%22%3A%20%22%60%24SERVER%60%20%83f%83v%83%8D%83C
%82%F0%92%86%8E~%82%B5%82%DC%82%B5%82%BD%81B%22%2C%22attachments%22
%3A%20%5B%7B%22color%22%3A%20%22danger%22%2C%22text%22%3A%20%22AS
%20%83o%83C%83i%83%8A%81%5B%82%AA%20gerrit%20%82%CC%8D%C5%90V%83R
%83~%83b%83g%82%C6%88%EA%92v%82%B5%82%C4%82%A2%82%C8%82%A2%81B%22
%2C%22fields%22%3A%20%5B%7B%22title%22%3A%20%22actionserver.elf%20
%82%CC%83R%83~%83b%83g%22%2C%22value%22%3A%20%22%24bin_commit%22%7D
%5D%7D%5D%7D