feat: bypass Cloudflare block & convert close/mark issue shell scripts to Python
This commit is contained in:
@@ -132,8 +132,8 @@ The MCP tools can also be used as standalone CLI scripts:
|
||||
|---------------------|--------------------------------------------------------------------|
|
||||
| `create_issue.py` | Create an issue (`--remote`, `--title`, `--body`, `--body-file`) |
|
||||
| `create_pr.py` | Open a Pull Request (`--remote`, `--title`, `--head`, `--base`) |
|
||||
| `close_issue.sh` | Close a specific issue (dadeschools only) |
|
||||
| `mark_issue.sh` | Claim/release an issue via `status:in-progress` label |
|
||||
| `close_issue.py` | Close a specific issue |
|
||||
| `mark_issue.py` | Claim/release an issue via `status:in-progress` label |
|
||||
| `manage_labels.py` | Create label set and apply label mappings (`--dry` to preview) |
|
||||
| `mirror_refs.sh` | Mirror branches + tags between dadeschools ⇄ prgs |
|
||||
|
||||
@@ -150,13 +150,13 @@ The MCP tools can also be used as standalone CLI scripts:
|
||||
./create_pr.py --title "feat: add validation" --head feat/validation --body "Closes #12"
|
||||
|
||||
# Close issue #5
|
||||
./close_issue.sh 5
|
||||
./close_issue.py 5
|
||||
|
||||
# Claim an issue before working on it
|
||||
./mark_issue.sh 10 start
|
||||
./mark_issue.py 10 start
|
||||
|
||||
# Release when done
|
||||
./mark_issue.sh 10 done
|
||||
./mark_issue.py 10 done
|
||||
|
||||
# Mirror refs (dry-run by default)
|
||||
./mirror_refs.sh
|
||||
@@ -175,8 +175,8 @@ mcp_server.py ← MCP server (FastMCP, stdio transport)
|
||||
create_issue.py ← CLI: create issues
|
||||
create_pr.py ← CLI: create PRs
|
||||
manage_labels.py ← CLI: label management
|
||||
close_issue.sh ← CLI: close issues
|
||||
mark_issue.sh ← CLI: claim/release issues
|
||||
close_issue.py ← CLI: close issues
|
||||
mark_issue.py ← CLI: claim/release issues
|
||||
mirror_refs.sh ← CLI: ref mirroring
|
||||
```
|
||||
|
||||
@@ -195,7 +195,7 @@ python3 -m pytest tests/ -v
|
||||
| `test_create_pr.py` | CLI arg parsing, remote resolution, payload, auth, errors |
|
||||
| `test_credentials.py` | `get_credentials()`, `get_auth_header()`, `repo_api_url()` |
|
||||
| `test_manage_labels.py` | Label create/skip, dry run, mapping, constant validation |
|
||||
| `test_shell_scripts.py` | `close_issue.sh` + `mark_issue.sh` arg validation |
|
||||
| `test_python_cli.py` | `close_issue.py` + `mark_issue.py` CLI validation |
|
||||
| `test_mirror_refs.py` | Flags, safety defaults, local integration tests |
|
||||
|
||||
All tests mock network and keychain access — no real API calls are made.
|
||||
|
||||
Reference in New Issue
Block a user