Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chocoonestrogen/rem-bot
A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.
https://github.com/chocoonestrogen/rem-bot
analytics bluesky bot commit github github-bot integration
Last synced: 27 days ago
JSON representation
A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.
- Host: GitHub
- URL: https://github.com/chocoonestrogen/rem-bot
- Owner: chocoOnEstrogen
- License: isc
- Created: 2024-12-09T23:20:55.000Z (28 days ago)
- Default Branch: master
- Last Pushed: 2024-12-10T04:14:06.000Z (28 days ago)
- Last Synced: 2024-12-10T05:20:12.673Z (28 days ago)
- Topics: analytics, bluesky, bot, commit, github, github-bot, integration
- Language: TypeScript
- Homepage:
- Size: 1.69 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 🤖 Rem Bot
> A GitHub integration bot that provides rich analytics, statistics, and notifications through Bluesky.
## ✨ 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**
```bash
git clone https://github.com/chocoOnEstrogen/rem-bot.git
cd rem-bot
```2. **Install dependencies**
```bash
npm install
```3. **Configure environment variables**
Copy `.env.example` to `.env` and fill in the required values:
```env
# 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
```4. **Start the bot**
```bash
npm start
```### 🐳 Docker Deployment
```bash
# Build container
docker build -t rem-bot .# Run container
docker run -d \
--name rem-bot \
-e APP_ID= \
-e PRIVATE_KEY= \
-e WEBHOOK_SECRET= \
-e BLUESKY_IDENTIFIER= \
-e BLUESKY_PASSWORD= \
-e GITHUB_USERNAME= \
-e GITHUB_TOKEN= \
rem-bot
```## 📝 Configuration
### Repository Configuration
Create a `rem.conf` file in your repository's root to customize the bot's behavior:```conf
# 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](LICENSE) file for details.
## 🙏 Acknowledgments
- Built with [Probot](https://github.com/probot/probot)
- Uses [Bluesky API](https://github.com/bluesky-social/atproto)
- Canvas rendering by [@napi-rs/canvas](https://github.com/Brooooooklyn/canvas)## 📞 Support
If you have any questions or need help with setup, please open an issue or reach out to [@chocoOnEstrogen](https://github.com/chocoOnEstrogen) on GitHub.
---
Made with ❤️ by stella~