# GitHub AI agent for Slack & Microsoft Teams

Viktor is an AI employee that connects to GitHub in one click via OAuth and helps you build, test, and deploy code through CI/CD pipelines, running 300 GitHub actions for you like Get a blob, Get an app, and Fork a gist. Ask in plain English in Slack or Microsoft Teams; Viktor does the work in GitHub and reports back. Setup takes about two minutes.

- Tool: GitHub
- Category: Productivity
- Connection: One-click OAuth
- Actions available: 300
- Works from: Slack and Microsoft Teams
- Page: https://viktor.com/integrations/github

## What can you ask Viktor to do in GitHub?

- "Check GitHub for the latest failed build and summarize the likely cause."
- "Trigger a deploy in GitHub for the latest release and report when it's done."
- "Watch GitHub for failed pipelines and post a summary here with the likely cause."
- "Summarize what shipped through GitHub this week for the changelog."

## What can Viktor do in GitHub? (300 actions)

- **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 must be installed on the repository with 'contents' write permissions.
- **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 may be created or permissions updated directly.
- **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 current user is accepted.
- **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 project. Both the team and project must belong to the same organization. Requirements: - The project must be a classic project (not GitHub Projects V2) - The authenticated user must have admin permissions on the project - The team and project must be in the same organization - Requires 'admin:org' scope for the authentication token Returns HTTP 204 No Content on success, 403 if project is not an org project, or 404 if the organization, team, or project is not found.
- **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 project collaborator** - Adds a specified GitHub user as a collaborator to an existing organization project with a given permission level. Note: This endpoint is for organization projects (classic). You must be an organization owner or a project admin to add a collaborator. Classic projects are being deprecated in favor of the new Projects experience.
- **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 already exists.
- **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 'selectedrepositories'.
- **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 protection enabled with status checks configured. Note: The 'contexts' parameter is deprecated by GitHub in favor of 'checks' array. For new implementations, consider using updatestatuscheckprotection with the 'checks' parameter instead.
- **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 'subissues' 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 replacing it entirely. Prerequisites: - The repository must be owned by an organization (not a personal account) - The branch must have protection rules enabled - The branch protection must have restrictions configured - The teams must exist in the organization and have repository access.
- **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 protection rules with restrictions enabled - Users must have write access to the repository to be added - The combined total of users, apps, and teams is limited to 100 items.
- **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 'selectedmembers' mode. If not already configured, use the GITHUBMANAGEACCESSCONTROLFORORGANIZATIONCODESPACES action first to set visibility to 'selectedmembers'.
- **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 roleid) to a team (identified by teamslug) 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.
- **List Docker Migration Conflicting Packages** - List Docker packages with migration conflicts for the authenticated user. This endpoint lists all Docker packages owned by the authenticated user that encountered namespace conflicts during the Docker-to-GitHub Container Registry (GHCR) migration. Conflicts occur when a package with the same name exists in both the legacy Docker registry and GHCR. IMPORTANT: The Docker registry for GitHub Packages was deprecated on Feb 24, 2025. This endpoint may return a 400 error with message 'Package migration for docker is no longer supported' as the migration period has ended. In this case, the action returns an informative response instead of failing. Use case: Identifying packages that require manual migration to GHCR. Required scope: read:packages (for OAuth and personal access tokens).
- **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 pagesdeploymentid.
- **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., 'inprogress' or 'queued'). Returns 202 Accepted on success.
- **Check if following user** - Check if the authenticated user is following a specified person on GitHub. Use this action when you need to verify whether the currently authenticated user follows another GitHub user. The action returns a boolean status and descriptive message.
- **Check if a gist is starred** - Checks if a gist is starred by the authenticated user. Returns isstarred: true if the gist is starred (HTTP 204), or isstarred: 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 repo starred by auth user** - DEPRECATED: Use GITHUBCHECKIFAREPOSITORYISSTARREDBYTHEUSER instead.
- **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 targetuser; 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 isblocked=True if the user is blocked (HTTP 204), or isblocked=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 isfollowing=True when following (HTTP 204), or isfollowing=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 if repository is starred** - Check if a repository is starred by the authenticated user. Use this action when you need to verify whether the authenticated user has starred a specific repository. This is useful for confirming star status before performing star/unstar operations or displaying repository 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.
- **Check a token** - Checks if a GitHub App or OAuth accesstoken is valid for the specified clientid and retrieves its details, typically to verify its active status and grants. NOTE: This endpoint requires Basic Authentication using the OAuth App's clientid as username and clientsecret as password. The accesstoken parameter must be an OAuth token issued by the specified OAuth App.
- **Clear Project V2 Item Field Value** - Tool to clear the value of a field for an item in a GitHub Project V2. Use when you need to remove or reset a field value (text, number, date, assignees, labels, single-select, iteration, or milestone fields).
- **Clear repository cache by key** - Deletes GitHub Actions caches from a repository matching a specific key and an optional Git ref, used to manage storage or clear outdated/corrupted caches; the action succeeds even if no matching caches are found to delete.
- **Clear self-hosted runner org labels** - Removes all custom labels from a self-hosted runner for an organization; default labels (e.g., 'self-hosted', 'linux', 'x64') will remain.
- **Close an issue** - Close a GitHub issue by setting its state to closed. Use this action when you need to mark an issue as resolved or no longer relevant. Optionally specify a reason for closing (completed or notplanned) to provide context.
- **Close a pull request** - Closes an open pull request without merging it. The pull request state is set to "closed" and it can be reopened later if needed. Use this action when you want to reject or abandon a pull request without merging the proposed changes into the base branch. You must have write access to the repository to close pull requests.
- **Commit Multiple Files** - Tool to atomically create, update, or delete multiple files in a GitHub repository as a single commit. Uses Git Data APIs to avoid SHA mismatch conflicts that occur with the Contents API when multiple files are modified in parallel. Use when you need to make multi-file changes reliably. BRANCH CREATION: When committing to a new branch (e.g., 'fix/my-fix' or 'feature/new-feature'), you MUST provide 'basebranch' (typically 'main' or 'master') to create the branch from. If the branch already exists, basebranch is not needed. This action handles race conditions automatically: if the branch is updated by another commit between fetching the HEAD and updating the reference (resulting in a 422 'not a fast forward' error), the action will retry by refetching the HEAD and rebasing changes. Use maxretries to control this behavior.
- **Compare two commits** - Compares two commit points (commits, branches, tags, or SHAs) within a repository or across forks, using BASE...HEAD or OWNER:REF...OWNER:REF format for the basehead parameter.
- **Configure JIT runner for an org** - Generates a JIT configuration for a GitHub organization's new self-hosted runner to run a single job then unregister; requires admin:org scope and the runnergroupid must exist in the organization.
- **Configure OIDC subject claim template** - Sets or updates the OIDC subject claim customization template for an existing GitHub organization by specifying which claims (e.g., 'repo', 'actor') form the OIDC token's subject (sub). This action customizes which claim keys are included in the OIDC subject claim for the specified organization. It allows for fine-tuning the content of the subject claim based on organizational needs.
- **Convert an organization member to outside collaborator** - Converts an existing organization member, who is not an owner, to an outside collaborator, restricting their access to explicitly granted repositories.
- **Convert Pull Request to Draft** - Converts an open pull request to draft status, indicating it is not ready for review. Use this action when you need to mark a PR as work-in-progress after it has been opened. Draft pull requests cannot be merged until they are marked as ready for review. This action is useful when additional work is needed before the PR can be reviewed or merged.
- **Create a blob** - Creates a Git blob in a repository, requiring content and encoding ('utf-8' or 'base64'). Requires write access to the repository.
- **Create a check run** - Creates a new check run for a specific commit in a repository, used by external services to report status, detailed feedback, annotations, and images directly within the GitHub UI. NOTE: This endpoint requires GitHub App authentication - OAuth tokens and personal access tokens cannot create check runs.
- **Create a check suite** - Creates a new check suite for a specific commit (headsha) in an original repository (not a fork). IMPORTANT: This endpoint requires a GitHub App installation access token - OAuth tokens and classic personal access tokens cannot use this endpoint. GitHub dispatches a checksuite webhook event with the requested action upon success.
- **Create a codespace for the authenticated user** - Creates a GitHub Codespace for the authenticated user, requiring a JSON request body with either repositoryid (integer) or a pullrequest object (containing pullrequestnumber (integer) and repositoryid (integer)). This action allows users to set up a development environment quickly by creating a codespace from a specified repository or pull request.
- **Create a codespace from a pull request** - Creates a GitHub Codespace for an open pull request in a Codespaces-enabled repository, with options to customize its configuration.
- **Create a codespace in a repository** - Creates a GitHub Codespace for the authenticated user in a specified repository, which must be accessible and use a valid devcontainer.json if devcontainerpath is specified.
- **Create a commit** - Creates a new commit in a GitHub repository; the tree SHA and any parents SHAs must already exist in the repository.
- **Create a commit comment** - Creates a comment on a specific commit, or on a specific line if path and position are provided.
- **Create a commit status** - Sets a commit's status (e.g., error, failure, pending, success from CI/CD) for a given SHA; max 1000 statuses per SHA/context.
- **Create a custom organization role** - Creates a custom role with defined permissions within a GitHub organization.
- **Create a deploy key** - Creates a deploy key for a repository; the repository must exist and be accessible, and the provided key must be a valid public SSH key.
- **Create a deployment** - Creates a GitHub deployment for an existing repository, targeting a specific ref (branch, tag, or SHA) that must also exist within the repository.
- **Create a deployment branch policy** - Creates a deployment branch or tag policy for an existing environment in a GitHub repository, using a Ruby File.fnmatch pattern (where doesn't match /) to specify which branches or tags are deployable.
- **Create a deployment status** - Creates a status for an existing deployment, updating its operational state, associated URLs, and description.
- **Create a discussion** - Creates a new discussion post on a specific team's page within an organization.
- **Create a discussion comment** - Creates a new comment on an existing team discussion within a GitHub organization.
- **Create a fork** - Creates a fork of an accessible repository, optionally into a specific organization, with a new name, or copying only the default branch.
- **Create a gist** - Creates a new gist on GitHub with provided files, an optional description, and public/secret visibility.
- **Create a gist comment** - Creates a new comment on a specified GitHub gist.
- **Create a GitHub App from a manifest** - Use this action to complete the GitHub App Manifest flow (step 3 of 3) by exchanging the temporary authorization code for the app's full configuration, including credentials and private key. The code is provided via redirect URL after creating the app through GitHub's web interface and must be used within 1 hour.
- **Create a github pages deployment** - Creates a GitHub Pages deployment for a repository using a specified artifact and OIDC token, provided GitHub Pages is enabled and the artifact (containing static assets) is accessible.
- **Create a github pages site** - Configures or updates GitHub Pages for a repository, setting build type and source; ensure a Pages workflow exists for 'workflow' buildtype, or sourcebranch exists for 'legacy' or unspecified buildtype. This action allows users to effectively manage their GitHub Pages site settings, specifying how the site is built and where the source files are located.
- **Create a label** - Creates a new label in a specified GitHub repository, provided the repository exists and the user has write permissions.
- **Create a milestone** - Creates a milestone in a GitHub repository for tracking progress on issues or pull requests; requires repository existence and user write permissions.
- **Create an autolink reference for a repository** - Creates a repository autolink to automatically convert text references (e.g., 'TICKET-123') into hyperlinks, using a unique keyprefix and a urltemplate that includes <num>.
- **Create an environment variable** - Creates an encrypted environment variable for a pre-existing environment within a GitHub repository; will fail if the variable name already exists.
- **Create an issue** - Creates a new issue in a GitHub repository, requiring the repository to exist and have issues enabled; specific fields like assignees, milestone, or labels may require push access.
- **Create an issue comment** - Creates a new comment on an existing GitHub issue or pull request within the specified repository.
- **Create an organization project** - Creates a new classic project board within a specified GitHub organization. Note: This action uses GitHub's Projects (classic) REST API. The classic projects feature may be disabled in some organizations, and GitHub recommends migrating to Projects V2 (accessible via GraphQL API) for new projects. Requirements: - The authenticated user must be an organization member with project creation permissions - Classic projects must be enabled for the organization - Requires 'repo' and 'admin:org' or 'write:org' scopes.
- **Create an organization repository** - Creates a new repository within a specified GitHub organization, with options for detailed configuration including visibility, features, merge strategies, initial commit, and templates.
- **Create an organization variable** - Creates a new, uniquely named GitHub Actions variable for an organization, with configurable repository access visibility (all, private, or selected).
- **Create an organization webhook** - Creates a webhook for a GitHub organization to deliver event notifications to a configured URL.
- **Create a project card** - Creates a project card in a GitHub project column (classic projects only). DEPRECATION NOTICE: GitHub Projects (classic) was sunset on August 23, 2024. This API only works with existing classic project columns. New classic projects cannot be created. Consider using GitHub Projects V2 (GraphQL API) instead. The request body must contain either: - note: A text note for the card - OR contentid AND contenttype: To associate an issue or pull request.
- **Create a project column (Classic - Deprecated)** - Creates a new column in a GitHub project (classic). DEPRECATION NOTICE: GitHub Classic Projects (V1) and its REST API were sunset on April 1, 2025. This action will return a 404 error on GitHub.com. For new projects, use GitHub Projects V2 which uses the GraphQL API instead.
- **Create a pull request** - Creates a pull request in a GitHub repository, requiring existing base and head branches; title or issue must be provided.
- **Create a reference** - Creates a NEW Git reference (branch or tag) in a repository. IMPORTANT: This action ONLY creates NEW references - if the reference already exists, it will fail with a 422 'Reference already exists' error. To update an existing reference, use the 'Update a reference' (GITHUBUPDATEAREFERENCE) action instead. The repository must not be empty prior to this operation.
- **Create a registration token for an organization** - Generates a temporary (one-hour) registration token to add a new self-hosted runner to an organization for GitHub Actions.
- **Create a registration token for a repository** - Generates a time-limited token required to register a new self-hosted runner with a specific repository.
- **Create a release** - Creates a release in a GitHub repository for a specified tag; the tag must be unique for published releases, and if a discussioncategoryname is given, it must already exist.
- **Create a remove token for an organization** - Generates a token, valid for one hour, to authenticate removing a self-hosted runner from an organization.
- **Create a remove token for a repository** - Generates a temporary (one-hour validity) token required to unregister and remove a self-hosted runner from a repository.
- **Create a reply for a review comment** - Posts a reply to a specific review comment on a GitHub pull request, requiring the repository, pull request, and original comment to exist, and a non-empty reply body.
- **Create a repository dispatch event** - Triggers a GitHub Actions workflow or a webhook on a repository by creating a repository dispatch event, allowing programmatic triggering of workflows based on events outside of GitHub.
- **Create a repository for the authenticated user** - Creates a new repository for the authenticated user, optionally within an organization if teamid is specified.
- **Create a repository from an unpublished codespace** - Publishes the specified codespace to a new repository, using the codespace's current state as the initial commit.
- **Create a repository project** - Creates a new GitHub Projects V2 project board linked to a specified repository. Note: This action uses GitHub's Projects V2 GraphQL API. The legacy Projects V1 REST API has been sunset by GitHub. The project is owned by the repository owner (user or organization) and linked to the specified repository.
- **Create a repository ruleset** - Creates a uniquely named ruleset for a repository, defining rules for branches or tags with specified enforcement, conditions, and bypass actors.
- **Create a repository using a template** - Creates a new repository from an existing template repository; the authenticated user must have access to the template and, if creating in an organization, repository creation permissions within it.
- **Create a repository variable** - Creates a new, unencrypted variable in a repository for GitHub Actions workflows; fails if a variable with the same name already exists.
- **Create a repository webhook** - Creates a webhook for a specified repository; requires admin permissions on the repository.
- **Create a review comment for a pull request** - Creates a review comment on a pull request's diff, targeting a specific line, range of lines, an entire file, or replying to an existing comment.
- **Create a review for a pull request** - Creates a pull request review, allowing approval, change requests, or comments; body is required if event is REQUESTCHANGES or COMMENT, and omitting event makes the review PENDING.
- **Create a scoped access token** - Exchanges a user-to-server token for a new, fine-grained scoped access token for a GitHub App, requiring clientid, accesstoken, either target or targetid, and at least one permission; for repository-specific scoping, provide either repositories (names) or repositoryids (IDs), but not both.
- **Create a dependency snapshot** - Creates a snapshot of a repository's dependencies to populate the GitHub dependency graph and enable security alerts; sha must be a 40-character commit ID, ref a fully qualified Git reference (e.g., refs/heads/main), and scanned an ISO 8601 timestamp.
- **Create a tag object** - Creates an annotated Git tag object in a repository, pointing to an existing Git object (commit, tree, or blob) defined by its SHA and ensuring the type field correctly specifies the object's type.
- **Create a tag protection state for a repository** - DEPRECATED: This API was sunset on August 30, 2024. Use GITHUBCREATEAREPOSITORYRULESET instead to create tag protection rules via repository rulesets.
- **Create a team** - Creates a new team in an organization, optionally with maintainers, repositories, specific privacy, notification settings, or a parent team; if parentteamid is given, privacy must be 'closed'.
- **Create a temporary private fork** - Creates a temporary private fork of the specified repository to address a security vulnerability, linking the fork to a GHSA ID that must be specifically associated with this repository; the fork may take up to 5 minutes to become accessible.
- **Create a tree** - Creates a new Git tree object in a repository, defining file/directory structure by specifying tree entries, optionally building on a basetree SHA; all provided SHAs must be valid.
- **Create a user project** - Creates a new GitHub Projects V2 project board for the authenticated user to organize and track issues, pull requests, and notes. Note: This action uses GitHub's Projects V2 GraphQL API. The legacy Projects V1 REST API has been sunset by GitHub.
- **Create a workflow dispatch event** - Manually triggers a GitHub Actions workflow identified by workflowid at a given ref, if the workflow is configured to accept workflowdispatch events.
- **Create a branch** - Creates a new branch in a GitHub repository pointing to a specified commit. Use this action when you need to create a new branch from an existing commit SHA. IMPORTANT: This action only creates NEW branches. If the branch already exists, it will fail with a 422 'Reference already exists' error. The repository must not be empty (must have at least one commit) before creating a branch.
- **Create commit signature protection** - Enables commit signature protection for a specified branch, requiring all new commits to be signed.
- **Create a custom deployment protection rule on an environment** - Enables a custom deployment protection rule for an existing environment in a repository by linking a configured GitHub App (via integrationid) to control deployments.
- **Create draft item for user project** - Creates a draft issue item in a user-owned GitHub ProjectsV2. Use when you need to add a new draft item to track ideas or tasks in a user's project.
- **Create inference chat completions** - Tool to create chat completions using GitHub Models inference API. Use when you need to generate AI-powered text responses using models like GPT-4, Claude, or Llama through GitHub's inference endpoint.
- **Create inference embeddings** - Tool to create inference embeddings using GitHub's AI models. Use when you need to convert text into vector representations for similarity search, clustering, or other ML tasks.
- **Create issue type** - Create a new issue type for a GitHub organization. Requires the authenticated user to be an organization administrator. OAuth tokens need admin:org scope.
- **Create JIT runner config for repo** - Generates a temporary Just-In-Time (JIT) configuration for a new self-hosted GitHub Actions runner for a repository; any specified non-default runnergroupid must be an existing runner group accessible by the repository.
- **Create or update an environment** - Creates a new environment or updates an existing one in a GitHub repository, allowing configuration of deployment protection rules such as wait timers and reviewers; ensure environmentname is URL-encoded if it contains special characters.
- **Create or update an environment secret** - Creates or updates an environment secret with an encryptedvalue that was encrypted using the public key identified by keyid for the specified environment.
- **Create or update an organization secret** - Creates or updates an organization secret for GitHub Actions, requiring its value to be pre-encrypted via LibSodium using the organization's public key.
- **Create or update a repository secret** - Creates or updates a GitHub Actions secret within a specific repository; use encryptedvalue and keyid to set or change its value.
- **Create or update a secret for the authenticated user** - Creates or updates a Codespaces secret for the authenticated user; encryptedvalue must be encrypted with the public key (ID: keyid) from GitHub's 'Get public key for the authenticated user' endpoint.
- **Create or update custom properties for an organization** - Creates new custom property schemas or updates existing ones in bulk for a specified organization; each property definition must include propertyname and valuetype.
- **Create or update a custom property for an organization** - Creates a new custom property (name must be unique for creation) or updates an existing one for an organization to define metadata for its repositories.
- **Create or update file contents** - Creates a new file or updates an existing file in a GitHub repository; SHA can be provided to validate file updates, automatically fetched if not provided.
- **Create or Update GitHub Pages Site** - Tool to enable or update GitHub Pages configuration for a repository. Use when setting up GitHub Pages for static site deployment or modifying Pages settings like custom domains and HTTPS enforcement.
- **Create or update repo secret with encrypted value** - Creates or updates a Dependabot secret in a repository using an encryptedvalue (pre-encrypted with LibSodium using the repository's Dependabot public key) and its corresponding keyid. This action allows you to securely manage secrets for a given repository, ensuring that sensitive data remains protected during the update process. By providing the encrypted value alongside the key ID, you can seamlessly maintain the necessary credentials for your repository's operations.
- **Create reaction for a commit comment** - Creates an emoji reaction for a commit comment; if the user has already reacted with the same content, details of the existing reaction are returned.
- **Create reaction for an issue** - Creates a reaction for a specified issue within a GitHub repository.
- **Create reaction for an issue comment** - Creates a reaction for a specific comment on an issue within a GitHub repository.
- **Create reaction for a pull request review comment** - Adds a specified reaction to a pull request review comment within a GitHub repository.
- **Create reaction for a release** - Creates an emoji reaction for a specific, existing release in a GitHub repository.
- **Create reaction for a team discussion** - Creates a reaction for a team discussion within a GitHub organization.
- **Create reaction for a team discussion comment** - Adds a reaction to a team discussion comment, requiring the specified organization, team, discussion, and comment to exist.
- **Create repository** - Creates a new repository for the authenticated user. Use this action when you need to create a new GitHub repository under the authenticated user's account. The repository name must be unique for the user, and various settings can be configured such as visibility (public/private), enabled features (issues, wiki, projects), and merge options.
- **Create sponsorship** - Tool to start a new GitHub sponsorship or reactivate a past sponsorship using GraphQL. Use when you need to sponsor a maintainer through GitHub Sponsors with a specified amount and privacy level.
- **Create Sponsors Tier** - Tool to create a new payment tier for your GitHub Sponsors profile using GraphQL. Use when you need to add a new sponsorship tier with a specific monthly price and description. The amount is specified in dollars and will be converted to cents automatically.
- **Create or Update Organization Secret with LibSodium** - Creates or updates a Dependabot organization secret, requiring the secret value to be pre-encrypted with LibSodium using the organization's public key obtained from the 'Get an organization public key' endpoint.
- **Create user list** - Tool to create a new user list on GitHub. Use when you need to organize and group GitHub users for easier tracking and management.
- **Create view for user project** - Tool to create a new view in a user-owned GitHub project (Projects V2). Use when you need to add a customized view with specific layout, filters, and visible fields to organize project items. Note: This action works with GitHub Projects V2. The view can be configured with different layouts (table, board, roadmap) and optional filters. The visiblefields parameter is not applicable to roadmap layouts.
- **Decline a repository invitation** - Declines a specific, pending repository invitation for the authenticated user, identified by its invitationid.
- **Delete access restrictions** - Removes all user, team, and app-based access restrictions from a protected branch.
- **Delete admin branch protection** - Removes admin enforcement from a protected branch (branch name cannot contain wildcard characters) in a repository.
- **Delete a file** - Deletes a file by path from a GitHub repository. The file's blob SHA is automatically fetched if not provided.
- **Delete a package version for the authenticated user** - Deletes an existing package version associated with the authenticated user.
- **Delete an app authorization** - Deletes an OAuth application grant for a user, which revokes ALL OAuth tokens and their associated authorizations for the application. This endpoint is only accessible to OAuth App owners and requires Basic Authentication using the OAuth App's clientid and clientsecret.
- **Delete an app token** - Revokes a single OAuth access token for an OAuth App or GitHub App with OAuth authorization. IMPORTANT: This endpoint requires Basic Authentication using the OAuth App's clientid as username and clientsecret as password. It CANNOT be called with personal access tokens, GitHub App installation tokens, or any other token type. You must be the OAuth App owner to use this endpoint.
- **Delete a reference** - Deletes a Git reference from a repository; 'ref' must be fully qualified (e.g., 'refs/heads/branch' or 'refs/tags/tag').
- **Delete a release** - Permanently deletes a specific release, its assets, and potentially its associated Git tag from a repository.
- **Delete a release asset** - Deletes a specific release asset from a GitHub repository; this action is idempotent.
- **Delete a release reaction** - Deletes a reaction from a GitHub release, provided the repository, release, and reaction exist.
- **Delete a repository** - Permanently deletes the specified repository; this is a destructive, irreversible action that requires admin privileges for the repository.
- **Delete a repository invitation** - Deletes an active repository invitation, permanently revoking a user's access to collaborate on the specified repository.
- **Delete a repository ruleset** - Permanently deletes a repository ruleset.
- **Delete a repository secret** - Deletes a named GitHub Actions secret from a specified repository; this operation is destructive and idempotent, and requires the repository to exist.
- **Delete a repository subscription** - Deletes the authenticated user's subscription to a specified repository if it exists, effectively 'unwatching' it.
- **Delete a repository variable** - Deletes a named variable (e.g., for GitHub Actions workflows) from a repository; the repository and the variable must already exist.
- **Delete a repository webhook** - Deletes a specific webhook from a repository.
- **Delete a review comment for a pull request** - Deletes a specific pull request review comment.
- **Delete an artifact** - Deletes a GitHub artifact by its ID within a repository, typically resulting in an empty response (HTTP 204 No Content) on success.
- **Delete a secret for the authenticated user** - Deletes an existing Codespaces secret for the authenticated user by secretname. This is a destructive and irreversible operation. Returns 404 if the secret does not exist.
- **Delete a self hosted runner from an organization** - Forces the removal of a self-hosted runner from a GitHub organization. This endpoint can be used to completely remove the runner when the machine you were using no longer exists. The runner will be immediately disconnected from GitHub Actions. Requires admin:org scope and organization admin access. Returns 204 No Content on successful deletion.
- **Delete a self hosted runner from a repository** - Removes a specific self-hosted runner (by runnerid) from a repository, if registered there; this is idempotent.
- **Delete a tag protection state for a repository** - DEPRECATED: This API was sunset on August 30, 2024. Use GITHUBDELETEAREPOSITORYRULESET instead to manage tag protection rules via repository rulesets.
- **Delete a team** - Deletes a team (and any child teams) from an organization.
- **Delete a thread subscription** - Call this to mute a specific notification thread by deleting the user's subscription; notifications may still occur if the user is @mentioned, comments, or due to repository watch settings.
- **Delete an autolink reference from a repository** - Deletes a specific autolink reference (which automatically links external resource IDs like JIRA-123 to URLs) from the specified repository.
- **Delete a workflow run** - Deletes a specific workflow run from a repository.
- **Delete branch protection** - Removes all protection rules from a specific branch in a GitHub repository; the branch must currently have protection rules enabled.
- **Delete a code scanning analysis from a repository** - Deletes a specific code scanning analysis by its ID from a repository; confirmdelete must be true if it's the last analysis of its type for a given tool and reference to prevent data loss.
- **Delete a codespace for the authenticated user** - Deletes a specific codespace owned by the authenticated user; this is a destructive action and the codespace must exist.
- **Delete a commit comment** - Deletes a specific commit comment, identified by its commentid, from the specified repository; the comment must exist.
- **Delete a commit comment reaction** - Deletes a reaction from a commit comment in a GitHub repository.
- **Delete commit signature protection** - Disables GPG commit signature protection for a specific branch in a GitHub repository, meaning commits pushed to this branch no longer require GPG signing.
- **Delete a custom organization role** - Deletes a custom organization role (which should not be actively assigned) by its ID; a 204 No Content response indicates success.
- **Delete dependabot secret by name** - Deletes a specific Dependabot secret, identified by its name, from a given repository if both the repository and secret exist.
- **Delete a deploy key** - Deletes a specific deploy key from a repository; to change a key's properties or access scope, the existing key must be deleted and a new one created.
- **Delete a deployment** - Permanently deletes a specified inactive deployment from a repository.
- **Delete a deployment branch policy** - Deletes a specific deployment branch or tag policy, identified by its ID, from a given environment within a repository.
- **Delete a discussion** - Deletes a specific team discussion, identified by its number, from an organization's team.
- **Delete a discussion comment** - Deletes a specific comment from an existing team discussion within an organization, provided the specified organization, team, discussion, and comment all exist.
- **Delete authenticated user email address** - Sends an empty request body to DELETE /user/emails to attempt deletion of user email addresses; the API typically requires specific emails, so outcome may vary.
- **Delete an environment** - Deletes an existing deployment environment from an existing repository.
- **Delete an environment secret** - Deletes an existing and accessible secret from a specified environment within a GitHub repository, returning an empty dictionary on success or error details otherwise.
- **Delete an environment variable** - Deletes a named environment variable from a specified, existing environment within a GitHub repository.
- **Delete a gist** - Permanently deletes an existing GitHub gist, specified by its gistid; this action is destructive and cannot be undone.
- **Delete a gist comment** - Deletes a specific comment from a GitHub Gist using its gistid and commentid.
- **Delete GitHub Actions cache by ID** - Deletes a specific GitHub Actions cache from a repository using its unique cacheid.
- **Delete a GitHub Pages site** - Deletes the GitHub Pages site for the specified repository; completes without error if no site is currently enabled.
- **Delete an issue comment** - Permanently deletes a specific comment by its ID from an issue or pull request, if the repository exists and the comment ID is valid.
- **Delete an issue comment reaction** - Deletes a reaction from an issue comment in a repository; the repository, comment, and reaction must exist.
- **Delete an issue reaction** - Permanently removes a specific reaction from an issue in a GitHub repository.
- **Delete a label** - Permanently removes an existing label from a repository.
- **Delete a milestone** - Deletes the specified milestone if it exists; this operation is idempotent, typically returning a 404 if the milestone is not found or already deleted.
- **Delete an organization** - Deletes a GitHub organization and its repositories; this is a destructive action and the organization name will be unavailable for reuse for approximately 90 days.
- **Delete an organization secret** - Permanently deletes a secret from a GitHub organization, making it inaccessible to GitHub Actions workflows or other tools.
- **Delete an organization variable** - Deletes a named GitHub Actions variable from a specified organization.
- **Delete an organization webhook** - Deletes a specific webhook, identified by hookid, from an existing organization.
- **Delete a codespace from the organization** - Permanently deletes a specific codespace belonging to a member of the specified organization.
- **Delete a package for an organization** - Deletes a specific package in an organization; cannot delete public packages with over 5,000 downloads.
- **Delete a package for the authenticated user** - Permanently deletes a specific package owned by the authenticated user; public packages downloaded over 5,000 times cannot be deleted via this API.
- **Delete package version** - Tool to delete a package version using GitHub GraphQL API. Use when you need to remove a specific version of a package by its global node ID.
- **Delete package version for an organization** - Deletes a specific package version within an organization; requires admin permissions for packages with over 5,000 downloads.
- **Delete package version for a user** - Permanently and irreversibly deletes a specific version of a package owned by the specified user.
- **Delete a pending review for a pull request** - Deletes a pending (unsubmitted) review from a pull request; this is only possible if the review has not yet been submitted.
- **Delete a project** - Deletes the specified GitHub project (Projects V2) using the GraphQL API. Note: This action uses GitHub's Projects V2 GraphQL API. The legacy Projects (classic) REST API was sunset on April 1, 2025 and is no longer available. The project is permanently deleted and cannot be recovered. The user must have admin permissions for the project to delete it.
- **Delete a project card (Classic - Deprecated)** - Deletes a project card from a GitHub 'Project (classic)'; this operation is idempotent. DEPRECATION NOTICE: GitHub Classic Projects (V1) and its REST API were sunset on April 1, 2025. This action may return a 404 error on GitHub.com. For new projects, use GitHub Projects V2 which uses the GraphQL API instead.
- **Delete a project field (column)** - Deletes a project field (column) from a GitHub Projects V2 project using the GraphQL API. IMPORTANT: GitHub Classic Projects REST API was sunset on April 1, 2025. This action now uses the GitHub Projects V2 GraphQL API with the deleteProjectV2Field mutation. Note: The built-in Status field cannot be deleted as it is a core field in GitHub Projects V2. Only custom fields can be deleted.
- **Delete project item for user** - Tool to delete a project item for a user in GitHub Projects V2. Use when you need to remove an item from a user's project. Requires the project item's GraphQL node ID (starts with 'PVTI'). Uses the GitHub GraphQL API deleteProjectV2Item mutation.
- **Delete a pull request comment reaction** - Deletes a specific reaction from a pull request review comment, provided the comment and reaction exist on that comment within the specified repository.
- **Delete pull request review protection** - Disables the requirement for pull request reviews before merging for a specific, existing branch in an existing repository; this action is idempotent and will succeed even if the protection is not currently enabled.
- **Delete repo codespace secret by name** - Deletes a specific Codespace secret from a repository by its name; this action is idempotent and will succeed even if the secret doesn't exist.
- **Delete social accounts for the authenticated user** - Deletes currently linked social media account URLs from the authenticated user's GitHub profile.
- **Delete team discussion comment reaction** - Deletes a reaction from a team discussion comment, given the organization name, team slug, discussion number, comment number, and reaction ID.
- **Delete team discussion reaction** - Permanently deletes a specific reaction from a team discussion within an organization.
- **Delete User List** - Tool to delete a GitHub user list using GraphQL. Use when you need to remove a user list from a GitHub account.
- **Delete a package for a user** - Deletes a package owned by the specified user, requiring admin permissions for the authenticated user; deletion of public packages with over 5,000 downloads may require GitHub support.
- **Delete workflow run logs** - Deletes all logs for a specific workflow run in a GitHub repository, provided the repository and run exist.
- **Disable a custom protection rule for an environment** - Disables a specific, currently active custom deployment protection rule for an existing environment within a GitHub repository.
- **Disable a workflow** - Disables a specified workflow (by ID or filename) in a given GitHub repository, preventing new automatic triggers; any in-progress runs will continue.
- **Disable private vulnerability reporting for a repository** - Disables private vulnerability reporting for an existing GitHub repository, preventing direct private vulnerability reports to maintainers via GitHub's interface for this repository.
- **Disable Repository Actions In Org** - Removes a repository from the list of selected repositories enabled for GitHub Actions in an organization. Only works when the organization's enabledrepositories policy is set to selected. Requires admin:org scope.
- **Dismiss a review for a pull request** - Dismisses an APPROVED or CHANGESREQUESTED review on a pull request with a mandatory explanatory message. IMPORTANT: Only reviews in APPROVED or CHANGESREQUESTED state can be dismissed. Reviews in COMMENTED, PENDING, or already DISMISSED state will return a 422 error. To dismiss a review on a protected branch, you must be a repository admin or be authorized to dismiss pull request reviews.
- **Download an artifact** - Downloads a GitHub Actions workflow artifact as a ZIP file. Returns the artifact as a downloadable file. Use GITHUBLISTARTIFACTSFORAREPOSITORY or GITHUBLISTWORKFLOWRUNARTIFACTS to get valid artifact IDs first.
- **Download a repository tarball** - Downloads a repository's source code as a tarball (.tar.gz) archive for a specific Git reference, if the repository is accessible.
- **Download a repository archive ZIP** - Downloads a repository's source code as a ZIP archive for a specific Git reference (branch, tag, or commit SHA). IMPORTANT SIZE LIMITATION: This action may fail with 'payload too large' errors for large repositories due to platform size restrictions. If you encounter size limit issues, consider these alternatives: - Use GITHUBGETREPOSITORYCONTENT to fetch specific files or directories (also lists directory contents) - Clone the repository using git if you need the full codebase Best suited for: small to medium repositories, downloading specific tagged releases, or quick code inspection.
- **Download job logs for a workflow run** - Downloads logs for a specific job in a GitHub Actions workflow run, contingent on the repository's existence and the job ID being valid and having produced logs.
- **Download workflow run attempt logs** - Downloads a ZIP archive of logs for a specific workflow run attempt. Returns a downloadable ZIP file containing logs for all jobs and steps in the workflow run.
- **Download workflow run logs** - Downloads logs for a specific GitHub Actions workflow run as a ZIP archive containing log files for each job in the workflow.
- **Enable a workflow** - Reactivates a currently disabled GitHub Actions workflow within a repository using its workflow ID or filename.
- **Enable GitHub actions in selected repositories** - Sets the specific repositories that can use GitHub Actions within an organization by replacing the current list; only applies if the organization's Actions policy is 'selected repositories'.
- **Enable private vulnerability reporting for a repository** - Enables private vulnerability reporting for a repository, allowing security researchers to privately submit vulnerability reports to maintainers.
- **Enable repo for Github Actions** - Adds a repository to the list of selected repositories enabled for GitHub Actions in an organization. Requires the organization's 'enabledrepositories' policy to be set to 'selected'.
- **Encrypt and update dev secret** - Creates or updates a repository's development environment secret using an encryptedvalue and its corresponding keyid; the secret must be pre-encrypted with the repository's Codespaces public key.
- **Encrypt org dev env secret** - Creates or updates an organization's GitHub Codespaces secret using an encrypted value and its corresponding public key ID.
- **Export a codespace for the authenticated user** - Triggers an export of a user's specified codespace, automatically stopping it if active, and returns its export status and download URL.
- **Export an SBOM for a repository** - Exports the software bill of materials (SBOM) in SPDX JSON format for a repository, if its dependency graph is enabled and it has at least one commit.
- **Find Pull Requests** - Primary tool to find and search pull requests. Supports filtering by repository, author, state, labels, and merge status, and returns structured PR data for reliable use in workflows. GitHub search results are capped at ~1000 total items; narrow filters when totals approach this limit. createdsince/updatedsince filter on creation/update timestamps, not mergedat; apply merge-date filtering client-side.
- **Find Repositories** - AI-optimized repository search with smart filtering by language, stars, topics, and ownership. Builds intelligent search queries and returns clean, actionable repository data. Check incompleteresults in the response — when true, results are non-exhaustive. Search endpoints are rate-limited to ~30 requests/minute (vs. 5000/hour for general REST); apply backoff on 403/429. Total results are capped at ~1000 per query regardless of pagination.
- **Follow Organization (GraphQL)** - Tool to follow a GitHub organization using GraphQL. Use when you need to make the authenticated user follow an organization.
- **Follow a user** - Allows the authenticated user to follow the GitHub user specified by username; this action is idempotent and the user cannot follow themselves.
- **Follow User (GraphQL)** - Tool to follow a GitHub user using GraphQL. Use when you need to make the authenticated user follow another user.
- **Force cancel a workflow run** - Forcefully cancels a queued or in-progress GitHub Actions workflow run, bypassing conditions like always() that would otherwise continue execution. Only use when the standard cancel endpoint fails. Cannot cancel completed workflow runs. Requires write permissions to the repository.
- **Fork a gist** - Forks a specified public gist, creating a copy under the authenticated user's account.
- **Generate release notes content for a release** - Generates Markdown release notes content (listing changes, pull requests, and contributors) for a GitHub repository release, customizable via tags and a configuration file.
- **Get a blob** - Retrieves the raw, typically Base64-encoded, content of a file (blob) from a GitHub repository using its SHA hash, if the repository and blob SHA exist.
- **Get a branch** - Retrieves detailed information for a specified branch within a GitHub repository.
- **Get access restrictions** - Lists users, teams, and GitHub Apps with push access to a branch; this branch must be protected in repository settings for detailed restrictions, otherwise expect a 404 or empty response.
- **Get a commit** - Retrieves a specific commit from a repository by its owner, name, and a valid commit reference (SHA, branch, or tag), supporting pagination for large diffs.
- **Get admin branch protection** - Checks if repository administrators are subject to the branch protection rules on a specific branch.
- **Get all API versions** - Retrieves all officially supported, date-based (e.g., "2022-11-28") versions of the GitHub REST API from the /versions endpoint.
- **Get all contributor commit activity** - Retrieves commit activity (total commits, weekly additions/deletions/commits) for all contributors to a repository; may require a retry if GitHub returns 202 while preparing data.
- **Get all deployment protection rules for an environment** - Lists all enabled custom deployment protection rules for a specific environment in a repository; the environment must exist and be configured for deployments.
- **Get a milestone** - Retrieves detailed information for a specific milestone within a GitHub repository by its number.
- **Get an app** - Retrieves publicly available information for an existing GitHub App, identified by its unique URL-friendly appslug.
- **Get an artifact** - Gets a specific artifact for a repository by artifactid. This action retrieves the details of a specific artifact from a GitHub repository using the artifact's unique identifier. It allows users to access information about artifacts stored in the repository.
- **Get an assignment** - Retrieves detailed information for a specific GitHub Classroom assignment if the authenticated user is an administrator of the classroom.
- **Get an autolink reference of a repository** - Retrieves a specific autolink reference (which automatically hyperlinks text like 'JIRA-123' to an external system) for a repository using its unique ID; requires administrator access to the repository.
- **Get an environment** - Retrieves the details of a specific deployment environment for a given repository, including its name, configurations, and current status.
- **Get an environment public key** - Retrieves the public key for a specified GitHub repository environment, used to encrypt secrets for GitHub Actions.
- **Get an environment secret** - Retrieves metadata (name and timestamps) for a single secret in a GitHub Actions environment. Note: The actual secret value is never returned by this API for security reasons.
- **Get an environment variable** - Retrieves a specific environment variable from a GitHub Actions environment by repository owner, repository name, environment name, and variable name.
- **Get an issue** - Retrieves detailed information about a specific issue in a repository using the owner, repository name, and issue number.
- **Get an issue comment** - Action to get an issue comment.
- **Get an issue event** - Fetches details of a specific issue event for a given repository and event ID.
- **Get an organization** - Get an organization.
- **Get an organization public key** - Action for GetAnOrganizationPublicKey.
- **Get an organization role** - Retrieves a specific GitHub organization role by its ID.
- **Get an organization secret** - Gets an organization secret's metadata (e.g., name, creation/update dates, visibility), but not its encrypted value.
- **Get an organization variable** - Retrieves details (name, value, visibility, timestamps) of a specific, existing variable for an existing GitHub organization.
- **Get an organization webhook** - Retrieves the full configuration, including subscribed events and delivery settings, for an existing organization webhook.
- **Get a package for an organization** - Retrieves a specific package (by type and name) from an organization, if both the package and organization exist.
- **Get a package for a user** - Retrieves metadata for a specific package owned by a GitHub user, using package type, name, and username as identifiers.
- **Get a package for the authenticated user** - Retrieves detailed information for a specific package owned by the authenticated user.
- **Get a package version for an organization** - Retrieves detailed information for a specific version of a package within an organization.
- **Get a package version for a user** - Retrieves a specific public package version associated with a GitHub user.
- **Get authenticated user package version** - Retrieves detailed information for an existing specific package version associated with the authenticated user, identified by its type, name, and version ID.
- **Get a project** - Retrieves detailed information for a specific GitHub project (V2) using its project number and owner. Note: This action uses GitHub's Projects V2 REST API. The legacy Projects (classic) REST API was sunset on April 1, 2025. The project is identified by its number (visible in the project URL) and owner (either a username or organization name). If no owner is specified, the authenticated user is assumed.
- **Get a project card** - Retrieves all details of a specific project card, given its unique cardid. DEPRECATION NOTICE: GitHub Projects (classic) REST API was sunset on April 1, 2025. This action only works with existing classic project cards that were created before the sunset date. For new projects, use GitHub Projects V2 (GraphQL API) instead.
- **Get a project column (Classic - Deprecated)** - Retrieves detailed information for a specific project column from GitHub Projects (classic). DEPRECATION NOTICE: GitHub Classic Projects (V1) and its REST API were sunset on April 1, 2025. This action will return 404 for most requests on GitHub.com. However, it may still work on GitHub Enterprise Server instances where classic projects are enabled. For new projects, use GitHub Projects V2 which uses the GraphQL API instead. See: Returns column details including: id, name, url, projecturl, cardsurl, nodeid, createdat, and updatedat timestamps.
- **Get a pull request** - Retrieves a specific pull request from a GitHub repository using its owner, repository name, and pull request number.
- **Get a reference** - Retrieves a specific Git reference (e.g., a branch, tag, or fully qualified like 'heads/main') from a GitHub repository. The reference must exist in the repository; use 'listmatchingreferences' first if unsure what references are available.
- **Get a release** - Gets a specific release from a GitHub repository, provided the repository is accessible and the release exists.

## How does Viktor work with GitHub?

1. Add Viktor to Slack or Microsoft Teams.
2. Connect GitHub with one-click OAuth - Viktor handles authentication.
3. Ask in plain English. Viktor runs the GitHub actions, chains them with your other tools when needed, and reports back. Sensitive actions wait for your approval.

## What is a GitHub AI agent?

A GitHub AI agent is an AI that connects to your GitHub account and completes work in it - it doesn't just answer questions about GitHub, it takes the actions. Viktor is that agent: an AI employee that works in GitHub on your behalf and delivers the finished result in Slack or Microsoft Teams.

Unlike workflow builders such as Zapier or Make, there is nothing to configure - no triggers to map, no workflows to maintain. You describe the outcome in plain English, and Viktor picks the right GitHub actions, chains them with the other 3,200+ tools it connects to, and asks for approval before anything sensitive runs.

### About GitHub

GitHub is a code hosting platform for version control and collaboration, offering Git-based repository management, issue tracking, and continuous integration features

## Security and permissions

- One-click OAuth - Viktor never sees your password, and you can revoke access at any time.
- Review-first approvals: sensitive GitHub actions wait for your sign-off before they run.
- Isolated compute per team, encrypted in transit and at rest - and your data is never used to train models.
- SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

## FAQ

### Does Viktor integrate with GitHub?

Yes. GitHub is one of the 3,200+ tools Viktor connects to, via a managed connector. Once connected, anyone on your team can put Viktor to work in GitHub from Slack or Microsoft Teams - no workflow builder, no code.

### How do I connect GitHub to Viktor?

Ask Viktor in Slack or Microsoft Teams to connect GitHub, then approve the one-click OAuth prompt. Viktor never sees your password, handles authentication itself, and starts working right away. Setup takes about two minutes, and you can revoke access at any time.

### What can Viktor do in GitHub?

Viktor can run 300 GitHub actions, including Get a blob, Get an app, and Fork a gist - and chain them with other tools in a single request. In practice that means Viktor helps you build, test, and deploy code through CI/CD pipelines. If a task spans several actions, Viktor plans the sequence itself and reports back when the work is done.

### Do I need to build workflows to automate GitHub?

No. Viktor isn't a workflow builder - there are no triggers to map and no workflows to maintain. You ask for the outcome in plain English in Slack or Microsoft Teams, and Viktor decides which GitHub actions to take, runs them, and reports back.

### Is my GitHub data secure with Viktor?

Yes. Viktor connects to GitHub in one click via OAuth, runs in an isolated environment per team, and never trains models on your data. Sensitive actions wait for your approval, and you can revoke access at any time. Viktor is SOC 2 Type 1 compliant, with Type 2 and ISO 27001 in progress.

### How much does the GitHub integration cost?

Nothing extra - every integration, including GitHub, is available on every plan. You can start free with up to $100 in credits, no credit card required; paid plans start at $50/month.

### Can Viktor use GitHub together with my other tools?

Yes - that's the point. Viktor connects to 3,200+ tools and works across them in a single run: it can pull data from GitHub, cross-reference it with another tool - for example Slack or Gmail, and deliver the finished result in Slack or Microsoft Teams.

## Viktor uses GitHub together with

- [Slack](https://viktor.com/integrations/slack)
- [Gmail](https://viktor.com/integrations/gmail)
- [Google Sheets](https://viktor.com/integrations/google-sheets)
- [HubSpot](https://viktor.com/integrations/hubspot)
- [Notion](https://viktor.com/integrations/notion)
- [Salesforce](https://viktor.com/integrations/salesforce)

## More Productivity integrations

- [Asana](https://viktor.com/integrations/asana)
- [Basecamp](https://viktor.com/integrations/basecamp)
- [Monday.com](https://viktor.com/integrations/monday-com)
- [Jira](https://viktor.com/integrations/jira)
- [Linear](https://viktor.com/integrations/linear)
- [Miro](https://viktor.com/integrations/miro)
- [ServiceM8](https://viktor.com/integrations/servicem8)
- [Confluence](https://viktor.com/integrations/confluence)

## Get started

Viktor is free to start - up to $100 in credits, no credit card required. All 3,200+ integrations are included on every plan. Sign up at https://viktor.com or browse all integrations at https://viktor.com/integrations.
