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

Apps

List Repositories Accessible To The App Installation

List repositories that an app installation can access.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_ACCESSIBLE_TO_THE_APP_INSTALLATION])

Revoke An Installation Access Token

Revoking an installation token invalidates it, preventing its use for authentication and access. A new token must be created for other endpoints requiring it, via the specified GitHub document
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REVOKE_AN_INSTALLATION_ACCESS_TOKEN])

Issues

List Issues Assigned To The Authenticated User

Fetches issues assigned to the user across all repos, using filters to customize the fetch. Issues and pull requests are included, discernible by the `pull_request` key. Supports various media
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ISSUES_ASSIGNED_TO_THE_AUTHENTICATED_USER])

Issues List

Fetches issues assigned to the user across all repos, using filters to customize the fetch. Issues and pull requests are included, discernible by the `pull_request` key. Supports various media
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ISSUES_LIST])

Licenses

Get All Commonly Used Licenses

Lists the most commonly used licenses on GitHub. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ALL_COMMONLY_USED_LICENSES])

Get A License

Gets information about a specific license. For more information, see "[Licensing a repository ](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-you
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_LICENSE])

Markdown

Render A Markdown Document

This endpoint converts Markdown to HTML, offering 'markdown' and 'gfm' modes, with 'gfm' requiring a repo context. See GitHub Docs for details.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_RENDER_A_MARKDOWN_DOCUMENT])

Meta

Get Github Meta Information

The API provides metadata on GitHub, including its IP addresses (IPv4 and IPv6) and domain names. Refer directly for current values; not all features support IPv6. More info at GitHub's docume
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_META_INFORMATION])

Get Octocat

Get the octocat as ASCII art
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_OCTOCAT])

Activity

List Public Events For A Network Of Repositories

The "List public events for a network of repositories" endpoint lets users explore public repo network activities by `{owner}/{repo}`, with pagination and page filtering options. More info at
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PUBLIC_EVENTS_FOR_A_NETWORK_OF_REPOSITORIES])

List Notifications For The Authenticated User

List all notifications for the current user, sorted by most recently updated.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_NOTIFICATIONS_FOR_THE_AUTHENTICATED_USER])

Mark Notifications As Read

Marks all notifications as "read" for the user. If too many to process at once, a `202 Accepted` status is received, and it's handled asynchronously. Check remaining "unread" with a specific G
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_MARK_NOTIFICATIONS_AS_READ])

Get A Thread

Gets information about a notification thread.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_THREAD])

Mark A Thread As Read

Marks a thread as "read." Marking a thread as "read" is equivalent to clicking a notification in your notification inbox on GitHub: https://github.com/notifications.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_MARK_A_THREAD_AS_READ])

Mark A Thread As Done

Marks a thread as "done." Marking a thread as "done" is equivalent to marking a notification in your notification inbox on GitHub as done: https://github.com/notifications.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_MARK_A_THREAD_AS_DONE])

Get A Thread Subscription For The Authenticated User

This text explains how to verify if a user is subscribed to a thread, noting subscriptions occur only if the user actively participates or manually subscribes.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_THREAD_SUBSCRIPTION_FOR_THE_AUTHENTICATED_USER])

Set A Thread Subscription

This endpoint manages repo thread notifications: ignore to halt alerts until mentioned, subscribe to activate alerts, and unsubscribe to delete notifications for a thread.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_A_THREAD_SUBSCRIPTION])

Delete A Thread Subscription

Mutes conversation notifications until you comment or are @mentioned, but still alerts if watching the repository. Use the 'Set a thread subscription' endpoint with `ignore` true to mute while
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_THREAD_SUBSCRIPTION])

Orgs

List Organizations

The text describes an approach to list organizations by their creation order, utilizing a `since` parameter for pagination, with direction to use the [Link header] for navigating to subsequent
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATIONS])

Get An Organization

When `two_factor_requirement_enabled` is true, an organization mandates 2FA for all. Details require organization ownership or `admin:org` scope with tokens. GitHub Apps need `Organization pla
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ORGANIZATION])

Update An Organization

GitHub is updating to allow distinct permissions for different repository types, replacing `members_allowed_repository_creation_type`. Only owners with proper token scopes can make these chang
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_AN_ORGANIZATION])

Delete An Organization

This process deletes an organization and its repositories, making its login unavailable for 90 days. Users should review the Terms of Service on GitHub's site before deletion.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_ORGANIZATION])

Actions

Get Github Actions Cache Usage For An Organization

This API provides the total GitHub Actions cache usage for an organization, refreshing data roughly every 5 minutes. OAuth and personal access tokens require `read:org` scope for access.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_ACTIONS_CACHE_USAGE_FOR_AN_ORGANIZATION])

List Repos With Ghactions Cache Usage

This API lists GitHub Actions cache usage for organizations, refreshing data every ~5 minutes. OAuth and classic personal access tokens must have `read:org` scope for access.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOS_WITH_GHACTIONS_CACHE_USAGE])

Get Github Actions Permissions For An Organization

Gets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. OAuth tokens and personal access tokens (classic) need the `admin:org
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_GITHUB_ACTIONS_PERMISSIONS_FOR_AN_ORGANIZATION])

Set Github Actions Permissions For An Organization

Sets the GitHub Actions permissions policy for repositories and allowed actions and reusable workflows in an organization. OAuth app tokens and personal access tokens (classic) need the `admin
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_GITHUB_ACTIONS_PERMISSIONS_FOR_AN_ORGANIZATION])

List Org Repos Withgithub Actions Enabled

This endpoint lists repos enabled for GitHub Actions in an org, requiring the `enabled_repositories` set to `selected` and `admin:org` scope for OAuth/personal tokens. See docs for setting per
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORG_REPOS_WITHGITHUB_ACTIONS_ENABLED])

Enable Github Actions In Selected Repositories

This endpoint allows replacing enabled GitHub Actions repositories in an organization, requiring `selected` permission policy and `admin:org` scope for OAuth or personal tokens. See documentat
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ENABLE_GITHUB_ACTIONS_IN_SELECTED_REPOSITORIES])

Enable Repo Forgithub Actions

This endpoint allows adding a repository to those enabled for GitHub Actions in an organization, requiring the `enabled_repositories` policy set to `selected` and `admin:org` scope for OAuth/p
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ENABLE_REPO_FORGITHUB_ACTIONS])

Disable Repository Actions In Org

This endpoint removes a repo from those selected for GitHub Actions in an org, requiring `enabled_repositories` set to `selected` and `admin:org` scope for OAuth/personal access tokens.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DISABLE_REPOSITORY_ACTIONS_IN_ORG])

Get Allowed Actions And Reusable Workflows For An Organization

This endpoint retrieves actions and reusable workflows permitted in an organization, requiring the `allowed_actions` policy to be set to `selected`. It mandates `admin:org` scope for OAuth and
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ALLOWED_ACTIONS_AND_REUSABLE_WORKFLOWS_FOR_AN_ORGANIZATION])

Set Allowed Actions And Reusable Workflows For An Organization

This endpoint configures allowed actions and workflows in an organization, requiring `selected` permission policy and `admin:org` scope for access. See documentation for more on GitHub Actions
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_ALLOWED_ACTIONS_AND_REUSABLE_WORKFLOWS_FOR_AN_ORGANIZATION])

Get Default Workflow Permissions For An Organization

The text outlines how to check default `GITHUB_TOKEN` workflow permissions and GitHub Actions' ability to submit pull request reviews in organizations. It specifies that `admin:org` scope is n
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_DEFAULT_WORKFLOW_PERMISSIONS_FOR_AN_ORGANIZATION])

Set Default Workflow Permissions For An Organization

The text outlines how to set default workflow permissions for the `GITHUB_TOKEN` in an organization and its ability to approve pull requests. It mentions required scopes for OAuth and personal
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_DEFAULT_WORKFLOW_PERMISSIONS_FOR_AN_ORGANIZATION])

List Self Hosted Runners For An Organization

This endpoint lists an organization's self-hosted runners, accessible only to admins with `admin:org` scope (OAuth app/personal access tokens). For private repositories, the `repo` scope is al
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_SELF_HOSTED_RUNNERS_FOR_AN_ORGANIZATION])

List Runner Applications For An Organization

The text outlines an endpoint for downloading runner application binaries. It's accessible exclusively to users with admin rights and the necessary OAuth or personal access tokens (with `admin
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_RUNNER_APPLICATIONS_FOR_AN_ORGANIZATION])

Configure Jitrunner For Org

Generates a config for the runner app, requiring admin access and `admin:org` scope for tokens. Private repos need `repo` scope for access.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CONFIGURE_JITRUNNER_FOR_ORG])

Create A Registration Token For An Organization

Get a token for the `config` script from this endpoint; it expires in an hour. Use it to configure self-hosted runners with admin access required. OAuth and personal tokens need `admin:org` an
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_REGISTRATION_TOKEN_FOR_AN_ORGANIZATION])

Create A Remove Token For An Organization

Generates a token for removing a self-hosted runner from an organization, expiring in one hour. Requires `admin:org` scope for public repos, plus `repo` scope for private ones. Admin access is
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_REMOVE_TOKEN_FOR_AN_ORGANIZATION])

Get A Self Hosted Runner For An Organization

This endpoint configures a self-hosted runner in an organization and requires admin access. OAuth app tokens and classic personal access tokens need `admin:org` scope, and private repositories
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_SELF_HOSTED_RUNNER_FOR_AN_ORGANIZATION])

Delete A Self Hosted Runner From An Organization

This endpoint enables the deletion of a self-hosted runner from an organization when the machine is unavailable, requiring admin access and specific OAuth scopes (`admin:org` for all, plus `re
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_A_SELF_HOSTED_RUNNER_FROM_AN_ORGANIZATION])

List Labels For A Self Hosted Runner For An Organization

This endpoint lists labels for self-hosted runners in an organization, accessible by admins with `admin:org` scope for OAuth or classic tokens. For private repositories, `repo` scope is also n
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_AN_ORGANIZATION])

Add Custom Labels To A Self Hosted Runner For An Organization

This endpoint allows adding custom labels to a self-hosted runner within an organization. Requires admin access and an OAuth or personal access token with `admin:org` scope.
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_AN_ORGANIZATION])

Set Custom Labels For A Self Hosted Runner For An Organization

Authenticated users with admin access can reset custom labels on a specific self-hosted runner in an organization. OAuth and classic tokens require `admin:org` scope; private repos also need `
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_AN_ORGANIZATION])

Clear Self Hosted Runner Org Labels

This endpoint allows admins to remove custom labels from a self-hosted runner in an organization, leaving only read-only labels. It requires `admin:org` scope for OAuth tokens and `repo` scope
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CLEAR_SELF_HOSTED_RUNNER_ORG_LABELS])

Remove Custom Label From Self Hosted Runner

Removes a custom label from an organization's self-hosted runner, returning remaining labels. Requires `admin:org` scope and `repo` scope for private repositories. A `404` status appears if th
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_CUSTOM_LABEL_FROM_SELF_HOSTED_RUNNER])

List Organization Secrets

This text outlines a system allowing authed users with collaborator access to list all org secrets without showing encrypted values. OAuth and personal tokens with `admin:org` and `repo` scope
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_SECRETS])

Get An Organization Public Key

To encrypt secrets, acquire your public key. Authenticated users need collaborator access for operations. For private repositories or org scope, `admin:org` and `repo` scopes are necessary for
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ORGANIZATION_PUBLIC_KEY])

Oidc

Custom Oidcsubject Claim Template

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

Configure Oidcsubject Claim Template

Creates or updates the customization template for an OpenID Connect (OIDC) subject claim. OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CONFIGURE_OIDCSUBJECT_CLAIM_TEMPLATE])

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🧪