Connect GitHub to OpenClaw on Operator.io
GitHub is a code hosting platform for version control and collaborative software development. It streamlines project management, code review, and team workflows in one place.
Automate GitHub with AI
Operator puts an OpenClaw agent in front of GitHub. You describe the job from Telegram or Discord and it handles the rest inside GitHub, picking the right calls from the 846 GitHub actions and checking its own work as it goes.
Your agent reaches GitHub directly or through connectors like Composio MCP and Pipedream MCP, which handle the sign in and token refresh for you, so there is nothing to wire up and no API keys to paste.
What your agent can do with GitHub
Your agent can call any of these GitHub actions by name as part of a larger task. Ask for the outcome you want and it picks the right ones.
Abort Repository Migration
Tool to abort a repository migration that is queued or in progress. Use when you need to cancel an ongoing migration operation.
Accept a repository invitation
Accepts a PENDING repository invitation that has been issued to the authenticated user.
Add app access restrictions
Adds GitHub Apps to the list of apps allowed to push to a protected branch. The branch must already have protection rules with restrictions enabled. This endpoint only works for organization repositories, not personal repositories. Apps...
Add a repository collaborator
Adds a GitHub user as a repository collaborator, or updates their permission if already a collaborator; `permission` applies to organization-owned repositories (personal ones default to 'push' and ignore this field), and an invitation ma...
Add assignees to an issue
Adds assignees to a GitHub issue. This action only adds users - it does not remove existing assignees. Changes are silently ignored if the authenticated user lacks push access to the repository.
Add email for auth user
Adds one or more email addresses (which will be initially unverified) to the authenticated user's GitHub account; use this to associate new emails, noting an email verified for another account will error, while an existing email for the...
Add field to user project
Tool to add a custom field to a user-owned GitHub Projects V2 project. Use when you need to add fields like status, priority, or custom data to organize project items.
Add item to user project
Tool to add an issue or pull request to a user-owned GitHub project. Use when you need to add existing repository items to a project board.
Add labels to an issue
Adds labels (provided in the request body) to a repository issue; labels that do not already exist are created.
Add org runner labels
Adds new custom labels to an existing self-hosted runner for an organization; existing labels are not removed, and duplicates are not added.
Add or update team membership for a user
Adds a GitHub user to a team or updates their role (member or maintainer), inviting them to the organization if not already a member; idempotent, returning current details if no change is made.
Add or update team project permissions
Adds a classic project to a team or updates the team's permission on it. This endpoint grants or updates permissions for a team on a specific classic project (not Projects V2). The authenticated user must have admin permissions for the p...
Add or update team repository permissions
Sets or updates a team's permission level for a repository within an organization; the team must be a member of the organization.
Add a repository to an app installation
Adds a repository to a GitHub App installation, granting the app access; requires authenticated user to have admin rights for the repository and access to the installation.
Add repo to org secret with selected access
Adds a repository to an existing organization-level GitHub Actions secret that is configured for 'selected' repository access.
Add selected repo to org secret
Grants an existing repository access to an existing organization-level Dependabot secret when the secret's visibility is set to 'selected'; the repository must belong to the organization, and the call succeeds without change if access al...
Add runner labels
Adds and appends custom labels to a self-hosted repository runner, which must be registered and active.
Add selected repository to an organization secret
Adds a repository to an organization secret's access list when the secret's visibility is 'selected'; this operation is idempotent.
Add selected repository to an organization variable
Grants a repository access to an organization-level GitHub Actions variable, if that variable's visibility is set to 'selected_repositories'.
Add a selected repository to a user secret
Grants a specified repository access to an authenticated user's existing Codespaces secret, enabling Codespaces created for that repository to use the secret.
Add social accounts for the authenticated user
Adds one or more social media links (which must be valid, full URLs for platforms supported by GitHub) to the authenticated user's public GitHub profile.
Add status check contexts
Adds status check contexts to a protected branch's required status checks. This action appends new status check contexts to the existing list of required status checks for a protected branch. The branch must already have branch protectio...
Add sub-issue to an issue
Tool to add a sub-issue to a parent GitHub issue using GraphQL. Use when you need to establish a parent-child relationship between issues. Requires the 'sub_issues' GraphQL feature to be enabled.
Add team access restrictions
Adds teams to the list of teams with push access to a protected branch. This action grants additional teams push access to a protected branch. Unlike 'Set team access restrictions' (PUT), this action adds to the existing list rather than...
Add user access restrictions
Adds users to the list of people allowed to push to a protected branch in an organization repository. Important notes: - This action only works on organization-owned repositories (not personal repos) - The branch must already have protec...
Add users to codespaces access for an organization
Adds organization members to the list of users granted Codespaces access billed to the organization. IMPORTANT: This endpoint requires the organization's Codespaces billing access to be set to 'selected_members' mode. If not already conf...
Get GitHub API root
Retrieves a map of all top-level GitHub REST API resource URLs and their templates.
Approve a workflow run for a fork pull request
Approves a workflow run from a forked repository's pull request; call this when such a run requires manual approval due to workflow configuration.
Assign an organization role to a team
Assigns an existing organization-level role (identified by `role_id`) to a team (identified by `team_slug`) within a GitHub organization (`org`), provided the organization, team, and role already exist.
Assign an organization role to a user
Assigns a specific organization role to a user who is a member or an outside collaborator in a GitHub organization, using a valid role ID.
Block a user
Blocks an existing individual GitHub user (not an organization or your own account), preventing them from interacting with your account and repositories.
Block a user from an organization
Blocks a GitHub user from an organization, preventing their contributions, collaboration, and forking of the organization's repositories. Requires admin or 'Blocking users' organization permission (write access).
Cancel a GitHub Pages deployment
Cancels an existing, ongoing or queued GitHub Pages deployment for a repository using its `pages_deployment_id`.
Cancel sponsorship
Tool to cancel an active GitHub sponsorship using GraphQL. Use when you need to terminate a sponsorship relationship between a sponsor and a sponsorable entity. Either sponsor ID/login and sponsorable ID/login must be provided.
Cancel a workflow run
Cancels a workflow run in a GitHub repository if it is in a cancellable state (e.g., 'in_progress' or 'queued'). Returns 202 Accepted on success.
Check if a gist is starred
Checks if a gist is starred by the authenticated user. Returns `is_starred: true` if the gist is starred (HTTP 204), or `is_starred: false` if not starred (HTTP 404). Use this to verify star status before starring/unstarring a gist.
Check if pull request merged
Checks if a specified GitHub pull request has been merged, indicated by a 204 HTTP status (merged) or 404 (not merged/found).
Check if a user can be assigned
Verifies if a GitHub user can be assigned to issues in a repository; assignability is confirmed by an HTTP 204 (No Content) response, resulting in an empty 'data' field in the response.
Check if a user can be assigned to an issue
Checks if a specified GitHub user can be assigned to a given issue within a repository.
Check if a user follows another user
Checks if a GitHub user `username` follows `target_user`; returns a 204 HTTP status if true, 404 if not or if users are invalid.
Check if a user is blocked by the authenticated user
Checks if the specified GitHub user is blocked by the authenticated user; a 204 No Content response indicates the user is blocked, while a 404 Not Found indicates they are not.
Check if a user is blocked by an organization
Checks if a GitHub user is blocked by an organization. Returns is_blocked=True if the user is blocked (HTTP 204), or is_blocked=False if not blocked (HTTP 404). Requires 'Blocking users' organization permission (read access).
Check if a user is a repository collaborator
Checks if a user is a collaborator on a specified GitHub repository, returning a 204 status if they are, or a 404 status if they are not or if the repository/user does not exist.
Check if person is followed by authenticated user
Checks if the authenticated GitHub user follows a target GitHub user. Returns a structured response with is_following=True when following (HTTP 204), or is_following=False when not following (HTTP 404).
Check private vulnerability reporting status
Checks if private vulnerability reporting is enabled for the specified repository.
Check public organization membership
Tool to check if a user is a public member of an organization. Use when you need to verify public organization membership status.
Check team permissions for a project
Checks if a team has 'read', 'write', or 'admin' permissions for an organization's specific classic project, returning the project's details if access is confirmed.
Check team permissions for a repository
Checks a team's permissions for a specific repository within an organization, including permissions inherited from parent teams.
Plus 798 more GitHub actions your agent can call.
How to connect GitHub
You authorize GitHub once from your dashboard. Operator holds the connection and refreshes the access tokens on its own, so your agent keeps working with GitHub without you signing in again. The same setup unlocks every other app your agent can reach, so you only do it once.
When you are ready, the get started guide walks through standing up your OpenClaw agent.
Common questions about GitHub
- How do I connect GitHub to Operator?
- You authorize GitHub once from your Operator dashboard and choose the repositories it can reach. Operator holds the connection and refreshes it, so the agent keeps working with your repos without you reauthorizing.
- Can my agent triage issues and review pull requests?
- Yes. It can open and comment on issues, read and review pull requests, manage labels and assignees, and read repository details when you ask. Teams use it to triage incoming issues, draft a summary of what changed, and keep labels consistent without leaving chat.
- Can it read code and answer questions about a repo?
- It can read files, search the codebase, and pull the history behind a change, then explain it back to you in plain language. Point it at a repository and ask what a module does or what shipped this week, and it reads GitHub directly to answer.
- Do I need a personal access token?
- No. You authorize GitHub through its normal sign in and Operator manages the connection and token refresh, so there is no personal access token to generate or store yourself.
GitHub integrations
Pick an app to see what your agent does across GitHub and it, or browse all integrations.
Put your agent on GitHub
Sign in, connect GitHub, and hand your agent the work. Your first week is free.
Get started