Skip to content

A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.

License

Notifications You must be signed in to change notification settings

chocoOnEstrogen/rem-bot

Repository files navigation

🤖 Rem Bot

A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.

Rem Bot Banner

✨ Features

📊 Statistics & Analytics

  • Weekly Activity Reports: Automated stats generation for users and repositories
    • Repository activity tracking
    • Commit history visualization
    • Issue and PR statistics
    • Configurable per repository

🔔 Notifications

  • Commit Updates: Real-time commit notifications on Bluesky
    • Rich visual commit cards
    • File change statistics
    • Author information
    • Configurable per repository

🚀 Getting Started

Prerequisites

  • Node.js 18 or higher
  • A GitHub account
  • A Bluesky account

Installation

  1. Clone the repository
git clone https://github.com/chocoOnEstrogen/rem-bot.git
cd rem-bot
  1. Install dependencies
npm install
  1. Configure environment variables Copy .env.example to .env and fill in the required values:
# GitHub App Configuration
APP_ID=your_app_id
WEBHOOK_SECRET=your_webhook_secret
PRIVATE_KEY=your_private_key

# Bluesky Configuration
BLUESKY_IDENTIFIER=your.identifier
BLUESKY_PASSWORD=your_password

# GitHub Configuration
GITHUB_USERNAME=your_username
GITHUB_TOKEN=your_token
  1. Start the bot
npm start

🐳 Docker Deployment

# Build container
docker build -t rem-bot .

# Run container
docker run -d \
  --name rem-bot \
  -e APP_ID=<app-id> \
  -e PRIVATE_KEY=<pem-value> \
  -e WEBHOOK_SECRET=<webhook-secret> \
  -e BLUESKY_IDENTIFIER=<identifier> \
  -e BLUESKY_PASSWORD=<password> \
  -e GITHUB_USERNAME=<username> \
  -e GITHUB_TOKEN=<token> \
  rem-bot

📝 Configuration

Repository Configuration

Create a rem.conf file in your repository's root to customize the bot's behavior:

# GitHub related settings
[github]
# Whether to post commits to Bluesky
commits.postToBluesky=true

# Stats related settings
[stats]
# Whether to include this repository in weekly stats
enable=true

Setting Up the GitHub App

  1. Create a new GitHub App in your organization settings
  2. Configure the following permissions:
    • Repository contents: Read
    • Issues: Write
    • Pull requests: Write
    • Workflows: Read
    • Metadata: Read
  3. Subscribe to events:
    • Push
    • Pull request
    • Issues
    • Workflow runs

Configuring Bluesky Integration

  1. Create a Bluesky account if you haven't already
  2. Add your Bluesky credentials to the .env file
  3. The bot will automatically post updates to your Bluesky feed

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📜 License

This project is licensed under the ISC License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

If you have any questions or need help with setup, please open an issue or reach out to @chocoOnEstrogen on GitHub.


Made with ❤️ by stella~

About

A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks