Tiếng Việt

Đá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ó:

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 CloudSettingsConnectors. 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 CloudSettingsConnectors, 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 accountCreate 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 tokensAdd 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 CloudSettingsConnectors. Đố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 CloudSettingsEnvironments, 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ở EnvironmentsGitLab activityManage 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á

  1. Trong bình luận của merge request, hãy đề cập @codex review.
  2. 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 issue

Codex 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 failures

Khắ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 WebhooksRecent 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.