Repository: seal
Slack bot that publishes a team’s pull requests to their Slack channel
- GitHub
- seal
- Ownership
- #govuk-platform-engineering owns the repo. #govuk-platform-support receives automated alerts for this repo.
- Category
- Utilities
README
What is it?
This Slack bot automates reporting and consistency checks across the team’s repositories. It provides visibility into code health, dependency management and gem release status by automatically posting key insights to engineering teams’ channels.
Features:
-
Pull Request updates: posts a summary of open pull requests across the team’s repositories.
-
Dependency monitoring: reports on Dependabot and Renovate updates to keep dependencies current and secure.
-
Security insights: highlights Code Scanning and Dependabot security alerts to help identify and resolve vulnerabilities early.
-
CI health checks: verifies that CI pipelines include the required security scan configurations and alerts the team on issues.
-
Gem release tracking: detects unreleased changes in the team’s Ruby gem repositories.
-
Motivational quotes: shares inspirational quotes in Slack channels to keep spirits high.
-
Repository tag audit: includes a script that checks all repositories listed in the Developer Docs are tagged with the
govuktopic for governance and consistency.

How to use it?
Add your team’s configuration to config/alphagov.yml. The process is slightly different depending on whether or not your team is part of GOV.UK.
GOV.UK teams
Include your team’s name and the Slack channel you want to post to. These must match the team name and Slack channel specified in the Developer Docs. Do not add a list of repos, they will be pulled from the developer docs automatically. Private repos are not currently supported.
The Developer docs repos.json is now the single source of truth for information about GOV.UK repositories and which team is responsible for them.
Other teams
Include your team’s name, Slack channel and a list of repos you want to be notified about. Private repos are not currently supported.
Slack alerts
To customize which alerts your team channel gets, find your team in config/alphagov.yml and set the following values to true or false:
- morning_seal_quotes: Morning quotes set by your team
- afternoon_seal_quotes: Afternoon quotes set by your team
- seal_prs: Morning alerts about old and recent pull requests by team members
- dependapanda: Morning alerts about Dependabot and Renovate pull requests*
- security_alerts: Security alerts (only available to teams receiving Dependabot alerts)
* Dependapanda identifies PRs authored by Dependabot and those with branches beginning “renovate”. When posting to Slack, it links to a list of PRs with the label “dependencies”. Most Dependabot PRs will have this label - a small minority don’t. Renovate must be set up to provide this label.
Local testing
To test the script, create a private Slack channel e.g. “#angry-seal-bot-test-abc” and update @team_channel on this line in slack_poster.rb to the one you created, you’ll also need a DEVELOPMENT env set to true.
You can then run the GitHub Action selecting your branch and you should see the post in your test channel.
If you don’t want to post to Slack you can add a DRY: true env to your workflow and the output will only show in the logs.
Slack configuration
- :informative_seal:
- :angrier_seal:
- :happyseal:
- :halloween_informative_seal:
- :halloween_angrier_seal:
- :festive_season_informative_seal:
- :festive_season_angrier_seal:
- :manatea:
How to run the tests?
Just run bundle exec rspec in the command line.