https://github.com/benmatselby/gollum-page-watcher-action
📦 A GitHub Action to watch for GitHub Wiki Page changes, and then notify a Slack channel
https://github.com/benmatselby/gollum-page-watcher-action
github-action github-action-slack github-action-wiki
Last synced: 14 days ago
JSON representation
📦 A GitHub Action to watch for GitHub Wiki Page changes, and then notify a Slack channel
- Host: GitHub
- URL: https://github.com/benmatselby/gollum-page-watcher-action
- Owner: benmatselby
- License: mit
- Created: 2020-03-05T21:52:06.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-03-10T08:10:39.000Z (about 1 month ago)
- Last Synced: 2025-03-10T09:27:05.463Z (about 1 month ago)
- Topics: github-action, github-action-slack, github-action-wiki
- Language: Go
- Homepage:
- Size: 281 KB
- Stars: 16
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-actions - Watch for GitHub Wiki page changes and post to Slack
- fucking-awesome-actions - Watch for GitHub Wiki page changes and post to Slack
- awesome-workflows - Watch for GitHub Wiki page changes and post to Slack
README
# Gollum Page Watcher GitHub Action
[](https://goreportcard.com/report/github.com/benmatselby/gollum-page-watcher-action)
A GitHub Action to watch for GitHub Wiki Page changes, and then notify a Slack channel
## Secrets
You can provide one of these methods to authenticate yourself.
- `SLACK_WEBHOOK`: The Slack Webhook URL required to post a message to your workspace.
- `SLACK_TOKEN`: A Slack token that will auth you into the Slack system.## Environment Variables
- `SLACK_USERNAME`: The Slack username if you want to define it, otherwise it will be what you have defined in Slack.
- `SLACK_CHANNEL`: The Slack channel if you want to define it, otherwise it will be what you have defined in Slack.
- `PAGES_TO_WATCH`: A regex of page titles you want to watch, in order to get a notification. If not defined, all pages are watched.## Example
```shell
...
- name: Wiki Watcher
uses: benmatselby/gollum-page-watcher-action@v1
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_CHANNEL: #random
SLACK_USERNAME: Gollum
PAGES_TO_WATCH: (^Home$)|(^Meeting minutes)
...
```This will result in a match on "Home", and all pages with a title starting with "Meeting minutes".

## Testing
To test this, you can run it from your command line with the following setup
```shell
GITHUB_EVENT_PATH=example-payloads/valid-payload.json \
GITHUB_EVENT_NAME=gollum \
SLACK_WEBHOOK=[your-slack-webhook-url] \
SLACK_CHANNEL=[your-slack-channel] \
DEBUG=true \
go run main.go
```If `DEBUG` is defined, it will not post to Slack, but rather output the webhook message in your terminal.
