GitHub
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.
Connect GitHub
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.
Query GitHub
The following section is a reference guide that provides a description of the available commands with their parameters to create GitHub queries.
Create Issue
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.
Owner string
The owner's name identifies the account or organization that owns the repository. This is the username or organization name that appears in the repository URL.
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.
Repo string
The repository name specifies which GitHub repository the issue will be created in. This must be the exact name of the repository as it appears on GitHub, including capitalization and special characters.
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.
Title string
The title provides a concise summary of the issue. It should clearly communicate the problem or feature request in a single line. A good title helps maintainers and contributors quickly understand what the issue is about.
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.
Body string
The body contains detailed information about the issue. It supports GitHub Flavored Markdown for rich formatting, including headings, lists, code blocks, tables, and embedded images.
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.
Assignees array
This property specifies GitHub usernames of people who should be assigned to the issue. Assignees are responsible for addressing the issue and receive notifications about it.
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.
Update Issue
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.
Owner string
The owner's name identifies the account or organization that owns the repository containing the issue you want to update.
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.
Repo string
The repository name specifies which GitHub repository contains the issue you want to update. This must be the exact name of the repository as it appears on GitHub, including capitalization and special characters.
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.
Issue Number integer
The issue number is a unique identifier for the issue within the repository. Each issue in a repository has a sequential number that distinguishes it from other issues.
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.
Title string
The title field allows you to update the issue's summary. Changing the title can help clarify the issue's purpose or reflect new information discovered during investigation.
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.
Body string
The body field allows you to update the detailed description of the issue. You can use this to add new information, clarify details, or document progress.
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.
Assignees array
This property allows you to update the list of GitHub users assigned to the issue. You can add new assignees, remove existing ones, or completely replace the assignee list.
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.
State string
The state property controls whether the issue is open or closed. Changing the state is essential for workflow management and tracking progress.
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.
Get Issue By Number
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.
Owner string
The owner's name identifies the account or organization that owns the repository containing the issue you want to retrieve.
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.
Repo string
The repository name specifies which GitHub repository contains the issue you want to retrieve.
You must have at least Read access to the repository to retrieve issues. For private repositories, you must be authenticated with appropriate permissions.
Issue Number integer
The issue number is a unique identifier for the issue within the repository. Each issue in a repository has a sequential number that distinguishes it from other issues.
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.