{"id":14970315,"url":"https://github.com/hashicorp/actions-slack-status","last_synced_at":"2025-10-19T10:30:41.819Z","repository":{"id":153527070,"uuid":"624606049","full_name":"hashicorp/actions-slack-status","owner":"hashicorp","description":"Slack publishing status message (replacement for circleci_slack_status orb)","archived":false,"fork":false,"pushed_at":"2025-01-02T17:07:32.000Z","size":112,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-01-30T06:11:20.136Z","etag":null,"topics":["github-actions","slack"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hashicorp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-06T21:06:48.000Z","updated_at":"2024-12-05T00:11:40.000Z","dependencies_parsed_at":"2024-05-16T20:57:39.796Z","dependency_job_id":"8f5c3220-c8bd-4216-aa15-5b72ebe507bb","html_url":"https://github.com/hashicorp/actions-slack-status","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Factions-slack-status","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Factions-slack-status/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Factions-slack-status/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Factions-slack-status/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashicorp","download_url":"https://codeload.github.com/hashicorp/actions-slack-status/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237109464,"owners_count":19257143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-actions","slack"],"created_at":"2024-09-24T13:43:27.024Z","updated_at":"2025-10-19T10:30:36.530Z","avatar_url":"https://github.com/hashicorp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"_For internal HashiCorp use only. The output of this action is specifically designed to satisfy the needs of our internal deployment system, and may not be useful to other organizations._\n\n# Slack workflow status action [![Heimdall](https://heimdall.hashicorp.services/api/v1/assets/actions-slack-status/badge.svg?key=0dd6185498d06d59c175bc9a25cb61d6c9216edebf2feb4064ac0a79b10e711d)](https://heimdall.hashicorp.services/site/assets/actions-slack-status) [![CI](https://github.com/hashicorp/actions-slack-status/actions/workflows/test.yml/badge.svg)](https://github.com/hashicorp/actions-slack-status/actions/workflows/test.yml)\n\nNo bells, no whistles, just status a status message.\n\n## Example\n\nSee also some implementations in the wild:\n- [hashicorp/vault-helm](https://github.com/hashicorp/vault-helm/blob/bb9a069/.github/workflows/update-helm-charts-index.yml#L34-L40)\n\nNotifications will be emitted with some simple formatting:\n\n![sample color coded slack notifications](docs/example-notifications.png)\n\n## Usage\n\n1. Create a webhook\n\nUse either [Technique 2](https://github.com/slackapi/slack-github-action#technique-2-slack-app) or \n[Technique 3](https://github.com/slackapi/slack-github-action#technique-3-slack-incoming-webhook) here. Alternatively,\nRelease Engineering may provision one on your behalf for status notifications from our [Release Bot](https://api.slack.com/apps/A034FRWL0RK/incoming-webhooks).\n\nDo *not* use Slack's Workflow Builder integration to generate the webhook link.\n\n2. Add the step to the workflow\n\nTo use, add a step that tests the job status (success, failure, cancelled):\n\n```yaml\nsteps:\n  # ...\n  - run: |\n      echo \"This run failed!\" 1\u003e\u00262\n      exit 1\n  - uses: hashicorp/actions-slack-status@v1\n    if: ${{always()}}\n    with:\n      success-message: \"A *bolded success* message.\"\n      failure-message: \"A failure message.\"\n      #cancelled-message: \"Operation cancelled, but that's okay!\"\n      status: ${{job.status}}\n      slack-webhook-url: ${{secrets.slack_webhook_url}}\n```\n\nOr more advanced usage with, pass a specific step conclusion (success, failure, cancelled, skipped):\n\n```yaml\nsteps:\n  # ...\n  - if: ${{ 'skip-me' == 'true' }}  # this demo will always skip, use a real test instead :)\n    id: demo\n    run: |\n      exit 0\n  - uses: hashicorp/actions-slack-status@v1\n    with:\n      skipped-message: \"A successfully skipped `cmd` message.\"\n      success-message: \"A success message.\"\n      status: ${{steps.demo.conclusion}}\n      slack-webhook-url: ${{secrets.slack_webhook_url}}\n```\n\n\nNote: Normally, if a `${status}-message` is not defined for a given status a\nGH warning will be emitted on the action and no message will be sent to slack.\nTo avoid this, one can use an approprate `if` statement to skip this step.\n\nIn this example, success messages are never sent and no GHA warning will be\nemitted regarding this omission.\n```yaml\nsteps:\n  - run: |\n      exit 0\n  - uses: hashicorp/actions-slack-status@v1\n    if: failure()\n    with:\n      failure-message: \"Since our job never fails, this message will never send nor will it warn about a missing success-message field\"\n      status: 'failure'\n      slack-webhook-url: ${{secrets.slack_webhook_url}}\n```\n\n### Job Status Meanings\n\nIn the examples we used different ways of obtaining the statuses. Their usage can be nuanced, but generally they are:\n\n  * [jobs.status docs](https://docs.github.com/en/actions/learn-github-actions/contexts#job-context): `success`, `failure`, or `cancelled`\n  * [steps.id.conclusion docs](https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context): `success`, `failure`, `cancelled`, or `skipped`\n  * [steps.id.outcome docs](https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context): `success`, `failure`, `cancelled`, or `skipped`\n\nIf in doubt, use `${{jobs.status}}`. The specific step status can be useful if we need to report skips or when multiple\nsteps are mutually exclusive, and we would like to notify exactly which one fired.\n\nStep conclusion and outcome can differ depending on whether `continue-on-error` is set. In otherwords, if\na step's `continue-on-error: true`, the outcome may be `failure` or `success` but the conclusion would be `success`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Factions-slack-status","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashicorp%2Factions-slack-status","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Factions-slack-status/lists"}