GitHub
GitHub is a web-based platform for version control and collaboration using Git.
Categories: Developer Tools
Type: github/v1
Connections
Version: 1
OAuth2 Authorization Code
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| clientId | Client id | STRING | true | |
| clientSecret | Client secret | STRING | true |
Connection Setup
- Login to your GitHub account.
- Click on your profile icon in the top right corner.
- Select Settings from the dropdown menu.
- In the left sidebar, click on Developer settings.
- In the left sidebar, click on OAuth Apps.
- Click on New OAuth App.
- Fill in the required fields:
- Application name: Enter a name for your application (e.g.,
Test App). - Homepage URL: Provide the homepage URL for your application (e.g.,
https://www.bytechef.io/). - Authorization callback URL: Specify the URL where users will be redirected after authorization (e.g.,
http://127.0.0.1:5173/callback).
- Application name: Enter a name for your application (e.g.,
- Click Register application.
- Click on Generate a new client secret.
- Copy the Client ID and Client Secret for later use.
Actions
Add Assignee to Issue
Name: addAssigneesToIssue
Adds an assignees to the specified issue.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| repository | Repository | STRING | true | |
| issue | Issue Number | STRING Depends Onrepository | The number of the issue to add assignee to. | true |
| assignees | Assignees | ARRAY Items[STRING] | The list of assignees to add to the issue. | true |
Example JSON Structure
{
"label" : "Add Assignee to Issue",
"name" : "addAssigneesToIssue",
"parameters" : {
"repository" : "",
"issue" : "",
"assignees" : [ "" ]
},
"type" : "github/v1/addAssigneesToIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
{
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
}Add Labels to Issue
Name: addLabelsToIssue
Adds labels to the specified issue.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| repository | Repository | STRING | true | |
| issue | Issue Number | STRING Depends Onrepository | The number of the issue to add labels to. | true |
| labels | Labels | ARRAY Items[STRING] | The list of labels to add to the issue. | true |
Example JSON Structure
{
"label" : "Add Labels to Issue",
"name" : "addLabelsToIssue",
"parameters" : {
"repository" : "",
"issue" : "",
"labels" : [ "" ]
},
"type" : "github/v1/addLabelsToIssue"
}Output
Type: ARRAY
Items Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| id | STRING | ID of the label |
| name | STRING | Name of the label. |
| description | STRING | Description of the label. |
| color | STRING | The hexadecimal color code for the label, without the leading #. |
Output Example
[ {
"id" : "",
"name" : "",
"description" : "",
"color" : ""
} ]Create Comment on Issue
Name: createCommentOnIssue
Adds a comment to the specified issue.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository where the issue is located. | true |
| issue | Issue Number | STRING Depends Onrepository, owner | The number of the issue to comment on. | true |
| body | Comment | STRING | The comment to add to the issue. | true |
Example JSON Structure
{
"label" : "Create Comment on Issue",
"name" : "createCommentOnIssue",
"parameters" : {
"owner" : "",
"repository" : "",
"issue" : "",
"body" : ""
},
"type" : "github/v1/createCommentOnIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
{
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
}Create Fork
Name: createFork
Create a fork of Github repository.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository that will be forked. | true |
| name | Name | STRING | A new name for the fork. | false |
| organization | Organization | STRING | The organization name if forking into an organization. | false |
| defaultBranchOnly | Default Branch Only | BOOLEAN Optionstrue, false | When forking from an existing repository, fork with only the default branch. | false |
Example JSON Structure
{
"label" : "Create Fork",
"name" : "createFork",
"parameters" : {
"owner" : "",
"repository" : "",
"name" : "",
"organization" : "",
"defaultBranchOnly" : false
},
"type" : "github/v1/createFork"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| id | STRING | The unique identifier of the fork. |
| node_id | STRING | The node ID of the fork. |
| name | STRING | The name of the forked repository. |
| full_name | STRING | The full name of the forked repository including owner. |
| owner | OBJECT Properties{STRING(login), STRING(id), STRING(node_id), STRING(url)} | Owner information. |
| private | BOOLEAN Optionstrue, false | Indicates if the forked repository is private. |
| html_url | STRING | HTML URL of the forked repository. |
| url | STRING | API URL of the forked repository. |
| description | STRING | Description of the repository. |
| fork | STRING | Whether this repository is a fork. |
| created_at | STRING | Creation timestamp. |
| updated_at | STRING | Last update timestamp. |
| pushed_at | STRING | Last push timestamp. |
| default_branch | STRING | Default branch name. |
Output Example
{
"id" : "",
"node_id" : "",
"name" : "",
"full_name" : "",
"owner" : {
"login" : "",
"id" : "",
"node_id" : "",
"url" : ""
},
"private" : false,
"html_url" : "",
"url" : "",
"description" : "",
"fork" : "",
"created_at" : "",
"updated_at" : "",
"pushed_at" : "",
"default_branch" : ""
}Create Issue
Name: createIssue
Create Issue in GitHub Repository
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository where new issue will be created. | true |
| title | Title | STRING | Title of the issue. | false |
| body | Description | STRING | The description of the issue. | false |
Example JSON Structure
{
"label" : "Create Issue",
"name" : "createIssue",
"parameters" : {
"owner" : "",
"repository" : "",
"title" : "",
"body" : ""
},
"type" : "github/v1/createIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
{
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
}Create Pull Request
Name: createPullRequest
Creates a new pull request.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository where new pull request will be created. | true |
| title | Title | STRING | Title of the new pull request. | false |
| body | Body | STRING | The contents of the pull request. | false |
| head | Head | STRING | The name of the branch where your changes are implemented. For cross-repository pull requests in the same network, namespace head with a user like this: username:branch. | true |
| head_repo | Head Repo | STRING | The name of the repository where the changes in the pull request were made. This field is required for cross-repository pull requests if both repositories are owned by the same organization. | false |
| base | Base | STRING | The name of the branch you want the changes pulled into. This should be an existing branch on the current repository. You cannot submit a pull request to one repository that requests a merge to a base of another repository. | true |
| issue | Issue | INTEGER | An issue in the repository to convert to a pull request. The issue title, body, and comments will become the title, body, and comments on the new pull request. Required unless title is specified. | false |
| draft | Draft | BOOLEAN Optionstrue, false | Indicates whether the pull request is a draft. | true |
Example JSON Structure
{
"label" : "Create Pull Request",
"name" : "createPullRequest",
"parameters" : {
"owner" : "",
"repository" : "",
"title" : "",
"body" : "",
"head" : "",
"head_repo" : "",
"base" : "",
"issue" : 1,
"draft" : false
},
"type" : "github/v1/createPullRequest"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL of the created pull request. |
| id | INTEGER | ID of the created pull request. |
| node_id | STRING | |
| html_url | STRING | |
| diff_url | STRING | |
| patch_url | STRING | |
| issue_url | STRING | |
| commits_url | STRING | |
| review_comment_url | STRING | |
| comments_url | STRING | |
| statuses_url | STRING | |
| number | INTEGER | Number uniquely identifying the pull request within its repository. |
| state | STRING | The state of the pull request. Either open or closed. |
| locked | BOOLEAN Optionstrue, false | |
| title | STRING | The title of the pull request. |
| user | OBJECT Properties{STRING(login), STRING(id), STRING(html_url), STRING(type)} | A GitHub user. |
| body | STRING | The contents of the pull request. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | |
| comments | INTEGER | The number of comments on the pull request. |
| review_comments | INTEGER | The number of comments for review on the pull request. |
| maintainer_can_modify | BOOLEAN Optionstrue, false | Indicates whether maintainers can modify the pull request. |
| commits | INTEGER | The number of commits in the pull request. |
| additions | INTEGER | The number of additions in the pull request. |
| deletions | INTEGER | The number of deletions in the pull request. |
| changed_files | INTEGER | The number of changed files in the pull request. |
Output Example
{
"url" : "",
"id" : 1,
"node_id" : "",
"html_url" : "",
"diff_url" : "",
"patch_url" : "",
"issue_url" : "",
"commits_url" : "",
"review_comment_url" : "",
"comments_url" : "",
"statuses_url" : "",
"number" : 1,
"state" : "",
"locked" : false,
"title" : "",
"user" : {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
},
"body" : "",
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"comments" : 1,
"review_comments" : 1,
"maintainer_can_modify" : false,
"commits" : 1,
"additions" : 1,
"deletions" : 1,
"changed_files" : 1
}Get Issue
Name: getIssue
Get information from a specific issue
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository where the issue is located. | true |
| issue | Issue Number | STRING Depends Onrepository, owner | The number of the issue you want to get details from. | true |
Example JSON Structure
{
"label" : "Get Issue",
"name" : "getIssue",
"parameters" : {
"owner" : "",
"repository" : "",
"issue" : ""
},
"type" : "github/v1/getIssue"
}Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
{
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
}Get Repository Content
Name: getRepositoryContent
Gets the contents of a file or directory in a repository. If the content is a directory, the response will be each item in the directory and if the content is a file, the response will be file as a string.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | Repository where the content is located. | true |
| path | Path | STRING | Path to the file or the directory. | true |
Example JSON Structure
{
"label" : "Get Repository Content",
"name" : "getRepositoryContent",
"parameters" : {
"owner" : "",
"repository" : "",
"path" : ""
},
"type" : "github/v1/getRepositoryContent"
}Output
Type: STRING
List Issues
Name: listIssues
Retrieve issues assigned to the authenticated user across all accessible repositories.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| filter | Filter | STRING Optionsassigned, created, mentioned, subscribed, repos, all | Specifies the types of issues to return. | true |
| state | State | STRING Optionsopen, closed, all | Indicates the state of the issues to return. | true |
Example JSON Structure
{
"label" : "List Issues",
"name" : "listIssues",
"parameters" : {
"filter" : "",
"state" : ""
},
"type" : "github/v1/listIssues"
}Output
Type: ARRAY
Items Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
[ {
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
} ]List Repository Issues
Name: listRepositoryIssues
Lists issues in a repository. Only open issues will be listed.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | The name of the repository | true |
Example JSON Structure
{
"label" : "List Repository Issues",
"name" : "listRepositoryIssues",
"parameters" : {
"owner" : "",
"repository" : ""
},
"type" : "github/v1/listRepositoryIssues"
}Output
Type: ARRAY
Items Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
Output Example
[ {
"url" : "",
"repository_url" : "",
"id" : 0.0,
"number" : 1,
"title" : "",
"state" : "",
"assignees" : [ {
"login" : "",
"id" : "",
"html_url" : "",
"type" : ""
} ],
"labels" : [ {
"id" : "",
"name" : "",
"description" : ""
} ],
"body" : ""
} ]Star Repository
Name: starRepository
Stars a repository for the authenticated user.
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| owner | User/Organization | STRING | The owner of the repository (user or organization). | true |
| repository | Repository | STRING | The name of the repository including owner without the .git extension. The name is not case sensitive. | true |
Example JSON Structure
{
"label" : "Star Repository",
"name" : "starRepository",
"parameters" : {
"owner" : "",
"repository" : ""
},
"type" : "github/v1/starRepository"
}Output
This action does not produce any output.
Triggers
Events Trigger
Name: eventsTrigger
Triggers on specified events.
Type: DYNAMIC_WEBHOOK
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| repository | Repository | STRING | true | |
| events | Events | ARRAY Items[STRING] | Determines what events the hook is triggered for. | true |
Output
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
JSON Example
{
"label" : "Events Trigger",
"name" : "eventsTrigger",
"parameters" : {
"repository" : "",
"events" : [ "" ]
},
"type" : "github/v1/eventsTrigger"
}New Issue
Name: newIssue
Triggers when a new issue is created.
Type: POLLING
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| repository | Repository | STRING | true |
Output
Type: OBJECT
Properties
| Name | Type | Description |
|---|---|---|
| url | STRING | The URL linking directly to the issue on GitHub. |
| repository_url | STRING | The URL of the repository where the issue is located. |
| id | NUMBER | ID of the issue. |
| number | INTEGER | A unique number identifying the issue within its repository. |
| title | STRING | The title or headline of the issue. |
| state | STRING | The current state of the issue, such as open or closed. |
| assignees | ARRAY Items[{STRING(login), STRING(id), STRING(html_url), STRING(type)}] | A list of users assigned to the issue. |
| labels | ARRAY Items[{STRING(id), STRING(name), STRING(description)}] | A collection of labels associated with the issue. |
| body | STRING | The main content of the issue. |
JSON Example
{
"label" : "New Issue",
"name" : "newIssue",
"parameters" : {
"repository" : ""
},
"type" : "github/v1/newIssue"
}New Pull Request
Name: newPullRequest
Triggers when a new pull request is created.
Type: POLLING
Properties
| Name | Label | Type | Description | Required |
|---|---|---|---|---|
| repository | Repository | STRING | true |
Output
The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.
JSON Example
{
"label" : "New Pull Request",
"name" : "newPullRequest",
"parameters" : {
"repository" : ""
},
"type" : "github/v1/newPullRequest"
}What to do if your action is not listed here?
If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.
To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.
How is this guide?
Last updated on
Freshsales
Freshsales is a customer relationship management (CRM) software designed to help businesses streamline sales processes and manage customer interactions effectively.
GitLab
GitLab is a web-based DevOps lifecycle tool that provides a Git repository manager, CI/CD pipelines, issue tracking, and more in a single application.