diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 9846e59..02f43ec 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -Ready to Review is an elegant modern Slack bot written in Go that integrates with GitHub to streamline PR review workflows. The bot provides real-time notifications, dashboard views, and multi-org/multi-Slack support. +reviewGOOSE:Slack is the Slack integration for reviewGOOSE — an elegant modern Slack bot written in Go that integrates with GitHub to streamline PR review workflows. The bot provides real-time notifications, dashboard views, and multi-org/multi-Slack support. ## Core Features @@ -27,7 +27,7 @@ Ready to Review is an elegant modern Slack bot written in Go that integrates wit - Native Slack app home tab with Block Kit UI showing incoming/outgoing PRs - Highlights PRs blocked on the user - Clean, settings-free interface focusing on PR status -- Alternative web dashboard available at https://dash.ready-to-review.dev/ +- Alternative web dashboard available at https://reviewgoose.dev/ ### 3. Smart Notifications - **Smart DM Logic**: If user tagged in channel, delay DMs by configured time (default: 65min) @@ -92,7 +92,7 @@ make clean # Clean build artifacts ### External Dependencies - `github.com/codeGROOVE-dev/sprinkler` - WebSocket hub for GitHub webhook events -- `github.com/ready-to-review/turnclient` - PR state analysis and blocking detection +- `github.com/codeGROOVE-dev/turnclient` - PR state analysis and blocking detection - `github.com/slack-go/slack` - Official Slack API client - `github.com/google/go-github/v50` - GitHub API client diff --git a/README.md b/README.md index d766939..440c54e 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,15 @@ -# Ready-to-Review Slacker +# reviewGOOSE:Slack [](https://goreportcard.com/report/github.com/codeGROOVE-dev/slacker) [](https://godoc.org/github.com/codeGROOVE-dev/slacker) [](https://www.gnu.org/licenses/gpl-3.0) [](go.mod) - + -Slack bot that tracks GitHub pull requests and notifies reviewers when it's their turn. Part of the https://codegroove.dev/ ecosystem of developer acceleration tools. +The Slack integration for [reviewGOOSE](https://codegroove.dev/reviewgoose/) — know instantly when you're blocking a PR. + +**reviewGOOSE:Slack** tracks GitHub pull requests and notifies reviewers when it's their turn. Works alongside [reviewGOOSE:Desktop](https://github.com/codeGROOVE-dev/goose) for a complete PR tracking experience. Part of the [codeGROOVE](https://codegroove.dev/) ecosystem. ## Quick Start @@ -137,10 +139,10 @@ channels: ## Usage Slack commands: -- `/r2r dashboard` - View your PR dashboard -- `/r2r help` - Show help +- `/goose dashboard` - View your PR dashboard +- `/goose help` - Show help -The dashboard is also available in the app's Home tab or at https://dash.ready-to-review.dev/ +The dashboard is also available in the app's Home tab or at https://reviewgoose.dev/ ## Smart Notification Logic diff --git a/cmd/server/main.go b/cmd/server/main.go index cf22201..ec44831 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -262,7 +262,7 @@ func run(ctx context.Context, cancel context.CancelFunc, cfg *config.ServerConfi homeHandler := slack.NewHomeHandler(slackManager, githubManager, configManager, stateStore, reverseMapping) slackManager.SetHomeViewHandler(homeHandler.HandleAppHomeOpened) - // Initialize report handler for /r2r report slash command + // Initialize report handler for /goose report slash command reportHandler := slack.NewReportHandler(slackManager, githubManager, stateStore, reverseMapping) slackManager.SetReportHandler(reportHandler.HandleReportCommand) diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 9faeec3..159b578 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -1,10 +1,10 @@ # Deployment Guide -This guide is for self-hosting Ready-to-Review. If you're using the SaaS version, see [SETUP.md](SETUP.md) instead. +This guide is for self-hosting reviewGOOSE:Slack. If you're using the SaaS version, see [SETUP.md](SETUP.md) instead. ## Architecture Overview -Ready-to-Review consists of two services: +reviewGOOSE:Slack consists of two services: 1. **slacker** - Main bot server that handles GitHub webhooks and Slack notifications 2. **slacker-registrar** - OAuth-only service for multi-workspace installations @@ -44,7 +44,7 @@ Ready-to-Review consists of two services: 1. Go to https://api.slack.com/apps 2. Click **"Create New App"** 3. Choose **"From scratch"** -4. Name your app (e.g., "Ready-to-Review") +4. Name your app (e.g., "reviewGOOSE") 5. Select your development workspace ### Step 2: Configure OAuth & Permissions diff --git a/docs/SETUP.md b/docs/SETUP.md index 28cd56b..f626f17 100644 --- a/docs/SETUP.md +++ b/docs/SETUP.md @@ -1,6 +1,6 @@ -# Getting Started with Ready-to-Review +# Getting Started with reviewGOOSE:Slack -Ready-to-Review is a Slack bot that keeps your team informed about GitHub pull requests. It creates threads for PRs, tracks their status with emojis, and sends smart notifications so reviewers know when it's their turn. +reviewGOOSE:Slack is the Slack integration for [reviewGOOSE](https://codegroove.dev/reviewgoose/) — it keeps your team informed about GitHub pull requests. It creates threads for PRs, tracks their status with emojis, and sends smart notifications so reviewers know when it's their turn. ## Quick Start @@ -37,7 +37,7 @@ Once installed, the bot needs to know which GitHub repositories to track. Contin ## Configuring Your Repositories -Ready-to-Review reads its configuration from a special GitHub repository in your organization. This lets you version-control your notification settings centrally. +reviewGOOSE:Slack reads its configuration from a special GitHub repository in your organization. This lets you version-control your notification settings centrally. ### Step 1: Create the .codeGROOVE Repository @@ -110,7 +110,7 @@ channels: ```bash git add slack.yaml -git commit -m "Configure Ready-to-Review Slack bot" +git commit -m "Configure reviewGOOSE:Slack" git push ``` @@ -338,17 +338,17 @@ channels: ## Viewing Your Dashboard -Ready-to-Review provides two ways to view your PRs: +reviewGOOSE:Slack provides two ways to view your PRs: ### 1. Slack App Home -1. Click "Ready-to-Review" in your Slack sidebar +1. Click "reviewGOOSE" in your Slack sidebar 2. Select the "Home" tab 3. View incoming PRs (waiting on you) and outgoing PRs (waiting on others) ### 2. Web Dashboard -Visit [dash.ready-to-review.dev](https://dash.ready-to-review.dev/) for a comprehensive web view. +Visit [reviewgoose.dev](https://reviewgoose.dev/) for a comprehensive web view. --- @@ -365,7 +365,7 @@ Visit [dash.ready-to-review.dev](https://dash.ready-to-review.dev/) for a compre **Check channel permissions:** - The bot needs permission to post in the channel -- Try inviting the bot: `/invite @Ready-to-Review` +- Try inviting the bot: `/invite @goose` ### Not receiving DMs @@ -452,16 +452,16 @@ Before enabling: - **Documentation:** [github.com/codeGROOVE-dev/slacker](https://github.com/codeGROOVE-dev/slacker) - **Issues:** [GitHub Issues](https://github.com/codeGROOVE-dev/slacker/issues) -- **Support:** Contact your Ready-to-Review administrator +- **Support:** Contact your reviewGOOSE administrator --- ## What's Next? -Ready-to-Review is part of the codeGROOVE ecosystem of developer tools. Check out: +reviewGOOSE:Slack is part of the codeGROOVE ecosystem of developer tools. Check out: -- **[Sprinkler](https://github.com/codeGROOVE-dev/sprinkler)** - Real-time GitHub webhook hub -- **[Ready-to-Review Dashboard](https://dash.ready-to-review.dev/)** - Web-based PR dashboard +- **[reviewGOOSE:Desktop](https://github.com/codeGROOVE-dev/goose)** - Desktop app with honk notifications +- **[reviewGOOSE Dashboard](https://reviewgoose.dev/)** - Web-based PR dashboard - **[codeGROOVE.dev](https://codegroove.dev/)** - Developer acceleration tools Happy reviewing! diff --git a/pkg/bot/polling.go b/pkg/bot/polling.go index f27c811..a85275f 100644 --- a/pkg/bot/polling.go +++ b/pkg/bot/polling.go @@ -511,7 +511,7 @@ func (c *Coordinator) checkDailyReports(ctx context.Context, org string, prs []g // Create daily report sender and dashboard fetcher sender := dailyreport.NewSender(c.stateStore, c.slack) - fetcher := home.NewFetcher(ghClient, c.stateStore, token, "ready-to-review[bot]") + fetcher := home.NewFetcher(ghClient, c.stateStore, token, "reviewgoose[bot]") sentCount := 0 skippedCount := 0 diff --git a/pkg/home/ui.go b/pkg/home/ui.go index 947dce7..5e02f6a 100644 --- a/pkg/home/ui.go +++ b/pkg/home/ui.go @@ -12,14 +12,14 @@ import ( ) // BuildBlocks creates Slack Block Kit UI for the home dashboard. -// Design matches dashboard at https://ready-to-review.dev - modern minimal with indigo accents. +// Design matches dashboard at https://reviewgoose.dev - modern minimal with indigo accents. func BuildBlocks(dashboard *Dashboard, userTZ string) []slack.Block { var blocks []slack.Block // Header blocks = append(blocks, slack.NewHeaderBlock( - slack.NewTextBlockObject("plain_text", "🚀 Ready to Review", true, false), + slack.NewTextBlockObject("plain_text", "🚀 reviewGOOSE", true, false), ), // Refresh button slack.NewActionBlock( @@ -63,7 +63,7 @@ func BuildBlocks(dashboard *Dashboard, userTZ string) []slack.Block { esc := url.PathEscape(org) orgLine := fmt.Sprintf("• %s [<%s|dashboard> | <%s|config>]", org, - fmt.Sprintf("https://%s.ready-to-review.dev", esc), + fmt.Sprintf("https://reviewgoose.dev/orgs/%s", esc), fmt.Sprintf("https://github.com/%s/.codeGROOVE/blob/main/slack.yaml", esc), ) orgLines = append(orgLines, orgLine) @@ -235,9 +235,9 @@ func BuildBlocksWithDebug(dashboard *Dashboard, userTZ string, mapping *usermapp var blocks []slack.Block // Header with GitHub username if available - headerText := "🚀 Ready to Review" + headerText := "🚀 reviewGOOSE" if mapping != nil { - headerText = fmt.Sprintf("🚀 Ready to Review — @%s", mapping.GitHubUsername) + headerText = fmt.Sprintf("🚀 reviewGOOSE — @%s", mapping.GitHubUsername) } blocks = append(blocks, @@ -283,7 +283,7 @@ func BuildBlocksWithDebug(dashboard *Dashboard, userTZ string, mapping *usermapp esc := url.PathEscape(org) orgLine := fmt.Sprintf("• %s [<%s|dashboard> | <%s|config>]", org, - fmt.Sprintf("https://%s.ready-to-review.dev", esc), + fmt.Sprintf("https://reviewgoose.dev/orgs/%s", esc), fmt.Sprintf("https://github.com/%s/.codeGROOVE/blob/main/slack.yaml", esc), ) orgLines = append(orgLines, orgLine) diff --git a/pkg/home/ui_test.go b/pkg/home/ui_test.go index c5cd7eb..dc7e2fb 100644 --- a/pkg/home/ui_test.go +++ b/pkg/home/ui_test.go @@ -35,13 +35,13 @@ func TestBuildBlocks(t *testing.T) { foundHeader := false for _, block := range blocks { if hb, ok := block.(*slack.HeaderBlock); ok { - if strings.Contains(hb.Text.Text, "Ready to Review") { + if strings.Contains(hb.Text.Text, "reviewGOOSE") { foundHeader = true } } } if !foundHeader { - t.Error("expected header block with 'Ready to Review'") + t.Error("expected header block with 'reviewGOOSE'") } // Verify we don't have any PR section blocks (empty dashboard) @@ -74,7 +74,7 @@ func TestBuildBlocks(t *testing.T) { foundLink := false for _, block := range blocks { if sb, ok := block.(*slack.SectionBlock); ok { - if sb.Text != nil && strings.Contains(sb.Text.Text, "ready-to-review.dev") { + if sb.Text != nil && strings.Contains(sb.Text.Text, "reviewgoose.dev") { foundLink = true } } diff --git a/pkg/slack/home_handler.go b/pkg/slack/home_handler.go index 2c2b9a1..66d7d70 100644 --- a/pkg/slack/home_handler.go +++ b/pkg/slack/home_handler.go @@ -125,7 +125,7 @@ func (h *HomeHandler) tryHandleAppHomeOpened(ctx context.Context, teamID, slackU ghClient, h.stateStore, githubClient.InstallationToken(ctx), - "ready-to-review[bot]", + "reviewgoose[bot]", ) dashboard, err := fetcher.FetchDashboard(ctx, githubUsername, workspaceOrgs) diff --git a/pkg/slack/manager.go b/pkg/slack/manager.go index 0212853..4abee62 100644 --- a/pkg/slack/manager.go +++ b/pkg/slack/manager.go @@ -35,7 +35,7 @@ type Manager struct { clients map[string]*Client // team_id -> client metadata map[string]*WorkspaceMetadata homeViewHandler func(ctx context.Context, teamID, userID string) error // Global home view handler - reportHandler func(ctx context.Context, teamID, userID string) error // Global report handler for /r2r report + reportHandler func(ctx context.Context, teamID, userID string) error // Global report handler for /goose report } // NewManager creates a new Slack client manager. diff --git a/pkg/slack/oauth.go b/pkg/slack/oauth.go index 838df0d..4411a9b 100644 --- a/pkg/slack/oauth.go +++ b/pkg/slack/oauth.go @@ -200,7 +200,7 @@ func (*OAuthHandler) writeSuccessPage(writer http.ResponseWriter, teamName strin
-Ready to Review is now supercharging
+reviewGOOSE:Slack is now active in
🚀 - Your dev team just got faster. + You'll know instantly when you're blocking a PR. 🚀