Đ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.
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.
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
- Access token
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.
- Mở tab OAuth và nhấn Connect to GitLab.
- 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,emailvàprofile. - Quay lại trình hướng dẫn, thêm webhook.
Bitbucket
- OAuth
- Access token
- Mở tab OAuth và nhập tên Bitbucket workspace của bạn (phần
<workspace>trongbitbucket.org/<workspace>/repo). - Nhấn Connect to Bitbucket và phê duyệt quyền truy cập.
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
Làm theo Cấu hình webhook.
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ầnjq). 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.
- IAM role (khuyến nghị)
- Access key
- 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.
- Sao chép script và chạy trong AWS CloudShell. Script tạo một role tên
CloudThinkerCodeCommitAccessRolevớ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ó. - Sao chép role ARN từ đầu ra của script vào Role ARN, rồi nhấn Connect.
Script tạo ra những gì
Script tạo ra những gì
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:- Trong IAM console, mở Roles → CloudThinkerCodeCommitAccessRole (hoặc Users → CloudThinkerCodeCommitUser với access key).
- Trên Permissions, chỉnh sửa inline policy:
CodeCommitReviewAccesstrên role,CodeCommitReviewAccessKeyPolicytrên user. - Thêm
codecommit:GitPushvàcodecommit:CreatePullRequestvào statementCodeCommitReviewActionsvà lưu.
CloudThinkerCodeCommitUser với cùng policy.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.- GitLab
- Azure DevOps
- AWS CodeCommit
- 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.
- Dán URL và Secret token từ trình hướng dẫn. Giữ Enable SSL verification ở trạng thái bật.
- 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.
- Lưu webhook, rồi nhấn Mark as Configured trong trình hướng dẫ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
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ố
Validate Token hoặc Validate PAT thất bại
Validate Token hoặc Validate PAT thất bại
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.
Đã kết nối, nhưng không có review trên MR mới (GitLab, Azure DevOps, CodeCommit)
Đã kết nối, nhưng không có review trên MR mới (GitLab, Azure DevOps, CodeCommit)
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.
Lệnh mention không nhận được phản hồi trên Azure DevOps
Lệnh mention không nhận được phản hồi trên Azure DevOps
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.
Bitbucket yêu cầu bạn xác nhận workspace
Bitbucket yêu cầu bạn xác nhận workspace
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.