← All platforms

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

tokenPersonal Access Token. Find it: GitHub → Settings → Developer settings → Personal access tokens

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.

← Back to all platforms