@@ -27,6 +27,12 @@ A modern, fast alternative to Dependabot and Renovate built for the JavaScript a
27
27
- 🎨 ** Rich PR Format** : Three separate tables (npm, Launchpad/pkgx, GitHub Actions) with detailed metadata
28
28
- ⚙️ ** Zero Config** : Works out of the box with sensible defaults
29
29
- 🔧 ** Highly Configurable** : Customize everything via ` buddy-bot.config.ts `
30
+ - 🛠️ ** Simple Setup Experience** : Renovate-like interactive setup with validation and smart recommendations
31
+ - 🔍 ** Pre-flight Validation** : Environment checks, conflict detection, and prerequisite validation
32
+ - 📊 ** Smart Project Analysis** : Automatic project type detection with intelligent recommendations
33
+ - 📈 ** Progress Tracking** : Visual setup progress with step-by-step guidance and recovery capabilities
34
+ - 📋 ** Configuration Migration** : Seamless import from Renovate and Dependabot configurations
35
+ - 🔌 ** Integration Ecosystem** : Extensible plugin system with Slack, Discord, and Jira integrations
30
36
31
37
## Quick Start
32
38
@@ -53,43 +59,93 @@ buddy-bot setup
53
59
54
60
This comprehensive setup wizard will guide you through configuring automated dependency updates for your project in a Renovate-like experience. The setup process includes:
55
61
56
- ** 🔍 Step 1: Repository Detection**
62
+ ** 🔍 Pre-flight Validation**
63
+ - ** Environment checks** - Validates git repository, Node.js/Bun installation
64
+ - ** Conflict detection** - Scans for existing dependency management tools (Renovate, Dependabot)
65
+ - ** Git configuration** - Ensures proper git user setup
66
+ - ** GitHub CLI detection** - Suggests helpful tools for authentication
67
+
68
+ ** 📊 Smart Project Analysis**
69
+ - ** Project type detection** - Identifies library, application, monorepo, or unknown projects
70
+ - ** Package manager detection** - Detects Bun, npm, yarn, pnpm with lock file validation
71
+ - ** Dependency ecosystem analysis** - Finds pkgx, Launchpad dependency files
72
+ - ** GitHub Actions discovery** - Scans existing workflows for updates
73
+ - ** Intelligent recommendations** - Suggests optimal setup based on project characteristics
74
+
75
+ ** 📈 Interactive Progress Tracking**
76
+ - ** Visual progress bar** - Real-time completion percentage with progress indicators
77
+ - ** Step-by-step guidance** - Clear indication of current and completed steps
78
+ - ** Time tracking** - Setup duration monitoring
79
+ - ** Recovery capabilities** - Resume from failures with detailed error reporting
80
+
81
+ ** 📋 Step 1: Configuration Migration & Discovery**
82
+ - ** Tool Detection** - Automatically detects existing Renovate and Dependabot configurations
83
+ - ** Seamless Migration** - Imports settings, schedules, package rules, and ignore patterns
84
+ - ** Compatibility Analysis** - Identifies incompatible features and provides alternatives
85
+ - ** Migration Report** - Detailed summary of migrated settings and confidence levels
86
+
87
+ ** 🔌 Step 2: Integration Discovery**
88
+ - ** Plugin Discovery** - Automatically detects available integrations (Slack, Discord, Jira)
89
+ - ** Environment Detection** - Scans for webhook URLs, API tokens, and configuration files
90
+ - ** Plugin Loading** - Enables discovered integrations for setup completion notifications
91
+ - ** Custom Plugins** - Supports custom plugin definitions in ` .buddy/plugins/ ` directory
92
+
93
+ ** 🔍 Step 3: Repository Detection & Validation**
57
94
- Automatically detects your GitHub repository from git remote
58
- - Validates repository access and configuration
95
+ - ** API validation** - Tests repository access and permissions via GitHub API
96
+ - ** Repository health checks** - Validates issues, permissions, and settings
97
+ - ** Private repository support** - Enhanced validation for private repositories
59
98
60
- ** 🔑 Step 2: GitHub Token Setup**
99
+ ** 🔑 Step 4: Enhanced Token Setup**
61
100
- Guides you through creating a Personal Access Token (PAT)
62
- - Explains required scopes (` repo ` , ` workflow ` ) for full functionality
101
+ - ** Scope validation** - Explains required scopes (` repo ` , ` workflow ` ) with examples
102
+ - ** Token testing** - Validates token permissions before proceeding
63
103
- Helps set up repository secrets for enhanced features
64
104
65
- ** 🔧 Step 3 : Repository Settings**
105
+ ** 🔧 Step 5 : Repository Settings Validation **
66
106
- Walks you through GitHub Actions permissions configuration
107
+ - ** Permission verification** - Tests workflow permissions in real-time
108
+ - ** Organization settings** - Guidance for organization-level permissions
67
109
- Ensures proper workflow permissions for PR creation
68
110
69
- ** ⚙️ Step 4: Workflow Configuration**
70
- Choose from several carefully crafted presets:
111
+ ** ⚙️ Step 6: Intelligent Workflow Configuration**
112
+ Choose from several carefully crafted presets with smart recommendations :
71
113
72
114
- ** Standard Setup (Recommended)** - Dashboard updates 3x/week, balanced dependency updates
73
115
- ** High Frequency** - Check for updates multiple times per day
74
116
- ** Security Focused** - Frequent patch updates with security-first approach
75
117
- ** Minimal Updates** - Weekly checks, lower frequency
76
118
- ** Development/Testing** - Manual triggers + frequent checks for testing
77
- - ** Custom Configuration** - Create your own schedule
119
+ - ** Custom Configuration** - Advanced schedule builder with cron preview
78
120
79
- ** 📝 Step 5: Configuration File Generation**
80
- - Creates ` buddy-bot.config.json ` with your repository settings
121
+ ** 📝 Step 7: Enhanced Configuration Generation**
122
+ - Creates ` buddy-bot.config.json ` with repository-specific settings
123
+ - ** Project-aware defaults** - Configuration optimized for detected project type
124
+ - ** Ecosystem integration** - Includes detected package managers and dependency files
81
125
- Includes sensible defaults and customization options
82
126
83
- ** 🔄 Step 6 : Workflow Generation**
127
+ ** 🔄 Step 8 : Workflow Generation & Validation **
84
128
- Generates three core GitHub Actions workflows:
85
129
- ` buddy-dashboard.yml ` - Dependency Dashboard Management
86
130
- ` buddy-update-check.yml ` - Auto-rebase PR checker
87
131
- ` buddy-update.yml ` - Scheduled dependency updates
88
-
89
- ** 🎯 Step 7: Final Instructions**
90
- - Provides clear next steps with git commands
91
- - Links to GitHub settings pages for easy configuration
92
- - Explains token setup and repository permissions
132
+ - ** YAML validation** - Ensures generated workflows are syntactically correct
133
+ - ** Security best practices** - Validates token usage and permissions
134
+ - ** Workflow testing** - Verifies generated workflows meet requirements
135
+
136
+ ** 🎯 Step 9: Comprehensive Validation & Instructions**
137
+ - ** Setup verification** - Validates all generated files and configurations
138
+ - ** Workflow testing** - Tests generated workflow syntax and requirements
139
+ - ** Clear next steps** - Git commands and repository setup instructions
140
+ - ** Documentation links** - Direct links to GitHub settings pages
141
+ - ** Troubleshooting guide** - Common issues and solutions
142
+
143
+ ** 🔌 Step 10: Integration Notifications**
144
+ - ** Plugin Execution** - Executes loaded integration hooks for setup completion
145
+ - ** Slack Notifications** - Rich setup completion messages with repository details
146
+ - ** Discord Embeds** - Colorful setup completion notifications with project information
147
+ - ** Jira Tickets** - Automatic task creation for tracking setup completion
148
+ - ** Custom Hooks** - Extensible system for organization-specific integrations
93
149
94
150
### Command Line Interface
95
151
@@ -194,6 +250,132 @@ const config: BuddyBotConfig = {
194
250
export default config
195
251
```
196
252
253
+ ## Configuration Migration
254
+
255
+ Buddy Bot can automatically migrate your existing dependency management configurations from Renovate and Dependabot, making the transition seamless.
256
+
257
+ ### Supported Migration Sources
258
+
259
+ - ** Renovate** - ` renovate.json ` , ` .renovaterc ` , package.json renovate config
260
+ - ** Dependabot** - ` .github/dependabot.yml ` , ` .github/dependabot.yaml `
261
+
262
+ ### Migration Process
263
+
264
+ 1 . ** Automatic Detection** - Scans for existing configuration files
265
+ 2 . ** Smart Conversion** - Maps settings to Buddy Bot equivalents
266
+ 3 . ** Compatibility Check** - Identifies unsupported features
267
+ 4 . ** Migration Report** - Provides detailed conversion summary
268
+
269
+ ``` bash
270
+ # Migration happens automatically during setup
271
+ buddy-bot setup
272
+
273
+ # Or use programmatically
274
+ import { ConfigurationMigrator } from ' buddy-bot/setup'
275
+
276
+ const migrator = new ConfigurationMigrator ()
277
+ const tools = await migrator.detectExistingTools ()
278
+ const result = await migrator.migrateFromRenovate(' renovate.json' )
279
+ ` ` `
280
+
281
+ # ## Migrated Settings
282
+
283
+ | Renovate | Dependabot | Buddy Bot | Notes |
284
+ | ----------| ------------| -----------| -------|
285
+ | ` schedule` | ` schedule.interval` | Workflow presets | Mapped to Standard/High-Frequency/Minimal |
286
+ | ` packageRules` | ` ignore` | Package groups & ignore lists | Preserves grouping logic |
287
+ | ` automerge` | N/A | Auto-merge settings | Includes strategy preferences |
288
+ | ` assignees` /` reviewers` | N/A | PR configuration | Maintains team assignments |
289
+
290
+ # # Integration Ecosystem
291
+
292
+ Buddy Bot includes an extensible plugin system that enables integrations with popular collaboration and project management tools.
293
+
294
+ # ## Built-in Integrations
295
+
296
+ # ### Slack Integration
297
+ ` ` ` bash
298
+ # Set environment variable
299
+ export SLACK_WEBHOOK_URL=" https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK"
300
+
301
+ # Or create config file
302
+ echo " https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK" > .buddy/slack-webhook
303
+ ` ` `
304
+
305
+ ** Features:**
306
+ - Rich setup completion notifications
307
+ - Repository and project details
308
+ - Error notifications for setup failures
309
+ - Configurable channel and username
310
+
311
+ # ### Discord Integration
312
+ ` ` ` bash
313
+ # Set environment variable
314
+ export DISCORD_WEBHOOK_URL=" https://discord.com/api/webhooks/YOUR/DISCORD/WEBHOOK"
315
+
316
+ # Or create config file
317
+ echo " https://discord.com/api/webhooks/YOUR/DISCORD/WEBHOOK" > .buddy/discord-webhook
318
+ ` ` `
319
+
320
+ ** Features:**
321
+ - Colorful embed notifications
322
+ - Project type and package manager details
323
+ - Timestamp tracking
324
+ - Setup completion confirmations
325
+
326
+ # ### Jira Integration
327
+ ` ` ` bash
328
+ # Set environment variables
329
+ export JIRA_API_TOKEN=" your-jira-api-token"
330
+ export JIRA_BASE_URL=" https://your-org.atlassian.net"
331
+ export JIRA_PROJECT_KEY=" BUDDY" # Optional, defaults to BUDDY
332
+ ` ` `
333
+
334
+ ** Features:**
335
+ - Automatic ticket creation for setup completion
336
+ - Repository and project context
337
+ - Configurable project keys
338
+ - Setup tracking and documentation
339
+
340
+ # ## Custom Plugins
341
+
342
+ Create custom integrations by defining plugins in ` .buddy/plugins/` :
343
+
344
+ ` ` ` json
345
+ // .buddy/plugins/custom-integration.json
346
+ {
347
+ " name" : " custom-integration" ,
348
+ " version" : " 1.0.0" ,
349
+ " enabled" : true,
350
+ " triggers" : [
351
+ { " event" : " setup_complete" },
352
+ { " event" : " validation_error" }
353
+ ],
354
+ " hooks" : [
355
+ {
356
+ " name" : " custom-notification" ,
357
+ " priority" : 10,
358
+ " async" : true,
359
+ " handler" : " // Custom JavaScript function"
360
+ }
361
+ ],
362
+ " configuration" : {
363
+ " webhook_url" : " https://your-custom-webhook.com/notify" ,
364
+ " api_key" : " your-api-key"
365
+ }
366
+ }
367
+ ` ` `
368
+
369
+ # ## Plugin Events
370
+
371
+ | Event | Description | Context |
372
+ | -------| -------------| ---------|
373
+ | ` pre_setup` | Before setup begins | Initial configuration |
374
+ | ` post_setup` | After setup completes | Full setup context |
375
+ | ` step_complete` | After each setup step | Step-specific progress |
376
+ | ` validation_error` | When validation fails | Error details and recovery |
377
+ | ` setup_complete` | Final setup completion | Complete project context |
378
+
197
379
# ## Programmatic Usage
198
380
199
381
` ` ` typescript
0 commit comments