Javascript GitHub协作者和写入权限

Javascript GitHub协作者和写入权限,javascript,git,github,github-api,privileges,Javascript,Git,Github,Github Api,Privileges,让我们假设我们有一个GitHub组织,有两个成员,其中一个是管理员,另一个是机器用户。机器用户将作为协作者添加到组织中创建的每个新存储库中。为了允许机器用户推送到存储库,我们可以使用一个具有该范围的acces令牌。现在我们有一个问题,事实上机器用户可能会将任何内容推送到任何存储库,因为访问令牌授予帐户范围的访问权限。至少有3种可能的方法可用于解决此问题: 为每个存储库创建一个新的部署密钥,并使用它限制只有拥有该密钥的人才能进行写访问 使用预接收钩子拒绝不符合某些检查的提交 为每个新存储库创建一

让我们假设我们有一个GitHub组织,有两个成员,其中一个是管理员,另一个是机器用户。机器用户将作为协作者添加到组织中创建的每个新存储库中。为了允许机器用户推送到存储库,我们可以使用一个具有该范围的acces令牌。现在我们有一个问题,事实上机器用户可能会将任何内容推送到任何存储库,因为访问令牌授予帐户范围的访问权限。至少有3种可能的方法可用于解决此问题:

  • 为每个存储库创建一个新的部署密钥,并使用它限制只有拥有该密钥的人才能进行写访问
  • 使用预接收钩子拒绝不符合某些检查的提交
  • 为每个新存储库创建一个机器用户,并将其作为协作者添加到该精确存储库中,并使用其仅推送访问令牌
这些解决方案都有缺点:

  • 部署密钥比访问令牌更难创建,因为我需要自己创建它们,而不是向GitHub发出请求。此外,我不知道如何将它们与JavaScript结合使用,以便在不使用终端和不在本地机器上安装Git的情况下推送到GitHub。有许多教程(,)介绍如何在终端上使用部署密钥,以及如何使用密码和访问令牌来验证要上载到GitHub的JavaScript库,但是如果您希望能够在没有终端的情况下推送,并且只授予对单个特定存储库的访问权,该怎么办
  • 预接收挂钩是企业独有的功能
  • 创建一批机器用户不是很有效
还有其他办法解决这个问题吗?除了预接收钩子,还有其他拒绝提交的方法吗?您能帮我弄清楚如何使用JavaScript通过使用deploy key()将提交推送到GitHub吗?有没有办法发现使用webhook推送的访问令牌