> For the complete documentation index, see [llms.txt](https://docs.kognitos.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kognitos.com/guides/platform/integrations/github.md).

# GitHub

Overview of the GitHub integration.

{% hint style="info" %}
The following documentation is for **GitHub v2.4.1**.
{% endhint %}

## Overview

GitHub is the world's leading platform for version control and collaborative software development. This integration enables automated repository management, issue tracking, pull request operations, and code deployment workflows. Streamline your development processes and enhance team collaboration on code projects.

## Setup

The following integrations need to be connected to your Kognitos workspace:

* **GitHub**

### Steps

Follow these steps to connect the integration in Kognitos:

{% stepper %}
{% step %}

#### Navigate

Using the left navigation menu, go to **Integrations** → **Explore Integrations**.
{% endstep %}

{% step %}

#### Find

Search for the integration and click on it.
{% endstep %}

{% step %}

#### Connect

Click on <kbd>**Connect**</kbd> to add a connection to the integration.
{% endstep %}

{% step %}

#### Configure

Add a name for the connection. You'll be prompted for [**authentication**](#authentication) details if needed. Then, click on <kbd>**Connect**</kbd>.
{% endstep %}
{% endstepper %}

## Authentication

Use one of the following authentication methods to connect this integration in Kognitos. Each method has its own configuration requirements.

### Connect using API Key

Connect to the GitHub API using an API key.

| Label   | Description                           | Type        |
| ------- | ------------------------------------- | ----------- |
| API Key | The API key to be used for connecting | `sensitive` |

## Actions

The following actions are available in the **GitHub** integration:

### 1. Compare commits in a repository source

Compare two refs (branches, tags, or commit SHAs) in a GitHub repository.

### 2. Create a pull request in a repository source

Create a pull request for a specified GitHub repository.

### 3. Create an issue in a repository source

Create an issue for a specified GitHub repository.

### 4. Get the commit files from a repository source

Get the files changed in a specific commit.

### 5. Get the commits from a repository source

Get the commits from a GitHub repository.

### 6. Get the file contents from a repository source

Get file or directory contents from a GitHub repository.

### 7. Get the issues from a repository source

Get the issues from a GitHub repository.

### 8. Get the pull request files from a repository source

Get the files changed in a pull request.

### 9. Get the pull request from a repository source

Get a pull request from a GitHub repository.

### 10. Get the pull requests from a repository source

Get the pull requests from a GitHub repository.

### 11. Get the repositories from a source organization

Get the repositories from a GitHub organization.

### 12. Get the team from a source organization

Get a team from a GitHub organization.

### 13. Get the teams from a source organization

Get the teams from a GitHub organization.

### 14. Get the user from a name

Get a user from GitHub.

### 15. Request reviewers for a pull request

Request reviewers for a pull request in a specified GitHub repository.

### 16. Search code in a repository source

Search code in a GitHub repository.

### 17. Update a pull request in a repository source

Update a pull request for a specified GitHub repository.

### 18. Update an issue in a repository source

Update an issue for a specified GitHub repository.

## Concepts

### Github comparison

GitHub Comparison Wrapper class.

| Field Name                   | Description                                                                  | Type                                 |
| ---------------------------- | ---------------------------------------------------------------------------- | ------------------------------------ |
| `status`                     | The comparison status (ahead, behind, diverged, identical).                  | `text`                               |
| `ahead_by`                   | The number of commits ahead.                                                 | `number`                             |
| `behind_by`                  | The number of commits behind.                                                | `number`                             |
| `total_commits`              | The total number of commits.                                                 | `number`                             |
| `html_url`                   | The HTML URL of the comparison.                                              | `optional[text]`                     |
| [`files`](#github-file-diff) | The list of file diffs in the comparison. Empty when the refs are identical. | `optional[list of github file diff]` |

### Github file diff

GitHub File Diff Wrapper class.

| Field Name          | Description                                                                               | Type             |
| ------------------- | ----------------------------------------------------------------------------------------- | ---------------- |
| `filename`          | The name of the changed file.                                                             | `text`           |
| `status`            | The status of the change (added, removed, modified, renamed, copied, changed, unchanged). | `text`           |
| `additions`         | The number of lines added.                                                                | `number`         |
| `deletions`         | The number of lines deleted.                                                              | `number`         |
| `changes`           | The total number of lines changed.                                                        | `number`         |
| `patch`             | The unified diff patch (None for binary files).                                           | `optional[text]` |
| `previous_filename` | The previous filename (only for renames).                                                 | `optional[text]` |
| `sha`               | The SHA of the file.                                                                      | `optional[text]` |

### Github issue

GitHub Issue Wrapper class.

| Field Name                | Description                                                                      | Type                             |
| ------------------------- | -------------------------------------------------------------------------------- | -------------------------------- |
| `number`                  | The number of the issue. Optional since is None in case of creating an issue.    | `optional[number]`               |
| `title`                   | The title of the issue. Optional since can be None in case of editing an issue.  | `optional[text]`                 |
| `body`                    | The body of the issue. Optional since can be None in case of editing an issue.   | `optional[text]`                 |
| `state`                   | The state of the issue. Optional since is None in case of creating an issue.     | `optional[text]`                 |
| [`labels`](#github-label) | The labels of the issue. Optional since can be None in case of editing an issue. | `optional[list of github label]` |
| [`user`](#github-user)    | The user of the issue. Optional since is None in case of creating an issue.      | `optional[github user]`          |

### Github label

GitHub Label Wrapper class.

| Field Name    | Description                   | Type             |
| ------------- | ----------------------------- | ---------------- |
| `color`       | The color of the label.       | `text`           |
| `description` | The description of the label. | `optional[text]` |
| `name`        | The name of the label.        | `text`           |
| `url`         | The URL of the label.         | `text`           |

### Github user

GitHub User Wrapper class.

| Field Name | Description            | Type               |
| ---------- | ---------------------- | ------------------ |
| `login`    | The login of the user. | `optional[text]`   |
| `id`       | The ID of the user.    | `optional[number]` |
| `type`     | The type of the user.  | `optional[text]`   |

### Github pull request

GitHub Pull Request Wrapper class.

| Field Name   | Description                                                                                  | Type                                            |
| ------------ | -------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `number`     | The number of the pull request. Optional since is None in case of creating a pull request.   | `optional[number]`                              |
| `head`       | The head of the pull request. Optional since can be None in case of editing a pull request.  | `optional[github pull request part?` or `text]` |
| `title`      | The title of the pull request. Optional since can be None in case of editing a pull request. | `optional[text]`                                |
| `base`       | The base of the pull request. Optional since can be None in case of editing a pull request.  | `optional[github pull request part?` or `text]` |
| `body`       | The body of the pull request. Optional since can be None in case of editing a pull request.  | `optional[text]`                                |
| `state`      | The state of the pull request. Optional since is None in case of creating a pull request.    | `optional[text]`                                |
| `author`     | The login username of the pull request author.                                               | `optional[text]`                                |
| `updated_at` | The timestamp when the pull request was last updated.                                        | `optional[text]`                                |
| `merged_at`  | The timestamp when the pull request was merged, if applicable.                               | `optional[text]`                                |
| `merged`     | Whether the pull request has been merged.                                                    | `optional[boolean]`                             |
| `url`        | The API URL of the pull request.                                                             | `optional[text]`                                |
| `html_url`   | The HTML URL of the pull request.                                                            | `optional[text]`                                |
| `labels`     | The list of label names on the pull request.                                                 | `optional[list of text]`                        |

### Github commit

GitHub Commit Wrapper class.

| Field Name                      | Description            | Type                            |
| ------------------------------- | ---------------------- | ------------------------------- |
| [`commit`](#github-git-commit)  | The commit.            | `optional[github git commit]`   |
| `sha`                           | The SHA of the commit. | `optional[text]`                |
| [`stats`](#github-commit-stats) | The commit stats.      | `optional[github commit stats]` |
| `url`                           | The URL of the commit. | `optional[text]`                |

### Github git commit

GitHub Git Commit Wrapper class.

| Field Name                        | Description                  | Type                          |
| --------------------------------- | ---------------------------- | ----------------------------- |
| [`author`](#github-git-author)    | The author of the commit.    | `optional[github git author]` |
| [`committer`](#github-git-author) | The committer of the commit. | `optional[github git author]` |
| `message`                         | The message of the commit.   | `optional[text]`              |
| `sha`                             | The SHA of the commit.       | `optional[text]`              |

### Github commit stats

GitHub Commit Stats Wrapper class.

| Field Name  | Description                  | Type     |
| ----------- | ---------------------------- | -------- |
| `total`     | The total number of commits. | `number` |
| `deletions` | The number of deletions.     | `number` |
| `additions` | The number of additions.     | `number` |

### Github file content

GitHub File Content Wrapper class.

| Field Name     | Description                                              | Type             |
| -------------- | -------------------------------------------------------- | ---------------- |
| `name`         | The name of the file or directory.                       | `text`           |
| `path`         | The path of the file or directory.                       | `text`           |
| `sha`          | The SHA of the content.                                  | `text`           |
| `size`         | The size of the content in bytes.                        | `number`         |
| `type`         | The type of the content (file, dir, symlink, submodule). | `text`           |
| `content`      | The decoded text content (files only).                   | `optional[text]` |
| `encoding`     | The encoding of the content.                             | `optional[text]` |
| `html_url`     | The HTML URL of the content.                             | `optional[text]` |
| `download_url` | The download URL of the content.                         | `optional[text]` |

### Github repository

GitHub Repository Wrapper class.

| Field Name        | Description                        | Type   |
| ----------------- | ---------------------------------- | ------ |
| `branches_url`    | The branches URL.                  | `text` |
| `commits_url`     | The commits URL.                   | `text` |
| `description`     | The description of the repository. | `text` |
| `git_commits_url` | The git commits URL.               | `text` |
| `git_tags_url`    | The git tags URL.                  | `text` |
| `git_url`         | The git URL.                       | `text` |
| `name`            | The name of the repository.        | `text` |

### Github team

GitHub Team Wrapper class.

| Field Name                | Description                       | Type                            |
| ------------------------- | --------------------------------- | ------------------------------- |
| `id`                      | The ID of the team.               | `number`                        |
| `url`                     | The URL of the team.              | `text`                          |
| `name`                    | The name of the team.             | `text`                          |
| `slug`                    | The slug of the team.             | `text`                          |
| `description`             | The description of the team.      | `text`                          |
| `privacy`                 | The privacy of the team.          | `text`                          |
| `permission`              | The permission of the team.       | `text`                          |
| [`members`](#github-user) | The members of the team.          | `optional[list of github user]` |
| `members_url`             | The members URL of the team.      | `optional[text]`                |
| `repositories_url`        | The repositories URL of the team. | `text`                          |

### Github code search result

GitHub Code Search Result Wrapper class.

| Field Name   | Description                                        | Type               |
| ------------ | -------------------------------------------------- | ------------------ |
| `name`       | The name of the file.                              | `text`             |
| `path`       | The path of the file.                              | `text`             |
| `sha`        | The SHA of the file.                               | `text`             |
| `html_url`   | The HTML URL of the file.                          | `optional[text]`   |
| `repository` | The full name of the repository (e.g. owner/repo). | `optional[text]`   |
| `score`      | The relevance score of the search result.          | `optional[number]` |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kognitos.com/guides/platform/integrations/github.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
