Skip to content

Social Card of this repo

Intelligent Dependency Management โ€‹

Automated dependency updates with professional pull requests, smart scheduling, and team integration.

Buddy-bot is a modern dependency management tool that automatically scans your project for outdated packages and creates professional pull requests with detailed release notes, impact analysis, and intelligent labeling. Built on Bun's lightning-fast package manager, it provides enterprise-grade automation for keeping your dependencies up-to-date.

Key Features โ€‹

  • ๐Ÿ” Smart Scanning - Lightning-fast dependency detection using Bun, ts-pkgx, and GitHub API
  • ๐Ÿค– Automated PRs - Professional pull requests with three separate dependency tables
  • ๐Ÿ“ Multi-Format Support - Handles package.json, pkgx, Launchpad dependency files, and GitHub Actions
  • ๐Ÿท๏ธ Dynamic Labeling - Contextual labels based on update type and package ecosystem
  • ๐Ÿ‘ฅ Team Integration - Automatic reviewers, assignees, and team notifications
  • ๐Ÿ“… Flexible Scheduling - Cron-based automation with GitHub Actions integration
  • ๐Ÿ”„ Interactive Rebasing - Checkbox-based PR rebasing with conflict detection
  • ๐Ÿ“ฆ Package Grouping - Coordinate related package updates for better change management
  • ๐Ÿ›ก๏ธ Security Priority - Prioritizes security updates with configurable strategies

๐Ÿš€ Quick Start โ€‹

bash
# Install buddy-bot
bun add --global buddy-bot

# Scan for outdated packages
buddy-bot scan

# Create update pull requests
buddy-bot update

# Generate GitHub Actions workflows
buddy-bot workflow daily

๐Ÿ“– Example Pull Request โ€‹

Buddy-bot creates professional pull requests that include:

  • Comprehensive update tables with current and target versions
  • Detailed release notes extracted from changelogs and GitHub releases
  • Impact analysis showing breaking changes and migration guides
  • Dynamic labels for package types, update severity, and ecosystems
  • Automatic reviewers based on package ownership and team configuration
  • Interactive rebasing with checkbox-based conflict resolution

Screenshot

๐Ÿ”ง Configuration โ€‹

typescript
// buddy-bot.config.ts
import type { BuddyBotConfig } from 'buddy-bot'

export default {
  repository: {
    provider: 'github',
    owner: 'your-org',
    name: 'your-repo',
  },
  packages: {
    strategy: 'patch', // 'major' | 'minor' | 'patch' | 'all'
    ignore: ['@types/node'],
    groups: [
      {
        name: 'React Ecosystem',
        packages: ['react', 'react-dom', '@types/react'],
        strategy: 'minor',
      },
    ],
  },
  pullRequest: {
    reviewers: ['team-lead'],
    assignees: ['maintainer'],
    labels: ['dependencies', 'automated'],
    autoMerge: {
      enabled: true,
      strategy: 'squash',
      conditions: ['patch-only'],
    },
  },
  schedule: {
    cron: '0 2 * * 1', // Weekly on Monday at 2 AM
  },
} satisfies BuddyBotConfig

Use Cases โ€‹

Enterprise Teams โ€‹

  • Automated dependency management across multiple repositories
  • Security-first updates with priority scheduling
  • Team-based review workflows with automatic assignments
  • Compliance tracking with detailed update logs

Open Source Projects โ€‹

  • Community-friendly PRs with detailed explanations
  • Contributor onboarding through automated maintenance
  • Release coordination with grouped package updates
  • Documentation integration with changelog extraction

CI/CD Pipelines โ€‹

  • Scheduled automation with GitHub Actions
  • Multi-strategy updates (patch, minor, major)
  • Auto-merge capabilities for trusted updates
  • Rollback detection with conflict resolution

Workflow Integration โ€‹

GitHub Actions โ€‹

yaml
name: Dependency Updates
on:
  schedule:
    - cron: '0 2 * * 1' # Weekly

jobs:
  update:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v1
      - run: bunx buddy-bot update
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Multiple Strategies โ€‹

bash
# Daily security patches
buddy-bot update --strategy patch --auto-merge

# Weekly minor updates
buddy-bot update --strategy minor --reviewers team-lead

# Monthly major updates
buddy-bot update --strategy major --assignees senior-dev

๐Ÿ—๏ธ Architecture โ€‹

Buddy-bot is built with modern tools and best practices:

  • โšก Bun Runtime - Lightning-fast package management and execution
  • ๐Ÿ” TypeScript - Full type safety and IDE integration
  • ๐Ÿงช Comprehensive Testing - Unit, integration, and E2E test coverage
  • ๐Ÿ“ฆ Modular Design - Extensible plugin architecture
  • ๐Ÿ›ก๏ธ Security First - Secure token handling and permission management

Comparison โ€‹

FeatureBuddyDependabotRenovate
Speedโšก Bun-native๐ŸŒ Slower๐ŸŒ Slower
Package ManagersBun, npm, yarn, pnpm, pkgx, LaunchpadLimitedLimited
ConfigurationTypeScript, YAML, JSON/JS, package.jsonYAMLJSON/JS
Groupingโœ… Flexibleโœ… Basicโœ… Advanced
Zero Configโœ… Yesโœ… YesโŒ Complex
Self-hostedโœ… YesโŒ GitHub onlyโœ… Yes

Contributing โ€‹

We welcome contributions! Please see our Contributing Guide for details.

Development Setup โ€‹

bash
# Clone the repository
git clone https://github.com/stacksjs/buddy-bot.git
cd buddy-bot

# Install dependencies
bun install

# Run tests
bun test

# Start development
bun dev

Changelog โ€‹

Please see our releases page for more information on what has changed recently.

Stargazers โ€‹

Stargazers over time

Community โ€‹

For help, discussion about best practices, or any other conversation that would benefit from being searchable:

Discussions on GitHub

For casual chit-chat with others using this package:

Join the Stacks Discord Server

Postcardware โ€‹

Two things are true: Buddy-bot will always stay open-source, and we do love to receive postcards from wherever it's used! ๐ŸŒ We also publish them on our website.

Our address: Stacks.js, 12665 Village Ln #2306, Playa Vista, CA 90094

Sponsors โ€‹

We would like to extend our thanks to the following sponsors for funding Buddy-bot development. If you are interested in becoming a sponsor, please reach out to us.

Credits โ€‹

License โ€‹

The MIT License (MIT). Please see LICENSE for more information.

Made with ๐Ÿ’™

Released under the MIT License.