feat: GitHub App manifest 全量获取:仓库/组织/企业/账号四类最高档
接上轮仓库最大权限:用户明确要求无论什么身份,取该身份 授权范围内的所有权限。manifest 现按四类全拉满(74 项权限、 39 个事件):仓库补 codespaces_lifecycle_admin、repository_ creation、metadata 只读;组织 members 升 write 并补 organization_administration 等 15 项;企业补 8 项;账号补 blocking、email_addresses、gists、密钥类等 22 项。 身份边界写进注释:GitHub 只授予安装身份能给的那部分,个人 装不上组织/企业、企业装不上仓库/组织;换 token 不传子集, token 本就是安装全量;企业安装另需 App 公开/内部 (GITHUB_APP_PUBLIC=1)。诚实边界:企业类键名未用真实 GitHub 建 App 实测,新建时表单会校验,某键被拒删键再建, 线上旧 App 不受影响。
This commit is contained in:
1 parent
668c000394
commit
8fc4e27241
2 files changed
+108
-13
No files matched your search
@@ -91,11 +91,23 @@ class ManifestTestCase(unittest.TestCase):
|
||||
self.assertEqual(m["default_permissions"]["administration"], "write")
|
||||
self.assertEqual(m["default_permissions"]["actions"], "write")
|
||||
self.assertEqual(m["default_permissions"]["checks"], "write")
|
||||
# 全量:组织 / 企业 / 账号三类也必须在 manifest 里,不只仓库。
|
||||
self.assertEqual(m["default_permissions"]["members"], "write")
|
||||
self.assertEqual(
|
||||
m["default_permissions"]["organization_administration"],
|
||||
"write")
|
||||
self.assertEqual(
|
||||
m["default_permissions"]["enterprise_organization_installations"],
|
||||
"write")
|
||||
self.assertEqual(m["default_permissions"]["email_addresses"], "write")
|
||||
self.assertEqual(m["default_permissions"]["gists"], "write")
|
||||
self.assertIn("issue_comment", m["default_events"])
|
||||
self.assertIn("pull_request", m["default_events"])
|
||||
self.assertIn("push", m["default_events"])
|
||||
self.assertIn("check_run", m["default_events"])
|
||||
self.assertIn("workflow_run", m["default_events"])
|
||||
self.assertIn("organization", m["default_events"])
|
||||
self.assertIn("member", m["default_events"])
|
||||
self.assertFalse(m["public"])
|
||||
|
||||
def test_manifest_requires_base(self):
|
||||
|
||||
Reference in new issue
Block a user