atmon docs

REFERENCE/TOOLKITS/GITHUB.MD

GitHub

Code hosting. Manage repositories, issues, pull requests, files, and releases, and search across everything you can see.

PropertyValue
Sluggithub
Definition version0.1.0
Base URLhttps://api.github.com
Auth schemesoauth2, api_key
Action tools36
By class19 read, 14 write, 3 destructive
Triggers3
Provider rate limit5000 requests per 1h, per account

Measured routing accuracy

30 golden cases replayed through the router over the whole index: measured over corpus ea4f12ad2948 (65 toolkits, 2283 tools indexed and 13 declared uncallable), 15 cases written by hand and 15 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

MeasureCasesShare
top-114/3046.7%
top-824/3080.0%

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. just eval-live measures the same cases through the live reranker.

Authentication

Connect an entity with ConnectionsService.InitiateConnection, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

oauth2

PropertyValue
Authorization URLhttps://github.com/login/oauth/authorize
Token URLhttps://github.com/login/oauth/access_token
Default scopesrepo
Refresh tokensno, so the end user reauthorizes when the token expires

api_key

PropertyValue
Placementheader
NameAuthorization
Rendered asBearer {key}

Submit the key with ConnectionsService rather than putting it in a request; it is sealed at rest and never returned.

Tools

36 action tools. The catalog-wide slug is github.<tool>, which is what search_tools returns and call_tool takes.

github.get_repo

Get one repository's details by owner and name: description, default branch, visibility, stars, forks, open issue count, primary language. Use for a specific known repo. To find repos by keyword or topic, use search_repositories instead.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner, a user or org login, e.g. "facebook".
repostringyesRepository name without the owner, e.g. "react".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
default_branchstring
descriptionstring
forks_countinteger
full_namestring
html_urlstring
languagestring
open_issues_countinteger
privateboolean
stargazers_countinteger

Also retrieved by: "what's this project about", "how many people starred it", "is it public or private", "check out this codebase", "pull up info on this repo".

github.list_my_repos

List repositories the signed-in user owns or collaborates on. Use when the user says my repos, our projects, or what repositories do I have. For someone else's repos or keyword discovery, use search_repositories.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /user/repos.

Arguments:

ArgumentTypeRequiredNotes
per_pageintegernoResults per page, max 100.
sortstring, one of created, updated, pushed, full_namenoSort order, e.g. "updated" for recently active first.
visibilitystring, one of all, public, privatenoFilter by visibility. Defaults to all.

Also retrieved by: "what am I working on", "show my github projects", "everything I've built so far", "stuff under my account".

github.create_repo

Create a new repository for the signed-in user. Use when the user wants to start, set up, or make a new repo or project. Optionally private and initialized with a README.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /user/repos.

Arguments:

ArgumentTypeRequiredNotes
auto_initbooleannoTrue to create an initial commit with an empty README.
descriptionstringnoShort repository description.
namestringyesNew repository name, e.g. "billing-service".
privatebooleannoTrue for a private repo. Defaults to false (public).

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
default_branchstring
full_namestring
html_urlstring
privateboolean

Also retrieved by: "spin up a new codebase", "I need a fresh repository", "kick off a new project on github", "scaffold something brand new".

github.delete_repo

Permanently delete a whole repository, including its issues, pull requests, and history. Irreversible. Use only when the user explicitly asks to delete or remove a repo they own. Not for single files.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). Scopes delete_repo. Calls DELETE /repos/{{params.owner}}/{{params.repo}}.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
repostringyesRepository name to delete.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
deletedboolean

Also retrieved by: "nuke this repository", "get rid of this project for good", "wipe this off github", "I don't want this codebase anymore".

github.fork_repo

Fork a repository into the signed-in user's account or an organization. Use when the user wants their own copy of someone else's repo to work on or contribute from.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/forks.

Arguments:

ArgumentTypeRequiredNotes
organizationstringnoOptional org login to fork into instead of the user account.
ownerstringyesOwner of the repository to fork.
repostringyesName of the repository to fork.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
forkboolean
full_namestring
html_urlstring

Also retrieved by: "I want to contribute to this project", "copy this repo to my account", "make my own version of their code", "grab a copy so I can hack on it".

github.list_branches

List the branches of a repository with the head commit of each. Use when the user asks what branches exist or wants to pick a branch for another call.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/branches.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.

Also retrieved by: "what versions of the code are there", "show me the different lines of work", "which branch should I use", "see the feature branches".

github.get_file_contents

Read a file from a repository, or list a directory's entries. Use when the user wants to see, open, or fetch a file such as a README or config. File content returns base64-encoded with the blob sha needed for edits.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/contents/{{params.path}}.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
pathstringyesFile or directory path inside the repo, e.g. "README.md" or "src/lib".
refstringnoBranch, tag, or commit sha to read from. Defaults to the default branch.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
contentstring
encodingstring
html_urlstring
namestring
pathstring
shastring
sizeinteger

Also retrieved by: "show me what's inside this file", "open up the config", "peek at the source", "read this document from the repo".

github.create_or_update_file

Create a file or replace an existing file's contents with a commit. Use when the user wants to add, write, edit, or save a file in a repo. Updating an existing file requires its current blob sha from get_file_contents.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PUT /repos/{{params.owner}}/{{params.repo}}/contents/{{params.path}}.

Arguments:

ArgumentTypeRequiredNotes
branchstringnoBranch to commit to. Defaults to the default branch.
contentstringyesNew file content, base64-encoded.
messagestringyesCommit message for this change.
ownerstringyesRepository owner login.
pathstringyesFile path to create or update, e.g. "docs/setup.md".
repostringyesRepository name.
shastringnoCurrent blob sha of the file. Required when updating, omit when creating.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
commitobject
commit.messagestring
commit.shastring
contentobject
content.html_urlstring
content.pathstring
content.shastring

Also retrieved by: "save my changes to this file", "put a new file in the repo", "jot this down in the codebase", "commit a quick edit".

github.delete_file

Delete a single file from a repository with a commit. Use when the user asks to remove or delete a file, not the whole repository. Requires the file's current blob sha from get_file_contents. The file stays recoverable in git history, but the branch head changes.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls DELETE /repos/{{params.owner}}/{{params.repo}}/contents/{{params.path}}.

Arguments:

ArgumentTypeRequiredNotes
branchstringnoBranch to commit to. Defaults to the default branch.
messagestringyesCommit message for the deletion.
ownerstringyesRepository owner login.
pathstringyesPath of the file to delete.
repostringyesRepository name.
shastringyesCurrent blob sha of the file being deleted.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
commitobject
commit.messagestring
commit.shastring

Also retrieved by: "take this file out of the project", "trash this old file", "get rid of that config".

github.list_commits

List commits on a repository, newest first. Use when the user asks for recent changes, commit history, or who changed what. Filterable by branch, author, file path, and date range. For one commit's diff, use get_commit.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/commits.

Arguments:

ArgumentTypeRequiredNotes
authorstringnoFilter by author login or email.
ownerstringyesRepository owner login.
pathstringnoOnly commits touching this file or directory.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.
shastringnoBranch, tag, or commit sha to start from. Defaults to the default branch.
sincestring (date-time)noOnly commits after this ISO 8601 timestamp.
untilstring (date-time)noOnly commits before this ISO 8601 timestamp.

Also retrieved by: "what's been happening in this repo lately", "who touched this last", "show me the timeline of changes", "recent work on this project".

github.get_commit

Get one commit by sha, branch, or tag, including its message, author, per-file diff stats, and changed file list. Use when the user asks what a specific commit changed. For history, use list_commits.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/commits/{{params.ref}}.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
refstringyesCommit sha, branch, or tag, e.g. "a1b2c3d" or "main".
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
commitobject
commit.messagestring
filesarray of object
files[].additionsinteger
files[].deletionsinteger
files[].filenamestring
files[].statusstring
html_urlstring
shastring
statsobject
stats.additionsinteger
stats.deletionsinteger

Also retrieved by: "what did that change actually do", "show me the diff for that one", "details on a single change".

github.list_releases

List a repository's releases, newest first, with tag, name, notes, and publish date. Use when the user asks about versions, releases, or what shipped recently.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/releases.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.

Also retrieved by: "what versions have gone out", "show me the shipping history", "what's been shipped so far".

github.create_release

Create a release from a tag, with a title and changelog notes. Use when the user wants to publish, cut, or ship a release or version. Creates the tag if it does not exist yet.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/releases.

Arguments:

ArgumentTypeRequiredNotes
bodystringnoRelease notes, markdown allowed.
draftbooleannoTrue to save as an unpublished draft.
namestringnoRelease title. Defaults to the tag name.
ownerstringyesRepository owner login.
prereleasebooleannoTrue to mark as a prerelease.
repostringyesRepository name.
tag_namestringyesTag for the release, e.g. "v2.0.0".
target_commitishstringnoBranch or sha to tag if the tag is new. Defaults to the default branch.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
draftboolean
html_urlstring
namestring
tag_namestring

Also retrieved by: "put out a new version", "ship this update to users", "tag and publish a new build".

github.list_issues

List issues in one repository: tickets, bugs, tasks, feature requests. Filterable by state, labels, assignee, and creator. Pull requests appear here too. For queries across repositories or complex filters, use search_issues.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/issues.

Arguments:

ArgumentTypeRequiredNotes
assigneestringnoLogin of the assignee, or "*" for any, or "none".
creatorstringnoOnly issues opened by this login.
directionstring, one of asc, descnoSort direction. Defaults to desc.
labelsstringnoComma-separated label names, e.g. "bug,help wanted".
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.
sortstring, one of created, updated, commentsnoSort field. Defaults to created.
statestring, one of open, closed, allnoWhich issues to list. Defaults to open.

Also retrieved by: "what's on our plate for this repo", "show me the open github issues in this repository", "which bugs are still outstanding on this repo", "the issue backlog for one github project".

github.get_issue

Get a single issue or ticket by its number: title, full body, state, labels, assignees, comment count. Use when the user names a specific issue like "issue 42". For lists, use list_issues.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}.

Arguments:

ArgumentTypeRequiredNotes
issue_numberintegeryesIssue number, e.g. 42.
ownerstringyesRepository owner login.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
assigneesarray of object
assignees[].loginstring
bodystring
commentsinteger
html_urlstring
labelsarray of object
labels[].namestring
numberinteger
statestring
titlestring
userobject
user.loginstring

Also retrieved by: "pull up that one ticket", "look at bug number forty two", "details on this specific report".

github.create_issue

Open a new issue on a repository. Use when the user wants to file a bug report, log a ticket, create a task, or request a feature. Optionally set labels, assignees, and a milestone at creation.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/issues.

Arguments:

ArgumentTypeRequiredNotes
assigneesarray of stringnoLogins to assign.
bodystringnoIssue description, markdown allowed.
labelsarray of stringnoLabel names to apply, e.g. ["bug"].
milestoneintegernoMilestone number to attach.
ownerstringyesRepository owner login.
repostringyesRepository name.
titlestringyesIssue title, e.g. "Login fails with SSO accounts".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
html_urlstring
numberinteger
statestring
titlestring

Also retrieved by: "flag this problem for the team", "log a task for someone to pick up", "write up a feature idea", "report something broken".

github.update_issue

Edit an existing issue: retitle, rewrite the body, close or reopen it, or replace labels and assignees. Use when the user wants to close a ticket, mark it done, reopen it, or change its details.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}.

Arguments:

ArgumentTypeRequiredNotes
assigneesarray of stringnoReplacement assignee logins. Omit to leave unchanged.
bodystringnoNew body, markdown allowed.
issue_numberintegeryesIssue number to update.
labelsarray of stringnoReplacement label set. Omit to leave labels unchanged.
ownerstringyesRepository owner login.
repostringyesRepository name.
statestring, one of open, closednoSet "closed" to close, "open" to reopen.
state_reasonstring, one of completed, not_planned, reopenednoWhy the state changed, e.g. "completed" when fixed.
titlestringnoNew title.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
html_urlstring
numberinteger
statestring
titlestring

Also retrieved by: "mark this ticket as done", "reopen that old bug", "change the title on this one", "this is fixed now".

github.add_issue_comment

Post a comment on an issue or pull request. Use when the user wants to reply, respond, leave a note, or give an update on a ticket or PR discussion thread.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}/comments.

Arguments:

ArgumentTypeRequiredNotes
bodystringyesComment text, markdown allowed.
issue_numberintegeryesIssue or pull request number to comment on.
ownerstringyesRepository owner login.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
bodystring
html_urlstring
idinteger

Also retrieved by: "tell them the status on this ticket", "drop a note on that one", "let people know what's going on with this bug".

github.list_issue_comments

Read the comments on an issue or pull request, oldest first. Use when the user wants the discussion, replies, or feedback people left on a ticket or PR.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}/comments.

Arguments:

ArgumentTypeRequiredNotes
issue_numberintegeryesIssue or pull request number.
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.

Also retrieved by: "what did people say on this ticket", "read the back and forth on that one", "catch up on the conversation there".

github.add_labels

Add labels to a GitHub issue or pull request, keeping the labels already on it. Use when the user wants to tag or label an issue in a repository, for example as a bug. To replace the whole set, use update_issue.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}/labels.

Arguments:

ArgumentTypeRequiredNotes
issue_numberintegeryesIssue or pull request number.
labelsarray of stringyesLabel names to add, e.g. ["bug", "priority-high"].
ownerstringyesRepository owner login.
repostringyesRepository name.

Also retrieved by: "flag this github issue as high priority", "put another label on a pull request", "mark an issue in this repository".

github.remove_label

Remove one label from a GitHub issue or pull request. Use when the user wants to untag an issue in a repository, for example to take off "needs-triage". The label itself still exists in the repository.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls DELETE /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}/labels/{{params.name}}.

Arguments:

ArgumentTypeRequiredNotes
issue_numberintegeryesIssue or pull request number.
namestringyesLabel name to remove.
ownerstringyesRepository owner login.
repostringyesRepository name.

Also retrieved by: "take a label off this github issue", "that marker no longer applies to the pull request", "unlabel an issue in this repository".

github.add_assignees

Assign people to an issue or pull request, keeping existing assignees. Use when the user wants to assign a ticket to someone or give a task an owner. To replace all assignees, use update_issue.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/issues/{{params.issue_number}}/assignees.

Arguments:

ArgumentTypeRequiredNotes
assigneesarray of stringyesLogins to assign, e.g. ["octocat"].
issue_numberintegeryesIssue or pull request number.
ownerstringyesRepository owner login.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
assigneesarray of object
assignees[].loginstring
numberinteger

Also retrieved by: "put someone on this ticket", "hand this off to a teammate", "who's responsible for this now".

github.list_labels

List the labels defined in a repository with their colors and descriptions. Use when the user asks what labels or tags exist, or before labeling an issue with add_labels.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/labels.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.

Also retrieved by: "what labels does this github repository define", "which markers can I put on an issue here", "the label palette configured on this repo".

github.list_pull_requests

List pull requests in a repository: pending merges, proposed changes, code submissions waiting for review. Filterable by state and branch. For one PR's details, use get_pull_request.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/pulls.

Arguments:

ArgumentTypeRequiredNotes
basestringnoFilter by base branch name, e.g. "main".
directionstring, one of asc, descnoSort direction. Defaults to desc.
headstringnoFilter by head branch as "user:branch", e.g. "octocat:fix-login".
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
repostringyesRepository name.
sortstring, one of created, updated, popularity, long-runningnoSort field. Defaults to created.
statestring, one of open, closed, allnoWhich pull requests to list. Defaults to open.

Also retrieved by: "what code is waiting on review", "show me open PRs", "what's queued up to merge".

github.get_pull_request

Get one pull request by number: title, description, branches, merge status, mergeability, and diff size. Use when the user names a specific PR. For its changed files, use list_pull_request_files.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number, e.g. 512.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
additionsinteger
baseobject
base.refstring
bodystring
changed_filesinteger
deletionsinteger
draftboolean
headobject
head.refstring
head.shastring
html_urlstring
mergeableboolean
mergedboolean
numberinteger
statestring
titlestring

Also retrieved by: "pull up that one PR", "details on this code submission", "what's in this specific one".

github.create_pull_request

Open a pull request proposing changes from one branch into another. Use when the user wants to open a PR, submit their branch for review, or merge a feature branch via review. Supports draft PRs.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/pulls.

Arguments:

ArgumentTypeRequiredNotes
basestringyesBranch to merge into, e.g. "main".
bodystringnoPull request description, markdown allowed.
draftbooleannoTrue to open as a draft not yet ready for review.
headstringyesBranch with the changes, e.g. "fix-login". Cross-fork uses "user:branch".
ownerstringyesRepository owner login.
repostringyesRepository name.
titlestringyesPull request title.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
draftboolean
html_urlstring
numberinteger
statestring
titlestring

Also retrieved by: "put my branch up for review", "send this code for review", "propose these changes to the team".

github.update_pull_request

Edit an open pull request: retitle it, rewrite the description, close or reopen it, or retarget the base branch. Use when the user wants to change or close a PR without merging. Merging is merge_pull_request.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls PATCH /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}.

Arguments:

ArgumentTypeRequiredNotes
basestringnoNew base branch name.
bodystringnoNew description, markdown allowed.
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number to update.
repostringyesRepository name.
statestring, one of open, closednoSet "closed" to close without merging, "open" to reopen.
titlestringnoNew title.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
html_urlstring
numberinteger
statestring
titlestring

Also retrieved by: "change the description on that one", "close this without merging it", "update the target branch for this one".

github.merge_pull_request

Merge an open pull request into its base branch. Use when the user says merge the PR, land it, or ship it. Changes the base branch permanently; choose merge, squash, or rebase.

Class destructive (held by the mutation gate until the call's own arguments carry "confirm": true). No scopes beyond the connection's defaults. Calls PUT /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}/merge.

Arguments:

ArgumentTypeRequiredNotes
commit_messagestringnoExtra detail appended to the merge commit message.
commit_titlestringnoTitle for the merge commit. Defaults to GitHub's standard title.
merge_methodstring, one of merge, squash, rebasenoHow to merge. Defaults to merge.
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number to merge.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
mergedboolean
messagestring
shastring

Also retrieved by: "land this change already", "ship this branch into main", "this is good to go, merge it".

github.list_pull_request_files

List the files changed in a pull request with per-file additions, deletions, and patch hunks. Use when the user asks what a PR touches or wants to review its diff.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}/files.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
per_pageintegernoResults per page, max 100.
pull_numberintegeryesPull request number.
repostringyesRepository name.

Also retrieved by: "what files does this touch", "show me everything modified here", "review the diff on this submission".

github.list_pull_request_reviews

List the reviews on a pull request: who approved, who requested changes, and their summary comments. Use when the user asks whether a PR is approved or what reviewers said.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}/reviews.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number.
repostringyesRepository name.

Also retrieved by: "did anyone sign off on this", "what feedback came back on this", "is this approved yet".

github.create_pull_request_review

Submit a review on a pull request: approve it, request changes, or leave a review comment. Use when the user wants to approve a PR, sign off, or send back feedback. Merging is merge_pull_request.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}/reviews.

Arguments:

ArgumentTypeRequiredNotes
bodystringnoReview summary text. Required for REQUEST_CHANGES and COMMENT.
eventstring, one of APPROVE, REQUEST_CHANGES, COMMENTyesReview verdict.
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number to review.
repostringyesRepository name.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
html_urlstring
idinteger
statestring

Also retrieved by: "give this code the thumbs up", "send back some feedback on this one", "I want to weigh in on this change".

github.request_reviewers

Ask specific people or teams to review a pull request. Use when the user wants to add reviewers, request a review from someone, or route a PR to a team for sign-off. It only assigns reviewers on the pull request itself.

Class write (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls POST /repos/{{params.owner}}/{{params.repo}}/pulls/{{params.pull_number}}/requested_reviewers.

Arguments:

ArgumentTypeRequiredNotes
ownerstringyesRepository owner login.
pull_numberintegeryesPull request number.
repostringyesRepository name.
reviewersarray of stringnoUser logins to request, e.g. ["octocat"].
team_reviewersarray of stringnoTeam slugs to request, e.g. ["platform-team"].

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
numberinteger
requested_reviewersarray of object
requested_reviewers[].loginstring

Also retrieved by: "get someone to look over this code", "loop in a reviewer", "who should check this".

github.search_repositories

Search all of GitHub for repositories by keyword, topic, language, or stars. Use when the user wants to find, discover, or look up projects they do not already know by exact owner and name.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search/repositories.

Arguments:

ArgumentTypeRequiredNotes
orderstring, one of asc, descnoSort direction. Defaults to desc.
per_pageintegernoResults per page, max 100.
qstringyesSearch query with qualifiers, e.g. "http server language:rust stars:>500".
sortstring, one of stars, forks, help-wanted-issues, updatednoSort field. Defaults to best match.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
itemsarray of object
items[].descriptionstring
items[].full_namestring
items[].html_urlstring
items[].languagestring
items[].stargazers_countinteger
total_countinteger

Also retrieved by: "what's out there for building a web app", "any good open source options for this", "browse projects on the platform".

github.search_issues

Search issues and pull requests across repositories with qualifiers like repo, author, assignee, label, and state. Use for cross-repo queries such as everything assigned to me. For one repo's list, use list_issues.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search/issues.

Arguments:

ArgumentTypeRequiredNotes
orderstring, one of asc, descnoSort direction. Defaults to desc.
per_pageintegernoResults per page, max 100.
qstringyesSearch query, e.g. "is:issue is:open assignee:octocat label:bug".
sortstring, one of created, updated, comments, reactionsnoSort field. Defaults to best match.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
itemsarray of object
items[].html_urlstring
items[].numberinteger
items[].repository_urlstring
items[].statestring
items[].titlestring
total_countinteger

Also retrieved by: "show me everything I owe across every project", "what's outstanding across all our repos", "find every open item tied to me".

github.search_code

Search file contents across GitHub repositories. Use when the user wants to find where a function, string, or config appears in code, e.g. "search for uses of the old auth header in our org".

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search/code.

Arguments:

ArgumentTypeRequiredNotes
per_pageintegernoResults per page, max 100.
qstringyesCode query with qualifiers, e.g. "parseToken repo:acme/api language:go".

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
itemsarray of object
items[].html_urlstring
items[].namestring
items[].pathstring
items[].repositoryobject
items[].repository.full_namestring
total_countinteger

Also retrieved by: "where in our codebase does this get used", "track down every place this appears", "grep across all our repos".

github.search_users

Search GitHub user and organization accounts by name, login, location, or language. Use when the user wants to find a person's or company's GitHub profile.

Class read (reads only). No scopes beyond the connection's defaults. Calls GET /search/users.

Arguments:

ArgumentTypeRequiredNotes
orderstring, one of asc, descnoSort direction. Defaults to desc.
per_pageintegernoResults per page, max 100.
qstringyesUser query with qualifiers, e.g. "tom location:seattle type:user".
sortstring, one of followers, repositories, joinednoSort field. Defaults to best match.

Result fields (the payload is trimmed to these before it reaches the model):

FieldTypeNotes
itemsarray of object
items[].html_urlstring
items[].loginstring
items[].typestring
total_countinteger

Also retrieved by: "look up someone's handle", "find their profile on the platform", "who is this person on github".

Triggers

Triggers are app-initiated. They are not retrievable as tools and cannot be called; subscribe with TriggersService.CreateSubscription and events arrive as signed deliveries.

issue_opened

Fires when someone opens an issue on a repository the connected account can see. Carries the issue number, title, body, author, and repository.

Payload fields (anything the schema does not declare never reaches a subscriber):

FieldTypeNotes
actionstring
issueobject
issue.bodystring
issue.created_atstring
issue.html_urlstring
issue.numberinteger
issue.statestring
issue.titlestring
issue.userobject
issue.user.loginstring
repositoryobject
repository.full_namestring
repository.html_urlstring
senderobject
sender.loginstring

pull_request_opened

Fires when someone opens a pull request. Carries the PR number, title, body, head and base branches, author, and repository.

Payload fields (anything the schema does not declare never reaches a subscriber):

FieldTypeNotes
actionstring
pull_requestobject
pull_request.baseobject
pull_request.base.refstring
pull_request.bodystring
pull_request.created_atstring
pull_request.draftboolean
pull_request.headobject
pull_request.head.refstring
pull_request.head.shastring
pull_request.html_urlstring
pull_request.numberinteger
pull_request.statestring
pull_request.titlestring
pull_request.userobject
pull_request.user.loginstring
repositoryobject
repository.full_namestring
repository.html_urlstring
senderobject
sender.loginstring

push

Fires when commits are pushed to a branch or tag. Carries the ref, the before and after commit shas, the commit list, and the pusher.

Payload fields (anything the schema does not declare never reaches a subscriber):

FieldTypeNotes
afterstring
beforestring
commitsarray of object
commits[].authorobject
commits[].author.emailstring
commits[].author.namestring
commits[].author.usernamestring
commits[].idstring
commits[].messagestring
commits[].timestampstring
commits[].urlstring
forcedboolean
pusherobject
pusher.emailstring
pusher.namestring
refstring
repositoryobject
repository.full_namestring
repository.html_urlstring

Inbound webhooks

Providers post to /webhooks/github. Posts that fail verification are rejected before anything is stored, and the ingest path refuses every post while the secret variable is unset.

PropertyValue
Verification schemehmac_sha256
Shared secretAUTOMATON_GITHUB_WEBHOOK_SECRET (deployment environment)
Signature headerX-Hub-Signature-256
Signature formatsha256={sig}
Delivery id headerX-GitHub-Delivery (repeat posts are answered duplicate)

Mappings are tried in order and the first match wins.

TriggerMatches whenEntity resolved from
issue_openedheader X-GitHub-Event = issues, payload action = openedsender.login
pull_request_openedheader X-GitHub-Event = pull_request, payload action = openedsender.login
pushheader X-GitHub-Event = pushsender.login