Messaging
GitHub
target_app: "github" · endpoint /v1/messaging/execute · Bring your own credentials
Setup
Generate a Personal Access Token at github.com/settings/tokens with "repo" scope (for private repos) or "public_repo" (public only).
Credentials needed on your Connections page
Actions
create_issue
Open a new issue.
Request body:
{
"user_id": "...",
"action": "create_issue",
"payload": { "repo": "owner/repo", "title": "Bug: X is broken", "body": "Details here" },
"target_app": "github"
}provider_response.result shape:
{ "number": 42, "html_url": "https://github.com/owner/repo/issues/42" }list_issues
List open issues in a repo.
Request body:
{
"user_id": "...",
"action": "list_issues",
"payload": { "repo": "owner/repo" },
"target_app": "github"
}provider_response.result shape:
[ {"number":42,"title":"..."} ]close_issue
Close an issue.
Request body:
{
"user_id": "...",
"action": "close_issue",
"payload": { "repo": "owner/repo", "issueNumber": 42 },
"target_app": "github"
}provider_response.result shape:
{ "number": 42, "state": "closed" }add_comment
Comment on an issue or PR.
Request body:
{
"user_id": "...",
"action": "add_comment",
"payload": { "repo": "owner/repo", "issueNumber": 42, "body": "Looking into this" },
"target_app": "github"
}provider_response.result shape:
{ "id": 123, "body": "Looking into this" }star_repo
Star a repository.
Request body:
{
"user_id": "...",
"action": "star_repo",
"payload": { "owner": "octocat", "repo": "Hello-World" },
"target_app": "github"
}provider_response.result shape:
{} (204 No Content on success)custom
Escape hatch — call any GitHub REST endpoint directly with your own path/method/body.
Request body:
{
"user_id": "...",
"action": "custom",
"payload": { "path": "repos/owner/repo/pulls", "method": "GET" },
"target_app": "github"
}provider_response.result shape:
[ {...pull requests...} ]Anticipated errors & fixes
404 "Not Found" on a repo you know exists
Cause: Your token lacks access — usually a private repo with only "public_repo" scope.
Fix: Regenerate the token with full "repo" scope.
401 Bad credentials (inside provider_response)
Cause: Token is wrong, expired, or was revoked.
Fix: Generate a fresh token and update your Connections page.
401 "Unauthorized: Invalid API key."
Cause: Your eConnect Authorization header is missing, malformed, or the key was regenerated/revoked.
Fix: Copy your api_key fresh from the eConnect dashboard and confirm the header reads exactly "Authorization: Bearer <key>".
429 "Too many requests"
Cause: You've exceeded your plan's per-minute rate limit.
Fix: Wait a minute and retry, or upgrade your plan for a higher per-minute limit.
429 "Monthly API limit exceeded"
Cause: You've used your plan's full monthly request allowance.
Fix: Wait for your next billing cycle reset, or upgrade to a plan with a higher monthly limit.