Slack Daily Summary Setup

A scheduled GitHub Actions workflow posts daily end-of-day summaries of changes shipped to the #platform Slack channel.


What It Does

Every weekday at 6 PM ET, the workflow:

  1. Fetches PRs merged to brainforge-platform in the last 24 hours
  2. Formats a summary with PR titles, authors, and links
  3. Posts to #platform (channel ID: C08CRQJ636X) via the Slack API

Required Credentials

GitHub Secret: SLACK_BOT_TOKEN

This is a Slack bot token with chat:write scope, used to post messages as the Brainforge assistant.

Location in 1Password:

  • Vault: Brainforge AI Team
  • Item name: Look for the Slack bot token associated with the brainforge-assistant app

Adding to GitHub:

  1. Go to Repository Settings > Secrets and variables > Actions
  2. Click “New repository secret”
  3. Name: SLACK_BOT_TOKEN
  4. Value: Paste the token from 1Password (starts with xoxb-)

Workflow Details

PropertyValue
File.github/workflows/daily-platform-summary.yml
Schedule0 23 * * 1-5 (6 PM ET, Monday-Friday)
Manual triggerworkflow_dispatch (for testing)
ChannelC08CRQJ636X (#platform)

Testing

Manual Test

# In GitHub UI:
# Actions > Daily Platform EOD Summary > Run workflow

Verify Token Permissions

curl -X POST https://slack.com/api/chat.postMessage \
  -H "Authorization: Bearer YOUR_TEST_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "C08CRQJ636X",
    "text": "Test message from CLI"
  }'

Troubleshooting

IssueFix
”channel_not_found”Bot is not in #platform — invite it to the channel
”not_allowed_token_type”Token missing chat:write scope — regenerate with correct scope
”missing_scope”Reinstall the Slack app with updated scopes
No PRs showingCheck GITHUB_TOKEN permissions; must have PR read access

  • Workflow: .github/workflows/daily-platform-summary.yml
  • Slack config: apps/dagster-pipelines/pipelines/slack_data_transformation/slack_data_transformation_config.yaml