Skip to Content
DocsConnectorsGitHub

GitHub Connector

Auth type: bearer_token (GitHub Personal Access Token)

The GitHub connector provides 10 actions covering repositories, issues, and pull requests.

Setup

  1. Create a Personal Access Token at github.com/settings/tokens 
  2. Select scopes: repo (for private repos) or public_repo (for public only)
  3. Store the token:
# Via CLI feelr auth github # Via API curl -X PUT https://api.feelr.dev/admin/credentials/github \ -H "Authorization: Bearer $ADMIN_TOKEN" \ -H "Content-Type: application/json" \ -d '{"token": "ghp_your_pat_here"}'

Action Reference

Repositories

ActionDescriptionRequired ParamsReturns
repos.listList repos for authenticated user[{id, name, full_name, private, description, language, default_branch, stargazers_count}]

Optional params: type (all/owner/public/private/member, default: all), sort (created/updated/pushed/full_name, default: created), per_page (max 100, default: 30)

Issues

ActionDescriptionRequired ParamsReturns
issues.listList issues (excludes PRs)repo[{id, number, state, title, user_login, labels, created_at}]
issues.getGet a single issuerepo, issue_number{id, number, state, state_reason, title, body, user_login, assignee_login, labels, comments, created_at, updated_at, closed_at}
issues.createCreate an issuerepo, title{id, number, state, title, body, user_login, labels, created_at}
issues.updateUpdate an issuerepo, issue_number{id, number, state, title, ...}
issues.closeClose an issuerepo, issue_number{id, number, state, state_reason, ...}

issues.list optional params: state (open/closed/all, default: open), labels (comma-separated), sort (created/updated/comments, default: created), per_page (max 100, default: 30)

issues.create optional params: body (markdown), labels (comma-separated), assignees (comma-separated usernames)

issues.update optional params: title, body, state (open/closed), labels (comma-separated, replaces all), assignees (comma-separated, replaces all)

issues.close optional params: state_reason (completed/not_planned, default: completed)

Pull Requests

ActionDescriptionRequired ParamsReturns
pulls.listList pull requestsrepo[{id, number, state, title, user_login, head_ref, base_ref, merged, created_at}]
pulls.getGet a single PRrepo, pull_number{id, number, state, title, body, user_login, head_ref, head_sha, base_ref, merged, mergeable, labels, created_at, updated_at, merged_at}
pulls.createCreate a PRrepo, title, head, base{id, number, state, title, head_ref, base_ref, created_at}
pulls.mergeMerge a PRrepo, pull_number{merged, sha, message}

pulls.list optional params: state (open/closed/all, default: open), sort (created/updated/popularity/long-running, default: created), per_page (max 100, default: 30)

pulls.create optional params: body (markdown), draft (boolean)

pulls.merge optional params: merge_method (merge/squash/rebase, default: merge), commit_title, commit_message

The repo param always uses the owner/repo format (e.g., octocat/Hello-World).

Examples

List open issues

curl "https://api.feelr.dev/v1/github/issues.list?repo=octocat/Hello-World&state=open" \ -H "X-Feelr-Key: fk_live_..."
feelr run github issues.list repo=octocat/Hello-World state=open

Create an issue

curl -X POST https://api.feelr.dev/v1/github/issues.create \ -H "X-Feelr-Key: fk_live_..." \ -H "Content-Type: application/json" \ -d '{"repo": "octocat/Hello-World", "title": "Found a bug", "labels": "bug,urgent"}'
feelr run github issues.create repo=octocat/Hello-World title="Found a bug" labels=bug,urgent

Merge a pull request

curl -X POST https://api.feelr.dev/v1/github/pulls.merge \ -H "X-Feelr-Key: fk_live_..." \ -H "Content-Type: application/json" \ -d '{"repo": "octocat/Hello-World", "pull_number": 42, "merge_method": "squash"}'
feelr run github pulls.merge repo=octocat/Hello-World pull_number=42 merge_method=squash
Last updated on