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
- GITHUB API ROOT
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

Repos

GET BRANCH PROTECTION

Protected branches are available in public repositories with GitHub Free, across all repos for organizations, GitHub Pro, Team, Enterprise Cloud, and Server. Details are in GitHub's product do
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_BRANCH_PROTECTION])

UPDATE BRANCH PROTECTION

Protected branches are enabled across various GitHub plans, requiring admin permissions to set up. Note that updating `users` and `teams` arrays overwrites existing ones, with a total limit of
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_BRANCH_PROTECTION])

DELETE BRANCH PROTECTION

Protected branches are available in public repos with GitHub Free/Org, and in both public/private repos with GitHub Pro, Team, Enterprise Cloud, and Server. For details, see GitHub's products
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_BRANCH_PROTECTION])

GET ADMIN BRANCH PROTECTION

GitHub Free allows protected branches in public repos and for organizations; GitHub Pro, Team, Enterprise Cloud, and Server expands this to private repos as well. Further details in GitHub Hel
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ADMIN_BRANCH_PROTECTION])

SET ADMIN BRANCH PROTECTION

Protected branches in GitHub, available across Free, Pro, Team, and Enterprise plans for both public and private repositories, require admin or owner permissions for enforcement due to enabled
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_ADMIN_BRANCH_PROTECTION])

DELETE ADMIN BRANCH PROTECTION

Protected branches are accessible in both free and paid GitHub public/private repositories. Removing admin enforcement needs admin/owner rights and branch protection activation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_ADMIN_BRANCH_PROTECTION])

GET PULL REQUEST REVIEW PROTECTION

Protected branches can be used in public repos for GitHub Free users and organizations, and in both public and private repos with GitHub Pro, Team, Enterprise Cloud, and Server. More info is i
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_PULL_REQUEST_REVIEW_PROTECTION])

UPDATE PULL REQUEST REVIEW PROTECTION

Protected branches are supported in various GitHub plan repositories. Updating pull review enforcement needs admin/owner permissions and branch protection. Adding new `users` and `teams` array
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_PULL_REQUEST_REVIEW_PROTECTION])

DELETE PULL REQUEST REVIEW PROTECTION

Protected branches can be used in public repositories with GitHub Free and in both public/private repositories with higher plans like GitHub Pro, Team, and Enterprise. More details are on GitH
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_PULL_REQUEST_REVIEW_PROTECTION])

GET COMMIT SIGNATURE PROTECTION

Protected branches are supported across various GitHub plans. Admins or owners can check if a branch requires signed commits via a specific endpoint. Branch protection must be enabled to requi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_COMMIT_SIGNATURE_PROTECTION])

CREATE COMMIT SIGNATURE PROTECTION

Protected branches can be used in various GitHub plans, including Free, Pro, and Enterprise, for both public and private repositories. They allow admins or owners to require signed commits on
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_COMMIT_SIGNATURE_PROTECTION])

DELETE COMMIT SIGNATURE PROTECTION

Protected branches are available with various GitHub plans. Admins or owners can disable required signed commits on protected branches. See GitHub's products for more info.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_COMMIT_SIGNATURE_PROTECTION])

GET STATUS CHECKS PROTECTION

Protected branches are available in public repos with GitHub Free, GitHub Free for organizations, and in both public and private repos with GitHub Pro, Team, Enterprise Cloud, and Server. More
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_STATUS_CHECKS_PROTECTION])

UPDATE STATUS CHECK PROTECTION

Protected branches are accessible in public repos with GitHub Free and in both public and private repos with GitHub Pro, Team, and Enterprise versions. Admin permissions are needed to update s
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_STATUS_CHECK_PROTECTION])

REMOVE STATUS CHECK PROTECTION

Protected branches are accessible in public repos with GitHub Free and for organizations, as well as in both public and private repos with GitHub Pro, Team, Enterprise Cloud, and Server. Furth
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_STATUS_CHECK_PROTECTION])

GET ALL STATUS CHECK CONTEXTS

Protected branches are accessible in both free and paid GitHub plans, including public repositories with GitHub Free, and both public and private repositories with higher-tier plans. More deta
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ALL_STATUS_CHECK_CONTEXTS])

ADD STATUS CHECK CONTEXTS

Protected branches are accessible in public repositories with GitHub Free, and in both public and private repositories with GitHub Pro, Team, Enterprise Cloud, and Server. More info is in GitH
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_STATUS_CHECK_CONTEXTS])

SET STATUS CHECK CONTEXTS

Protected branches are accessible in GitHub Free public repos and for organizations, as well as in both public/private repos with GitHub Pro, Team, Enterprise Cloud, and Server. For details, r
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_STATUS_CHECK_CONTEXTS])

REMOVE STATUS CHECK CONTEXTS

Protected branches are accessible in public repos with GitHub Free, in both public and private repos with GitHub Pro, Team, Enterprise Cloud, and Enterprise Server. More details are on GitHub'
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_STATUS_CHECK_CONTEXTS])

GET ACCESS RESTRICTIONS

Protected branches are available in all GitHub plans, including free and paid options, and restrict access in organization-owned repositories. More information can be found on GitHub's documen
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_ACCESS_RESTRICTIONS])

DELETE ACCESS RESTRICTIONS

Protected branches are available across various GitHub plans, including Free, Pro, Team, and Enterprise versions, in both public and private repositories. They block unauthorized users from pu
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_DELETE_ACCESS_RESTRICTIONS])

GET APPS WITH ACCESS TO THE PROTECTED BRANCH

Protected branches are supported in both free and paid GitHub plans, with varying access across public and private repositories. They ensure only authorized GitHub Apps with write access can p
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_APPS_WITH_ACCESS_TO_THE_PROTECTED_BRANCH])

ADD APP ACCESS RESTRICTIONS

Protected branches are supported in both free and paid GitHub plans, allowing push access only to specific GitHub Apps with write access. For details, visit GitHub's products documentation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_APP_ACCESS_RESTRICTIONS])

SET APP ACCESS RESTRICTIONS

Protected branches are supported across various GitHub plans, including Free and Pro versions, and control app push access, limiting it to authorized GitHub Apps with write access.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_APP_ACCESS_RESTRICTIONS])

REMOVE APP ACCESS RESTRICTIONS

Protected branches can be used in various GitHub plans, restricting app push access to those installed on the repository with write access. More info at GitHub's products documentation.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_APP_ACCESS_RESTRICTIONS])

GET TEAMS WITH ACCESS TO THE PROTECTED BRANCH

Protected branches are accessible in public repos with GitHub Free and in both public/private repos with GitHub Pro, Team, Enterprise Cloud, and Server. It also lists teams with push access to
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_TEAMS_WITH_ACCESS_TO_THE_PROTECTED_BRANCH])

ADD TEAM ACCESS RESTRICTIONS

Protected branches are accessible in both free and paid GitHub plans, including public and private repositories. They allow granting push access to specific teams, including child teams. For m
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_TEAM_ACCESS_RESTRICTIONS])

SET TEAM ACCESS RESTRICTIONS

Protected branches are accessible in various GitHub plans, allowing users to manage push access. Reassigning push access replaces all previous team permissions with a new list, including child
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_TEAM_ACCESS_RESTRICTIONS])

REMOVE TEAM ACCESS RESTRICTIONS

Protected branches are available in various GitHub plans, including Free and paid versions. They restrict team push access to specific branches, with options for managing access levels, includ
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_TEAM_ACCESS_RESTRICTIONS])

GET USERS WITH ACCESS TO THE PROTECTED BRANCH

Protected branches are available in public and private repositories across various GitHub plans, including Free, Pro, Team, and Enterprise versions. They restrict who can push to the branch. F
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_USERS_WITH_ACCESS_TO_THE_PROTECTED_BRANCH])

ADD USER ACCESS RESTRICTIONS

Protected branches are accessible in both public and private repositories across various GitHub plans, including GitHub Free and paid accounts. They allow specific users to have push access, w
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_ADD_USER_ACCESS_RESTRICTIONS])

SET USER ACCESS RESTRICTIONS

Protected branches are accessible in both free and paid GitHub plans, including private repositories for paid plans. They allow specifying a limited list of users (up to 100) who can push, rep
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_SET_USER_ACCESS_RESTRICTIONS])

REMOVE USER ACCESS RESTRICTIONS

Protected branches in GitHub restrict push access in public and private repositories, allowing only certain users with a total limit of 100 items, including users, apps, and teams. See GitHub'
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REMOVE_USER_ACCESS_RESTRICTIONS])

RENAME A BRANCH

Renames a branch in a repository; process may not be instant and pushing to the old name is disabled during this. User needs push access, and additional admin or owner permissions for default
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_RENAME_A_BRANCH])

Checks

CREATE A CHECK RUN

Creates a new check run for a repository commit using a GitHub App. GitHub limits identical check run names to 1000 in a suite, deleting older ones beyond this. Checks API doesn't detect forke
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_CHECK_RUN])

GET A CHECK RUN

The Checks API fetches a check run using its `id` from the created repository, not working with forked branches (shows empty `pull_requests`). Access to private repositories needs `repo` scope
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_CHECK_RUN])

UPDATE A CHECK RUN

Updates a check run for a commit in a repo. Only detects pushes in the original repository, not in forks, returning an empty `pull_requests` array. OAuth apps and classic personal access token
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_CHECK_RUN])

LIST CHECK RUN ANNOTATIONS

Lists annotations for a check run using the annotation `id`. OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint on a private repository.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CHECK_RUN_ANNOTATIONS])

REREQUEST A CHECK RUN

This endpoint rerequests an existing GitHub check run without new code, triggering a `check_run` webhook with `rerequested` action, resetting its status to `queued` and clearing its conclusion
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REREQUEST_A_CHECK_RUN])

CREATE A CHECK SUITE

The text describes how to manually create a check suite when auto-creation is disabled. It mentions that the Checks API functions solely within the original repository, not forks, and is inacc
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_CREATE_A_CHECK_SUITE])

UPDATE REPOSITORY PREFERENCES FOR CHECK SUITES

The default process automatically creates a check suite for each push to a repository. Disabling this allows for manual creation, requiring admin permissions to adjust preferences.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_REPOSITORY_PREFERENCES_FOR_CHECK_SUITES])

GET A CHECK SUITE

The Checks API, used to retrieve a check suite by `id`, detects pushes in origin repositories only, not forks, resulting in empty `pull_requests` and a `null` `head_branch` for forks. OAuth an
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_CHECK_SUITE])

LIST CHECK RUNS IN A CHECK SUITE

The endpoint lists check runs for a check suite by its `id`, only detecting pushes in the original repository, not forks. To access it in private repositories, OAuth app tokens and personal ac
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CHECK_RUNS_IN_A_CHECK_SUITE])

REREQUEST A CHECK SUITE

This endpoint reinitiates a check suite without new code pushes, triggering a `check_suite` webhook with `rerequested` action, resetting its status and clearing its conclusion. Not accessible
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_REREQUEST_A_CHECK_SUITE])

Code-scanning

LIST CODE SCANNING ALERTS FOR A REPOSITORY

The document outlines how to obtain code scanning alerts, highlighting the inclusion of the most recent instance for a specified branch/reference. Access requires `security_events` scope for p
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CODE_SCANNING_ALERTS_FOR_A_REPOSITORY])

GET A CODE SCANNING ALERT

To use the endpoint for code scanning alerts, OAuth and classic tokens require `security_events` scope for both private/public repos, and `public_repo` scope for public ones only.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_CODE_SCANNING_ALERT])

UPDATE A CODE SCANNING ALERT

This API endpoint updates a single code scanning alert status, requiring `security_events` scope for OAuth or classic tokens on private/public repos, or `public_repo` scope for public repos on
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_UPDATE_A_CODE_SCANNING_ALERT])

LIST INSTANCES OF A CODE SCANNING ALERT

This endpoint lists all code scanning alerts, requiring `security_events` scope for OAuth app and classic tokens in private/public repos and `public_repo` scope for public repos only.
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_INSTANCES_OF_A_CODE_SCANNING_ALERT])

LIST CODE SCANNING ANALYSES FOR A REPOSITORY

API endpoint summary: Lists up to 30 code scanning analyses per repository page, detailing rules run. Older analyses may lack data. The `tool_name` field is deprecated for `tool`. Access requi
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_LIST_CODE_SCANNING_ANALYSES_FOR_A_REPOSITORY])

GET A CODE SCANNING ANALYSIS FOR A REPOSITORY

This API endpoint scans code, providing details like Git ref, commit details, tool name, and alert counts, some older scans may not include rule counts. It supports SARIF v2.1.0 data format an
from composio_langchain import ComposioToolSet, Action tool_set = ComposioToolSet() tools = tool_set.get_tools(actions=[Action.GITHUB_GET_A_CODE_SCANNING_ANALYSIS_FOR_A_REPOSITORY])

Frequently asked questions

What is Composio.dev?

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

How does Composio.dev support github?

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

What models can I use with github?

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

How can I integrate github into my project?

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

What is the pricing for github?

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

What kind of authentication is supported for github?

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

Can I add github to my project?

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

What is the accuracy of github?

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

What are some common use cases for github?

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

How does github handle data privacy and security?

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