Use Github with AI Agents

A platform for version control and collaboration, allowing you to work together on projects from anywhere.
🔗 Connect and Use Github
1. 🔑 Connect your Github account
2. ✅ Select an action
3. 🚀 Go live with the agent
What do you want to do?
Actions
meta
security-advisories
apps
classroom
codes-of-conduct
emojis
dependabot
secret-scanning
activity
gists
gitignore
issues
licenses
markdown
orgs
actions
oidc
code-scanning
codespaces
copilot
packages
interactions
migrations
projects
repos
billing
teams
reactions
rate-limit
checks
dependency-graph
git
pulls
search
users
Main

API actions for Github for AI assitants/agents

Language
JS
PYTHON

Projects

Move A Project Column

The endpoint enables moving a project column to positions like 'first', 'last', or after a specified column ID, needing a column ID and position. See more at GitHub API docs.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_MOVE_A_PROJECT_COLUMN])

Get A Project

Gets a project by its `id`. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410 Gone` statu
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_PROJECT])

Update A Project

Updates a project board's information. Returns a `404 Not Found` status if projects are disabled. If you do not have sufficient privileges to perform this action, a `401 Unauthorized` or `410
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_PROJECT])

Delete A Project

Deletes a project board. Returns a `404 Not Found` status if projects are disabled.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_PROJECT])

List Project Collaborators

The project's collaborators list encompasses outside participants, direct collaborators, team members, those with default permissions, and org owners. Only org owners or project admins can vie
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PROJECT_COLLABORATORS])

Add Project Collaborator

Adds a collaborator to an organization project and sets their permission level. You must be an organization owner or a project `admin` to add a collaborator.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_PROJECT_COLLABORATOR])

Remove User As A Collaborator

Removes a collaborator from an organization project. You must be an organization owner or a project `admin` to remove a collaborator.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_USER_AS_A_COLLABORATOR])

Get Project Permission For A User

Returns the collaborator's permission level for an organization project. Possible values for the `permission` key: `admin`, `write`, `read`, `none`. You must be an organization owner or a proj
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_PROJECT_PERMISSION_FOR_A_USER])

List Project Columns

Lists the project columns in a project.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PROJECT_COLUMNS])

Create A Project Column

Creates a new project column.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_PROJECT_COLUMN])

Rate-limit

Get Rate Limit Status For The Authenticated User

The API divides rate limits into categories like `core`, `search`, and others. Certain endpoint uses don't impact REST API limits. The `rate` object is now deprecated; use `core`.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_RATE_LIMIT_STATUS_FOR_THE_AUTHENTICATED_USER])

Repos

Get A Repository

In a forked repository, `parent` is the direct source it was forked from, and `source` is the original network source. Viewing `security_and_analysis` requires admin, owner, or security manage
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_REPOSITORY])

Update A Repository

**Note**: To edit a repository's topics, use the [Replace all repository topics](https://docs.github.com/rest/repos/repos#replace-all-repository-topics) endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_REPOSITORY])

Delete A Repository

Deleting a repository needs admin rights. If prevented by an organization owner, a `403 Forbidden` response occurs. OAuth app tokens and classic personal access tokens require the `delete_repo
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_REPOSITORY])

Actions

List Artifacts For A Repository

Lists all artifacts for a repository. Anyone with read access to the repository can use this endpoint. OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this e
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ARTIFACTS_FOR_A_REPOSITORY])

Get An Artifact

Gets a specific artifact for a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) ne
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ARTIFACT])

Delete An Artifact

Deletes an artifact for a workflow run. OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_ARTIFACT])

Download An Artifact

This endpoint provides a temporary URL to download a repository archive in zip format, expiring after 1 minute. Check the `Location:` in the response for the URL. Requires `repo` scope for OAu
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DOWNLOAD_AN_ARTIFACT])

Get Github Actions Cache Usage For A Repository

This API fetches GitHub Actions cache usage for a repository, updating roughly every 5 minutes. It's accessible by anyone with read access, but private repos require OAuth or personal access t
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_ACTIONS_CACHE_USAGE_FOR_A_REPOSITORY])

List Github Actions Caches For A Repository

Lists the GitHub Actions caches for a repository. OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_GITHUB_ACTIONS_CACHES_FOR_A_REPOSITORY])

Clear Repository Cache By Key

The text outlines the process of deleting GitHub Actions caches for a repository via a full cache key, offering an option to use a Git ref for precise removals. It mentions that OAuth and pers
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CLEAR_REPOSITORY_CACHE_BY_KEY])

Delete Github Actions Cache By Id

Deletes a GitHub Actions cache for a repository, using a cache ID. OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_GITHUB_ACTIONS_CACHE_BY_ID])

Get A Job For A Workflow Run

Gets a specific job in a workflow run. Anyone with read access to the repository can use this endpoint. If the repository is private, OAuth tokens and personal access tokens (classic) need the
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_JOB_FOR_A_WORKFLOW_RUN])

Download Job Logs For A Workflow Run

Obtain a temporary (1-minute expiry) redirect URL for downloading plain text workflow job logs from the `Location:` response header. Access needs repository read rights, with private repositor
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DOWNLOAD_JOB_LOGS_FOR_A_WORKFLOW_RUN])

Re Run A Job From A Workflow Run

Re-run a job and its dependent jobs in a workflow run. OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_RE_RUN_A_JOB_FROM_A_WORKFLOW_RUN])

Customize Oidc Subject Claim Template

Gets the customization template for an OpenID Connect (OIDC) subject claim. OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CUSTOMIZE_OIDC_SUBJECT_CLAIM_TEMPLATE])

Custom Oidcsubject Claim Template Setter

Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository. OAuth app tokens and personal access tokens (classic) need the `repo
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CUSTOM_OIDCSUBJECT_CLAIM_TEMPLATE_SETTER])

List Repository Organization Secrets

This text outlines that authorized users with collaborator access can manage organization secrets linked to a repository, without seeing their encrypted values. OAuth or personal access tokens
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORY_ORGANIZATION_SECRETS])

List Repository Organization Variables

This text outlines that to create, update, or read organization variables shared with a repository, authenticated users need collaborator access. Using the endpoint requires OAuth or classic p
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORY_ORGANIZATION_VARIABLES])

Get Github Actions Permissions For A Repository

The text outlines retrieving the GitHub Actions permissions policy for a repository, highlighting the enabled status, allowed actions/workflows, and the requirement for `repo` scope in OAuth a
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_ACTIONS_PERMISSIONS_FOR_A_REPOSITORY])

Set Github Actions Permissions For A Repository

Sets the GitHub Actions permissions policy for enabling GitHub Actions and allowed actions and reusable workflows in the repository. OAuth app tokens and personal access tokens (classic) need
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_GITHUB_ACTIONS_PERMISSIONS_FOR_A_REPOSITORY])

Get The Level Of Access For Workflows Outside Of The Repository

This endpoint determines access levels for workflows outside a private repository to its actions and reusable workflows. Relevant for private repositories, requiring `repo` scope for OAuth and
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_THE_LEVEL_OF_ACCESS_FOR_WORKFLOWS_OUTSIDE_OF_THE_REPOSITORY])

Set The Level Of Access For Workflows Outside Of The Repository

This endpoint controls the access level for external workflows to actions and reusable workflows in private repositories. It requires `repo` scope for OAuth and classic personal access tokens.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_THE_LEVEL_OF_ACCESS_FOR_WORKFLOWS_OUTSIDE_OF_THE_REPOSITORY])

Get Allowed Actions And Reusable Workflows For A Repository

This endpoint retrieves settings for allowed actions and workflows in a repository with `allowed_actions` set to `selected`. Requires `repo` scope for OAuth/personal access tokens. See guide f
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ALLOWED_ACTIONS_AND_REUSABLE_WORKFLOWS_FOR_A_REPOSITORY])

Set Allowed Actions And Reusable Workflows For A Repository

This endpoint configures allowed actions and workflows in a repository, requiring the `repo` scope for OAuth and classic tokens. The `allowed_actions` policy must be set to `selected`. See doc
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_ALLOWED_ACTIONS_AND_REUSABLE_WORKFLOWS_FOR_A_REPOSITORY])

Get Default Workflow Permissions For A Repository

This document details the default workflow permissions of the `GITHUB_TOKEN` and its ability to approve pull requests in repositories. It also notes that OAuth and personal access tokens need
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_DEFAULT_WORKFLOW_PERMISSIONS_FOR_A_REPOSITORY])

Set Default Workflow Permissions For A Repository

Defines default `GITHUB_TOKEN` permissions and control over GitHub Actions' ability to authorize pull requests. Requires `repo` scope for OAuth or personal tokens. Details at GitHub docs.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_DEFAULT_WORKFLOW_PERMISSIONS_FOR_A_REPOSITORY])

List Self Hosted Runners For A Repository

Lists all self-hosted runners configured in a repository. Authenticated users must have admin access to the repository to use this endpoint. OAuth app tokens and personal access tokens (classi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SELF_HOSTED_RUNNERS_FOR_A_REPOSITORY])

List Runner Applications For A Repository

Lists binaries for the runner application that you can download and run. Authenticated users must have admin access to the repository to use this endpoint. OAuth app tokens and personal access
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_RUNNER_APPLICATIONS_FOR_A_REPOSITORY])

Create Configuration For A Just In Time Runner For A Repository

Generates a configuration that can be passed to the runner application at startup. The authenticated user must have admin access to the repository. OAuth tokens and personal access tokens (cla
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_CONFIGURATION_FOR_A_JUST_IN_TIME_RUNNER_FOR_A_REPOSITORY])

Create A Registration Token For A Repository

This endpoint provides a registration token for configuring a self-hosted runner, which expires in 1 hour. It requires admin access to the repository and OAuth or personal access tokens with `
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_REGISTRATION_TOKEN_FOR_A_REPOSITORY])

Create A Remove Token For A Repository

This endpoint provides a token to remove a self-hosted runner from a repository, expiring in 1 hour. Users require admin access and the `repo` scope for OAuth/personal tokens to use it.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_REMOVE_TOKEN_FOR_A_REPOSITORY])

Get A Self Hosted Runner For A Repository

Gets a specific self-hosted runner configured in a repository. Authenticated users must have admin access to the repository to use this endpoint. OAuth app tokens and personal access tokens (c
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_SELF_HOSTED_RUNNER_FOR_A_REPOSITORY])

Delete A Self Hosted Runner From A Repository

This endpoint allows admins to remove a self-hosted runner from a repository, especially useful if the machine is no longer available. Users must have admin access and the `repo` scope on thei
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_SELF_HOSTED_RUNNER_FROM_A_REPOSITORY])

List Labels For A Self Hosted Runner For A Repository

Lists all labels for a self-hosted runner configured in a repository. Authenticated users must have admin access to the repository to use this endpoint. OAuth app tokens and personal access to
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_LABELS_FOR_A_SELF_HOSTED_RUNNER_FOR_A_REPOSITORY])

Add Custom Labels To A Self Hosted Runner For A Repository

Adds custom labels to a self-hosted runner configured in a repository. Authenticated users must have admin access to the organization to use this endpoint. OAuth tokens and personal access tok
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_CUSTOM_LABELS_TO_A_SELF_HOSTED_RUNNER_FOR_A_REPOSITORY])

Set Custom Labels For A Self Hosted Runner For A Repository

To remove existing and set new custom labels for a self-hosted runner in a repository, admin access is needed. OAuth and classic personal tokens require `repo` scope.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_CUSTOM_LABELS_FOR_A_SELF_HOSTED_RUNNER_FOR_A_REPOSITORY])

Remove Custom Labels From Self Hosted Repository Runner

This endpoint removes custom labels from a self-hosted runner in a repository, returning any read-only labels. Admin access is required, and OAuth or personal access tokens need `repo` scope.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_CUSTOM_LABELS_FROM_SELF_HOSTED_REPOSITORY_RUNNER])

Remove Custom Label From Repo Runner

This endpoint allows admin users to remove a custom label from a self-hosted runner in a repository, returning the remaining labels. A `404` status occurs if the label is absent. OAuth app tok
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_CUSTOM_LABEL_FROM_REPO_RUNNER])

List Workflow Runs For A Repository

This document explains how to access and filter workflow runs in a GitHub repository for users with read access, requiring `repo` scope for private ones. It limits searches to 1,000 results pe
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORY])

Frequently asked questions

What is Composio.dev?

Composio.dev is a platform for building AI applications, designed to make the process of developing AI solutions super easy and fun! It provides a comprehensive set of tools and libraries that simplify the process of developing AI solutions, allowing you to focus on the creative aspects of your project without getting bogged down by the technical details.

How does Composio.dev support Github?

Composio.dev seamlessly integrates with Github, allowing you to leverage its capabilities within the Composio.dev platform. You can utilize Github to call functions across various platforms, including Google, GitHub, and others, making it a breeze to incorporate different services into your AI applications. Additionally, it supports user authentication via OAuth2 and can work in conjunction with other popular frameworks like LangChain and CrewAI, giving you the flexibility to build truly innovative AI solutions.

What models can I use with Github?

With Github, you have access to a wide range of state-of-the-art language models, including GPT-4o (OpenAI), GPT-3.5 (OpenAI), GPT-4 (OpenAI), Claude (Anthropic), PaLM (Google), LLaMA and LLaMA 2 (Meta), Gemini, and many others. This flexibility allows you to choose the model that best suits your specific use case, whether you're building a chatbot, a content creation tool, or any other AI-powered application. You can experiment with different models and find the one that delivers the best performance for your project.

How can I integrate Github into my project?

Composio.dev provides a seamless integration for Github, making it super easy to incorporate this powerful framework into your projects. You can leverage the Composio.dev API to call functions from Github, allowing you to tap into its capabilities with just a few lines of code. The SDK is available in Python, JavaScript, and TypeScript, so you can work with your preferred programming language and integrate Github into your projects seamlessly.

What is the pricing for Github?

Github is completely free to use, with a generous free tier that allows up to 1000 requests per month. This makes it accessible for developers and organizations of all sizes to explore and experiment with this powerful tool without any upfront costs. Whether you're a student working on a personal project or a startup building the next big thing, you can get started with Github without worrying about breaking the bank.

What kind of authentication is supported for Github?

Github supports OAuth2 authentication, ensuring secure and authorized access to its functionalities. You can leverage the Composio.dev API to handle authentication and call functions from Github seamlessly. The SDK is available in Python, JavaScript, and TypeScript for your convenience, making it easy to integrate authentication into your projects and keep your users' data safe and secure.

Can I add Github to my project?

Absolutely! You can easily incorporate Github into your project by utilizing the Composio.dev API. This API allows you to call functions from Github, enabling you to leverage its capabilities within your application. The SDK is available in Python, JavaScript, and TypeScript to facilitate integration, so you can work with the language you're most comfortable with and add Github to your project with ease.

What is the accuracy of Github?

Github is designed to provide highly accurate and reliable results, ensuring that your AI applications perform at their best. The integration with Composio.dev ensures precise function calls, enabling you to build robust and powerful AI applications with confidence. Github's comprehensive framework and the ability to leverage state-of-the-art models ensure reliable and accurate outcomes for your AI development needs, whether you're working on a chatbot, a content creation tool, or any other AI-powered project.

What are some common use cases for Github?

Github can be used for a wide range of AI applications, making it a versatile tool for developers and creators alike. Some common use cases include natural language processing, text generation, question answering, sentiment analysis, and more. It's particularly useful for building chatbots, virtual assistants, content creation tools, and other AI-powered applications that can help you automate tasks, engage with users, and create compelling content. Whether you're working on a personal project or building a product for your startup, Github can help you bring your ideas to life.

How does Github handle data privacy and security?

Data privacy and security are crucial considerations when working with AI systems, and Github takes these issues seriously. It follows industry best practices and adheres to strict data protection regulations, ensuring that your data is kept safe and secure. Github provides robust security measures, such as encryption and access controls, to ensure the confidentiality and integrity of your data. You can rest assured that your sensitive information is protected when using Github for your AI development needs.
+ Integrate seamlessly with your agentic frameworks
Composio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and SizesComposio Works with All Shapes and Sizes
Building for AI across continents🧪