Chuyển đến nội dung chính
Trang này hướng dẫn các bước Connect và Events của trình hướng dẫn thiết lập Review: mỗi Git provider nhận thông tin xác thực nào, scope tối thiểu, và webhook báo cho CloudThinker biết một pull request (PR) hoặc merge request (MR) đã thay đổi. Bắt đầu trình hướng dẫn từ Thiết lập Review, rồi quay lại đây xem phần dành cho provider của bạn.

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

  • Vai trò Admin workspace trong CloudThinker, với hộp thoại Review Setup đang mở ở bước Connect.
  • Ở phía provider, quyền cài đặt app, tạo access token hoặc tạo IAM role cho các repository bạn muốn review.
  • Azure DevOps: quyền tạo service hook trong project (mặc định là Project Administrator).

Chọn phương thức xác thực

GitLab self-hosted là provider self-hosted duy nhất bạn có thể kết nối trong trình hướng dẫn. GitHub kết nối với github.com và Bitbucket với bitbucket.org, nên GitHub Enterprise Server và Bitbucket Data Center không phải là lựa chọn ở đây.
Ưu tiên token cấp project, group, workspace hoặc repository thay vì token cá nhân khi provider hỗ trợ. Khi đó bình luận đến từ một bot user, quyền truy cập được giới hạn trong các repository đó, và bạn có thể thu hồi mà không ảnh hưởng đến tài khoản của ai.

GitHub

1

Cài đặt GitHub App

Nhấn Install GitHub App. GitHub yêu cầu bạn chọn một organization hoặc tài khoản, rồi chọn All repositories hoặc Only select repositories. Review chỉ có thể liệt kê các repository bạn cấp quyền ở đây. GitHub hiển thị toàn bộ danh sách quyền của app trên màn hình đó trước khi bạn phê duyệt. Danh sách bao gồm Pull requests: Read and write để bình luận và Contents: Read and write, quyền mà Apply fix, autofix và giải quyết xung đột cần để push commit.
2

Quay lại trình hướng dẫn

Sau khi bạn phê duyệt, GitHub chuyển bạn trở lại và trình hướng dẫn tự tiếp tục. Webhook đi kèm với app, nên không có bước Events.Trạng thái thành công: hộp thoại hiển thị Connected và chuyển sang Repositories.
Để cấp quyền cho một repository sau này, mở cài đặt organization hoặc tài khoản trên GitHub, vào GitHub Apps, nhấn Configure cạnh app CloudThinker, và thêm repository trong Repository access. Sau đó thêm repository đó trong Review bằng Add repository.
Chỉ owner của organization mới cài được app trên GitHub organization. Nếu bạn không phải owner, hãy nhờ một owner phê duyệt việc cài đặt.

GitLab

OAuth chỉ kết nối với GitLab.com. Với GitLab self-hosted, hãy dùng access token. Với OAuth, bình luận hiển thị dưới tên người đã kết nối.
  1. Mở tab OAuth và nhấn Connect to GitLab.
  2. Phê duyệt quyền truy cập trong GitLab. CloudThinker yêu cầu các scope sau: api, read_api, read_repository, write_repository, openid, email và profile.
  3. Quay lại trình hướng dẫn, thêm webhook.

Bitbucket

  1. Mở tab OAuth và nhập tên Bitbucket workspace của bạn (phần <workspace> trong bitbucket.org/<workspace>/repo).
  2. Nhấn Connect to Bitbucket và phê duyệt quyền truy cập.
Với OAuth, bình luận hiển thị dưới tên người đã kết nối. Webhook được đăng ký tự động.

Azure DevOps

1

Tạo personal access token

Trong Azure DevOps, vào User settings → Personal access tokens và nhấn New Token. Chọn organization, đặt ngày hết hạn và bật các scope sau:Sao chép token. Azure DevOps đăng bình luận dưới tên người sở hữu PAT, vì vậy hãy tạo token từ một service account riêng. Nhờ vậy review vẫn hoạt động khi có người nghỉ việc. Cấp cho tài khoản đó mức truy cập Basic (Stakeholder không dùng được Repos) và Contributor trên project, để tài khoản này đọc được code và bình luận trên pull request.
2

Kết nối trong trình hướng dẫn

Điền Organization URL (ví dụ https://dev.azure.com/myorg), Project và Personal Access Token. Nhấn Validate PAT, chờ Token works, rồi nhấn Connect.Kết nối chỉ bao phủ các repository trong đúng project đó. Để review repository trong project khác, hãy thiết lập Review trong một workspace riêng cho project đó.Trạng thái thành công: hộp thoại hiển thị Connected và chuyển sang Events.
3

Thêm service hook

AWS CodeCommit

Cả hai phương thức đều dùng một script do trình hướng dẫn tạo cho bạn. Chạy script trong AWS CloudShell, hoặc trong bất kỳ bash shell nào có AWS CLI và thông tin xác thực cho tài khoản (script access key cũng cần jq). Một kết nối bao phủ một tài khoản AWS và một region: region bạn chọn trong trình hướng dẫn.
  1. Chọn IAM Role (recommended) và chọn AWS Region. Trình hướng dẫn tạo một External ID cho workspace của bạn.
  2. Sao chép script và chạy trong AWS CloudShell. Script tạo một role tên CloudThinkerCodeCommitAccessRole với trust policy giới hạn cho CloudThinker và External ID của bạn. Nếu role đó đã tồn tại, ví dụ từ lần thiết lập trước, script sẽ dùng lại role đó: làm mới trust policy cho External ID mới và in ra ARN hiện có.
  3. Sao chép role ARN từ đầu ra của script vào Role ARN, rồi nhấn Connect.
Script gắn một inline policy với các action sau:Script không cấp codecommit:GitPush hoặc codecommit:CreatePullRequest. Tự động giải quyết xung đột cần cả hai, vì vậy hãy thêm chúng nếu bạn bật tính năng này:
  1. Trong IAM console, mở Roles → CloudThinkerCodeCommitAccessRole (hoặc Users → CloudThinkerCodeCommitUser với access key).
  2. Trên Permissions, chỉnh sửa inline policy: CodeCommitReviewAccess trên role, CodeCommitReviewAccessKeyPolicy trên user.
  3. Thêm codecommit:GitPush và codecommit:CreatePullRequest vào statement CodeCommitReviewActions và lưu.
Trust policy của IAM role chỉ cho phép tài khoản AWS của CloudThinker assume role, và chỉ với External ID của workspace bạn. Script bạn sao chép từ trình hướng dẫn chứa toàn bộ trust policy, kèm account ID đó, để team bảo mật của bạn có thể đọc trước khi chạy. Còn phương thức Access Keys tạo một IAM user tên CloudThinkerCodeCommitUser với cùng policy.
Nếu trình hướng dẫn báo no repositories found yet, kết nối hoạt động nhưng thông tin xác thực không thấy repository nào. Hãy kiểm tra quyền IAM và region.

Cấu hình webhook

GitHub và Bitbucket không cần làm gì ở đây. Với ba provider còn lại, bước Events hiển thị URL webhook và Secret token để sao chép.
  1. Trong GitLab, mở group hoặc project và vào Settings → Webhooks → Add new webhook. Webhook cấp group cần GitLab Premium hoặc Ultimate. Ở gói Free, hãy thêm webhook vào từng project.
  2. Dán URL và Secret token từ trình hướng dẫn. Giữ Enable SSL verification ở trạng thái bật.
  3. Bật Merge request events và Comments. Thêm Pipeline events nếu bạn dùng phân tích pipeline, Tag push events nếu bạn dùng release, và Push events nếu bạn dùng tự động giải quyết xung đột. Nếu không bật Push events, CloudThinker không bao giờ nhận được các lần push vào nhánh đích, nên xung đột do những lần push đó gây ra sẽ không được kiểm tra.
  4. Lưu webhook, rồi nhấn Mark as Configured trong trình hướng dẫn.
Để kiểm tra webhook đã gửi được chưa, nhấn Test → Merge request events cạnh webhook, rồi mở chỉnh sửa webhook và xem trong Recent events.
Trạng thái thành công: bạn mở một PR hoặc MR thử nghiệm trong một repository đã chọn và một bình luận tiến độ của CloudThinker xuất hiện trên đó.

Hết hạn token

Access token của GitLab và Bitbucket và PAT của Azure DevOps hết hạn vào ngày bạn đặt. Review dừng lại khi token hết hạn, và trang Review hiển thị Reconnect your Git provider. Ghi lại ngày khi tạo token, và thay token trước ngày đó: mở Review → Settings, trong mục Connection mở menu hành động (⋯) và nhấn Update token. Access key CodeCommit không tự hết hạn, nhưng hãy xoay vòng chúng theo cùng cách. Review không cảnh báo trước ngày hết hạn của token, vì vậy hãy đặt lời nhắc trong lịch của riêng bạn.

Ngắt kết nối provider

Remove setup xóa mọi MR/PR đã review trên Review → Reviews và mọi bản ghi pipeline trong workspace. Thiết lập lại Review không khôi phục chúng.
1

Gỡ thiết lập trong CloudThinker

Mở Review → Settings. Trong mục Connection, mở menu hành động (⋯) và nhấn Remove setup, rồi xác nhận. Review dừng trên mọi repository và kết nối provider bị xóa. Trên GitHub, CloudThinker cũng gỡ cài đặt app của mình, và trên Bitbucket, CloudThinker xóa các webhook đã đăng ký. Bạn có thể thiết lập lại sau.
2

Thu hồi quyền truy cập trên provider

Xác nhận GitHub App đã biến mất khỏi cài đặt GitHub Apps của organization, hoặc thu hồi quyền OAuth, xóa access token hoặc PAT, hoặc xóa IAM role hoặc user mà script đã tạo.

Khắc phục sự cố

Nguyên nhân: thường là URL hoặc tên sai, hoặc thiếu scope:
  • GitLab: URL có đường dẫn ở cuối, hoặc role của token thấp hơn Developer.
  • Bitbucket: tên workspace hoặc slug repository sai, thiếu một quyền, hoặc bạn chọn token workspace hoặc project trên gói không hỗ trợ.
  • Azure DevOps: Organization URL không phải https://dev.azure.com/<org>, tên Project sai, hoặc PAT được tạo cho organization khác.
Cách khắc phục: sửa trường đó, xác nhận các scope trong các bảng ở trên, và tạo token mới nếu cần. Trình hướng dẫn giữ lại những gì bạn đã nhập, nên bạn chỉ cần thay phần bị sai.
Nguyên nhân: webhook bị thiếu, sai secret, hoặc thiếu trigger.Kiểm tra: mở lịch sử gửi webhook trong provider và tìm các request thất bại.Cách khắc phục: so sánh URL, secret và trigger với Cấu hình webhook. Với Azure DevOps, xác nhận mọi service hook đều tồn tại.
Nguyên nhân: hook Pull request commented on dùng resource version 1.0.Cách khắc phục: chỉnh sửa service hook đó và đặt Resource version là 2.0.
Nguyên nhân: bạn đã kết nối bằng OAuth, và Bitbucket không còn cho phép CloudThinker tự tìm workspace của bạn.Cách khắc phục: nhấn Set workspace, nhập tên workspace vào Bitbucket workspace, và nhấn Save workspace.

Bước tiếp theo

Hoàn tất thiết lập Review

Chọn repository, chọn chế độ review và nhận review đầu tiên.

Lệnh mention

Trao đổi với reviewer từ bình luận trên PR hoặc MR.