Cài GitHub App vào enterprise không mở quyền đọc mã kho
Một script cấu hình công ty có thể vẫn phụ thuộc token cá nhân của người đã nghỉ việc. Ngày 23 tháng 10, GitHub công bố phát hành rộng rãi cài đặt enterprise cho GitHub Apps. Nhiều tác vụ quản trị có thể rời PAT cổ điển, nhưng cài ở enterprise không đồng nghĩa với quyền đọc toàn bộ mã.
Ứng dụng enterprise quản lý được gì
Thông báo gồm chính sách kho, ruleset, đọc yêu cầu bypass và danh sách IP cho phép. Đọc yêu cầu và sửa quy tắc cần các quyền khác nhau. Không cần bật toàn bộ quyền ghi để bắt đầu.
Cài đặt enterprise chỉ cấp quyền enterprise. Quyền tổ chức hay kho mà ứng dụng đồng thời yêu cầu không được cấp ở đây. Muốn đọc mã hai tổ chức cần cài riêng và cấp quyền kho phù hợp. Đọc được cấu hình doanh nghiệp nhưng bị từ chối mã có thể là hành vi đúng.
Một ứng dụng, nhiều cài đặt
Giả sử enterprise acme có hai tổ chức web và mobile. Cài cùng ứng dụng vào ba tài khoản tạo ra ba cài đặt. Token enterprise không thay được token web; token web không vượt sang mobile. Hình tự dựng minh họa tình huống giả định, không phải giao diện GitHub thực tế.

Vì vậy cache token không nên chỉ dùng tên ứng dụng làm khóa. Thêm installation ID giúp tách việc đọc chính sách enterprise khỏi việc đọc kho. Đây là ví dụ đưa ranh giới tài khoản trong tài liệu vào cấu trúc chương trình.
Khi quyền ứng dụng gặp quyền người dùng
Token người dùng phụ thuộc quyền của cả ứng dụng và người dùng. Nếu người dùng chỉ có quyền đọc, ứng dụng không thể vượt giới hạn đó khi hành động thay họ. Token cài đặt hoạt động theo quyền ứng dụng được cấp cho cài đặt tương ứng.
Việc cấp token dùng JWT ứng dụng và installation ID. Tài liệu mô tả POST /app/installations/INSTALLATION_ID/access_tokens và thời hạn một giờ. Octokit có thể tạo và làm mới token. Thời hạn ngắn không thay thế việc bảo vệ khóa riêng và tách cache theo từng cài đặt.

Trước khi thay token cá nhân
Nếu script gộp chính sách enterprise và mã nhiều tổ chức, đổi chuỗi token có thể chưa đủ. Cần tách tác vụ, kiểm tra hỗ trợ API và chọn kiểu xác thực phù hợp. Không phải mọi thao tác GraphQL enterprise đều hỗ trợ ứng dụng. Bắt đầu bằng tác vụ đọc giúp đối chiếu kết quả.
Có độ trễ giữa nguồn: changelog ngày 23 tháng 10 ghi phát hành rộng rãi, nhưng trang cài đặt kiểm tra hôm nay vẫn ghi public preview. Bài này dùng thông báo có ngày cho trạng thái phát hành và tài liệu cho phạm vi quyền. Giá trị nằm ở việc định nghĩa tự động hóa theo tài khoản và tác vụ, thay vì sao chép toàn bộ quyền của một người.
Nguồn và đọc thêm
GitHub Docs · Enterprise installation