> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub

> Cài đặt CloudThinker GitHub App để agent có thể đọc repository, pull request và Actions run, và Review có thể bình luận

Kết nối GitHub để các agent CloudThinker có thể đọc repository, pull request, issue và GitHub Actions run của bạn, và [Review](https://docs.cloudthinker.io/vi/guide/code-review/overview.md) có thể đăng AI code review trên pull request. Bạn kết nối bằng cách cài đặt **GitHub App** của CloudThinker trên một tài khoản hoặc organization, nên không cần tạo hay dán token nào.

## Điều kiện tiên quyết

* Quyền truy cập các repository GitHub mà bạn muốn agent đọc.
* Để cài đặt trên một GitHub organization: vai trò **Owner** trong organization đó, hoặc một owner sẵn sàng phê duyệt việc cài đặt.
* Vai trò **Admin** trong workspace CloudThinker, có quyền thêm và sửa kết nối. Xem [Vai trò](https://docs.cloudthinker.io/vi/guide/security/roles.md).
* Một tài khoản hoặc organization GitHub.com. Quá trình thiết lập cài đặt app từ GitHub.com và không có trường nào cho URL GitHub Enterprise Server.

## Thiết lập

**1. Mở GitHub trong CloudThinker**

Trong thanh bên, nhấn **More → Workspace settings → Connections**. Trên tab **Builtin Connections**, tìm **GitHub** và nhấn **Connect**.

Hộp thoại **Connect GitHub** liệt kê những gì app yêu cầu: quyền truy cập các repository bạn chọn, quyền đọc và ghi cho pull request, và sự kiện webhook cho code review.

**2. Cài đặt GitHub App**

Nhấn **Install GitHub App**. GitHub mở ra và hỏi nơi cài đặt. Chọn tài khoản hoặc organization, rồi chọn **All repositories** hoặc **Only select repositories**.

Chỉ chọn các repository mà agent cần. Bạn có thể thêm sau từ GitHub.

**3. Phê duyệt và quay lại**

Nhấn **Install** trên GitHub. GitHub đưa bạn trở lại CloudThinker, nơi hiển thị **Processing GitHub App installation...** rồi **Successfully installed!**

**Trạng thái thành công:** GitHub hiển thị **Connected** trên tab **Builtin Connections**.

App tự đăng ký webhook (thông báo sự kiện mà GitHub gửi khi một pull request thay đổi), nên GitHub không cần thiết lập webhook cho Review.

## Chi tiết kết nối

GitHub không có trường nào cần điền. CloudThinker lưu bản cài đặt GitHub App khi bạn phê duyệt.

| Mục | Nguồn |
| - | - |
| **GitHub App installation** | Được tạo trên GitHub trong quá trình thiết lập và lưu tự động |
| **Repositories** | Các repository bạn đã cấp cho app trên GitHub |

## Quyền yêu cầu

Quyền của app là cố định. Bạn quyết định phạm vi truy cập của app bằng cách chọn repository để cài app lên. App yêu cầu các quyền bên dưới. Hộp thoại **Connect GitHub** liệt kê ba quyền đầu tiên; app còn yêu cầu quyền đọc và ghi trên issue để Cyber sử dụng.

| Yêu cầu | Lý do CloudThinker cần |
| - | - |
| Quyền truy cập các repository bạn chọn | Đọc mã, issue và Actions run |
| Đọc và ghi trên pull request | Đọc pull request và đăng bình luận review |
| Sự kiện webhook | Khởi chạy review khi một pull request được mở hoặc thay đổi |
| Đọc và ghi trên issue | Tạo và cập nhật phát hiện của [Cyber](https://docs.cloudthinker.io/vi/guide/security/cyber-overview.md) dưới dạng GitHub issue, khi bạn gửi phát hiện đến một repository |

Nếu quyền của app thay đổi, GitHub yêu cầu owner của organization chấp nhận các quyền cập nhật trước khi các quyền này có hiệu lực. Màn hình cài đặt của GitHub liệt kê mọi quyền theo tên trên GitHub, kèm mức truy cập. Hãy kiểm tra ở đó trước khi nhấn **Install**.

> [!TIP]
>
> Cài đặt app với **Only select repositories** và bắt đầu với các repository bạn muốn được review hoặc điều tra. Để thay đổi danh sách sau này trên GitHub, vào **Organization settings → GitHub Apps** (hoặc **Settings → Applications → Installed GitHub Apps** với tài khoản cá nhân), nhấn **Configure** cạnh app CloudThinker, và sửa **Repository access** của GitHub.

## Kiểm soát quyền truy cập trong CloudThinker

Hai cài đặt trên bảng chi tiết của kết nối giúp thu hẹp những gì agent làm với bản cài đặt. Mở **More → Workspace settings → Connections**, chọn **GitHub**, và xem trong **Settings**.

| Cài đặt | Tùy chọn | Tác dụng |
| - | - | - |
| **Repository access** (CloudThinker) | **All** hoặc **Selected** | **All** cho phép agent đọc mọi repository mà bản cài đặt bao phủ, kể cả repository mới. **Selected** giới hạn agent trong các repository bạn chọn, và repository mới vẫn bị loại trừ cho đến khi bạn thêm vào. |
| **Allow writes** | Bật (mặc định) hoặc tắt | Bật: agent có thể đề xuất thay đổi, và [Rules và Approval mode](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) của bạn quyết định từng thay đổi. Tắt: agent chỉ có thể đọc, và mọi thay đổi đều bị từ chối. |

Mọi thay đổi do agent thực hiện đều đi qua [Approvals](https://docs.cloudthinker.io/vi/guide/approvals/overview.md) của workspace trước. Ở chế độ mặc định **Auto · Rules + AI · Ask me**, AI judgment có thể cho một thay đổi an toàn chạy mà không cần hỏi. Allow Rule cũng vậy, sau khi CloudThinker bật [Rule enforcement](https://docs.cloudthinker.io/vi/guide/approvals/rules.md#khắc-phục-sự-cố) cho workspace của bạn. Chọn **Manual** nếu bạn muốn tự phê duyệt mọi thay đổi.

Để chặn hoàn toàn thao tác ghi trên GitHub, hãy tắt **Allow writes**.

Các cài đặt này chỉ thu hẹp những gì GitHub đã cấp. Việc chọn repository nào Review chạy là một bước riêng trong [Thiết lập Review](https://docs.cloudthinker.io/vi/guide/code-review/setup.md).

## Khả năng của agent

Agent làm việc thông qua GitHub CLI (`gh`). Thao tác đọc chạy mà không cần hỏi. Thao tác ghi cần bật **Allow writes** và đi qua Rules cùng Approval mode của bạn trước. Bình luận và pull request xuất hiện trên GitHub dưới tài khoản bot của app, `cloudthinker-ai[bot]`.

| Khả năng | Agent có thể làm gì |
| - | - |
| **Repository** | Liệt kê các repository mà kết nối truy cập được và đọc mã cùng lịch sử của chúng |
| **Pull request** | Tóm tắt các pull request đang mở, trạng thái review và thảo luận |
| **Actions run** | Tìm workflow run thất bại và đọc log để giải thích lỗi |
| **Issue** | Đọc issue để có ngữ cảnh phân loại và bàn giao |
| **Thay đổi** | Tạo branch, bình luận hoặc mở pull request, thông qua Rules và Approval mode của bạn |

### Xác minh kết nối

```text theme={null}
List the GitHub repositories you can reach and how many open pull requests each one has
```

Kết nối hoạt động sẽ nêu đúng tên và số liệu repository thật của bạn. Câu trả lời chung chung về GitHub nghĩa là agent không dùng đến kết nối. Kiểm tra **Repository access** của GitHub trên bản cài đặt app, rồi đến cài đặt **Repository access** của CloudThinker.

### Ví dụ prompt

```text theme={null}
Which open pull requests in our GitHub repositories have had no review for more than 3 days?
Why did the latest GitHub Actions run on main fail in the payments repository?
Summarize the pull requests merged into api this week
```

## Khắc phục sự cố

> **Cài đặt thất bại**
>
> Quá trình chuyển hướng từ GitHub về bị gián đoạn, hoặc bạn đã phê duyệt cài đặt từ một tài khoản GitHub khác. Đăng nhập đúng tài khoản, quay lại **More → Workspace settings → Connections**, chọn **GitHub**, và nhấn **Connect** lần nữa.

> **Bạn không thể cài đặt trên organization của mình**
>
> Chỉ owner của organization mới có thể cài đặt app trên một GitHub organization. Khi một thành viên chọn organization, GitHub đề nghị gửi yêu cầu đến các owner thay vì cài đặt. App chưa được cài cho đến khi owner phê duyệt. Sau khi được phê duyệt, nhấn **Connect** lần nữa và chọn organization.

> **Agent không tìm thấy repository**
>
> Kiểm tra cả hai lớp. Trên GitHub, **Repository access** của bản cài đặt app phải bao gồm repository đó. Trong CloudThinker, cài đặt **Repository access** của kết nối phải là **All**, hoặc **Selected** với repository đó trong danh sách.

> **Reconnect GitHub to renew its App installation credentials.**
>
> CloudThinker không còn dùng được bản cài đặt, thường vì app đã bị gỡ cài đặt hoặc bị tạm ngưng trên GitHub. Mở kết nối và nhấn **Connect** để cài đặt lại app.

> **Agent báo không thể thực hiện thay đổi**
>
> **Allow writes** đang tắt trên kết nối, hoặc một Rule đã từ chối hành động. Bật **Allow writes** nếu bạn muốn agent đề xuất thay đổi, rồi kiểm tra [Rule phê duyệt](https://docs.cloudthinker.io/vi/guide/approvals/rules.md) của bạn.

## Bảo mật

* **Quyền tối thiểu** — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
* **Chỉ đọc theo mặc định** — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
* **Xoay vòng thông tin xác thực** — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
* **Thu hồi khi bàn giao** — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.

- **Giới hạn phạm vi bản cài đặt.** App chỉ truy cập các repository bạn cấp trên GitHub, và bạn có thể thu hẹp danh sách đó bất cứ lúc nào.
- **Gỡ cài đặt để thu hồi.** Trên trang **Configure** của app trên GitHub, nhấn **Uninstall**. Quyền truy cập mọi repository dừng lại, và kết nối khi đó hiển thị [Reconnect GitHub to renew its App installation credentials.](#khắc-phục-sự-cố)

## Liên quan

> **[Thiết lập Review](https://docs.cloudthinker.io/vi/guide/code-review/setup.md)**
>
> Chọn repository và bắt đầu AI code review trên pull request

> **[Xác thực provider](https://docs.cloudthinker.io/vi/guide/code-review/provider-auth.md)**
>
> So sánh cách GitHub, GitLab và các Git provider khác kết nối


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.