ติดตั้ง GitHub App ใน enterprise ไม่ได้เปิดโค้ดทุก repository
สคริปต์ตั้งค่าบริษัทอาจยังพึ่งโทเคนส่วนตัวของพนักงานที่ลาออกไปแล้ว วันที่ 23 ตุลาคม GitHub ประกาศเปิดใช้งานการติดตั้ง GitHub Apps ระดับ enterprise ทั่วไป งานดูแลระบบที่เลิกใช้ classic PAT จึงมีมากขึ้น แต่การติดตั้งใน enterprise ไม่ได้ให้สิทธิ์อ่านโค้ดทั้งหมด
แอประดับ enterprise จัดการอะไรได้
ประกาศครอบคลุมนโยบาย repository, ruleset, การอ่านคำขอ bypass และรายการ IP ที่อนุญาต การอ่านคำขอกับการแก้กฎต้องใช้สิทธิ์ต่างกัน จึงไม่จำเป็นต้องเปิดสิทธิ์เขียนทุกอย่างเพื่อเริ่มใช้งาน
การติดตั้ง enterprise ให้เฉพาะสิทธิ์ enterprise สิทธิ์องค์กรหรือ repository ที่แอปขอไว้ไม่ได้รับผ่านการติดตั้งนี้ การอ่านโค้ดจากสององค์กรต้องติดตั้งแยกและให้สิทธิ์ repository ที่เหมาะสม การอ่านค่าบริษัทได้แต่ถูกปฏิเสธโค้ดจึงอาจเป็นพฤติกรรมที่ถูกต้อง
หนึ่งแอปมีหลายการติดตั้งได้
สมมติ enterprise ชื่อ acme มีองค์กร web และ mobile เมื่อติดตั้งแอปเดียวกันในทั้งสามบัญชี จะได้สามการติดตั้ง โทเคน enterprise ใช้แทน web ไม่ได้ และโทเคน web ข้ามไป mobile ไม่ได้ ภาพที่ทำขึ้นเองแสดงตัวอย่างสมมติ ไม่ใช่หน้าจอ GitHub จริง

ดังนั้น cache ไม่ควรใช้แค่ชื่อแอปเป็นคีย์ การเพิ่ม installation ID ช่วยแยกงานนโยบายบริษัทกับงานอ่าน repository นี่คือตัวอย่างการนำขอบเขตบัญชีตามเอกสารมาใช้ในโครงสร้างโปรแกรม
สิทธิ์ของแอปพบกับสิทธิ์ของผู้ใช้
โทเคนผู้ใช้ขึ้นกับสิทธิ์ทั้งแอปและผู้ใช้ ถ้าผู้ใช้อ่านได้อย่างเดียว แอปไม่สามารถทำเกินสิทธิ์นั้นเมื่อทำงานแทนเขา ส่วน installation access token ใช้สิทธิ์แอปที่ให้กับการติดตั้งนั้น
การออกโทเคนใช้ JWT ของแอปกับ installation ID เอกสารอธิบาย POST /app/installations/INSTALLATION_ID/access_tokens และอายุหนึ่งชั่วโมง Octokit ช่วยสร้างและต่อโทเคนได้ แต่ยังต้องป้องกัน private key และแยก cache ตามการติดตั้ง

ก่อนแทนที่โทเคนส่วนตัว
หากสคริปต์รวมงานนโยบาย enterprise กับโค้ดหลายองค์กร การเปลี่ยนข้อความโทเคนอาจไม่พอ ต้องแยกงาน ตรวจการรองรับ API และเลือกวิธีรับรองตัวตนที่เหมาะสม ไม่ใช่ทุกคำสั่ง GraphQL ของ enterprise ที่รองรับแอป เริ่มจากงานอ่านจะเปรียบเทียบผลได้ง่าย
แหล่งข้อมูลมีจังหวะอัปเดตต่างกัน changelog วันที่ 23 ตุลาคมระบุเปิดใช้งานทั่วไป แต่หน้าเอกสารติดตั้งที่ตรวจวันนี้ยังมีคำว่า public preview บทความนี้ใช้ประกาศลงวันที่สำหรับสถานะเปิดตัว และใช้เอกสารสำหรับขอบเขตสิทธิ์ ประโยชน์คือออกแบบระบบตามบัญชีและงาน แทนการคัดลอกอำนาจทั้งหมดของคนหนึ่งคน
แหล่งข้อมูลและอ่านเพิ่มเติม
GitHub Docs · Enterprise installation