This page provides information on how to connect to GitHub. It enables users to perform actions such as creating issues, updating releases, searching for repositories, and managing project workflows directly from Appsmith.
To connect to GitHub, you need to authenticate using OAuth 2.0 . This authentication provides secure access to repositories and GitHub features based on your account permissions.
- Log in to your GitHub account if not already logged in
- Review the requested permissions
- Click "Authorize" to grant Appsmith access to your GitHub account
The OAuth flow provides a seamless experience but requires you to have a browser session.
The following section is a reference guide that provides a description of the available commands with their parameters to create GitHub queries.
Creates a new issue in a specified GitHub repository. This command allows you to define the issue title, description, and assignees, and returns the created issue's details including its number, URL, and creation timestamp.
To locate the owner:
- Look at the URL:
https://github.com/[OWNER]/[REPO] - The owner is the segment between
github.com/and the next forward slash
For personal repositories, this will be your GitHub username. For organization repositories, this will be the organization name.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
To locate the repository name:
- Look at the URL:
https://github.com/[OWNER]/[REPO] - The repo name is the segment after the owner name
Examples:
For a typical project repository:
awesome-project
You must have appropriate permissions (at least Write access) to create issues in the specified repository.
Best practices for issue titles:
- Keep it under 50-60 characters
- Be specific about the problem or request
- Use imperative mood (e.g., "Fix", "Add", "Update")
- Avoid vague descriptions like "Bug" or "Problem"
Examples:
For a bug report:
Fix login form validation on Safari browsers
For a feature request:
Add dark mode support to dashboard components
The title is displayed in issue lists and notifications, so clarity is essential for effective project management.
A well-structured issue body typically includes a description of the problem or feature, steps to reproduce (for bugs), expected vs. actual behavior, and environment information.
Example for a bug report:
The login form fails to validate email addresses properly on Safari browsers.
The body field is optional but recommended for providing context that helps maintainers understand and address the issue effectively.
Example with multiple assignees:
["johndoe", "janedoe"]
Example with a single assignee:
["techleader"]
If you leave this field empty, the issue will be created without any assignees. You can only assign users who have access to the repository.
Updates an existing issue in a specified GitHub repository. This command allows you to modify the issue's title, body, assignees, and state (open/closed). It returns the updated issue details including any changes made.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
Examples:
For a typical project repository:
awesome-project
For repositories with special characters:
react-native-app
You must have appropriate permissions (at least Write access) to update issues in the specified repository.
To find the issue number:
- Look at the issue URL:
https://github.com/[OWNER]/[REPO]/issues/[NUMBER] - The issue number is the numeric value after "/issues/"
- Alternatively, look at the issue page where the number is displayed next to the title (e.g., "#42")
Examples:
For the first issue in a repository:
1
For a later issue:
42
If you provide an issue number that doesn't exist in the repository, GitHub will return a 404 error.
Examples:
Updating a bug report title with more specific information:
Fix login validation on Safari and Firefox browsers
Updating a feature request title to narrow scope:
Add dark mode support to dashboard components (Phase 1)
If this field is omitted, the existing title will remain unchanged.
Example of appending an update to an existing issue:
After investigation, this issue affects Safari 15.4+ and Firefox 98+, but not Chrome.
If this field is omitted, the existing body will remain unchanged.
Example to replace all assignees:
["newassignee1", "newassignee2"]
Example to remove all assignees (assign to no one):
[]
If this field is omitted, the existing assignees will remain unchanged.
Valid values:
"open"- Marks the issue as active and needing attention"closed"- Marks the issue as resolved or no longer relevant
Example to close an issue:
closed
Example to reopen an issue:
open
If this field is omitted, the existing state will remain unchanged.
Retrieves detailed information about a specific issue in a GitHub repository using its unique issue number. This command returns comprehensive data about the issue, including its title, body, state, assignees, labels, comments count, and timestamps.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least Read access to the repository to retrieve issues. For private repositories, you must be authenticated with appropriate permissions.
Examples:
For the first issue in a repository:
1
For a later issue:
42
If you provide an issue number that doesn't exist in the repository, GitHub will return a 404 error.
The response will include all issue details including title, description, state, assignees, labels, and timestamps.
Restricts comments and interactions on an issue to prevent further discussion. This is useful for issues that have become off-topic, heated, or resolved in a way that requires no further input. When an issue is locked, only users with write access to the repository can add new comments.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least write access to the repository to lock issues.
Examples:
For a specific issue:
42
For another issue:
107
If you provide an issue number that doesn't exist in the repository, GitHub will return a 404 error.
Valid lock reasons:
"off-topic"- Conversations that are not relevant to the project or repository"too heated"- Conversations that are getting too heated or unproductive"resolved"- Issues that have been resolved and require no further discussion"spam"- Content identified as spam or unwanted promotional material
Example:
off-topic
If no lock reason is provided, the issue will still be locked, but no reason will be displayed publicly.
Searches for issues across GitHub repositories based on specified criteria. This command allows you to find issues matching keywords, labels, assignees, and other filters, returning a list of matching issues with their details.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least Read access to the repository to search for issues.
Common search qualifiers:
is:issueoris:pr- Search for issues or pull requestsis:openoris:closed- Filter by statelabel:bug- Filter by labelauthor:username- Filter by issue creatorassignee:username- Filter by assignee
Examples:
To find open bug issues:
is:issue is:open label:bug
To find issues assigned to a specific user:
is:issue assignee:johndoe
The search results include issues that match all the specified criteria.
Creates a new release for a repository. Releases are deployable project iterations that include compiled files, binary packages, and release notes. This command allows you to create a release from a specific tag, add a title, description, and mark it as a pre-release or draft if needed.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least write access to the repository to create releases.
Examples:
For a major release:
v1.0.0
For a pre-release:
v2.0.0-beta.1
The tag name is required and must be unique within the repository.
Examples:
For a specific commit:
a7d9f5c
For a branch:
feature-branch
If target commitish is not specified, GitHub creates the tag from the default branch (usually main or master).
Example of release notes:
## What's New
- Dark Mode support
- Performance Improvements
- Bug fixes for login issues
Well-crafted release notes help users understand what changed and decide whether to upgrade.
Example to create a draft release:
true
Example to create a published release:
false
If this parameter is omitted, the default is false (published release).
Example to mark as prerelease:
true
Example for stable release:
false
If this parameter is omitted, the default is false (stable release).
Example:
Announcements
This parameter is optional. If omitted, no discussion will be created.
Example to generate release notes:
true
Example to use only the provided body:
false
If this parameter is omitted, the default is false (no auto-generated notes).
Updates an existing release in a GitHub repository. This command allows you to modify a release's title, description, draft/published status, and prerelease status without creating a new release.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least write access to the repository to update releases.
Example:
53425892
The release ID is required and must correspond to an existing release in the repository.
Example:
v1.0.1
If this field is omitted, the existing tag name will remain unchanged.
Example:
hotfix-branch
If this field is omitted, the existing target commitish will remain unchanged.
Example of updated release notes:
## UPDATE
This release has been updated with additional bug fixes.
If this field is omitted, the existing release notes will remain unchanged.
Example to publish a draft release:
false
If this field is omitted, the existing draft status will remain unchanged.
Example to mark as stable release:
false
If this field is omitted, the existing prerelease status will remain unchanged.
Example:
Releases
If this field is omitted, the existing discussion settings will remain unchanged.
Example:
true
If this field is omitted, no auto-generation of notes will occur.
Retrieves detailed information about a specific release in a GitHub repository using its unique release ID. This command returns comprehensive data about the release, including its tag name, body, assets, and timestamps.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least Read access to the repository to retrieve releases.
Example:
53425892
The release ID is required and must correspond to an existing release in the repository.
Retrieves detailed information about a specific release in a GitHub repository using its tag name. This command returns comprehensive data about the release, including its ID, body, assets, and timestamps.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least Read access to the repository to retrieve releases.
Example:
v1.0.0
The tag name is required and must correspond to an existing release tag in the repository.
Deletes a release from a GitHub repository. This command permanently removes the release and its associated data, but does not delete the Git tag associated with the release.
Examples:
For a personal repository:
janedoe
For an organization repository:
appsmith
If the owner is incorrect or doesn't exist, GitHub will return a 404 error.
You must have at least write access to the repository to delete releases.
Example:
53425892
The release ID is required and must correspond to an existing release in the repository.
Performs a custom GitHub API request that isn't covered by the predefined commands. This allows for advanced operations and accessing additional GitHub API endpoints.
Example:
To get repository statistics:
GET /repos/{owner}/{repo}/stats/contributors
To create a repository webhook:
POST /repos/{owner}/{repo}/hooks
Custom actions require appropriate authentication and permissions for the endpoints being accessed.