GitHub Integration
Repository and issue management with GitHub integration for CrewAI.
Overview
Enable your agents to manage repositories, issues, and releases through GitHub. Create and update issues, manage releases, track project development, and streamline your software development workflow with AI-powered automation.
Prerequisites
Before using the GitHub integration, ensure you have:
- A CrewAI Enterprise account with an active subscription
- A GitHub account with appropriate repository permissions
- Connected your GitHub account through the Integrations page
Setting Up GitHub Integration
1. Connect Your GitHub Account
- Navigate to CrewAI Enterprise Integrations
- Find GitHub in the Authentication Integrations section
- Click Connect and complete the OAuth flow
- Grant the necessary permissions for repository and issue management
- Copy your Enterprise Token from Account Settings
2. Install Required Package
Available Actions
GITHUB_CREATE_ISSUE
GITHUB_CREATE_ISSUE
Description: Create an issue in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Issue. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Issue.title
(string, required): Issue Title - Specify the title of the issue to create.body
(string, optional): Issue Body - Specify the body contents of the issue to create.assignees
(string, optional): Assignees - Specify the assignee(s)’ GitHub login as an array of strings for this issue. (example:["octocat"]
).
GITHUB_UPDATE_ISSUE
GITHUB_UPDATE_ISSUE
Description: Update an issue in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Issue. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Issue.issue_number
(string, required): Issue Number - Specify the number of the issue to update.title
(string, required): Issue Title - Specify the title of the issue to update.body
(string, optional): Issue Body - Specify the body contents of the issue to update.assignees
(string, optional): Assignees - Specify the assignee(s)’ GitHub login as an array of strings for this issue. (example:["octocat"]
).state
(string, optional): State - Specify the updated state of the issue.- Options:
open
,closed
- Options:
GITHUB_GET_ISSUE_BY_NUMBER
GITHUB_GET_ISSUE_BY_NUMBER
Description: Get an issue by number in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Issue. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Issue.issue_number
(string, required): Issue Number - Specify the number of the issue to fetch.
GITHUB_LOCK_ISSUE
GITHUB_LOCK_ISSUE
Description: Lock an issue in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Issue. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Issue.issue_number
(string, required): Issue Number - Specify the number of the issue to lock.lock_reason
(string, required): Lock Reason - Specify a reason for locking the issue or pull request conversation.- Options:
off-topic
,too heated
,resolved
,spam
- Options:
GITHUB_SEARCH_ISSUE
GITHUB_SEARCH_ISSUE
Description: Search for issues in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Issue. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Issue.filter
(object, required): A filter in disjunctive normal form - OR of AND groups of single conditions.Available fields:assignee
,creator
,mentioned
,labels
GITHUB_CREATE_RELEASE
GITHUB_CREATE_RELEASE
Description: Create a release in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Release. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Release.tag_name
(string, required): Name - Specify the name of the release tag to be created. (example: “v1.0.0”).target_commitish
(string, optional): Target - Specify the target of the release. This can either be a branch name or a commit SHA. Defaults to the main branch. (example: “master”).body
(string, optional): Body - Specify a description for this release.draft
(string, optional): Draft - Specify whether the created release should be a draft (unpublished) release.- Options:
true
,false
- Options:
prerelease
(string, optional): Prerelease - Specify whether the created release should be a prerelease.- Options:
true
,false
- Options:
discussion_category_name
(string, optional): Discussion Category Name - If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository.generate_release_notes
(string, optional): Release Notes - Specify whether the created release should automatically create release notes using the provided name and body specified.- Options:
true
,false
- Options:
GITHUB_UPDATE_RELEASE
GITHUB_UPDATE_RELEASE
Description: Update a release in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Release. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Release.id
(string, required): Release ID - Specify the ID of the release to update.tag_name
(string, optional): Name - Specify the name of the release tag to be updated. (example: “v1.0.0”).target_commitish
(string, optional): Target - Specify the target of the release. This can either be a branch name or a commit SHA. Defaults to the main branch. (example: “master”).body
(string, optional): Body - Specify a description for this release.draft
(string, optional): Draft - Specify whether the created release should be a draft (unpublished) release.- Options:
true
,false
- Options:
prerelease
(string, optional): Prerelease - Specify whether the created release should be a prerelease.- Options:
true
,false
- Options:
discussion_category_name
(string, optional): Discussion Category Name - If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository.generate_release_notes
(string, optional): Release Notes - Specify whether the created release should automatically create release notes using the provided name and body specified.- Options:
true
,false
- Options:
GITHUB_GET_RELEASE_BY_ID
GITHUB_GET_RELEASE_BY_ID
Description: Get a release by ID in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Release. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Release.id
(string, required): Release ID - Specify the release ID of the release to fetch.
GITHUB_GET_RELEASE_BY_TAG_NAME
GITHUB_GET_RELEASE_BY_TAG_NAME
Description: Get a release by tag name in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Release. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Release.tag_name
(string, required): Name - Specify the tag of the release to fetch. (example: “v1.0.0”).
GITHUB_DELETE_RELEASE
GITHUB_DELETE_RELEASE
Description: Delete a release in GitHub.
Parameters:
owner
(string, required): Owner - Specify the name of the account owner of the associated repository for this Release. (example: “abc”).repo
(string, required): Repository - Specify the name of the associated repository for this Release.id
(string, required): Release ID - Specify the ID of the release to delete.
Usage Examples
Basic GitHub Agent Setup
Filtering Specific GitHub Tools
Release Management
Issue Tracking and Management
Getting Help
Need Help?
Contact our support team for assistance with GitHub integration setup or troubleshooting.