GitHub giới thiệu tính năng xuất bản theo giai đoạn và kiểm soát cài đặt mới cho NPM
GitHub vừa tung ra hai bản cập nhật tập trung vào bảo mật chuỗi cung ứng cho NPM: tính năng xuất bản theo giai đoạn (staged publishing) và các cờ điều khiển nguồn cài đặt mới. Tính năng xuất bản theo giai đoạn yêu cầu sự phê duyệt của con người trước khi gói phần mềm được phát hành chính thức, giúp ngăn chặn các sự cố bảo mật từ quy trình CI/CD tự động.

Hôm nay, GitHub đã công bố hai cập nhật quan trọng dành cho npm, tập trung vào việc tăng cường bảo mật chuỗi cung ứng phần mềm. Những thay đổi này bao gồm việc ra mắt tính năng xuất bản theo giai đoạn (staged publishing) và bổ sung các cờ điều khiển nguồn cài đặt mới, tất cả đều có sẵn trong npm CLI phiên bản 11.15.0 trở lên.
Xuất bản theo giai đoạn (Staged Publishing) chính thức có mặt
Tính năng xuất bản theo giai đoạn hiện đã được phát hành rộng rãi trên npm. Thay vì xuất bản trực tiếp khiến phiên bản gói phần mềm ngay lập tức có sẵn cho người dùng, file tarball được xây dựng sẵn sẽ được tải lên một hàng đợi giai đoạn (stage queue). Tại đây, người bảo trì phải thực hiện phê duyệt một cách rõ ràng thì gói đó mới có thể được cài đặt.
Hàng đợi này có thể xem thấy cả trên trang web npmjs.com và trong npm CLI. Tính năng này củng cố bằng chứng về sự hiện diện (proof of presence) trong mỗi lần xuất bản, bao gồm cả những lần xuất bản bắt nguồn từ quy trình CI/CD không tương tác và những lần sử dụng tính năng xuất bản tin cậy (trusted publishing) với OIDC.
Để phát hành một gói đã được đưa vào giai đoạn, một người bảo trì con người với yêu cầu xác thực hai yếu tố (2FA) là bắt buộc. Điều này đảm bảo rằng ngay cả khi quy trình tự động bị xâm phạm, mã độc cũng không thể được phát hành ra công chúng nếu không có sự kiểm duyệt của con người.
Các cờ điều khiển nguồn cài đặt mới
Bắt đầu từ npm 11.15.0, GitHub đã bổ sung thêm ba cờ mới để người dùng áp dụng phương pháp cho phép danh sách trắng (explicit-allowlist) cho mọi nguồn cài đặt không phải từ registry:
- --allow-file: Kiểm soát các cài đặt từ đường dẫn file cục bộ và tarball cục bộ.
- --allow-remote: Kiểm soát các cài đặt từ URL từ xa, bao gồm cả tarball qua https.
- --allow-directory: Kiểm soát các cài đặt từ thư mục cục bộ.
- --allow-git (đã tồn tại): Kiểm soát các cài đặt từ bất kỳ nguồn Git nào, bao gồm github:, gitlab:, URL git+, và viết tắt owner/repo.
Mỗi cờ chấp nhận giá trị all (mặc định hiện tại) hoặc none, và có thể được thiết lập trong tệp .npmrc hoặc cấu hình package.json. Điều này giúp các nhà phát triển kiểm soát chặt chẽ hơn các nguồn mà npm được phép cài đặt, giảm thiểu rủi ro từ các phụ thuộc không rõ nguồn gốc.
Yêu cầu và khuyến nghị
Để sử dụng tính năng npm stage, bạn cần cài đặt npm CLI phiên bản 11.15.0 hoặc mới hơn. Bạn cũng sẽ cần cập nhật các quy trình CI/CD để sử dụng lệnh npm stage publish thay vì npm publish ở những nơi mà bạn muốn áp dụng hành vi theo giai đoạn.
GitHub khuyến nghị nên kết hợp xuất bản theo giai đoạn với tính năng xuất bản tin cậy (OIDC). Cấu hình xuất bản tin cậy có thể được giới hạn chỉ ở chế độ giai đoạn (stage-only), nghĩa là lệnh npm publish từ quy trình đó sẽ bị từ chối và chỉ chấp nhận npm stage publish. Điều này cho phép các quy trình CI tiếp tục chạy không tương tác, trong khi người bảo trì có thể phê duyệt phiên bản đã được đưa vào giai đoạn sau đó thông qua trang web hoặc CLI.
Lưu ý rằng, theo thông báo từ tháng 2 năm 2026, cờ --allow-git sẽ thay đổi giá trị mặc định từ all sang none trong phiên bản chính tiếp theo của CLI (v12). Các cờ mới được thêm trong phiên bản 11.15.0 cho phép bạn áp dụng hành vi kiểm soát chặt chẽ hơn ngay hôm nay bằng cách đặt chúng thành none.
Bài viết liên quan

Phần mềm
Runtime ra mắt hạ tầng sandbox cho coding agents, giúp toàn bộ đội ngũ phát triển phần mềm an toàn
21 tháng 5, 2026

Công nghệ
Lỗ hổng YellowKey khai thác BitLocker: Mở khóa ổ cứng Windows chỉ với USB
14 tháng 5, 2026

Phần mềm
Cha đẻ của curl kêu gọi ưu tiên "xác minh" thay vì "tin tưởng" trong chuỗi cung ứng phần mềm
07 tháng 5, 2026
