Skip to content

Commit 1541e6d

Browse files
committed
docs: Revamp README for reusable action setup
1 parent af35389 commit 1541e6d

File tree

1 file changed

+261
-41
lines changed

1 file changed

+261
-41
lines changed

README.md

Lines changed: 261 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,75 @@
1-
# GitBit: Intelligent Issue Management Bot for GitHub
1+
# GitBit 🤖
22

3-
<!-- You can create a simple logo -->
3+
<div align="center">
4+
<img src="https://raw.githubusercontent.com/LMLK-seal/GitBit/main/assets/gitbit-logo.png" alt="GitBit Logo" width="200"/>
5+
6+
**Intelligent Issue Management Bot for GitHub**
7+
8+
*A no-code, easy-to-install GitHub bot that automatically analyzes new issues to suggest labels, assignees, and related issues, saving maintainers valuable time.*
49

5-
GitBit is a Python-based GitHub bot that streamlines issue management for repository maintainers. It uses natural language processing (NLP) and machine learning to automate repetitive tasks, making it an invaluable tool for managing large open-source projects.
10+
[![Actions Status](https://github.com/LMLK-seal/GitBit/actions/workflows/gitbit_bot.yml/badge.svg)](https://github.com/LMLK-seal/GitBit/actions)
11+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/LMLK-seal/GitBit/blob/main/LICENSE)
12+
[![GitHub Marketplace](https://img.shields.io/badge/Marketplace-GitBit-brightgreen)](https://github.com/marketplace/actions/gitbit-intelligent-issue-bot)
13+
[![GitHub stars](https://img.shields.io/github/stars/LMLK-seal/GitBit?style=social)](https://github.com/LMLK-seal/GitBit/stargazers)
614

7-
## Key Features
15+
</div>
816

9-
- **🤖 Automatic Issue Linking:** Analyzes new issue descriptions to detect and link semantically related or duplicate issues, reducing clutter and improving organization.
10-
- **🏷️ Smart Tagging:** Suggests relevant labels (e.g., `bug`, `documentation`, `feature-request`) based on the issue's content, ensuring consistent and meaningful categorization.
11-
- **👤 Assignee Recommendations:** Recommends contributors to assign issues to, based on their past contributions and expertise demonstrated in previously closed issues.
17+
---
1218

13-
## Why It’s Unique
19+
## 🌟 Overview
1420

15-
While there are many tools for GitHub automation, GitBit combines NLP and machine learning to provide **intelligent, context-aware suggestions** tailored to each repository. Its focus on issue management—a critical yet time-consuming task—sets it apart from generic bots or static analysis tools.
21+
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.
1622

17-
## How It Works
23+
## ✨ Key Features
1824

19-
GitBit is deployed as a GitHub Action that triggers whenever a new issue is opened in your repository. Here's the process:
25+
| Feature | Description | Benefit |
26+
|---------|-------------|---------|
27+
| 🏷️ **Smart Tagging** | Analyzes issue content to suggest relevant labels (`bug`, `documentation`, `feature-request`) | Ensures consistent categorization and improved searchability |
28+
| 👤 **Assignee Recommendations** | Recommends contributors based on their expertise from previously closed issues | Distributes workload efficiently to the right team members |
29+
| 🔗 **Automatic Issue Linking** | Scans and links semantically related or duplicate issues | Reduces clutter and centralizes related discussions |
2030

21-
1. **Trigger:** A new issue is created.
22-
2. **Analysis:** The bot reads the issue's title and body.
23-
3. **Processing:**
24-
* It compares the new issue's text to a keyword map in your config file to suggest labels.
25-
* It scans recently closed issues to find which users are experts on topics related to the suggested labels.
26-
* It uses TF-IDF vectorization and cosine similarity to find other open issues with similar content.
27-
4. **Comment:** The bot posts a single, helpful comment on the new issue with all its suggestions, allowing maintainers to review and apply them with a single click.
31+
## 🚀 Quick Installation
2832

29-
---
33+
Get GitBit running in your repository in just **2 minutes** with these simple steps:
34+
35+
### 📋 Prerequisites
36+
37+
- GitHub repository with Issues enabled
38+
- Repository admin access
39+
- No coding experience required!
3040

31-
## 🚀 Setup Instructions
41+
### 🔧 Step 1: Create Workflow File
3242

33-
Setting up GitBit takes less than 5 minutes.
43+
Create `.github/workflows/gitbit.yml` in your repository:
3444

35-
### Step 1: Create the Configuration File
45+
```yaml
46+
name: GitBit Bot
47+
48+
on:
49+
issues:
50+
types: [opened]
3651

37-
In the root of your repository, create a file named `.gitbit.yml`. This file controls the bot's behavior.
52+
jobs:
53+
run-gitbit:
54+
runs-on: ubuntu-latest
55+
permissions:
56+
issues: write
57+
contents: read
58+
steps:
59+
- name: Run GitBit Intelligent Issue Bot
60+
uses: LMLK-seal/GitBit@main
61+
with:
62+
github-token: ${{ secrets.GITHUB_TOKEN }}
63+
```
3864
39-
**Copy and paste this template into `.gitbit.yml` and customize it for your project:**
65+
### ⚙️ Step 2: Create Configuration File
66+
67+
Create `.gitbit.yml` in your repository root:
4068

4169
```yaml
42-
# .gitbit.yml
70+
# GitBit Configuration
4371
44-
# --- Smart Tagging Configuration ---
45-
# Map labels to keywords. The bot will suggest a label if an issue's
46-
# title or body contains any of the associated keywords.
72+
# Smart Tagging: Map labels to trigger keywords
4773
tag_keywords:
4874
bug:
4975
- error
@@ -52,31 +78,225 @@ tag_keywords:
5278
- panic
5379
- crash
5480
- fail
81+
- broken
5582
documentation:
5683
- docs
5784
- readme
5885
- help
5986
- example
6087
- tutorial
88+
- guide
6189
feature-request:
6290
- feature
6391
- enhance
6492
- improvement
6593
- idea
66-
question:
67-
- how to
68-
- what is
69-
- why
70-
71-
# --- Assignee Recommendation Configuration ---
72-
# The number of recently closed issues to scan to build an expertise profile.
73-
# A higher number is more accurate but slower.
94+
- suggestion
95+
performance:
96+
- slow
97+
- performance
98+
- optimization
99+
- speed
100+
security:
101+
- security
102+
- vulnerability
103+
- exploit
104+
- unsafe
105+
106+
# Assignee Recommendations: Analyze recent closed issues
74107
assignee_rec:
75108
max_issues_to_scan: 100
76109
77-
# --- Issue Linking Configuration ---
78-
# The similarity score required to consider an issue "related".
79-
# Value should be between 0.0 and 1.0. Higher is more strict.
80-
# A good starting point is 0.7.
110+
# Issue Linking: Similarity threshold for related issues
81111
issue_linking:
82-
similarity_threshold: 0.7
112+
similarity_threshold: 0.7
113+
```
114+
115+
### ✅ Step 3: Activate
116+
117+
1. **Commit** both files to your repository
118+
2. **Push** to your main branch
119+
3. **Done!** GitBit will automatically analyze the next issue opened
120+
121+
## 📊 How It Works
122+
123+
```mermaid
124+
graph LR
125+
A[New Issue Opened] --> B[GitBit Triggered]
126+
B --> C[Analyze Content]
127+
C --> D[Check Keywords]
128+
C --> E[Scan Contributor History]
129+
C --> F[Compare with Existing Issues]
130+
D --> G[Label Suggestions]
131+
E --> H[Assignee Recommendations]
132+
F --> I[Related Issue Links]
133+
G --> J[Comment on Issue]
134+
H --> J
135+
I --> J
136+
```
137+
138+
GitBit operates as a **reusable GitHub Action**, meaning:
139+
- 🔄 Always uses the latest version automatically
140+
- 🛡️ No code duplication in your repository
141+
- 📈 Continuous improvements without manual updates
142+
- 🔒 Secure execution in GitHub's infrastructure
143+
144+
## 🎛️ Advanced Configuration
145+
146+
### Label Keywords Configuration
147+
148+
Customize `tag_keywords` to match your project's labeling system:
149+
150+
```yaml
151+
tag_keywords:
152+
custom-label:
153+
- keyword1
154+
- keyword2
155+
priority-high:
156+
- urgent
157+
- critical
158+
- blocker
159+
```
160+
161+
### Assignee Recommendation Tuning
162+
163+
Adjust `max_issues_to_scan` based on your repository size:
164+
- **Small repos (< 100 issues)**: 50-100
165+
- **Medium repos (100-1000 issues)**: 100-200
166+
- **Large repos (> 1000 issues)**: 200-500
167+
168+
### Issue Linking Sensitivity
169+
170+
Fine-tune `similarity_threshold`:
171+
- **0.5-0.6**: More suggestions (higher recall)
172+
- **0.7-0.8**: Balanced approach (recommended)
173+
- **0.8-0.9**: Only very similar issues (higher precision)
174+
175+
## 📈 Benefits for Your Team
176+
177+
| Before GitBit | After GitBit |
178+
|---------------|--------------|
179+
| ⏰ Manual issue triage | 🤖 Automated suggestions |
180+
| 🏷️ Inconsistent labeling | 📋 Standardized categorization |
181+
| 👤 Random assignments | 🎯 Expertise-based matching |
182+
| 🔍 Manual duplicate detection | 🔗 Automatic issue linking |
183+
| 📊 Time-consuming maintenance | ⚡ Streamlined workflow |
184+
185+
## 🔧 Troubleshooting
186+
187+
<details>
188+
<summary><strong>🚫 Bot not responding to new issues</strong></summary>
189+
190+
- Verify workflow file is in `.github/workflows/` directory
191+
- Check that the workflow has `issues: write` permissions
192+
- Ensure `.gitbit.yml` exists in repository root
193+
- Check GitHub Actions tab for error messages
194+
</details>
195+
196+
<details>
197+
<summary><strong>🏷️ No label suggestions appearing</strong></summary>
198+
199+
- Review your `tag_keywords` configuration
200+
- Ensure keywords match common terms in your issues
201+
- Check if labels exist in your repository settings
202+
- Verify keyword case sensitivity
203+
</details>
204+
205+
<details>
206+
<summary><strong>👤 No assignee recommendations</strong></summary>
207+
208+
- Ensure your repository has closed issues with assignees
209+
- Increase `max_issues_to_scan` value
210+
- Verify contributors have sufficient commit history
211+
</details>
212+
213+
## 🤝 Contributing
214+
215+
We welcome contributions from the community! Here's how you can help:
216+
217+
### 🛠️ Development Setup
218+
219+
1. **Fork** the repository
220+
2. **Clone** your fork locally
221+
3. **Create** a feature branch
222+
```bash
223+
git checkout -b feature/amazing-feature
224+
```
225+
4. **Make** your changes
226+
5. **Test** thoroughly
227+
6. **Commit** with descriptive messages
228+
```bash
229+
git commit -m "✨ Add amazing feature"
230+
```
231+
7. **Push** to your branch
232+
```bash
233+
git push origin feature/amazing-feature
234+
```
235+
8. **Open** a Pull Request
236+
237+
### 🐛 Reporting Issues
238+
239+
Found a bug? Have a feature request?
240+
241+
1. Check existing issues first
242+
2. Use our issue templates
243+
3. Provide detailed reproduction steps
244+
4. Include relevant configuration files
245+
246+
### 💡 Feature Requests
247+
248+
We love hearing your ideas! When suggesting features:
249+
- Explain the use case
250+
- Describe expected behavior
251+
- Consider implementation complexity
252+
- Provide examples if possible
253+
254+
## 📋 Roadmap
255+
256+
- [ ] 🔍 **Advanced NLP Models**: Implement transformer-based classification
257+
- [ ] 📊 **Analytics Dashboard**: Track bot performance and insights
258+
- [ ] 🔄 **Custom Workflows**: Support for complex automation rules
259+
- [ ] 🌐 **Multi-language Support**: Analyze issues in different languages
260+
- [ ] 📱 **Slack/Discord Integration**: Notifications for team collaboration
261+
- [ ] 🎯 **Priority Scoring**: Automatic priority assignment based on content
262+
263+
## 📊 Statistics
264+
265+
<div align="center">
266+
267+
![GitHub repo size](https://img.shields.io/github/repo-size/LMLK-seal/GitBit)
268+
![GitHub issues](https://img.shields.io/github/issues/LMLK-seal/GitBit)
269+
![GitHub pull requests](https://img.shields.io/github/issues-pr/LMLK-seal/GitBit)
270+
![GitHub contributors](https://img.shields.io/github/contributors/LMLK-seal/GitBit)
271+
272+
</div>
273+
274+
## 📜 License
275+
276+
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
277+
278+
## 🙏 Acknowledgments
279+
280+
- Built with ❤️ by the open-source community
281+
- Powered by GitHub Actions
282+
- NLP capabilities thanks to modern machine learning libraries
283+
- Special thanks to all contributors and users
284+
285+
## 📞 Support
286+
287+
Need help? Here are your options:
288+
289+
- 📖 **Documentation**: Check this README and configuration examples
290+
- 🐛 **Bug Reports**: [Open an issue](https://github.com/LMLK-seal/GitBit/issues/new)
291+
- 💬 **Discussions**: [GitHub Discussions](https://github.com/LMLK-seal/GitBit/discussions)
292+
- ⭐ **Feature Requests**: [Request a feature](https://github.com/LMLK-seal/GitBit/issues/new)
293+
294+
---
295+
296+
<div align="center">
297+
298+
**If GitBit helped streamline your workflow, consider giving us a ⭐!**
299+
300+
*Made with 🤖 by developers, for developers*
301+
302+
</div>

0 commit comments

Comments
 (0)