1

我有一个 Github Bot (Probot),我用它来处理命名约定等的自动化。

我还有一些团队用于控制可见性,我想知道当从特定模板创建回购时,是否可以使用 Probot 分配某些团队访问权限。

但是,我已经分析了上下文对象并通过它进行搜索以查找模板存储库名称,但似乎无法找到确定存储库创建位置的可靠方法。也许我在这里遗漏了一些东西,或者这根本不可能?见附件代码

const templateTeamAssignment = async (context) => {
  const { github, payload } = context;
  const repo = payload.repository.name;

  console.log("context", context);
};

module.exports = templateTeamAssignment;

有任何想法吗?

4

2 回答 2

0

事件负载不包括template_repository您要查找的属性。但是您可以通过使用 REST API 调用或 GraphQL 查询检索存储库的信息来检索信息。例如,试试这个

const { template_repository } = await context.github.repos.get(context.repo())

如果template_repository未设置,则表示该存储库不是使用模板存储库创建的。

于 2020-10-29T17:45:35.903 回答
0

不幸的是,我认为目前这是不可能的。我确实设法弄清楚baptiste-preview需要将其作为标题提供,以便在结果中显示is_templateandtemplate_repository属性。它们也仅在listForOrg()函数上可见,因此我必须遍历结果以找到各个 repo 信息。

const templateTeamAssignment = async (context) => {
  const { github, payload } = context;
  const repo = payload.repository.name;

  console.log("context", context);

  console.log("stackOverflow", await context.github.repos.get(context.repo()));
  console.log(
    "stackOverflow",
    await context.github.repos.listForOrg({
      org: payload.organization.login,
      headers: {
        accept: "application/vnd.github.baptiste-preview+json",
      },
    })
  );
};

当我实现这一点时,我能够看到该is_template属性,但看不到该属性,template_repository这让我相信它还不够稳定,无法用于生产,API 文档上的警告证实了这一点。想知道目前是否有人成功获得该template_repository物业?

于 2020-11-02T19:31:06.250 回答