Đánh giá merge request trên GitLab bằng Codex
Thiết lập đánh giá mã cho merge request trên GitLab và yêu cầu đánh giá bằng @codex review.
Sử dụng tính năng đánh giá mã của Codex để có thêm một lượt đánh giá chất lượng cao cho các merge request trên GitLab. Codex đánh giá phần diff của merge request, tuân theo hướng dẫn trong kho lưu trữ của bạn và đăng một bản đánh giá mã GitLab tiêu chuẩn, tập trung vào các vấn đề nghiêm trọng.
Tính năng hỗ trợ GitLab đang ở giai đoạn beta và có trên tất cả các gói ChatGPT. Phần tích hợp Codex chạy trong Codex cloud. Các chức năng kiểm soát kho lưu trữ kiểu GitHub trong ứng dụng dành cho máy tính, chẳng hạn như Create pull request, không nằm trong bản beta này.
Trước khi bắt đầu
Hãy bảo đảm bạn có:
- Một tài khoản GitLab đã kết nối. GitLab.com yêu cầu quy trình kết nối tiêu chuẩn; các phiên bản GitLab tự quản lý hoặc Dedicated yêu cầu quản trị viên không gian làm việc thiết lập mẫu.
- Một tệp
AGENTS.mdnếu bạn muốn Codex tuân theo hướng dẫn đánh giá dành riêng cho kho lưu trữ.
Thiết lập tính năng đánh giá mã của Codex
Thiết lập kết nối GitLab và danh tính đánh giá của Codex
Đối với GitLab.com, hãy kết nối tài khoản GitLab của bạn trong Codex sau khi đã kết nối với GitLab trong ChatGPT. Đối với GitLab tự quản lý hoặc Dedicated, mỗi người đánh giá nên kết nối sau khi mẫu của quản trị viên không gian làm việc đã được xuất bản.
Đối với GitLab tự quản lý hoặc Dedicated, hãy mở Codex Cloud → Settings → Connectors. Quản trị viên không gian làm việc có thể cho phép Codex tạo tài khoản dịch vụ hoặc lưu personal access token của một tài khoản dịch vụ hiện có.
Cho phép Codex tạo tài khoản
Trong Codex Cloud → Settings → Connectors, chọn ứng dụng dành cho máy chủ
GitLab tự quản lý hoặc Dedicated của bạn → chọn Set up service account →
Create a service account. Quản trị viên không gian làm việc hoàn tất việc thiết lập phải có
quyền quản trị viên đối với phiên bản GitLab. Chọn Selected groups
hoặc Selected projects only, sau đó chọn nơi Codex sẽ hoạt động và tạo
tài khoản. Tùy chọn nhóm cấp quyền Developer cho từng nhóm được chọn,
và các dự án cùng nhóm con sẽ kế thừa quyền này; tùy chọn dự án chỉ cấp quyền Developer
cho từng dự án bạn chọn. Codex sẽ tạo tài khoản dịch vụ của phiên bản ChatGPT
cùng trình kết nối Codex và một personal access token có phạm vi
api.
Sử dụng tài khoản hiện có
Trong GitLab, hãy tạo hoặc chọn một tài khoản dịch vụ và chỉ cấp cho tài khoản đó quyền Developer
trong các nhóm hoặc dự án nơi Codex sẽ hoạt động. Trên trang Service
accounts, chọn tài khoản → Manage access tokens → Add new
token để
tạo personal access token
có phạm vi api và ngày hết hạn còn ít nhất 30 ngày. Quay lại
Codex, chọn Use an existing service account, dán token rồi chọn
Save token. Token được mã hóa khi lưu và sẽ không bao giờ được hiển thị lại.
Quản lý token của tài khoản dịch vụ
Quản trị viên không gian làm việc có thể quản lý tài khoản dịch vụ trong Codex Cloud → Settings → Connectors. Đối với tài khoản do Codex tạo, quản trị viên có thể thu hồi token hiện tại và tạo token mới. Đối với tài khoản hiện có, quản trị viên có thể thay thế hoặc xóa token đã lưu trong Codex và thu hồi riêng token đó trong GitLab nếu cần. Codex không thể phản hồi hoạt động trên GitLab cho đến khi một token hợp lệ được cấu hình.
Chọn cách hoạt động trên GitLab được chuyển đến Codex
Tạo môi trường dự án cho tác vụ lập trình hoặc thiết lập dành riêng cho dự án
Trong Codex Cloud → Settings → Environments, hãy chọn dự án GitLab và tạo môi trường dự án khi bạn muốn Codex viết hoặc thực thi mã cho dự án đó—ví dụ: chỉnh sửa tệp, commit thay đổi hoặc đẩy bản cập nhật lên nhánh của merge request—hoặc khi việc đánh giá phụ thuộc vào secret dành riêng cho dự án, quyền truy cập mạng hay các lệnh thiết lập.
Đối với GitLab.com, môi trường dự án cũng là điều kiện bắt buộc để bật tính năng đánh giá của Codex.
Trong khi tạo môi trường, hãy bật Enable Codex activity from GitLab
để cài đặt webhook dự án chuyển các sự kiện về merge request, bình luận và issue
đến Codex. Việc tạo webhook dự án yêu cầu quyền Maintainer hoặc Owner,
quyền quản trị viên hoặc một vai trò tùy chỉnh có thể quản trị webhook dự án.
Webhook dự án và nhóm có chữ ký yêu cầu GitLab 19.0 trở lên. Trên
GitLab 19.0 tự quản lý, hãy xác nhận cờ tính năng webhook_signing_token đã
được bật; cờ này được bật theo mặc định và đã bị loại bỏ trong GitLab 19.1.
Bật hoạt động đánh giá của Codex cho các dự án trong một nhóm GitLab
Đối với GitLab tự quản lý hoặc Dedicated, quản trị viên không gian làm việc có thể mở Environments → GitLab activity → Manage groups để bật tính năng đánh giá của Codex trên toàn bộ một nhóm và các nhóm con. Codex sẽ cài đặt một webhook nhóm bao phủ các dự án trong toàn bộ nhóm đó. Người dùng GitLab đã kết nối phải là Owner của nhóm, đồng thời webhook nhóm yêu cầu GitLab Premium hoặc Ultimate và GitLab 19.0 trở lên.
Hoạt động ở cấp nhóm cho phép đánh giá mã nhưng không tạo môi trường dự án. Để chạy các tác vụ lập trình do GitLab kích hoạt, chẳng hạn như chỉnh sửa tệp, chạy lệnh, commit thay đổi hoặc đẩy bản cập nhật lên merge request, hãy tạo một môi trường dự án.
Cấu hình chính sách đánh giá mã
Cấu hình chính sách đánh giá mã trong
phần cài đặt đánh giá của Codex.
Chọn chính sách kho lưu trữ: Review my MRs, Review team MRs,
Review all MRs hoặc Follow personal. Sau đó, chọn thời điểm chạy đánh giá: On MR open,
On every push hoặc Smart Trigger (Experimental). Cài đặt kho lưu trữ có thể
ghi đè các giá trị mặc định cá nhân.
Yêu cầu Codex đánh giá
- Trong bình luận của merge request, hãy đề cập
@codex review. - Chờ Codex thêm biểu cảm (👀) và đăng bản đánh giá.
Codex đăng các cuộc thảo luận và ghi chú GitLab trên merge request giống như một thành viên trong nhóm. Theo mặc định, các lượt đánh giá được yêu cầu thủ công có thể bao gồm phát hiện P0, P1 và P2, còn đánh giá tự động tập trung vào phát hiện P0 và P1.
Bật đánh giá tự động
Để tự động đánh giá các merge request đủ điều kiện, hãy bật Automatic
reviews trong phần cài đặt Codex, chọn chính sách kho lưu trữ GitLab rồi chọn một
điều kiện kích hoạt: On MR open, On every push hoặc Smart Trigger (Experimental).
Codex chạy mà không cần bình luận @codex review khi sự kiện merge request
khớp với chính sách và điều kiện kích hoạt đó.
Hoạt động trên GitLab phải được bật thông qua webhook dự án hoặc webhook của một nhóm cấp trên. Đối với GitLab tự quản lý hoặc Dedicated, tài khoản dịch vụ đã cấu hình cũng phải có quyền ghi trở lại dự án. Codex sử dụng môi trường dự án đã cấu hình nếu có. Nếu một nhóm cấp trên đã bật hoạt động, các dự án con sẽ kế thừa phạm vi bao phủ đó.
Tùy chỉnh nội dung Codex đánh giá
Codex tìm các tệp AGENTS.md trong kho lưu trữ và tuân theo các
quy tắc đánh giá mã áp dụng. Thêm một mục ## Code Review Rules vào tệp gần nhất với
phần mã chịu sự chi phối của các quy tắc. Sử dụng tiêu đề ### để nhóm các bước kiểm tra liên quan khi
hữu ích.
Ví dụ: một dịch vụ báo cáo thử nghiệm có thể ngăn hành vi sau khi phơi nhiễm làm thay đổi nhóm thuần tập dùng để so sánh:
## Code Review Rules
### Experiment cohorts
- Do not filter treatment comparisons on post-exposure behavior, including conversion or retention.
Safe path: build cohorts from assignment or exposure; report conversion as an outcome.Đặt các quy tắc áp dụng cho toàn bộ kho lưu trữ trong AGENTS.md ở thư mục gốc và các quy tắc dành riêng cho dịch vụ trong
một tệp lồng nhau, chẳng hạn như services/experiment_reporting/AGENTS.md. Codex áp dụng
hướng dẫn ở thư mục gốc và hướng dẫn cụ thể hơn bao phủ từng tệp đã thay đổi, để các thay đổi
không liên quan không phải mang theo ngữ cảnh dành riêng cho dịch vụ.
Hãy bắt đầu với hai hoặc ba quy tắc ngắn gọn mã hóa những bước kiểm tra mà người đánh giá thường phải giải thích. Các quy tắc hữu ích gồm:
- Tập trung vào hành vi quan trọng, dành riêng cho kho lưu trữ. Mô tả ràng buộc tương thích, ranh giới dữ liệu hoặc tác dụng phụ không an toàn cần gắn cờ và lý do chúng quan trọng.
- Nêu rõ hướng xử lý an toàn hoặc trường hợp ngoại lệ. Cung cấp cho Codex đủ ngữ cảnh để phân biệt vấn đề thực sự với hành vi dự kiến.
- Giữ quy tắc đúng phạm vi và bền vững. Ưu tiên kết quả hơn tên hàm vốn có thể thay đổi, đồng thời đặt hướng dẫn gần phần mã mà hướng dẫn đó chi phối.
- Để CI xử lý các bước kiểm tra cơ học. Không đưa định dạng, lint và các bước kiểm tra xác định khác vào quy tắc đánh giá.
Mở một merge request tiêu biểu và yêu cầu đánh giá bằng @codex review.
Tinh chỉnh quy tắc dựa trên các phát hiện và phản hồi bạn thấy, đồng thời thu hẹp hoặc
loại bỏ hướng dẫn gây nhiễu.
Các quy tắc đánh giá mã hướng dẫn Codex; chúng không thay thế kiểm thử, biện pháp bảo vệ nhánh hoặc phê duyệt bắt buộc.
Để tập trung vào một nội dung chỉ trong một lần, hãy thêm nội dung đó vào bình luận merge request:
@codex review for issues in the database migration
Xử lý các phát hiện từ bản đánh giá
Việc khắc phục các phát hiện từ bản đánh giá yêu cầu môi trường dự án đã cấu hình; riêng hoạt động ở cấp nhóm chỉ hỗ trợ đánh giá và không thể chạy tác vụ lập trình. Nếu dự án có môi trường, hãy yêu cầu Codex khắc phục một vấn đề trong cùng merge request bằng cách để lại một bình luận khác:
@codex fix the P1 issueCodex bắt đầu một cuộc trò chuyện trên cloud, sử dụng merge request làm ngữ cảnh và có thể đẩy bản sửa lỗi trở lại nhánh khi có quyền thực hiện việc đó.
Giao các tác vụ khác cho Codex
Các tác vụ lập trình khác cũng yêu cầu môi trường dự án đã cấu hình; riêng hoạt động
ở cấp nhóm chỉ hỗ trợ đánh giá. Nếu bạn đề cập @codex trong bình luận với
bất kỳ nội dung nào ngoài review, Codex sẽ bắt đầu một cuộc trò chuyện trên cloud, sử dụng
merge request của bạn làm ngữ cảnh.
@codex fix the CI failuresKhắc phục sự cố đánh giá mã
Nếu Codex không bày tỏ cảm xúc hoặc đăng bản đánh giá:
- Xác nhận rằng ứng dụng GitLab dự kiến đã được chọn; nếu bạn sử dụng thiết lập dành riêng cho dự án, hãy xác nhận dự án có đúng môi trường Codex cloud dự kiến.
- Xác nhận hoạt động cho dự án hoặc một nhóm cấp trên. Trong GitLab, kiểm tra Webhooks → Recent events và xác minh các lần chuyển sự kiện merge request và ghi chú đều thành công.
- Đối với GitLab tự quản lý hoặc Dedicated, hãy xác nhận webhook dự án hoặc nhóm đã
được ký, tính năng xác minh SSL đã được bật và phiên bản đang chạy GitLab 19.0
trở lên. Trên GitLab 19.0 tự quản lý, hãy xác nhận cờ tính năng
webhook_signing_tokenđã được bật; sửa chữa các webhook tự động bị vô hiệu hóa sau khi xảy ra lỗi. - Đối với GitLab tự quản lý hoặc Dedicated, hãy xác nhận personal access token của tài khoản dịch vụ hiện có
đang hoạt động và có phạm vi
api. Nếu Codex đã tạo tài khoản dịch vụ, hãy xác nhận tài khoản được cấu hình đúng trong phần cài đặt trình kết nối Codex và dự án hoặc nhóm đã được bật. - Đối với GitLab tự quản lý hoặc Dedicated, hãy xác nhận tài khoản dịch vụ của không gian làm việc —không chỉ người dùng GitLab đã kết nối—có quyền Developer đối với dự án hoặc một nhóm cha để Codex có thể đăng bản đánh giá và thêm biểu cảm. Tư cách thành viên được kế thừa; hoạt động và quyền truy cập của tài khoản dịch vụ là hai phần riêng biệt.
- Xác nhận Code review hoặc Automatic reviews đã được bật và MR khớp với chính sách cùng điều kiện kích hoạt của kho lưu trữ.
- Sử dụng
@codex review.