quickcall-integrations 0.3.8__tar.gz → 0.4.0__tar.gz

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.
Files changed (52) hide show
  1. quickcall_integrations-0.4.0/.github/ISSUE_TEMPLATE/bug_report.yml +24 -0
  2. quickcall_integrations-0.4.0/.github/ISSUE_TEMPLATE/feature_request.yml +16 -0
  3. quickcall_integrations-0.4.0/.github/ISSUE_TEMPLATE/task.yml +19 -0
  4. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/.gitignore +2 -0
  5. quickcall_integrations-0.4.0/.quickcall-issue-template.yaml +23 -0
  6. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/PKG-INFO +105 -6
  7. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/README.md +104 -5
  8. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/api_clients/github_client.py +903 -0
  9. quickcall_integrations-0.4.0/mcp_server/resources/github_resources.py +240 -0
  10. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/auth_tools.py +30 -13
  11. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/github_tools.py +238 -2
  12. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/.claude-plugin/plugin.json +1 -1
  13. quickcall_integrations-0.4.0/plugins/quickcall/commands/connect-github-pat.md +37 -0
  14. quickcall_integrations-0.4.0/plugins/quickcall/commands/projects.md +90 -0
  15. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/pyproject.toml +1 -1
  16. quickcall_integrations-0.4.0/tests/test_project_integration.py +283 -0
  17. quickcall_integrations-0.4.0/tests/test_project_tools.py +767 -0
  18. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/uv.lock +1 -1
  19. quickcall_integrations-0.3.8/.quickcall-issue-template.yaml +0 -38
  20. quickcall_integrations-0.3.8/mcp_server/resources/github_resources.py +0 -116
  21. quickcall_integrations-0.3.8/plugins/quickcall/commands/connect-github-pat.md +0 -43
  22. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/.claude-plugin/marketplace.json +0 -0
  23. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/.github/workflows/publish-pypi.yml +0 -0
  24. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/.pre-commit-config.yaml +0 -0
  25. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/Dockerfile +0 -0
  26. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/assets/logo.png +0 -0
  27. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/__init__.py +0 -0
  28. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/api_clients/__init__.py +0 -0
  29. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/api_clients/slack_client.py +0 -0
  30. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/auth/__init__.py +0 -0
  31. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/auth/credentials.py +0 -0
  32. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/auth/device_flow.py +0 -0
  33. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/resources/__init__.py +0 -0
  34. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/resources/slack_resources.py +0 -0
  35. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/server.py +0 -0
  36. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/__init__.py +0 -0
  37. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/git_tools.py +0 -0
  38. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/slack_tools.py +0 -0
  39. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/mcp_server/tools/utility_tools.py +0 -0
  40. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/commands/appraisal.md +0 -0
  41. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/commands/connect.md +0 -0
  42. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/commands/slack-summary.md +0 -0
  43. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/commands/status.md +0 -0
  44. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/plugins/quickcall/commands/updates.md +0 -0
  45. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/requirements.txt +0 -0
  46. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/README.md +0 -0
  47. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/appraisal/__init__.py +0 -0
  48. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/appraisal/setup_test_data.py +0 -0
  49. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/test_appraisal_integration.py +0 -0
  50. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/test_appraisal_tools.py +0 -0
  51. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/test_integrations.py +0 -0
  52. {quickcall_integrations-0.3.8 → quickcall_integrations-0.4.0}/tests/test_tools.py +0 -0
@@ -0,0 +1,24 @@
1
+ name: Bug Report
2
+ description: Report a bug
3
+ labels: [bug]
4
+ body:
5
+ - type: textarea
6
+ id: description
7
+ attributes:
8
+ label: Description
9
+ description: What happened?
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: steps
14
+ attributes:
15
+ label: Steps to Reproduce
16
+ description: How can we reproduce this?
17
+ placeholder: |
18
+ 1. Run '...'
19
+ 2. See error
20
+ - type: textarea
21
+ id: expected
22
+ attributes:
23
+ label: Expected Behavior
24
+ description: What should have happened?
@@ -0,0 +1,16 @@
1
+ name: Feature Request
2
+ description: Suggest a new feature
3
+ labels: [enhancement]
4
+ body:
5
+ - type: textarea
6
+ id: problem
7
+ attributes:
8
+ label: Problem
9
+ description: What problem does this solve?
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: solution
14
+ attributes:
15
+ label: Proposed Solution
16
+ description: How should it work?
@@ -0,0 +1,19 @@
1
+ name: Task
2
+ description: A general task or todo item
3
+ labels: [task]
4
+ body:
5
+ - type: textarea
6
+ id: description
7
+ attributes:
8
+ label: Description
9
+ description: What needs to be done?
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: acceptance
14
+ attributes:
15
+ label: Acceptance Criteria
16
+ description: How do we know it's done?
17
+ placeholder: |
18
+ - [ ] Criteria 1
19
+ - [ ] Criteria 2
@@ -108,3 +108,5 @@ dmypy.json
108
108
  .DS_Store
109
109
  Thumbs.db
110
110
  .githooks/
111
+ .specstory/.gitignore
112
+ .cursorindexingignore
@@ -0,0 +1,23 @@
1
+ defaults:
2
+ labels: ["triage"]
3
+ body: |
4
+ ## Description
5
+
6
+ ## Details
7
+
8
+ templates:
9
+ docs:
10
+ labels: ["documentation"]
11
+ title_prefix: "[Docs QC] "
12
+ body: |
13
+ ## Documentation Update
14
+
15
+ ## What needs to be documented?
16
+
17
+ chore:
18
+ labels: ["chore"]
19
+ title_prefix: "[Chore QC] "
20
+ body: |
21
+ ## Task
22
+
23
+ ## Why is this needed?
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: quickcall-integrations
3
- Version: 0.3.8
3
+ Version: 0.4.0
4
4
  Summary: MCP server with developer integrations for Claude Code and Cursor
5
5
  Requires-Python: >=3.10
6
6
  Requires-Dist: fastmcp>=2.13.0
@@ -90,7 +90,7 @@ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
90
90
  | **Slack** | Read/send messages, threads, channels | Yes |
91
91
 
92
92
  <details>
93
- <summary><strong>Available Tools (23)</strong></summary>
93
+ <summary><strong>Available Tools (24)</strong></summary>
94
94
 
95
95
  ### Git
96
96
  | Tool | Description |
@@ -102,10 +102,11 @@ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
102
102
  |------|-------------|
103
103
  | `list_repos` | List accessible repositories |
104
104
  | `list_prs` | List pull requests (open/closed/all) |
105
- | `get_pr` | Get PR details (title, description, files changed) |
105
+ | `get_prs` | Get PR details (title, description, files changed) |
106
106
  | `list_commits` | List commits with optional filters |
107
107
  | `get_commit` | Get commit details (message, stats, files) |
108
108
  | `list_branches` | List repository branches |
109
+ | `manage_issues` | List, view, create, update, close, reopen, comment on issues + sub-issues |
109
110
  | `check_github_connection` | Verify GitHub connection |
110
111
 
111
112
  ### Slack
@@ -172,9 +173,13 @@ GITHUB_USERNAME=your-username # Optional: for better UX
172
173
 
173
174
  **Create a PAT at:** https://github.com/settings/tokens
174
175
 
175
- **Required scopes:**
176
- - `repo` - Full access to private repositories
177
- - `public_repo` - Access to public repositories only (if you don't need private repos)
176
+ **Required scopes (classic PAT):**
177
+
178
+ | Scope | Used For |
179
+ |-------|----------|
180
+ | `project` | GitHub Projects access |
181
+ | `read:user` | Read user profile data |
182
+ | `repo` | PRs, commits, branches, issues |
178
183
 
179
184
  **Note:** PAT mode provides access to GitHub tools only. For Slack integration, use QuickCall authentication.
180
185
 
@@ -228,6 +233,100 @@ List open PRs on [repo] and send titles to #updates channel
228
233
  What did I work on this week? Send summary to #standup
229
234
  ```
230
235
 
236
+ ## Issue Management
237
+
238
+ The `manage_issues` tool provides full issue lifecycle management:
239
+
240
+ ### Actions
241
+
242
+ | Action | Description |
243
+ |--------|-------------|
244
+ | `list` | List issues with filters |
245
+ | `view` | View issue details |
246
+ | `create` | Create new issue (with optional template) |
247
+ | `update` | Update issue title/body/labels |
248
+ | `close` | Close issue(s) |
249
+ | `reopen` | Reopen issue(s) |
250
+ | `comment` | Add comment to issue(s) |
251
+ | `add_sub_issue` | Add child issue to parent |
252
+ | `remove_sub_issue` | Remove child from parent |
253
+ | `list_sub_issues` | List sub-issues of a parent |
254
+
255
+ ### List Filters
256
+
257
+ | Filter | Description |
258
+ |--------|-------------|
259
+ | `state` | `'open'`, `'closed'`, or `'all'` (default: `'open'`) |
260
+ | `labels` | Filter by one or more labels |
261
+ | `assignees` | Filter by assignee |
262
+ | `creator` | Filter by issue creator username |
263
+ | `milestone` | Filter by milestone: number, title, `'*'` (any), or `'none'` |
264
+ | `sort` | Sort by: `'created'`, `'updated'`, or `'comments'` (default: `'updated'`) |
265
+ | `limit` | Max issues to return (default: 30) |
266
+
267
+ **Examples:**
268
+ ```
269
+ List open issues in milestone v1.0
270
+ List issues created by sagar
271
+ Show closed bugs sorted by comments
272
+ List issues without a milestone
273
+ ```
274
+
275
+ ### Issue Templates
276
+
277
+ QuickCall supports issue templates from two sources:
278
+
279
+ **1. GitHub Native Templates** (`.github/ISSUE_TEMPLATE/*.yml`)
280
+
281
+ Standard GitHub issue templates are automatically detected:
282
+ ```yaml
283
+ # .github/ISSUE_TEMPLATE/bug_report.yml
284
+ name: Bug Report
285
+ description: Report a bug
286
+ labels: [bug]
287
+ body:
288
+ - type: textarea
289
+ attributes:
290
+ label: Description
291
+ ```
292
+
293
+ **2. Custom Templates** (`.quickcall.env`)
294
+
295
+ Define custom templates in your project config:
296
+ ```bash
297
+ # .quickcall.env
298
+ ISSUE_TEMPLATE_PATH=/path/to/templates.yml
299
+ ```
300
+
301
+ ```yaml
302
+ # templates.yml
303
+ bug_report:
304
+ name: Bug Report
305
+ description: Report a bug
306
+ labels: [bug]
307
+ title_prefix: "[BUG] "
308
+ body: |
309
+ ## Description
310
+
311
+ ## Steps to Reproduce
312
+
313
+ ## Expected Behavior
314
+
315
+ feature_request:
316
+ name: Feature Request
317
+ labels: [enhancement]
318
+ body: |
319
+ ## Problem
320
+
321
+ ## Proposed Solution
322
+ ```
323
+
324
+ **Usage:**
325
+ ```
326
+ Create a bug report issue titled "Login fails on Safari"
327
+ Create issue with feature_request template
328
+ ```
329
+
231
330
  ## Troubleshooting
232
331
 
233
332
  ### Clean Reinstall
@@ -77,7 +77,7 @@ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
77
77
  | **Slack** | Read/send messages, threads, channels | Yes |
78
78
 
79
79
  <details>
80
- <summary><strong>Available Tools (23)</strong></summary>
80
+ <summary><strong>Available Tools (24)</strong></summary>
81
81
 
82
82
  ### Git
83
83
  | Tool | Description |
@@ -89,10 +89,11 @@ Add to MCP config (`~/.cursor/mcp.json` or `.cursor/mcp.json`):
89
89
  |------|-------------|
90
90
  | `list_repos` | List accessible repositories |
91
91
  | `list_prs` | List pull requests (open/closed/all) |
92
- | `get_pr` | Get PR details (title, description, files changed) |
92
+ | `get_prs` | Get PR details (title, description, files changed) |
93
93
  | `list_commits` | List commits with optional filters |
94
94
  | `get_commit` | Get commit details (message, stats, files) |
95
95
  | `list_branches` | List repository branches |
96
+ | `manage_issues` | List, view, create, update, close, reopen, comment on issues + sub-issues |
96
97
  | `check_github_connection` | Verify GitHub connection |
97
98
 
98
99
  ### Slack
@@ -159,9 +160,13 @@ GITHUB_USERNAME=your-username # Optional: for better UX
159
160
 
160
161
  **Create a PAT at:** https://github.com/settings/tokens
161
162
 
162
- **Required scopes:**
163
- - `repo` - Full access to private repositories
164
- - `public_repo` - Access to public repositories only (if you don't need private repos)
163
+ **Required scopes (classic PAT):**
164
+
165
+ | Scope | Used For |
166
+ |-------|----------|
167
+ | `project` | GitHub Projects access |
168
+ | `read:user` | Read user profile data |
169
+ | `repo` | PRs, commits, branches, issues |
165
170
 
166
171
  **Note:** PAT mode provides access to GitHub tools only. For Slack integration, use QuickCall authentication.
167
172
 
@@ -215,6 +220,100 @@ List open PRs on [repo] and send titles to #updates channel
215
220
  What did I work on this week? Send summary to #standup
216
221
  ```
217
222
 
223
+ ## Issue Management
224
+
225
+ The `manage_issues` tool provides full issue lifecycle management:
226
+
227
+ ### Actions
228
+
229
+ | Action | Description |
230
+ |--------|-------------|
231
+ | `list` | List issues with filters |
232
+ | `view` | View issue details |
233
+ | `create` | Create new issue (with optional template) |
234
+ | `update` | Update issue title/body/labels |
235
+ | `close` | Close issue(s) |
236
+ | `reopen` | Reopen issue(s) |
237
+ | `comment` | Add comment to issue(s) |
238
+ | `add_sub_issue` | Add child issue to parent |
239
+ | `remove_sub_issue` | Remove child from parent |
240
+ | `list_sub_issues` | List sub-issues of a parent |
241
+
242
+ ### List Filters
243
+
244
+ | Filter | Description |
245
+ |--------|-------------|
246
+ | `state` | `'open'`, `'closed'`, or `'all'` (default: `'open'`) |
247
+ | `labels` | Filter by one or more labels |
248
+ | `assignees` | Filter by assignee |
249
+ | `creator` | Filter by issue creator username |
250
+ | `milestone` | Filter by milestone: number, title, `'*'` (any), or `'none'` |
251
+ | `sort` | Sort by: `'created'`, `'updated'`, or `'comments'` (default: `'updated'`) |
252
+ | `limit` | Max issues to return (default: 30) |
253
+
254
+ **Examples:**
255
+ ```
256
+ List open issues in milestone v1.0
257
+ List issues created by sagar
258
+ Show closed bugs sorted by comments
259
+ List issues without a milestone
260
+ ```
261
+
262
+ ### Issue Templates
263
+
264
+ QuickCall supports issue templates from two sources:
265
+
266
+ **1. GitHub Native Templates** (`.github/ISSUE_TEMPLATE/*.yml`)
267
+
268
+ Standard GitHub issue templates are automatically detected:
269
+ ```yaml
270
+ # .github/ISSUE_TEMPLATE/bug_report.yml
271
+ name: Bug Report
272
+ description: Report a bug
273
+ labels: [bug]
274
+ body:
275
+ - type: textarea
276
+ attributes:
277
+ label: Description
278
+ ```
279
+
280
+ **2. Custom Templates** (`.quickcall.env`)
281
+
282
+ Define custom templates in your project config:
283
+ ```bash
284
+ # .quickcall.env
285
+ ISSUE_TEMPLATE_PATH=/path/to/templates.yml
286
+ ```
287
+
288
+ ```yaml
289
+ # templates.yml
290
+ bug_report:
291
+ name: Bug Report
292
+ description: Report a bug
293
+ labels: [bug]
294
+ title_prefix: "[BUG] "
295
+ body: |
296
+ ## Description
297
+
298
+ ## Steps to Reproduce
299
+
300
+ ## Expected Behavior
301
+
302
+ feature_request:
303
+ name: Feature Request
304
+ labels: [enhancement]
305
+ body: |
306
+ ## Problem
307
+
308
+ ## Proposed Solution
309
+ ```
310
+
311
+ **Usage:**
312
+ ```
313
+ Create a bug report issue titled "Login fails on Safari"
314
+ Create issue with feature_request template
315
+ ```
316
+
218
317
  ## Troubleshooting
219
318
 
220
319
  ### Clean Reinstall