cecb9b26d4 | ||
---|---|---|
.github/workflows | ||
__tests__ | ||
dist | ||
docs | ||
src | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.prettierignore | ||
.prettierrc.json | ||
LICENSE | ||
README.md | ||
action.yml | ||
jest.config.js | ||
package-lock.json | ||
package.json | ||
tsconfig.json |
README.md
Action Slack
You can notify slack of GitHub Actions.
Usage
See action.yml, test.yml
with Parameters
key | value | default | description |
---|---|---|---|
status | 'success' or 'failure' or 'cancelled' or 'custom' | '' | Recommend${{ job.status }} . |
text | any string | '' | You can add to text by specifying it. |
author_name | any string | '8398a7@action-slack' | It can be overwritten by specifying. The job name is recommend. |
mention | 'here' or 'channel' or user_id (e.g. mention: user_id,user_id2 ) |
'' | Always mention when specified. |
if_mention | Specify success or failure or cancelled or custom or always. Multiple statuses can be specified in csv format. e.g. success,failure |
'' | Mention when the status value matches. |
payload | e.g. {"text": "Custom Field Check", obj: 'LOWER CASE'.toLowerCase()} |
'' | Only available when status: custom. The payload format can pass javascript object. |
username | Only legacy incoming webhook supported. | '' | override the legacy integration's default name. |
icon_emoji | Only legacy incoming webhook supported. | '' | an emoji code string to use in place of the default icon. |
icon_url | Only legacy incoming webhook supported. | '' | an icon image URL string to use in place of the default icon. |
channel | Only legacy incoming webhook supported. | '' | override the legacy integration's default channel. This should be an ID, such as C8UJ12P4P . |
See here for payload
reference or Custom Notification.
- Message Formatting
- Enter json and check in preview.
- Reference: Message payloads
Notification
- uses: 8398a7/action-slack@v2
with:
status: ${{ job.status }}
author_name: Integration Test # default: 8398a7@action-slack
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
if: always() # Pick up events even if the job fails or is canceled.
When adding to text, write as follows.
- uses: 8398a7/action-slack@v2
with:
status: ${{ job.status }}
text: overwrite text
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
In case of failure or cancellation, you will be notified as follows.
Legacy Incoming Webhooks
If you specify as follows, you can also support legacy incoming webhooks.
The specified secrets.SLACK_WEBHOOK_URL
must be legacy.
- uses: 8398a7/action-slack@v2
with:
type: ${{ job.status }}
username: Custom Username
icon_emoji: ':octocat:'
channel: '#integration-test'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
Custom Notification
Use status: custom
if you want to send an arbitrary payload.
The payload format can pass javascript object.
- uses: 8398a7/action-slack@v2
with:
status: custom
payload: |
{
text: "Custom Field Check",
attachments: [{
"author_name": "8398a7@action-slack", // json
fallback: 'fallback',
color: 'good',
title: 'CI Result',
text: 'Succeeded',
fields: [{
title: 'lower case',
value: 'LOWER CASE CHECK'.toLowerCase(),
short: true
},
{
title: 'reverse',
value: 'gnirts esrever'.split('').reverse().join(''),
short: true
},
{
title: 'long title1',
value: 'long value1',
short: false
}],
actions: [{
}]
}]
}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
Next Action
Selectable Field
Currently the field is fixed, but I want to make it selectable.
It is assumed that the input is in csv format.
- uses: 8398a7/action-slack@v2
with:
status: ${{ job.status }}
fields: repo,message,action,author
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required