Send data into Slack using this GitHub Action! This package has two different techniques to send data to Slack:
- Send data to Slack's Workflow Builder (requires a paid Slack instance).
- Send data via a Slack app to post to a specific channel (use an existing custom app or create a new one).
The recommended way to use this action is with Slack's Workflow Builder (if you're on a paid Slack plan).
Sending data to Slack's Workflow builder is the recommended way to use this action. This action will send data into Slack via a webhook URL. Follow these steps to create a Slack workflow using webhooks. The Slack workflow webhook url will be in the form of https://hooks.slack.com/workflows/....
. The payload sent by this GitHub action will be flattened (all nested keys moved top level) and stringified since Slack's workflow builder only supports top level string values in payloads.
You need to define expected variables in the payload the webhook will receive. If these variables are missing in the payload, an error is returned.
- Create a Slack workflow webhook
- Copy the webhook URL (
https://hooks.slack.com/workflows/....
) and add it as a secret in your repo settings namedSLACK_WEBHOOK_URL
. - Add a step to your GitHub action to send data to your Webhook
- Configure your Slack workflow to use variables from the incoming payload from the GitHub Action. You can select where you want to post the data and how you want to format it in Slack's worflow builder interface.
- name: Send GitHub Action trigger data to Slack workflow
id: slack
uses: slackapi/slack-github-action@v1.14.0
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
or
- name: Send custom JSON data to Slack workflow
id: slack
uses: slackapi/slack-github-action@v1.14.0
with:
payload: "{\"key\":\"value\",\"foo\":\"bar\"}" # This data can be any valid JSON from a previous step in the GitHub Action
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
This route allows
- Create a slack app for your workspace (alternatively use an existing app you have already created and installed)
- Add the
chat.write
scope under OAuth & Permissions
- Add the
- Install the app to your workspace
- name: Post to a Slack channel
id: slack
uses: slackapi/slack-github-action@v1.14.0
with:
channel-id: 'CHANNEL_ID' # Slack channel id to post message
slack-message: 'posting from a github action!'
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
See CONTRIBUTING.
See LICENSNE.