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

Teams

Get Team Membership For A User Legacy

The Teams API's endpoint route is deprecated; use [Get team membership for a user](https://docs.github.com/rest/teams/members#get-team-membership-for-a-user) instead. It shows membership `stat
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_TEAM_MEMBERSHIP_FOR_A_USER_LEGACY])

Add Or Update Team Membership For A User Legacy

The deprecated Teams API for member updates now has a new endpoint for adding members with considerations for synced teams. Invites work upon acceptance, allowing role updates within GitHub En
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_OR_UPDATE_TEAM_MEMBERSHIP_FOR_A_USER_LEGACY])

Remove Team Membership For A User Legacy

The Teams API endpoint is deprecated and will be removed. Users should switch to the "Remove team membership for a user" endpoint. Admin permissions are required for removal. Note: Errors occu
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_TEAM_MEMBERSHIP_FOR_A_USER_LEGACY])

List Team Projects Legacy

The `List organization projects for a team` endpoint is deprecated and will be removed from the Teams API. Users are advised to switch to the `List team projects` endpoint for future needs.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_TEAM_PROJECTS_LEGACY])

Check Team Permissions For A Project Legacy

The Teams API endpoint is deprecated. Use the "Check team permissions for a project" endpoint to verify a team’s permissions (read, write, admin) on projects, including inherited ones.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_TEAM_PERMISSIONS_FOR_A_PROJECT_LEGACY])

Add Or Update Team Project Permissions Legacy

This Teams API endpoint for adding a project to a team is deprecated. Switch to the new endpoint for adding/updating team project permissions. Admin rights required, and both project and team
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_OR_UPDATE_TEAM_PROJECT_PERMISSIONS_LEGACY])

Remove A Project From A Team Legacy

The Teams API endpoint for removing organization projects from a team is deprecated. Use the new endpoint instead. Only team maintainers or org owners can remove projects, unless users have sp
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_A_PROJECT_FROM_A_TEAM_LEGACY])

List Team Repositories Legacy

**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [List team repositories](https://docs
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_TEAM_REPOSITORIES_LEGACY])

Check Team Permissions For A Repository Legacy

The endpoint for checking repositories via Teams API is deprecated. Users should switch to the "Check team permissions for a repository" endpoint, where you can also see team permissions for a
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_TEAM_PERMISSIONS_FOR_A_REPOSITORY_LEGACY])

Add Or Update Team Repository Permissions Legacy

The Teams API is deprecated; use "Add or update team repository permissions" instead. Admins with proper visibility in organization or direct fork repos can modify permissions. It doesn't work
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_OR_UPDATE_TEAM_REPOSITORY_PERMISSIONS_LEGACY])

Remove A Repository From A Team Legacy

The Teams API endpoint is deprecated; use "Remove a repository from a team" instead. Org owners or team maintainers can remove repos; admin access required for members. Repo not deleted by thi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_A_REPOSITORY_FROM_A_TEAM_LEGACY])

List Child Teams Legacy

**Deprecation Notice:** This endpoint route is deprecated and will be removed from the Teams API. We recommend migrating your existing code to use the new [`List child teams`](https://docs.git
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CHILD_TEAMS_LEGACY])

Users

Get The Authenticated User

OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_THE_AUTHENTICATED_USER])

Users Get Authenticated

OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.<<DEPRECATED use get_the_authenticated_user>>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_GET_AUTHENTICATED])

Update The Authenticated User

**Note:** If your email is set to private and you send an `email` parameter as part of this request to update your profile, your privacy settings are still enforced: the email address will not
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_THE_AUTHENTICATED_USER])

List Users Blocked By The Authenticated User

List the users you've blocked on your personal account.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_USERS_BLOCKED_BY_THE_AUTHENTICATED_USER])

Check If A User Is Blocked By The Authenticated User

Returns a 204 if the given user is blocked by the authenticated user. Returns a 404 if the given user is not blocked by the authenticated user, or if the given user account has been identified
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_IF_A_USER_IS_BLOCKED_BY_THE_AUTHENTICATED_USER])

Block A User

Blocks the given user and returns a 204. If the authenticated user cannot block the given user a 422 is returned.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_BLOCK_A_USER])

Unblock A User

Unblocks the given user and returns a 204.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UNBLOCK_A_USER])

Set Primary Email Visibility For The Authenticated User

Sets the visibility for your primary email addresses.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_PRIMARY_EMAIL_VISIBILITY_FOR_THE_AUTHENTICATED_USER])

List Email Addresses For The Authenticated User

Lists all of your email addresses, and specifies which one is visible to the public. OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_EMAIL_ADDRESSES_FOR_THE_AUTHENTICATED_USER])

Users List Emails For Authenticated User

Lists all of your email addresses, and specifies which one is visible to the public. OAuth app tokens and personal access tokens (classic) need the `user:email` scope to use this endpoint.<<DE
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_LIST_EMAILS_FOR_AUTHENTICATED_USER])

Add An Email Address For The Authenticated User

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_AN_EMAIL_ADDRESS_FOR_THE_AUTHENTICATED_USER])

Delete An Email Address For The Authenticated User

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_EMAIL_ADDRESS_FOR_THE_AUTHENTICATED_USER])

List Followers Of The Authenticated User

Lists the people following the authenticated user.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_FOLLOWERS_OF_THE_AUTHENTICATED_USER])

Users List Followers For Authenticated User

Lists the people following the authenticated user.<<DEPRECATED use list_followers_of_the_authenticated_user>>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_LIST_FOLLOWERS_FOR_AUTHENTICATED_USER])

List The People The Authenticated User Follows

Lists the people who the authenticated user follows.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_THE_PEOPLE_THE_AUTHENTICATED_USER_FOLLOWS])

Check If A Person Is Followed By The Authenticated User

The `/user/following/{username}` endpoint checks if the authenticated user follows a specific GitHub user, returning 204 if followed, 404 if not, and error details for other statuses. See API
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_IF_A_PERSON_IS_FOLLOWED_BY_THE_AUTHENTICATED_USER])

Follow A User

To call the specified endpoint, set `Content-Length` to zero. It needs `user:follow` scope for OAuth and classic tokens. Visit the provided URL for more on HTTP methods.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_FOLLOW_A_USER])

Codespaces

List Codespaces For The Authenticated User

Lists the authenticated user's codespaces. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CODESPACES_FOR_THE_AUTHENTICATED_USER])

Create A Codespace For The Authenticated User

Creates a new codespace, owned by the authenticated user. This endpoint requires either a `repository_id` OR a `pull_request` but not both. OAuth app tokens and personal access tokens (classic
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

List Secrets For The Authenticated User

Endpoint lists a user's Codespaces development environment secrets without showing encrypted values. User must have Codespaces access, and OAuth or personal access tokens require `codespace` o
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SECRETS_FOR_THE_AUTHENTICATED_USER])

Get Public Key For The Authenticated User

This endpoint allows users with Codespaces access to encrypt secrets using a public key. Users must encrypt secrets prior to creation or update. OAuth app tokens and personal access tokens nee
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_PUBLIC_KEY_FOR_THE_AUTHENTICATED_USER])

Get A Secret For The Authenticated User

This service allows authenticated users with Codespace access to integrate development environment secrets into codespaces without exposing encrypted values, requiring `codespace` or `codespac
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_SECRET_FOR_THE_AUTHENTICATED_USER])

Create Or Update A Secret For The Authenticated User

This text explains how to create or update a secret for a codespace via API, using LibSodium for encryption. Users need Codespaces access and appropriate OAuth scopes (`codespace` or `codespac
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_OR_UPDATE_A_SECRET_FOR_THE_AUTHENTICATED_USER])

Delete A Secret For The Authenticated User

Deletes a Codespaces development environment secret by name, removing access from all authorized codespaces. Requires Codespaces access, and OAuth or personal access tokens with `codespace` or
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_SECRET_FOR_THE_AUTHENTICATED_USER])

List Selected Repositories For A User Secret

To list repositories with access to a user's dev environment secret, the user must have Codespaces access. OAuth or classic personal tokens with `codespace` or `codespace:secrets` scope are re
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SELECTED_REPOSITORIES_FOR_A_USER_SECRET])

Set Selected Repositories For A User Secret

This endpoint allows selecting repositories for a user's development environment secret, requiring Codespaces access, OAuth app tokens, or personal access tokens with `codespace` or `codespace
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_SELECTED_REPOSITORIES_FOR_A_USER_SECRET])

Add A Selected Repository To A User Secret

This endpoint adds a repository to a user's development environment secret, requiring Codespaces access and the `codespace` or `codespace:secrets` scope for OAuth or personal access tokens.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_A_SELECTED_REPOSITORY_TO_A_USER_SECRET])

Remove A Selected Repository From A User Secret

This endpoint removes a repository from a user's dev environment secret, requiring Codespaces access, and OAuth or classic tokens with specific scopes.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_A_SELECTED_REPOSITORY_FROM_A_USER_SECRET])

Get A Codespace For The Authenticated User

Gets information about a user's codespace. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Update A Codespace For The Authenticated User

This endpoint updates a user's codespace, modifying its machine type and recent folders. Changes apply upon next start. OAuth app tokens and personal access tokens with 'codespace' scope are r
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Delete A Codespace For The Authenticated User

Deletes a user's codespace. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Export A Codespace For The Authenticated User

Exports a specified codespace, providing a URL and ID to track its status. If unable to push to the repository, changes are pushed to a fork. OAuth and classic tokens require `codespace` scope
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_EXPORT_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Get Details About A Codespace Export

Gets information about an export of a codespace. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_DETAILS_ABOUT_A_CODESPACE_EXPORT])

List Machine Types For A Codespace

List the machine types a codespace can transition to use. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_MACHINE_TYPES_FOR_A_CODESPACE])

Create A Repository From An Unpublished Codespace

Publishing an unpublished codespace creates a new repository, granting the codespace's token write permissions. Publishing fails for codespaces already linked to a repository. OAuth and classi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_REPOSITORY_FROM_AN_UNPUBLISHED_CODESPACE])

Start A Codespace For The Authenticated User

Starts a user's codespace. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_START_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Stop A Codespace For The Authenticated User

Stops a user's codespace. OAuth app tokens and personal access tokens (classic) need the `codespace` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_STOP_A_CODESPACE_FOR_THE_AUTHENTICATED_USER])

Packages

Auth User Docker Conflict Packages List

Lists all packages that are owned by the authenticated user within the user's namespace, and that encountered a conflict during a Docker migration. OAuth app tokens and personal access tokens
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_AUTH_USER_DOCKER_CONFLICT_PACKAGES_LIST])

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πŸ§ͺ