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

Users

Delete Social Accounts For The Authenticated User

Deletes one or more social accounts from the authenticated user's profile. 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_SOCIAL_ACCOUNTS_FOR_THE_AUTHENTICATED_USER])

List Ssh Signing Keys For The Authenticated User

Lists the SSH signing keys for the authenticated user's GitHub account. OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SSH_SIGNING_KEYS_FOR_THE_AUTHENTICATED_USER])

Create A Ssh Signing Key For The Authenticated User

Creates an SSH signing key for the authenticated user's GitHub account. OAuth app tokens and personal access tokens (classic) need the `write:ssh_signing_key` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_SSH_SIGNING_KEY_FOR_THE_AUTHENTICATED_USER])

Get An Ssh Signing Key For The Authenticated User

Gets extended details for an SSH signing key. OAuth app tokens and personal access tokens (classic) need the `read:ssh_signing_key` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_SSH_SIGNING_KEY_FOR_THE_AUTHENTICATED_USER])

Delete An Ssh Signing Key For The Authenticated User

Deletes an SSH signing key from the authenticated user's GitHub account. OAuth app tokens and personal access tokens (classic) need the `admin:ssh_signing_key` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_SSH_SIGNING_KEY_FOR_THE_AUTHENTICATED_USER])

List Users

The text describes a feature listing GitHub users by signup order, including individuals and organizations, with pagination managed via the `since` parameter and the Link header for navigating
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_USERS])

Get A User

GitHub discloses publicly set user email information and offers an Emails API for email visibility control. This access necessitates GitHub authentication.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_USER])

Users Get By Username

GitHub discloses publicly set user email information and offers an Emails API for email visibility control. This access necessitates GitHub authentication.<<DEPRECATED use get_a_user>>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_GET_BY_USERNAME])

List Followers Of A User

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

List The People A User Follows

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

Check If A User Follows Another User

Endpoint checks if a user follows another on GitHub. Pass 'username' & 'target_user' in path. Response: 204 if follows, 404 if not. Supports GitHub Apps. [API Docs](https://docs.github.com/res
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_IF_A_USER_FOLLOWS_ANOTHER_USER])

List Gpg Keys For A User

Lists the GPG keys for a user. This information is accessible by anyone.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_GPG_KEYS_FOR_A_USER])

Get Contextual Information For A User

This hovercard feature provides detailed info about someone's involvement in pull requests, issues, repositories, and organizations, using `subject_type` and `subject_id` for context. OAuth to
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_CONTEXTUAL_INFORMATION_FOR_A_USER])

Users Get Context For User

This hovercard feature provides detailed info about someone's involvement in pull requests, issues, repositories, and organizations, using `subject_type` and `subject_id` for context. OAuth to
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_GET_CONTEXT_FOR_USER])

List Public Keys For A User

Lists the _verified_ public SSH keys for a user. This is accessible by anyone.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PUBLIC_KEYS_FOR_A_USER])

List Social Accounts For A User

Lists social media accounts for a user. This endpoint is accessible by anyone.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SOCIAL_ACCOUNTS_FOR_A_USER])

Users List Social Accounts For User

Lists social media accounts for a user. This endpoint is accessible by anyone.<<DEPRECATED use list_social_accounts_for_a_user>>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_USERS_LIST_SOCIAL_ACCOUNTS_FOR_USER])

List Ssh Signing Keys For A User

Lists the SSH signing keys for a user. This operation is accessible by anyone.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SSH_SIGNING_KEYS_FOR_A_USER])

Activity

List Repositories Starred By The Authenticated User

This endpoint lists starred repositories of the authenticated user and supports media type `application/vnd.github.star+json` to include star creation timestamps. More on media types at GitHub
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_STARRED_BY_THE_AUTHENTICATED_USER])

Activity List Repo S Starred By Authenticated User

This endpoint lists starred repositories of the authenticated user and supports media type `application/vnd.github.star+json` to include star creation timestamps. More on media types at GitHub
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ACTIVITY_LIST_REPO_S_STARRED_BY_AUTHENTICATED_USER])

Check If A Repository Is Starred By The Authenticated User

Whether the authenticated user has starred the repository.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_IF_A_REPOSITORY_IS_STARRED_BY_THE_AUTHENTICATED_USER])

Star A Repository For The Authenticated User

Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER])

Activity Star Repo For Authenticated User

Note that you'll need to set `Content-Length` to zero when calling out to this endpoint. For more information, see "[HTTP method](https://docs.github.com/rest/guides/getting-started-with-the-rest-
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])

Unstar A Repository For The Authenticated User

Unstar a repository that the authenticated user has previously starred.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UNSTAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER])

List Repositories Watched By The Authenticated User

Lists repositories the authenticated user is watching.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_WATCHED_BY_THE_AUTHENTICATED_USER])

List Events For The Authenticated User

If you are authenticated as the given user, you will see your private events. Otherwise, you'll only see public events.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_EVENTS_FOR_THE_AUTHENTICATED_USER])

List Organization Events For The Authenticated User

This is the user's organization dashboard. You must be authenticated as the user to view this.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_EVENTS_FOR_THE_AUTHENTICATED_USER])

List Public Events For A User

This endpoint lists a GitHub user's public events, accepting `username` and optional `per_page` and `page` parameters for pagination. It shows activities such as watched repos and pushed commi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PUBLIC_EVENTS_FOR_A_USER])

List Events Received By The Authenticated User

These are events that you've received by watching repositories and following users. If you are authenticated as the given user, you will see private events. Otherwise, you'll only see public e
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_EVENTS_RECEIVED_BY_THE_AUTHENTICATED_USER])

List Public Events Received By A User

This endpoint displays a GitHub user's public events, including event type and repository, with pagination and event type filtering. It integrates with GitHub apps and requires a `username`. V
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PUBLIC_EVENTS_RECEIVED_BY_A_USER])

List Repositories Starred By A User

This endpoint lists repositories a user has starred and supports media types like `application/vnd.github.star+json`, which includes the star's creation timestamp. For more, visit GitHub's doc
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_STARRED_BY_A_USER])

List Repositories Watched By A User

Lists repositories a user is watching.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_WATCHED_BY_A_USER])

Teams

List Teams For The Authenticated User

This endpoint lists all teams across organizations for the authenticated user, requiring `user`, `repo`, or `read:org` scope. For fine-grained tokens, it shows teams from the token owner's org
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_TEAMS_FOR_THE_AUTHENTICATED_USER])

Packages

Find Conflicting Packages For Docker Migration

This endpoint lists user-specific packages with migration conflicts accessible to the requester, requiring `read:packages` scope via OAuth or classic tokens.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_FIND_CONFLICTING_PACKAGES_FOR_DOCKER_MIGRATION])

List Packages For A User

This endpoint lists packages in a user's namespace accessible to the requester, requiring `read:packages` scope, and `repo` scope for certain GitHub Packages registries. It directs to a doc fo
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PACKAGES_FOR_A_USER])

Get A Package For A User

To access a user's public package metadata, OAuth and classic tokens need `read:packages` scope; `repo` scope is also required for repository-scoped GitHub Packages. Refer to GitHub documentat
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_PACKAGE_FOR_A_USER])

Delete A Package For A User

Deleting a package requires admin rights. Public packages with >5,000 downloads need GitHub support. OAuth/personal tokens must have `read:packages`, `delete:packages`, and `repo` scope for so
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_PACKAGE_FOR_A_USER])

Restore A Package For A User

A deleted GitHub Package can be restored within 30 days, provided the namespace/version are unchanged and admin rights with specific permissions are available. OAuth/personal tokens need `read
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_RESTORE_A_PACKAGE_FOR_A_USER])

List Package Versions For A Package Owned By A User

This endpoint lists a user's public package versions, needing `read:packages` scope. For registry-specific packages, `repo` scope is also required. Refer to GitHub's Packages permissions for m
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PACKAGE_VERSIONS_FOR_A_PACKAGE_OWNED_BY_A_USER])

Get A Package Version For A User

Fetch a specific public package version with an OAuth or classic token having `read:packages` scope. If `package_type` is in a registry needing repository-scoped permissions, `repo` scope is n
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_PACKAGE_VERSION_FOR_A_USER])

Delete Package Version For A User

Users can delete a package version unless it's public with over 5,000 downloads. Admin permissions are required for certain registry types, with `read:packages` and `delete:packages` scopes ne
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_PACKAGE_VERSION_FOR_A_USER])

Restore Package Version For A User

Users can restore a deleted package within 30 days if the namespace/version is available and not reused. Admin permissions might be needed, and specific OAuth or personal access tokens are req
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_RESTORE_PACKAGE_VERSION_FOR_A_USER])

Gists

List Gists For A User

Lists public gists for the specified user:
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_GISTS_FOR_A_USER])

Orgs

List Organizations For A User

This method lists only public organization memberships for a specified user. To access both public and private memberships for an authenticated user, use the List organizations API.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATIONS_FOR_A_USER])

Projects

List User Projects

Lists projects for a user.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_USER_PROJECTS])

Repos

List Repositories For A User

Lists public repositories for the specified user.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_FOR_A_USER])

Repo S List For User

Lists public repositories for the specified user.<<DEPRECATED use list_repositories_for_a_user>>
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REPO_S_LIST_FOR_USER])

Billing

Get Github Actions Billing For A User

The summary details GitHub Actions' used minutes, covering both free and paid, applicable only in private repos for GitHub-hosted runners, including re-runs and OS multipliers, rounded up by m
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_ACTIONS_BILLING_FOR_A_USER])

Get Github Packages Billing For A User

The text provides information on tracking free and paid GitHub Packages storage in GB, noting paid storage is for private repos. It links to billing management and mentions OAuth tokens need t
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_PACKAGES_BILLING_FOR_A_USER])

Get Shared Storage Billing For A User

The text provides guidance on estimating costs for GitHub Actions and Packages for private repositories, emphasizing the need to consult billing documentation and the requirement for `user` sc
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_SHARED_STORAGE_BILLING_FOR_A_USER])

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🧪