> ## 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.

# Review Workspace

> Phân loại các thay đổi đã được review, xử lý phát hiện, áp dụng bản sửa và merge từ trang Reviews mà không cần mở Git provider.

Review đăng các phát hiện lên merge request và pull request (MR/PR) của bạn, đồng thời lưu bản sao của mọi lượt review tại **Review → Reviews** trong CloudThinker. Từ đó bạn có thể xem việc gì cần bạn xử lý, giải quyết từng phát hiện, commit bản sửa và merge (trên GitHub hoặc GitLab), tất cả tại một nơi.

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

* Ít nhất một repository đã được kết nối trong [Thiết lập Review](https://docs.cloudthinker.io/vi/guide/code-review/setup.md), với một MR/PR đã được review.
* Một vai trò workspace phù hợp với việc bạn muốn làm (xem [Vai trò](https://docs.cloudthinker.io/vi/guide/security/roles.md)):

| Vai trò | Bạn làm được gì ở đây |
| - | - |
| Viewer | Duyệt các review, đọc phát hiện, bình chọn độ chính xác, chấm điểm review, đặt câu hỏi, sao chép prompt sửa lỗi |
| Developer | Mọi quyền ở trên, cộng thêm resolve và mở lại phát hiện, áp dụng bản sửa, sửa mọi phát hiện, chạy lại hoặc dừng review, và merge |
| Admin | Mọi quyền ở trên, cộng thêm thay đổi cài đặt Review |

Quy tắc bảo vệ nhánh và phê duyệt của provider vẫn áp dụng cho mọi thao tác bạn làm ở đây. Lệnh push hoặc merge mà provider từ chối cũng thất bại trong CloudThinker.

> [!NOTE]
>
> Các vai trò này chỉ áp dụng bên trong CloudThinker. Lệnh bình luận trên provider tuân theo quyền bình luận của provider: bất kỳ ai có quyền bình luận đều chạy được `@cloudthinker-ai autofix`. Xem [cảnh báo về autofix](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands.md#sửa-phát-hiện-bằng-autofix).

## Phân loại danh sách Reviews

**1. Mở danh sách**

Vào **Review → Reviews**. Mọi MR/PR mà CloudThinker theo dõi nằm ở một trong bốn tab, mỗi tab có bộ đếm cập nhật trực tiếp.

| Tab | Nội dung |
| - | - |
| **Needs attention** | Các MR/PR đang mở chưa sạch: vẫn đang review, thất bại hoặc còn phát hiện chưa giải quyết |
| **Ready to merge** | Các MR/PR đang mở đã được review sạch |
| **Merged** | Các MR/PR đã merge, giữ lại làm lịch sử |
| **All** | Mọi MR/PR trong workspace |

**2. Thu hẹp danh sách**

Lọc bằng **Search title or number...**, repository, tác giả hoặc verdict. Dùng nút mật độ để chuyển giữa hàng **Comfortable** và **Compact**. Bộ lọc vẫn được giữ khi bạn chuyển tab.

**Trạng thái thành công:** bộ đếm của các tab khớp với bộ lọc, và mỗi hàng hiển thị tiêu đề, tác giả, repository, verdict và số phát hiện còn chưa giải quyết.

**Verdict** là kết luận tổng thể của lượt review về MR/PR. **Phát hiện** (finding) là một vấn đề mà lượt review gắn cờ để con người xem xét.

| Verdict | Ý nghĩa | Tab khi đang mở | Việc cần làm |
| - | - | - | - |
| **Approved** | Review sạch | Ready to merge | Merge khi bạn sẵn sàng |
| **Review suggested** | Chỉ còn phát hiện Medium hoặc Low chưa giải quyết | Needs attention | Đọc lướt các phát hiện rồi quyết định |
| **Changes requested** | Còn ít nhất một phát hiện Critical hoặc High chưa giải quyết | Needs attention | Mở ra và xử lý các phát hiện |
| **In review** | Một lượt review đang chạy | Needs attention | Chờ, hoặc mở ra để theo dõi |
| **Failed** hoặc **Stopped** | Lượt chạy kết thúc mà không có review hoàn chỉnh | Needs attention | Chạy lại review (xem [Chạy lại, sửa và merge](#chạy-lại-sửa-và-merge)) |
| **Ignored** | Bộ lọc repository hoặc marker `@cloudthinker:ignore` đã bỏ qua MR/PR này | Chỉ ở All | Không cần làm gì. Xem [Bỏ qua review](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands.md#bỏ-qua-review) |

Huy hiệu **Conflict** màu đỏ cạnh tiêu đề nghĩa là provider báo MR/PR không merge được vì các nhánh xung đột. Khi CloudThinker đã mở bản sửa cho MR/PR đó, hàng đó cũng liên kết đến **Resolution MR** (hoặc **Resolution PR**). Xem [Tự động giải quyết xung đột](https://docs.cloudthinker.io/vi/guide/code-review/conflict-resolution.md).

## Đọc một review

Nhấn vào một hàng để mở review. Trang có các tab sau:

| Tab | Nội dung |
| - | - |
| **Overview** | **Walkthrough**, phần agent review mô tả thay đổi làm gì và các phần khớp với nhau thế nào, sau đó là mô tả MR/PR |
| **Findings** | Mọi phát hiện dưới dạng thẻ mở rộng được, chia thành **Unresolved** và **Resolved** |
| **Commits** | Lịch sử commit. Chọn một commit để chỉ xem thay đổi của nó |
| **Pipelines** | Các lượt chạy CI cho MR/PR này, trên GitHub và GitLab (xem bên dưới) |
| **Changes** | Toàn bộ diff với cây tệp và tìm kiếm. Tệp lớn mở ở dạng thu gọn; nhấn vào đầu tệp để mở rộng |
| **Layers** | Diff được nhóm theo mục đích: **Core change**, **Verification**, **Records and docs** và **Generated files**. Chỉ hiển thị khi lượt review đã nhóm thay đổi. Dùng **Mark viewed** để theo dõi tiến độ |

Nơi xem các lượt chạy CI tùy thuộc vào provider:

| Provider | Lượt chạy CI |
| - | - |
| GitHub, GitLab | Tab **Pipelines** trên review |
| Bitbucket, Azure DevOps | Các lượt chạy thất bại tại **Review → Pipelines** |
| AWS CodeCommit | Không hiển thị |

Thanh bên cạnh các tab hiển thị **Review summary**: verdict, số phát hiện chưa giải quyết theo mức độ nghiêm trọng và danh mục, cùng các Learnings mà lượt review đã trích dẫn. Bên dưới, **Rate this review** cho phép chấm từ 1 đến 5 sao.

Nếu một [extension](https://docs.cloudthinker.io/vi/guide/code-review/extensions.md) tìm thấy ticket được liên kết, thẻ **Ticket compliance** đánh giá thay đổi là **Fully compliant**, **Partially compliant** hoặc **Not compliant** so với ticket, kèm ghi chú của agent.

## Xử lý các phát hiện

**1. Mở một phát hiện**

Trên tab **Findings**, mở rộng một thẻ. Bạn sẽ thấy mức độ nghiêm trọng, tệp và dòng, giải thích của agent, mã gốc và bản sửa đề xuất, cùng chip của [Learning](https://docs.cloudthinker.io/vi/guide/code-review/convention-rules.md) mà phát hiện dựa vào (nếu có).

**2. Bình chọn độ chính xác**

Nhấn thumbs-up nếu phát hiện đúng. Nhấn thumbs-down nếu sai, và mô tả điểm sai trong ghi chú **Inaccurate finding**. Ghi chú được lưu theo repository: các lượt review sau của repository đó nhận 20 ghi chú mới nhất trong 90 ngày gần nhất, để không nêu lại cùng vấn đề trên mã không thay đổi. Cơ chế này tách biệt với [Learnings](https://docs.cloudthinker.io/vi/guide/code-review/convention-rules.md).

**3. Sửa lỗi**

Chọn cách phù hợp:

| Hành động | Kết quả |
| - | - |
| **Apply fix** | Commit chính xác thay đổi đề xuất vào nhánh nguồn của MR/PR và resolve phát hiện. Danh tính provider đã kết nối tạo commit, và bạn là đồng tác giả. Có trên GitHub, GitLab và Azure DevOps, và chỉ khi phát hiện có thay đổi mã cụ thể. Trên Bitbucket và AWS CodeCommit, nút vẫn hiển thị nhưng bị vô hiệu hóa, với tooltip **Not available for this provider yet. Use Copy prompt.** |
| **Copy prompt** | Sao chép hướng dẫn sửa lỗi để dán vào coding agent của riêng bạn. Hoạt động trên mọi provider |
| **Ask** | Mở một cuộc chat giới hạn trong phát hiện này để hỏi vì sao CloudThinker gắn cờ phát hiện đó hoặc còn cách sửa nào khác |

**Apply fix** thất bại khi provider không cho danh tính đã kết nối push vào nhánh nguồn, ví dụ nhánh được bảo vệ hoặc MR/PR mở từ một fork. Khi đó thẻ hiển thị **This branch can't be updated automatically**. Hãy dùng **Copy prompt** trong trường hợp này. Trên GitLab, token Maintainer có thể push vào nhánh được bảo vệ (xem [xác thực provider](https://docs.cloudthinker.io/vi/guide/code-review/provider-auth.md#gitlab)).

**Apply fix** không có trên Bitbucket, nhưng **Fix all findings** thì có.

**4. Kết thúc phát hiện**

Nhấn **Mark resolved** khi đã xử lý xong, hoặc **Reopen** để hoàn tác. Trên GitHub, GitLab, Bitbucket và Azure DevOps, thao tác resolve cũng resolve luồng bình luận tương ứng trên provider. Trên AWS CodeCommit, phát hiện chỉ được kết thúc trong CloudThinker.

**Trạng thái thành công:** thẻ chuyển sang nhóm **Resolved**, và số phát hiện chưa giải quyết trên danh sách Reviews giảm xuống.

## Hỏi về toàn bộ review

Nhấn **Ask CloudThinker** ở phần đầu trang. Một ngăn chat mở bên cạnh review, giới hạn trong MR/PR này và tách biệt với lượt review của chính agent. Hãy thử:

```text theme={null}
Summarize the riskiest change in this MR and what I should test before merging.
Which of these findings would break existing callers?
```

Ngăn chat giữ repository và phát hiện mà bạn mở chat từ đó làm ngữ cảnh cố định, để câu trả lời bám sát review này. Mỗi câu hỏi tiêu tốn credit như mọi tin nhắn chat.

## Chạy lại, sửa và merge

Các nút ở phần đầu trang bao gồm những hành động thay đổi MR/PR. Các hành động ít dùng hơn nằm trong menu **More actions** (⋯).

> [!NOTE]
>
> **Merge** cần tài khoản GitHub hoặc GitLab của riêng bạn đã được liên kết. CloudThinker yêu cầu bạn liên kết lần đầu tiên bạn nhấn **Merge**, hoặc bạn có thể làm trước trong **Account Settings → Linked accounts**: nhấn **Link GitHub account** hoặc **Link GitLab account**. Liên kết GitLab yêu cầu scope `api`; liên kết GitHub là một ủy quyền người dùng GitHub App.

| Hành động | Vị trí | Chức năng | Lệnh bình luận tương đương |
| - | - | - | - |
| **Fix all findings** | Phần đầu trang | CloudThinker sửa mọi phát hiện chưa giải quyết, ở mọi mức độ nghiêm trọng, và commit vào nhánh nguồn. Hành động này không chạy test của bạn. CloudThinker bỏ qua phát hiện cần quyết định về kiến trúc, và commit message liệt kê những gì đã sửa và bỏ qua. Hoàn tất khi một commit có tiêu đề `fix: autofix findings from code review of ...` xuất hiện trên nhánh. Không có trên AWS CodeCommit | [`@cloudthinker-ai autofix`](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands#sửa-phát-hiện-bằng-autofix) |
| **Merge** | Phần đầu trang | Merge dưới danh nghĩa của bạn, qua tài khoản GitHub hoặc GitLab đã liên kết, nên provider hiển thị bạn là người merge. Chỉ GitHub và GitLab | Không có |
| **Re-run review** | Menu ⋯ | Review lại từ commit được review gần nhất. Nếu không có commit mới kể từ đó, CloudThinker review lại toàn bộ head hiện tại. Khi không khả dụng, lý do hiển thị bên dưới | [`@cloudthinker-ai review`](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands#lệnh) |
| **Stop review** | Menu ⋯ | Dừng một lượt review đang chạy. Thay thế **Re-run review** khi có lượt chạy đang diễn ra | Không có |
| **Run Ultra review** | Menu ⋯ | Một lượt review sâu hơn, chậm hơn cho commit mới nhất. Chỉ hiển thị khi Ultra review được bật cho phiên bản CloudThinker của bạn. Đây không phải cài đặt workspace | [`@cloudthinker-ai review ultra`](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands#chạy-ultra-review) |
| **View review conversation** | Menu ⋯ | Mở lượt review của chính agent, ở chế độ chỉ đọc | Không có |
| **View in GitHub** (hoặc tên provider của bạn) | Menu ⋯ | Mở MR/PR trên provider của bạn | Không có |

Khi nhấn **Merge**, hãy chọn phương thức merge (**Create a merge commit**, **Squash and merge** hoặc **Rebase and merge**, tùy repository cho phép) và chọn có **Delete source branch** hay không. Nếu lượt review yêu cầu thay đổi, một lượt review vẫn đang chạy, hoặc các commit mới nhất chưa được review, cảnh báo **Check before you merge** sẽ xuất hiện và nút chuyển thành **Merge anyway**.

> [!WARNING]
>
> **Fix all findings** push commit vào nhánh nguồn mà không có bước phê duyệt riêng. Trên GitHub hoặc GitLab, hãy bình luận `@cloudthinker-ai autofix stacked` để nhận bản sửa trong một MR/PR riêng trước.

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

> **Apply fix thất bại**
>
> **Nguyên nhân:** mã đã thay đổi sau lượt review, nên các dòng gốc không còn hoặc xuất hiện nhiều lần, hoặc nhánh nguồn được bảo vệ hay nằm trong một fork. **Cách sửa:** chạy lại review để có bản sửa dựa trên mã hiện tại, hoặc áp dụng thay đổi qua Git provider.

> **Tôi không thấy Fix all findings, Re-run review hoặc Mark resolved**
>
> **Nguyên nhân:** vai trò workspace của bạn là Viewer. **Cách sửa:** đề nghị Admin của workspace cấp vai trò Developer.

> **Không thấy Fix all findings dù tôi là Developer**
>
> **Nguyên nhân:** MR/PR không còn phát hiện chưa giải quyết nào để sửa, hoặc repository nằm trên AWS CodeCommit, nơi không hỗ trợ tính năng này. **Cách sửa:** kiểm tra tab **Findings** để xác nhận mọi thứ đã được resolve. Trên CodeCommit, dùng **Copy prompt** cho từng phát hiện.

> **Re-run review bị mờ**
>
> **Kiểm tra:** lý do bên dưới mục menu. Lượt review đang chạy phải hoàn tất hoặc bị dừng trước. Với MR/PR đã merge, mục này vẫn hiển thị nhưng bị vô hiệu hóa.

> **Không thấy MR/PR mà tôi cần trong danh sách**
>
> **Kiểm tra:** tab **All** sau khi xóa bộ lọc. Nếu vẫn không thấy, xác nhận repository đã được bật và webhook đã được thiết lập trong [Thiết lập Review](https://docs.cloudthinker.io/vi/guide/code-review/setup.md). MR/PR dạng draft không được review.

## Bước tiếp theo

> **[Lệnh mention](https://docs.cloudthinker.io/vi/guide/code-review/mention-commands.md)**
>
> Chạy cùng các hành động từ bình luận MR/PR trên provider của bạn.

> **[Learnings](https://docs.cloudthinker.io/vi/guide/code-review/convention-rules.md)**
>
> Biến các phát hiện đã thống nhất của nhóm thành quy tắc repository.


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