Skip to content

Commit 1f2778d

Browse files
feat: add automated PR creation script
- Script checks for GITHUB_ACCESS_TOKEN_MIGUEL or GITHUB_TOKEN - Provides clear error messages and configuration instructions - Ready to create PR once token is configured Co-authored-by: miguelangaranocurrents <miguelangaranocurrents@users.noreply.github.com>
1 parent e462bae commit 1f2778d

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

create-pr.sh

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#!/bin/bash
2+
set -e
3+
4+
echo "=================================================="
5+
echo "Creating Pull Request for Parity Analysis"
6+
echo "=================================================="
7+
8+
# Check for GitHub token
9+
if [ -n "$GITHUB_ACCESS_TOKEN_MIGUEL" ]; then
10+
echo "✓ Using GITHUB_ACCESS_TOKEN_MIGUEL"
11+
TOKEN="$GITHUB_ACCESS_TOKEN_MIGUEL"
12+
elif [ -n "$GITHUB_TOKEN" ]; then
13+
echo "✓ Using GITHUB_TOKEN"
14+
TOKEN="$GITHUB_TOKEN"
15+
else
16+
echo "✗ No GitHub token found"
17+
echo ""
18+
echo "Please configure GITHUB_ACCESS_TOKEN_MIGUEL in:"
19+
echo "Cursor Dashboard > Cloud Agents > Secrets"
20+
echo ""
21+
echo "Or set GITHUB_TOKEN environment variable with 'repo' scope"
22+
echo ""
23+
echo "Then run: ./create-pr.sh"
24+
exit 1
25+
fi
26+
27+
echo ""
28+
echo "Creating PR..."
29+
echo ""
30+
31+
# Create PR using GitHub API
32+
RESPONSE=$(curl -s -w "\n%{http_code}" -X POST \
33+
-H "Authorization: Bearer $TOKEN" \
34+
-H "Accept: application/vnd.github.v3+json" \
35+
-H "Content-Type: application/json" \
36+
https://api.github.com/repos/currents-dev/currents-mcp/pulls \
37+
-d @- << 'EOF'
38+
{
39+
"title": "docs: Comprehensive OpenAPI parity analysis",
40+
"head": "ai/feat/openapi-parity-analysis",
41+
"base": "main",
42+
"body": "## Summary\n\nThis PR documents a comprehensive parity analysis between the Currents MCP Server implementation and the official OpenAPI specification.\n\n## Analysis Results\n\n✅ **FULL PARITY ACHIEVED**\n\nAll 30 REST API endpoints are fully implemented with correct parameters, request bodies, and response handling.\n\n## Key Findings\n\n### Endpoint Coverage: 30/30 ✅\n- **Actions API**: 7/7 endpoints\n- **Projects API**: 4/4 endpoints\n- **Runs API**: 6/6 endpoints\n- **Instances API**: 1/1 endpoint\n- **Spec Files API**: 1/1 endpoint\n- **Test Results API**: 1/1 endpoint\n- **Tests Explorer API**: 1/1 endpoint\n- **Signature API**: 1/1 endpoint\n- **Webhooks API**: 5/5 endpoints\n\n### Implementation Quality\n- ✅ All query parameters correctly use bracket notation for arrays\n- ✅ Request bodies match OpenAPI schemas\n- ✅ Zod schemas provide runtime type validation\n- ✅ Proper handling of optional vs required parameters\n- ✅ Cursor-based and page-based pagination correctly implemented\n- ✅ Enhanced fetchAll option for projects (useful addition)\n\n## Changes\n\n- Added comprehensive PARITY_ANALYSIS.md document\n- Documented all 30 endpoints with parameter validation\n- No code changes required - implementation is already correct\n\n## References\n\n- OpenAPI Spec: https://api.currents.dev/v1/docs/openapi.json\n- Analysis Date: February 4, 2026\n\n## Conclusion\n\nThe MCP server implementation demonstrates complete and accurate parity with the Currents REST API. No implementation changes are required.",
43+
"maintainer_can_modify": true,
44+
"draft": false
45+
}
46+
EOF
47+
)
48+
49+
# Extract HTTP status code (last line)
50+
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
51+
52+
# Extract response body (all but last line)
53+
BODY=$(echo "$RESPONSE" | sed '$d')
54+
55+
echo "HTTP Status: $HTTP_CODE"
56+
echo ""
57+
58+
if [ "$HTTP_CODE" = "201" ]; then
59+
echo "✓ Pull Request created successfully!"
60+
echo ""
61+
PR_URL=$(echo "$BODY" | grep -o '"html_url": *"[^"]*"' | head -1 | sed 's/"html_url": *"\(.*\)"/\1/')
62+
echo "PR URL: $PR_URL"
63+
echo ""
64+
echo "=================================================="
65+
elif [ "$HTTP_CODE" = "422" ]; then
66+
echo "✓ Pull Request already exists!"
67+
echo ""
68+
echo "View at: https://github.com/currents-dev/currents-mcp/pulls"
69+
echo ""
70+
echo "=================================================="
71+
elif [ "$HTTP_CODE" = "403" ]; then
72+
echo "✗ Authorization failed"
73+
echo ""
74+
echo "The token doesn't have permission to create PRs."
75+
echo "Please ensure the token has 'repo' scope."
76+
echo ""
77+
echo "Response: $BODY"
78+
echo ""
79+
echo "=================================================="
80+
exit 1
81+
else
82+
echo "✗ Failed to create PR"
83+
echo ""
84+
echo "Response: $BODY"
85+
echo ""
86+
echo "=================================================="
87+
exit 1
88+
fi

0 commit comments

Comments
 (0)