Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arbourd/concourse-slack-alert-resource
A structured Slack notification resource for Concourse
https://github.com/arbourd/concourse-slack-alert-resource
concourse resource slack
Last synced: about 23 hours ago
JSON representation
A structured Slack notification resource for Concourse
- Host: GitHub
- URL: https://github.com/arbourd/concourse-slack-alert-resource
- Owner: arbourd
- License: mit
- Created: 2018-05-17T15:40:25.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-01-06T22:50:10.000Z (16 days ago)
- Last Synced: 2025-01-14T14:09:40.149Z (8 days ago)
- Topics: concourse, resource, slack
- Language: Go
- Homepage: https://hub.docker.com/r/arbourd/concourse-slack-alert-resource/
- Size: 765 KB
- Stars: 38
- Watchers: 5
- Forks: 23
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Go Report Card](https://goreportcard.com/badge/github.com/arbourd/concourse-slack-alert-resource)](https://goreportcard.com/report/github.com/arbourd/concourse-slack-alert-resource)
# concourse-slack-alert-resource
A structured and opinionated Slack notification resource for [Concourse](https://concourse-ci.org/).
The message is built by using Concourse's [resource metadata](https://concourse-ci.org/implementing-resource-types.html#resource-metadata) to show the pipeline, job, build number and a URL.
## Installing
Use this resource by adding the following to the resource_types section of a pipeline config:
```yaml
resource_types:- name: slack-alert
type: registry-image
source:
repository: ghcr.io/arbourd/concourse-slack-alert-resource
```See the [Concourse docs](https://concourse-ci.org/resource-types.html) for more details on adding `resource_types` to a pipeline config.
## Source Configuration
* `url`: *Required.* Slack webhook URL.
* `channel`: *Optional*. Target channel where messages are posted. If unset the default channel of the webhook is used.
* `concourse_url`: *Optional.* The external URL that points to Concourse. Defaults to the env variable `ATC_EXTERNAL_URL`.
* `username`: *Optional.* Concourse local user (or basic auth) username. Required for non-public pipelines if using alert type `fixed` or `broke`
* `password`: *Optional.* Concourse local user (or basic auth) password. Required for non-public pipelines if using alert type `fixed` or `broke`
* `disable`: *Optional.* Disables the resource (does not send notifications). Defaults to `false`.## Behavior
### `check`: No operation.
### `in`: No operation.
### `out`: Send a message to Slack.
Sends a structured message to Slack based on the alert type.
#### Parameters
- `alert_type`: *Optional.* The type of alert to send to Slack. See [Alert Types](#alert-types). Defaults to `default`.
- `channel`: *Optional.* Channel where this message is posted. Defaults to the `channel` setting in Source.
- `channel_file`: *Optional.* File containing text which overrides `channel`. If the file cannot be read, `channel` will be used instead.
- `message`: *Optional.* The status message at the top of the alert. Defaults to name of alert type.
- `message_file`: *Optional.* File containing text which overrides `message`. If the file cannot be read, `message` will be used instead.
- `text`: *Optional.* Additional text below the message of the alert. Defaults to an empty string.
- `text_file`: *Optional.* File containing text which overrides `text`. If the file cannot be read, `text` will be used instead.
- `color`: *Optional.* The color of the notification bar as a hexadecimal. Defaults to the icon color of the alert type.
- `disable`: *Optional.* Disables the alert. Defaults to `false`.#### Alert Types
- `default`
- `success`
- `failed`
- `started`
- `aborted`
- `errored`
- `fixed`
Fixed is a special alert type that only alerts if the previous build did not succeed. Fixed requires `username` and `password` to be set for the resource if the pipeline is not public.
- `broke`
Broke is a special alert type that only alerts if the previous build succeed. Broke requires `username` and `password` to be set for the resource if the pipeline is not public.
## Examples
### Out
Using the default alert type with custom message and color:
```yaml
resources:
- name: notify
type: slack-alert
source:
url: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXjobs:
# ...
plan:
- put: notify
params:
message: Completed
color: "#eeeeee"
```Using built-in alert types with appropriate build hooks:
```yaml
resources:
- name: notify
type: slack-alert
source:
url: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXjobs:
# ...
plan:
- put: notify
params:
alert_type: started
- put: some-other-task
on_success:
put: notify
params:
alert_type: success
on_failure:
put: notify
params:
alert_type: failed
on_abort:
put: notify
params:
alert_type: aborted
on_error:
put: notify
params:
alert_type: errored
```Using the `fixed` alert type:
```yaml
resources:
- name: notify
type: slack-alert
source:
url: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
# `alert_type: fixed` requires Concourse credentials if pipeline is private
username: concourse
password: concoursejobs:
# ...
plan:
- put: some-other-task
on_success:
put: notify
params:
# will only alert if build was successful and fixed
alert_type: fixed
```