gitpadi 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +266 -0
- package/action.yml +92 -0
- package/examples/applicant-scorer.yml +30 -0
- package/examples/create-issues.yml +42 -0
- package/examples/issues.json +48 -0
- package/examples/pr-review.yml +23 -0
- package/package.json +52 -0
- package/src/applicant-scorer.ts +285 -0
- package/src/cli.ts +648 -0
- package/src/commands/contributors.ts +114 -0
- package/src/commands/issues.ts +267 -0
- package/src/commands/prs.ts +243 -0
- package/src/commands/releases.ts +54 -0
- package/src/commands/repos.ts +129 -0
- package/src/core/github.ts +43 -0
- package/src/core/scorer.ts +127 -0
- package/src/create-issues.ts +203 -0
- package/src/pr-review.ts +132 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Netwalls
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">🤖 GitPadi</h1>
|
|
3
|
+
<p align="center"><strong>Your AI-powered GitHub management agent.</strong></p>
|
|
4
|
+
<p align="center">
|
|
5
|
+
Auto-score contributors, review PRs, manage issues & repos — from your terminal or as a GitHub Action.
|
|
6
|
+
</p>
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="#-use-the-cli">CLI</a> •
|
|
9
|
+
<a href="#-use-as-github-action">GitHub Action</a> •
|
|
10
|
+
<a href="#-scoring-algorithm">Scoring Algorithm</a>
|
|
11
|
+
</p>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## ⚡ Two Ways to Use GitPadi
|
|
17
|
+
|
|
18
|
+
| Method | Best For | Setup |
|
|
19
|
+
|--------|----------|-------|
|
|
20
|
+
| **CLI** (`npx gitpadi`) | Hands-on management from your terminal | One command |
|
|
21
|
+
| **GitHub Action** | Automated scoring & reviews on every event | Copy one workflow file |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 🖥️ Use the CLI
|
|
26
|
+
|
|
27
|
+
**No installation needed.** Run directly with `npx`:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
export GITHUB_TOKEN=ghp_your_token
|
|
31
|
+
export GITHUB_OWNER=your-org
|
|
32
|
+
export GITHUB_REPO=your-repo
|
|
33
|
+
|
|
34
|
+
npx gitpadi
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
That launches the **interactive terminal**:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
┌─────────────────────────────────────┐
|
|
41
|
+
│ 🤖 GitPadi v2.0 │
|
|
42
|
+
│ Your GitHub Management Companion │
|
|
43
|
+
└─────────────────────────────────────┘
|
|
44
|
+
|
|
45
|
+
? What would you like to do?
|
|
46
|
+
📋 Manage Issues
|
|
47
|
+
🔀 Manage Pull Requests
|
|
48
|
+
📦 Manage Repositories
|
|
49
|
+
🏆 Score Contributors
|
|
50
|
+
🚀 Create Release
|
|
51
|
+
⚙️ Switch Repo
|
|
52
|
+
👋 Exit
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or use **direct commands**:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx gitpadi issues list
|
|
59
|
+
npx gitpadi prs merge 5 --method squash
|
|
60
|
+
npx gitpadi contributors score octocat
|
|
61
|
+
npx gitpadi repo create my-app --org MyOrg
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### All CLI Commands
|
|
65
|
+
|
|
66
|
+
<details>
|
|
67
|
+
<summary><b>📋 Issues</b></summary>
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx gitpadi issues list # List open issues
|
|
71
|
+
npx gitpadi issues create -t "Bug fix" -l bug # Create issue
|
|
72
|
+
npx gitpadi issues bulk -f issues.json # Bulk create from JSON
|
|
73
|
+
npx gitpadi issues close 42 # Close issue
|
|
74
|
+
npx gitpadi issues reopen 42 # Reopen issue
|
|
75
|
+
npx gitpadi issues delete 42 # Close & lock
|
|
76
|
+
npx gitpadi issues assign 42 alice bob # Assign users
|
|
77
|
+
npx gitpadi issues assign-best 42 # 🏆 Auto-assign top scorer
|
|
78
|
+
npx gitpadi issues search "login bug" # Search issues
|
|
79
|
+
npx gitpadi issues label 42 bug priority-high # Add labels
|
|
80
|
+
```
|
|
81
|
+
</details>
|
|
82
|
+
|
|
83
|
+
<details>
|
|
84
|
+
<summary><b>🔀 Pull Requests</b></summary>
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npx gitpadi prs list # List open PRs
|
|
88
|
+
npx gitpadi prs merge 5 --method squash # Merge PR (squash/merge/rebase)
|
|
89
|
+
npx gitpadi prs close 5 # Close PR
|
|
90
|
+
npx gitpadi prs review 5 # Auto-review (size, tests, security)
|
|
91
|
+
npx gitpadi prs approve 5 # Approve PR
|
|
92
|
+
npx gitpadi prs diff 5 # Show changed files
|
|
93
|
+
```
|
|
94
|
+
</details>
|
|
95
|
+
|
|
96
|
+
<details>
|
|
97
|
+
<summary><b>📦 Repositories</b></summary>
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx gitpadi repo list --org MyOrg # List repos
|
|
101
|
+
npx gitpadi repo create my-app --org MyOrg # Create repo
|
|
102
|
+
npx gitpadi repo delete my-app --org MyOrg # Delete repo
|
|
103
|
+
npx gitpadi repo clone my-app # Clone repo
|
|
104
|
+
npx gitpadi repo info my-app # Show repo details
|
|
105
|
+
npx gitpadi repo topics my-app rust blockchain # Set topics
|
|
106
|
+
```
|
|
107
|
+
</details>
|
|
108
|
+
|
|
109
|
+
<details>
|
|
110
|
+
<summary><b>🏆 Contributors</b></summary>
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx gitpadi contributors score octocat # Score a user (0-100)
|
|
114
|
+
npx gitpadi contributors rank 42 # Rank all applicants for issue #42
|
|
115
|
+
npx gitpadi contributors list # List repo contributors
|
|
116
|
+
```
|
|
117
|
+
</details>
|
|
118
|
+
|
|
119
|
+
<details>
|
|
120
|
+
<summary><b>🚀 Releases</b></summary>
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npx gitpadi release create v1.0.0 # Create release (auto-notes)
|
|
124
|
+
npx gitpadi release create v1.0.0 --draft # Create as draft
|
|
125
|
+
npx gitpadi release list # List releases
|
|
126
|
+
```
|
|
127
|
+
</details>
|
|
128
|
+
|
|
129
|
+
### Or install globally:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
npm install -g gitpadi
|
|
133
|
+
gitpadi issues list
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 🔧 Use as GitHub Action
|
|
139
|
+
|
|
140
|
+
Just add a workflow file — no setup, no tokens to manage.
|
|
141
|
+
|
|
142
|
+
### 🏆 Auto-Score Contributors
|
|
143
|
+
|
|
144
|
+
```yaml
|
|
145
|
+
# .github/workflows/applicant-scorer.yml
|
|
146
|
+
name: Score Applicants
|
|
147
|
+
on:
|
|
148
|
+
issue_comment:
|
|
149
|
+
types: [created]
|
|
150
|
+
permissions:
|
|
151
|
+
contents: read
|
|
152
|
+
issues: write
|
|
153
|
+
pull-requests: read
|
|
154
|
+
jobs:
|
|
155
|
+
score:
|
|
156
|
+
if: "!github.event.issue.pull_request"
|
|
157
|
+
runs-on: ubuntu-latest
|
|
158
|
+
steps:
|
|
159
|
+
- uses: actions/checkout@v4
|
|
160
|
+
- uses: Netwalls/contributor-agent@v2
|
|
161
|
+
with:
|
|
162
|
+
action: score-applicant
|
|
163
|
+
notify-user: 'your-username' # ← you get @mentioned
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 🔍 Auto-Review PRs
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
# .github/workflows/pr-review.yml
|
|
170
|
+
name: PR Review
|
|
171
|
+
on:
|
|
172
|
+
pull_request:
|
|
173
|
+
types: [opened, synchronize, reopened]
|
|
174
|
+
permissions:
|
|
175
|
+
contents: read
|
|
176
|
+
pull-requests: write
|
|
177
|
+
jobs:
|
|
178
|
+
review:
|
|
179
|
+
runs-on: ubuntu-latest
|
|
180
|
+
steps:
|
|
181
|
+
- uses: actions/checkout@v4
|
|
182
|
+
- uses: Netwalls/contributor-agent@v2
|
|
183
|
+
with:
|
|
184
|
+
action: review-pr
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 📋 Bulk Create Issues
|
|
188
|
+
|
|
189
|
+
```yaml
|
|
190
|
+
# .github/workflows/create-issues.yml
|
|
191
|
+
name: Create Issues
|
|
192
|
+
on:
|
|
193
|
+
workflow_dispatch:
|
|
194
|
+
inputs:
|
|
195
|
+
issues-file:
|
|
196
|
+
description: 'Path to issues JSON'
|
|
197
|
+
default: 'issues.json'
|
|
198
|
+
dry-run:
|
|
199
|
+
description: 'Preview only'
|
|
200
|
+
default: 'true'
|
|
201
|
+
permissions:
|
|
202
|
+
issues: write
|
|
203
|
+
jobs:
|
|
204
|
+
create:
|
|
205
|
+
runs-on: ubuntu-latest
|
|
206
|
+
steps:
|
|
207
|
+
- uses: actions/checkout@v4
|
|
208
|
+
- uses: Netwalls/contributor-agent@v2
|
|
209
|
+
with:
|
|
210
|
+
action: create-issues
|
|
211
|
+
issues-file: ${{ github.event.inputs.issues-file }}
|
|
212
|
+
dry-run: ${{ github.event.inputs.dry-run }}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 🏆 Scoring Algorithm
|
|
218
|
+
|
|
219
|
+
GitPadi scores contributors on **6 dimensions** (100 points total):
|
|
220
|
+
|
|
221
|
+
| Category | Max | What It Measures |
|
|
222
|
+
|----------|-----|-----------------|
|
|
223
|
+
| 🔧 **Repo Experience** | **30** | Merged PRs, open PRs, issues in YOUR specific repo |
|
|
224
|
+
| 🏛️ Account Maturity | 15 | Account age |
|
|
225
|
+
| 🌐 GitHub Presence | 15 | Public repos, followers, profile README |
|
|
226
|
+
| ⚡ Activity Level | 15 | Recent public GitHub activity |
|
|
227
|
+
| 📝 Application Quality | 15 | Comment depth — mentions approach, experience, timeline |
|
|
228
|
+
| 💻 Language Relevance | 10 | User's languages match issue label languages |
|
|
229
|
+
|
|
230
|
+
### Tiers
|
|
231
|
+
|
|
232
|
+
| Tier | Score | Recommendation |
|
|
233
|
+
|------|-------|---------------|
|
|
234
|
+
| 🏆 **S** | 75+ | Strong — assign immediately |
|
|
235
|
+
| 🟢 **A** | 55-74 | Good — assign with confidence |
|
|
236
|
+
| 🟡 **B** | 40-54 | Decent — review profile first |
|
|
237
|
+
| 🟠 **C** | 25-39 | Below average — wait for better |
|
|
238
|
+
| 🔴 **D** | 0-24 | Low — manual review needed |
|
|
239
|
+
|
|
240
|
+
### Detected Application Phrases
|
|
241
|
+
|
|
242
|
+
> *"I'd like to work on this"* · *"Can I take this?"* · *"Assign me"* · *"I'm interested"* · *"I want to contribute"* · *"Let me handle this"* · *"Picking this up"* · *"Claiming this"*
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## ⚙️ Configuration
|
|
247
|
+
|
|
248
|
+
### Environment Variables
|
|
249
|
+
|
|
250
|
+
| Variable | Required | Description |
|
|
251
|
+
|----------|----------|-------------|
|
|
252
|
+
| `GITHUB_TOKEN` | ✅ | GitHub PAT with `repo` scope |
|
|
253
|
+
| `GITHUB_OWNER` | For CLI | Org or username |
|
|
254
|
+
| `GITHUB_REPO` | For CLI | Repository name |
|
|
255
|
+
|
|
256
|
+
### CLI Flags
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
npx gitpadi --owner MyOrg --repo my-project --token ghp_xxx issues list
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 📄 License
|
|
265
|
+
|
|
266
|
+
MIT — Built by [Netwalls](https://github.com/Netwalls)
|
package/action.yml
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: 'Contributor Agent'
|
|
2
|
+
description: 'GitHub Action that auto-creates issues from a data file, reviews PRs, and scores applicants with a ranking algorithm'
|
|
3
|
+
author: 'Netwalls'
|
|
4
|
+
branding:
|
|
5
|
+
icon: 'users'
|
|
6
|
+
color: 'purple'
|
|
7
|
+
|
|
8
|
+
inputs:
|
|
9
|
+
action:
|
|
10
|
+
description: 'Which action to run: create-issues, review-pr, or score-applicant'
|
|
11
|
+
required: true
|
|
12
|
+
github-token:
|
|
13
|
+
description: 'GitHub token with repo/issues permissions'
|
|
14
|
+
required: true
|
|
15
|
+
default: ${{ github.token }}
|
|
16
|
+
notify-user:
|
|
17
|
+
description: 'GitHub username to @mention on applicant reviews'
|
|
18
|
+
required: false
|
|
19
|
+
default: ''
|
|
20
|
+
issues-file:
|
|
21
|
+
description: 'Path to JSON file containing issues to create (for create-issues action)'
|
|
22
|
+
required: false
|
|
23
|
+
default: ''
|
|
24
|
+
dry-run:
|
|
25
|
+
description: 'Preview without creating (for create-issues action)'
|
|
26
|
+
required: false
|
|
27
|
+
default: 'false'
|
|
28
|
+
start:
|
|
29
|
+
description: 'Start index for issue creation range'
|
|
30
|
+
required: false
|
|
31
|
+
default: '1'
|
|
32
|
+
end:
|
|
33
|
+
description: 'End index for issue creation range'
|
|
34
|
+
required: false
|
|
35
|
+
default: '999'
|
|
36
|
+
|
|
37
|
+
runs:
|
|
38
|
+
using: 'composite'
|
|
39
|
+
steps:
|
|
40
|
+
- name: Setup Node.js
|
|
41
|
+
uses: actions/setup-node@v4
|
|
42
|
+
with:
|
|
43
|
+
node-version: '20'
|
|
44
|
+
|
|
45
|
+
- name: Install dependencies
|
|
46
|
+
shell: bash
|
|
47
|
+
run: |
|
|
48
|
+
cd ${{ github.action_path }}
|
|
49
|
+
npm ci --production 2>/dev/null || npm install --production
|
|
50
|
+
|
|
51
|
+
- name: Run agent
|
|
52
|
+
shell: bash
|
|
53
|
+
env:
|
|
54
|
+
GITHUB_TOKEN: ${{ inputs.github-token }}
|
|
55
|
+
GITHUB_OWNER: ${{ github.repository_owner }}
|
|
56
|
+
GITHUB_REPO: ${{ github.event.repository.name }}
|
|
57
|
+
INPUT_ACTION: ${{ inputs.action }}
|
|
58
|
+
NOTIFY_USER: ${{ inputs.notify-user }}
|
|
59
|
+
ISSUES_FILE: ${{ inputs.issues-file }}
|
|
60
|
+
DRY_RUN: ${{ inputs.dry-run }}
|
|
61
|
+
ISSUE_START: ${{ inputs.start }}
|
|
62
|
+
ISSUE_END: ${{ inputs.end }}
|
|
63
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
64
|
+
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
|
65
|
+
COMMENT_ID: ${{ github.event.comment.id }}
|
|
66
|
+
run: |
|
|
67
|
+
cd ${{ github.action_path }}
|
|
68
|
+
|
|
69
|
+
case "$INPUT_ACTION" in
|
|
70
|
+
create-issues)
|
|
71
|
+
ARGS=""
|
|
72
|
+
if [ "$DRY_RUN" = "true" ]; then ARGS="$ARGS --dry-run"; fi
|
|
73
|
+
if [ "$ISSUE_START" != "1" ] || [ "$ISSUE_END" != "999" ]; then
|
|
74
|
+
ARGS="$ARGS --start $ISSUE_START --end $ISSUE_END"
|
|
75
|
+
fi
|
|
76
|
+
if [ -n "$ISSUES_FILE" ]; then
|
|
77
|
+
ARGS="$ARGS --file $ISSUES_FILE"
|
|
78
|
+
fi
|
|
79
|
+
npx tsx src/create-issues.ts $ARGS
|
|
80
|
+
;;
|
|
81
|
+
review-pr)
|
|
82
|
+
npx tsx src/pr-review.ts
|
|
83
|
+
;;
|
|
84
|
+
score-applicant)
|
|
85
|
+
npx tsx src/applicant-scorer.ts
|
|
86
|
+
;;
|
|
87
|
+
*)
|
|
88
|
+
echo "❌ Unknown action: $INPUT_ACTION"
|
|
89
|
+
echo " Valid actions: create-issues, review-pr, score-applicant"
|
|
90
|
+
exit 1
|
|
91
|
+
;;
|
|
92
|
+
esac
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Auto-score contributors who apply for issues
|
|
2
|
+
name: Applicant Scorer
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
issue_comment:
|
|
6
|
+
types: [created]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
issues: write
|
|
11
|
+
pull-requests: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
score:
|
|
15
|
+
# Only run on issue comments (not PR), skip bot comments
|
|
16
|
+
if: >
|
|
17
|
+
!github.event.issue.pull_request &&
|
|
18
|
+
github.event.comment.user.login != 'github-actions[bot]'
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
name: 🤖 Score Applicant
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
- name: Score Applicant
|
|
26
|
+
uses: Netwalls/contributor-agent@v1
|
|
27
|
+
with:
|
|
28
|
+
action: score-applicant
|
|
29
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
notify-user: 'your-github-username' # change this!
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Batch create GitHub issues from a JSON file
|
|
2
|
+
name: Create Issues
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
inputs:
|
|
7
|
+
issues-file:
|
|
8
|
+
description: 'Path to your issues JSON file'
|
|
9
|
+
required: true
|
|
10
|
+
default: 'issues.json'
|
|
11
|
+
dry-run:
|
|
12
|
+
description: 'Preview without creating (true/false)'
|
|
13
|
+
required: false
|
|
14
|
+
default: 'true'
|
|
15
|
+
start:
|
|
16
|
+
description: 'Start issue number'
|
|
17
|
+
required: false
|
|
18
|
+
default: '1'
|
|
19
|
+
end:
|
|
20
|
+
description: 'End issue number'
|
|
21
|
+
required: false
|
|
22
|
+
default: '999'
|
|
23
|
+
|
|
24
|
+
permissions:
|
|
25
|
+
issues: write
|
|
26
|
+
|
|
27
|
+
jobs:
|
|
28
|
+
create-issues:
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
name: 📋 Create Issues
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Create Issues
|
|
35
|
+
uses: Netwalls/contributor-agent@v1
|
|
36
|
+
with:
|
|
37
|
+
action: create-issues
|
|
38
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
39
|
+
issues-file: ${{ github.event.inputs.issues-file }}
|
|
40
|
+
dry-run: ${{ github.event.inputs.dry-run }}
|
|
41
|
+
start: ${{ github.event.inputs.start }}
|
|
42
|
+
end: ${{ github.event.inputs.end }}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"labels": {
|
|
3
|
+
"bug": "d73a49",
|
|
4
|
+
"feature": "0e8a16",
|
|
5
|
+
"enhancement": "a2eeef",
|
|
6
|
+
"documentation": "0075ca",
|
|
7
|
+
"good first issue": "7057ff",
|
|
8
|
+
"help wanted": "008672",
|
|
9
|
+
"priority-high": "e36209",
|
|
10
|
+
"priority-medium": "fbca04"
|
|
11
|
+
},
|
|
12
|
+
"milestones": {
|
|
13
|
+
"v1.0 - MVP": "Minimum viable product release",
|
|
14
|
+
"v2.0 - Growth": "Feature expansion and scaling"
|
|
15
|
+
},
|
|
16
|
+
"issues": [
|
|
17
|
+
{
|
|
18
|
+
"number": 1,
|
|
19
|
+
"title": "[Feature] Add user authentication",
|
|
20
|
+
"body": "## Description\nImplement user authentication with OAuth2.\n\n## Acceptance Criteria\n- [ ] Users can sign in with GitHub\n- [ ] JWT tokens are issued on login\n- [ ] Protected routes require valid tokens",
|
|
21
|
+
"labels": [
|
|
22
|
+
"feature",
|
|
23
|
+
"priority-high"
|
|
24
|
+
],
|
|
25
|
+
"milestone": "v1.0 - MVP"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"number": 2,
|
|
29
|
+
"title": "[Bug] Fix login redirect loop",
|
|
30
|
+
"body": "## Description\nUsers are stuck in a redirect loop when attempting to log in.\n\n## Steps to Reproduce\n1. Go to /login\n2. Click 'Sign In'\n3. Page keeps refreshing\n\n## Expected Behavior\nUser should be redirected to dashboard after login.",
|
|
31
|
+
"labels": [
|
|
32
|
+
"bug",
|
|
33
|
+
"priority-high"
|
|
34
|
+
],
|
|
35
|
+
"milestone": "v1.0 - MVP"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"number": 3,
|
|
39
|
+
"title": "[Docs] Write API documentation",
|
|
40
|
+
"body": "## Description\nCreate comprehensive API docs using OpenAPI/Swagger.\n\n## Acceptance Criteria\n- [ ] All endpoints documented\n- [ ] Request/response examples included\n- [ ] Authentication requirements noted",
|
|
41
|
+
"labels": [
|
|
42
|
+
"documentation",
|
|
43
|
+
"good first issue"
|
|
44
|
+
],
|
|
45
|
+
"milestone": "v1.0 - MVP"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Auto-review every Pull Request
|
|
2
|
+
name: PR Review
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
pull_request:
|
|
6
|
+
types: [opened, synchronize, reopened, edited]
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pull-requests: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
review:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
name: 🤖 Review PR
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- name: Review PR
|
|
20
|
+
uses: Netwalls/contributor-agent@v1
|
|
21
|
+
with:
|
|
22
|
+
action: review-pr
|
|
23
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gitpadi",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "🤖 GitPadi — Your AI-powered GitHub management CLI. Create repos, manage issues & PRs, score contributors, and automate everything.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"gitpadi": "./src/cli.ts"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"src/",
|
|
11
|
+
"action.yml",
|
|
12
|
+
"examples/",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"start": "tsx src/cli.ts",
|
|
18
|
+
"dev": "tsx watch src/cli.ts",
|
|
19
|
+
"create-issues": "tsx src/create-issues.ts",
|
|
20
|
+
"review-pr": "tsx src/pr-review.ts",
|
|
21
|
+
"score-applicant": "tsx src/applicant-scorer.ts"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"github",
|
|
25
|
+
"cli",
|
|
26
|
+
"github-action",
|
|
27
|
+
"issue-management",
|
|
28
|
+
"pr-review",
|
|
29
|
+
"contributor-scoring",
|
|
30
|
+
"automation",
|
|
31
|
+
"gitpadi"
|
|
32
|
+
],
|
|
33
|
+
"author": "Netwalls",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@octokit/rest": "^21.1.1",
|
|
37
|
+
"boxen": "^8.0.1",
|
|
38
|
+
"chalk": "^5.4.1",
|
|
39
|
+
"cli-table3": "^0.6.5",
|
|
40
|
+
"commander": "^13.1.0",
|
|
41
|
+
"figlet": "^1.10.0",
|
|
42
|
+
"gradient-string": "^3.0.0",
|
|
43
|
+
"inquirer": "^12.4.2",
|
|
44
|
+
"nanospinner": "^1.2.2",
|
|
45
|
+
"ora": "^8.2.0",
|
|
46
|
+
"tsx": "^4.19.2"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "^22.10.5",
|
|
50
|
+
"typescript": "^5.9.3"
|
|
51
|
+
}
|
|
52
|
+
}
|