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

Packages

List Docker Migration Conflicts

This endpoint lists packages in a specific organization, readable by the user, that had conflicts during Docker migration. It requires OAuth app tokens or classic personal access tokens with t
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_DOCKER_MIGRATION_CONFLICTS])

Activity

List Public Organization Events

This GitHub API endpoint lists public events for organizations, like watch and push events. It supports pagination and requires the organization name. Useful for monitoring activities in org r
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PUBLIC_ORGANIZATION_EVENTS])

Orgs

List Failed Organization Invitations

The return hash contains `failed_at` and `failed_reason` fields which represent the time at which the invitation failed and the reason for the failure.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_FAILED_ORGANIZATION_INVITATIONS])

List Organization Webhooks

To use this endpoint, you must be an organization owner and have `admin:org_hook` scope. OAuth apps can't interact with webhooks they didn't create; users have similar restrictions with OAuth
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_WEBHOOKS])

Create An Organization Webhook

To use the endpoint for posting JSON payloads, one must be an organization owner with `admin:org_hook` scope for OAuth or classic tokens. OAuth apps can't interact with non-owned webhooks, and
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_AN_ORGANIZATION_WEBHOOK])

Get An Organization Webhook

The text describes an API endpoint to get an organization's webhook config. Only organization owners can use it, requiring `admin:org_hook` scope for OAuth and personal tokens. OAuth apps can'
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ORGANIZATION_WEBHOOK])

Update An Organization Webhook

Updating an organization's webhook could reset its `secret`. Supply the same or new `secret` to prevent deletion. Use a designated endpoint for `config` changes. User role and OAuth app abilit
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_AN_ORGANIZATION_WEBHOOK])

Delete An Organization Webhook

To use this endpoint, you must be an organization owner and have tokens with `admin:org_hook` scope. OAuth apps can't manage webhooks they didn't create, nor can users manage those created by
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_ORGANIZATION_WEBHOOK])

Get A Webhook Configuration For An Organization

The text discusses retrieving an organization's webhook configuration, requiring ownership and `admin:org_hook` scope for access. It notes limitations on viewing or editing webhooks based on t
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_WEBHOOK_CONFIGURATION_FOR_AN_ORGANIZATION])

Update A Webhook Configuration For An Organization

Updates webhook config for organizations, allowing changes to `active` state and `events`. Requires organization owner status and `admin:org_hook` scope for tokens. Restrictions apply to OAuth
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_WEBHOOK_CONFIGURATION_FOR_AN_ORGANIZATION])

List Deliveries For An Organization Webhook

This endpoint lists webhook deliveries for an organization's webhook, accessible to organization owners with `admin:org_hook` scope. OAuth apps can only manage their own webhooks.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_DELIVERIES_FOR_AN_ORGANIZATION_WEBHOOK])

Get A Webhook Delivery For An Organization Webhook

This endpoint lets organization owners retrieve a delivery for their organization's webhook, requiring `admin:org_hook` scope. OAuth apps can't manage others' webhooks, and users can't manage
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_WEBHOOK_DELIVERY_FOR_AN_ORGANIZATION_WEBHOOK])

Redeliver A Delivery For An Organization Webhook

To redeliver a webhook delivery in an organization, you must be the owner. Use `admin:org_hook` scope with OAuth or personal access tokens. OAuth apps can't interact with non-owned webhooks, n
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REDELIVER_A_DELIVERY_FOR_AN_ORGANIZATION_WEBHOOK])

Ping An Organization Webhook

Triggering a ping event requires being an organization owner and the `admin:org_hook` scope for OAuth or classic tokens. OAuth apps can't interact with non-self-created webhooks, nor can users
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_PING_AN_ORGANIZATION_WEBHOOK])

List App Installations For An Organization

This endpoint provides a list of all GitHub Apps installed on repositories within an organization, viewable by organization owners. OAuth and personal access tokens require `admin:read` scope.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_APP_INSTALLATIONS_FOR_AN_ORGANIZATION])

List Pending Organization Invitations

The return hash includes a `role` field indicating the Organization Invitation role (values: `direct_member`, `admin`, `billing_manager`, `hiring_manager`). If non-GitHub member, `login` field
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_PENDING_ORGANIZATION_INVITATIONS])

Create An Organization Invitation

Owners can invite users to an organization via GitHub ID or email. Invitations trigger notifications and rapid use may cause rate limiting. Check GitHub's API rate limits and best practices fo
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_AN_ORGANIZATION_INVITATION])

Cancel An Organization Invitation

To cancel an organization invitation, the user must be an organization owner. This action also triggers notifications.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CANCEL_AN_ORGANIZATION_INVITATION])

List Organization Invitation Teams

List all teams associated with an invitation. In order to see invitations in an organization, the authenticated user must be an organization owner.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_INVITATION_TEAMS])

List Organization Members

List all users who are members of an organization. If the authenticated user is also a member of this organization then both concealed and public members will be returned.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_MEMBERS])

Check Organization Membership For A User

Check if a user is, publicly or privately, a member of the organization.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CHECK_ORGANIZATION_MEMBERSHIP_FOR_A_USER])

Remove An Organization Member

Removing a user from this list will remove them from all teams and they will no longer have any access to the organization's repositories.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_AN_ORGANIZATION_MEMBER])

Get Organization Membership For A User

In order to get a user's membership with an organization, the authenticated user must be an organization member. The `state` parameter in the response can be used to identify the user's member
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ORGANIZATION_MEMBERSHIP_FOR_A_USER])

Set Organization Membership For A User

Only organization owners can add or update members' roles; new invites and role changes prompt email notifications. Invitation limits are 50 or 500 per day based on the organization's age and
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_ORGANIZATION_MEMBERSHIP_FOR_A_USER])

Remove Organization Membership For A User

To remove a user from an organization, the actioner must be an owner. This process ejects active members or cancels pending invitations, with the specified user notified by email.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_ORGANIZATION_MEMBERSHIP_FOR_A_USER])

List Organization Fine Grained Permissions For An Organization

Guidance on using fine-grained permissions for custom organization and repository roles, including required user status and tokens with `admin:org` scope. For more, visit GitHub docs on organi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_FINE_GRAINED_PERMISSIONS_FOR_AN_ORGANIZATION])

Get All Organization Roles For An Organization

The text lists roles in an organization, specifying access requires being an administrator, a user with specific permissions, or using tokens with `admin:org` scope. For more, see the provided
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ALL_ORGANIZATION_ROLES_FOR_AN_ORGANIZATION])

Create A Custom Organization Role

Custom organization roles allow for tailored permissions, requiring admin status or certain permissions to access. OAuth tokens must have `admin:org` scope. For more, see GitHub's documentatio
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_CUSTOM_ORGANIZATION_ROLE])

Remove All Organization Roles For A Team

This endpoint removes all organization roles from a team, requiring an admin user with `admin:org` scope via OAuth or personal access tokens. For details on roles, check GitHub's documentation
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_ALL_ORGANIZATION_ROLES_FOR_A_TEAM])

Assign An Organization Role To A Team

The text details how to assign an organization role to a team, requiring an admin user and `admin:org` scope for OAuth or personal access tokens. For more, visit the provided GitHub documentat
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ASSIGN_AN_ORGANIZATION_ROLE_TO_A_TEAM])

Remove An Organization Role From A Team

This endpoint allows organization administrators to remove a role from a team, requiring `admin:org` scope for OAuth or personal access tokens. For details on organization roles, visit GitHub'
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_AN_ORGANIZATION_ROLE_FROM_A_TEAM])

Remove All Organization Roles For A User

This endpoint allows an organization's admin to revoke all assigned roles from a user. It requires an `admin:org` scope for OAuth and personal access tokens to access. For more on roles, visit
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_ALL_ORGANIZATION_ROLES_FOR_A_USER])

Assign An Organization Role To A User

This text explains how to assign organization roles to members, requiring administrator access and `admin:org` scope for OAuth or personal tokens. More info at GitHub Docs on managing access w
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ASSIGN_AN_ORGANIZATION_ROLE_TO_A_USER])

Remove An Organization Role From A User

To remove a user's org role, admins must use the `admin:org` endpoint with OAuth or personal tokens. See GitHub documentation for more.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_AN_ORGANIZATION_ROLE_FROM_A_USER])

Get An Organization Role

This text explains how to get an organization role, requiring the user to be an admin or have specific permissions. For details, see GitHub's documentation on managing access with roles. OAuth
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ORGANIZATION_ROLE])

Interactions

Get Interaction Restrictions For An Organization

Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_INTERACTION_RESTRICTIONS_FOR_AN_ORGANIZATION])

Set Interaction Restrictions For An Organization

Temporarily restricts interactions in public repositories to specific GitHub users in an organization. Only organization owners can set these limits, which override individual repository setti
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_INTERACTION_RESTRICTIONS_FOR_AN_ORGANIZATION])

Remove Interaction Restrictions For An Organization

Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_INTERACTION_RESTRICTIONS_FOR_AN_ORGANIZATION])

Issues

List Organization Issues Assigned To The Authenticated User

GitHub's REST API shows both issues & PRs for users, marking PRs with `pull_request` key. For PR ids, check "List pull requests" link. It also supports different media types for issue content.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_ISSUES_ASSIGNED_TO_THE_AUTHENTICATED_USER])

Codespaces

List Codespaces For A User In Organization

Lists the codespaces that a member of an organization has for repositories in that organization. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this en
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CODESPACES_FOR_A_USER_IN_ORGANIZATION])

Delete A Codespace From The Organization

Deletes a user's codespace. OAuth app tokens and personal access tokens (classic) need the `admin:org` 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_FROM_THE_ORGANIZATION])

Stop A Codespace For An Organization User

Stops a user's codespace. OAuth app tokens and personal access tokens (classic) need the `admin:org` 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_AN_ORGANIZATION_USER])

Copilot

Get Copilot Seat Assignment Details For A User

Organization owners can view members' GitHub Copilot seat assignments using OAuth or personal access tokens with `manage_billing:copilot` scope. This beta feature requires specific access perm
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_COPILOT_SEAT_ASSIGNMENT_DETAILS_FOR_A_USER])

Migrations

List Organization Migrations

Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API). A list of `repositories` is only
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_ORGANIZATION_MIGRATIONS])

Start An Organization Migration

Initiates the generation of a migration archive.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_START_AN_ORGANIZATION_MIGRATION])

Get An Organization Migration Status

The text describes a migration status check, where the `state` can be `pending` (not started), `exporting` (in progress), `exported` (completed successfully), or `failed` (unsuccessful).
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_AN_ORGANIZATION_MIGRATION_STATUS])

Download An Organization Migration Archive

Fetches the URL to a migration archive.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DOWNLOAD_AN_ORGANIZATION_MIGRATION_ARCHIVE])

Delete An Organization Migration Archive

Deletes a previous migration archive. Migration archives are automatically deleted after seven days.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_AN_ORGANIZATION_MIGRATION_ARCHIVE])

Unlock An Organization Repository

Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/rest/repos/repos#delete-a-repository) when the migratio
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UNLOCK_AN_ORGANIZATION_REPOSITORY])

List Repositories In An Organization Migration

List all the repositories for this organization migration.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_REPOSITORIES_IN_AN_ORGANIZATION_MIGRATION])

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🧪