Skip to content

GitBit is a Python-based GitHub bot that streamlines issue management for repository maintainers.

License

Notifications You must be signed in to change notification settings

LMLK-seal/GitBit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitBit πŸ€–

Intelligent Issue Management Bot for GitHub

A no-code, easy-to-install GitHub bot that automatically analyzes new issues to suggest labels, assignees, and related issues, saving maintainers valuable time.

Actions Status License: MIT GitHub Marketplace GitHub stars


🌟 Overview

GitBit streamlines repository management by leveraging Natural Language Processing (NLP) to automate the tedious aspects of GitHub issue handling. Let our intelligent bot handle the triage while you focus on what matters mostβ€”building amazing software.

✨ Key Features

Feature Description Benefit
🏷️ Smart Tagging Analyzes issue content to suggest relevant labels (bug, documentation, feature-request) Ensures consistent categorization and improved searchability
πŸ‘€ Assignee Recommendations Recommends contributors based on their expertise from previously closed issues Distributes workload efficiently to the right team members
πŸ”— Automatic Issue Linking Scans and links semantically related or duplicate issues Reduces clutter and centralizes related discussions

πŸš€ Quick Installation

Get GitBit running in your repository in just 2 minutes with these simple steps:

πŸ“‹ Prerequisites

  • GitHub repository with Issues enabled
  • Repository admin access
  • No coding experience required!

πŸ”§ Step 1: Create Workflow File

Create .github/workflows/gitbit.yml in your repository:

name: GitBit Bot

on:
  issues:
    types: [opened]

jobs:
  run-gitbit:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      contents: read
    steps:
      - name: Run GitBit Intelligent Issue Bot
        uses: LMLK-seal/GitBit@main
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

βš™οΈ Step 2: Create Configuration File

Create .gitbit.yml in your repository root:

# GitBit Configuration

# Smart Tagging: Map labels to trigger keywords
tag_keywords:
  bug:
    - error
    - exception
    - traceback
    - panic
    - crash
    - fail
    - broken
  documentation:
    - docs
    - readme
    - help
    - example
    - tutorial
    - guide
  feature-request:
    - feature
    - enhance
    - improvement
    - idea
    - suggestion
  performance:
    - slow
    - performance
    - optimization
    - speed
  security:
    - security
    - vulnerability
    - exploit
    - unsafe

# Assignee Recommendations: Analyze recent closed issues
assignee_rec:
  max_issues_to_scan: 100

# Issue Linking: Similarity threshold for related issues
issue_linking:
  similarity_threshold: 0.7

βœ… Step 3: Activate

  1. Commit both files to your repository
  2. Push to your main branch
  3. Done! GitBit will automatically analyze the next issue opened

πŸ“Š How It Works

graph LR
    A[New Issue Opened] --> B[GitBit Triggered]
    B --> C[Analyze Content]
    C --> D[Check Keywords]
    C --> E[Scan Contributor History]
    C --> F[Compare with Existing Issues]
    D --> G[Label Suggestions]
    E --> H[Assignee Recommendations]
    F --> I[Related Issue Links]
    G --> J[Comment on Issue]
    H --> J
    I --> J
Loading

GitBit operates as a reusable GitHub Action, meaning:

  • πŸ”„ Always uses the latest version automatically
  • πŸ›‘οΈ No code duplication in your repository
  • πŸ“ˆ Continuous improvements without manual updates
  • πŸ”’ Secure execution in GitHub's infrastructure

πŸŽ›οΈ Advanced Configuration

Label Keywords Configuration

Customize tag_keywords to match your project's labeling system:

tag_keywords:
  custom-label:
    - keyword1
    - keyword2
  priority-high:
    - urgent
    - critical
    - blocker

Assignee Recommendation Tuning

Adjust max_issues_to_scan based on your repository size:

  • Small repos (< 100 issues): 50-100
  • Medium repos (100-1000 issues): 100-200
  • Large repos (> 1000 issues): 200-500

Issue Linking Sensitivity

Fine-tune similarity_threshold:

  • 0.5-0.6: More suggestions (higher recall)
  • 0.7-0.8: Balanced approach (recommended)
  • 0.8-0.9: Only very similar issues (higher precision)

πŸ“ˆ Benefits for Your Team

Before GitBit After GitBit
⏰ Manual issue triage πŸ€– Automated suggestions
🏷️ Inconsistent labeling πŸ“‹ Standardized categorization
πŸ‘€ Random assignments 🎯 Expertise-based matching
πŸ” Manual duplicate detection πŸ”— Automatic issue linking
πŸ“Š Time-consuming maintenance ⚑ Streamlined workflow

πŸ”§ Troubleshooting

🚫 Bot not responding to new issues
  • Verify workflow file is in .github/workflows/ directory
  • Check that the workflow has issues: write permissions
  • Ensure .gitbit.yml exists in repository root
  • Check GitHub Actions tab for error messages
🏷️ No label suggestions appearing
  • Review your tag_keywords configuration
  • Ensure keywords match common terms in your issues
  • Check if labels exist in your repository settings
  • Verify keyword case sensitivity
πŸ‘€ No assignee recommendations
  • Ensure your repository has closed issues with assignees
  • Increase max_issues_to_scan value
  • Verify contributors have sufficient commit history

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

πŸ› οΈ Development Setup

  1. Fork the repository
  2. Clone your fork locally
  3. Create a feature branch
    git checkout -b feature/amazing-feature
  4. Make your changes
  5. Test thoroughly
  6. Commit with descriptive messages
    git commit -m "✨ Add amazing feature"
  7. Push to your branch
    git push origin feature/amazing-feature
  8. Open a Pull Request

πŸ› Reporting Issues

Found a bug? Have a feature request?

  1. Check existing issues first
  2. Use our issue templates
  3. Provide detailed reproduction steps
  4. Include relevant configuration files

πŸ’‘ Feature Requests

We love hearing your ideas! When suggesting features:

  • Explain the use case
  • Describe expected behavior
  • Consider implementation complexity
  • Provide examples if possible

πŸ“‹ Roadmap

  • πŸ” Advanced NLP Models: Implement transformer-based classification
  • πŸ“Š Analytics Dashboard: Track bot performance and insights
  • πŸ”„ Custom Workflows: Support for complex automation rules
  • 🌐 Multi-language Support: Analyze issues in different languages
  • πŸ“± Slack/Discord Integration: Notifications for team collaboration
  • 🎯 Priority Scoring: Automatic priority assignment based on content

πŸ“Š Statistics

GitHub repo size GitHub issues GitHub pull requests GitHub contributors

πŸ“œ License

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

πŸ™ Acknowledgments

  • Built with ❀️ by the open-source community
  • Powered by GitHub Actions
  • NLP capabilities thanks to modern machine learning libraries
  • Special thanks to all contributors and users

πŸ“ž Support

Need help? Here are your options:


If GitBit helped streamline your workflow, consider giving us a ⭐!

Made with πŸ€– by developers, for developers