npm phát triển các cấu hình trusted publishing trong khi GitHub thêm điều kiện merge liên quan đến secrets bị lộ. Hai thông báo này không tạo thành một khóa duy nhất: cần xem xét riêng quyền merge, danh tính xuất bản và phê duyệt phát hành.
Hai thông báo, hai điểm quyết định
Ngày 3 tháng 9 năm 2026, npm công bố khả dụng rộng rãi của nhiều cấu hình trusted publishing cho mỗi package. Chúng độc lập và cộng dồn: khớp với một cấu hình có thể đủ, mà không có thứ tự đánh giá được bảo đảm. Việc đặt ở trạng thái chờ được đề xuất mặc định; xuất bản trực tiếp là tùy chọn riêng của mỗi cấu hình. Việc phê duyệt một package đang chờ có thể thực hiện sau khi phân tích phần mềm độc hại hoàn tất. Phân tích này đã tồn tại từ trước. [thông báo npm]
Ngày 9 tháng 9, GitHub giới thiệu dưới dạng xem trước công khai một quy tắc dành cho khách hàng GitHub Secret Protection hoặc GitHub Advanced Security: trước khi merge, phân tích commit mới nhất của pull request phải hoàn tất và không cảnh báo liên quan nào do các commit của pull request đưa vào được phép còn mở. Các loại được phát hiện có thể cấu hình và quyền vượt qua phải được xem xét. Quy tắc này bổ sung cho bảo vệ tại thời điểm đẩy mã, không thay thế nó. [thông báo GitHub]
Mô tả từng quyền trước chuỗi phát hành
CI/CD là tích hợp và phân phối liên tục: chuỗi xây dựng, kiểm soát và phát hành phần mềm. Pull request là một đề xuất sửa đổi; workflow là tập hợp các bước tự động. OIDC, OpenID Connect, ở đây cho phép nhận diện workflow bằng token thời hạn ngắn. Danh tính này tự nó không mô tả toàn bộ quyền hạn của đội ngũ.
Review do Partitech đề xuất bắt đầu bằng các đường đi có thể có: kho mã, workflow, môi trường, người phụ trách và khả năng xuất bản trực tiếp. Một cấu hình bổ sung phải có chủ sở hữu và lý do. Hãy cũng lưu các tài khoản và cơ chế có thể vượt qua đường đi thông thường, thay vì giới hạn kiểm kê vào tệp tự động hóa dễ thấy nhất.
| Đường đi hoặc hành động | Danh tính / kho mã / workflow | Môi trường và tiêu chí | Xuất bản trực tiếp hoặc ngoại lệ | Chủ sở hữu và bằng chứng |
|---|---|---|---|---|
| Merge GitHub | Cần kiểm kê | Cần ghi nhận | Cần xem xét vượt qua | Cần chỉ định / đính kèm |
| Cấu hình stable | Cần kiểm kê | Cần ghi nhận | Cần xác minh | Cần chỉ định / đính kèm |
| Cấu hình prepublication | Cần kiểm kê | Cần ghi nhận | Cần xác minh | Cần chỉ định / đính kèm |
| Phê duyệt package đang chờ | Cần kiểm kê | Cần ghi nhận | Cần ghi chép | Cần chỉ định / đính kèm |
Mô hình HOẶC giữa các cấu hình, không phải xác nhận kép
Trong ví dụ hư cấu này, A chỉ cấu hình của workflow stable và B chỉ cấu hình của prepublication. Bảng chỉ minh họa việc token OIDC khớp với các cấu hình. Nó không thay thế các kiểm soát khác và không có nghĩa package lập tức trở thành công khai.
| Cấu hình A thỏa mãn | Cấu hình B thỏa mãn | Đường đi OIDC tương ứng |
|---|---|---|
| Không | Không | Không |
| Có | Không | Có |
| Không | Có | Có |
| Có | Có | Có |
Phê duyệt của con người cho package được đặt ở trạng thái chờ là một bước riêng: nó không phải số hạng thứ hai của điều kiện HOẶC này. Trong lúc review, với mỗi đường đi hãy hỏi bằng chứng nào được lưu, ai có thể thay đổi tiêu chí và quyết định nào biện minh cho một lần xuất bản trực tiếp có thể có.
Liên kết bằng chứng mà không nhầm lẫn các kiểm soát
Một cảnh báo đóng không xác nhận rằng secret đã bị thu hồi. Tùy nhà cung cấp liên quan, hãy ghi chép việc thu hồi hoặc xoay vòng, xác minh các cách sử dụng bị ảnh hưởng và lưu quyết định xử lý. Việc không có cảnh báo chỉ có nghĩa là không cảnh báo liên quan nào đang mở trong phạm vi kiểm soát; nó không chứng minh việc phát hiện đầy đủ.
Thiết kế đề xuất tách review thay đổi, phân tích secrets, kiểm thử ứng dụng, danh tính npm, trạng thái chờ và phê duyệt. Mỗi giai đoạn giữ người phụ trách và bằng chứng của mình. Không giả định chuỗi nguyên tử nào giữa merge và xuất bản. Nguyên tắc tin cậy rõ ràng phù hợp với bài viết của chúng tôi về các thao tác ghi của agent và môi trường cô lập của chúng, nhưng các quyền được xem xét ở đây là quyền phân phối GitHub/npm.
Cho một đợt thí điểm được phép và cô lập, hãy chuẩn bị danh tính hư cấu và package minh họa: không cấu hình nào khớp, một cấu hình khớp, nhiều cấu hình khớp, phân tích vẫn đang diễn ra và ngoại lệ merge. Xác định điều gì cần được chấp nhận hoặc từ chối tại mỗi giai đoạn, rồi thu thập kết quả thực sự có được. Không kịch bản nào trong số này đã được thực thi cho bài viết này; không cần secret thật hoặc package production cho phần chuẩn bị tài liệu.
Sản phẩm bàn giao của review là ma trận các đường đi, đi cùng người phụ trách, ngoại lệ và bằng chứng còn thiếu. Hãy xem xét lại nó sau mỗi thay đổi workflow. Bản xem trước GitHub, các giới hạn phát hiện và quyền còn lại vẫn là những điểm cần theo dõi; số lượng kiểm soát tự nó không đo lường độ an toàn của việc phân phối.