我有一个Github Bot(Probet(,我用它来处理命名约定等方面的自动化。
我也有一些团队用于控制可见性,我想知道当从特定模板创建Repo时,是否可以使用Probet来分配特定团队的访问权限。
然而,我分析了上下文对象,并在其中搜索了模板repo名称,但似乎找不到确定repo从何处创建的可靠方法。也许我错过了什么,或者这根本不可能?参见随附的代码
const templateTeamAssignment = async (context) => {
const { github, payload } = context;
const repo = payload.repository.name;
console.log("context", context);
};
module.exports = templateTeamAssignment;
有什么想法吗?
事件负载不包括您要查找的template_repository
属性。但是,您可以通过使用REST API调用或GraphQL查询检索存储库的信息来检索信息。例如,试试这个
const { template_repository } = await context.github.repos.get(context.repo())
如果未设置template_repository
,则表示存储库不是使用模板存储库创建的。
不幸的是,我认为目前这是不可能的。我确实设法弄清楚了baptiste-preview
需要作为标头提供,以便在结果中显示is_template
和template_repository
属性。它们也只在listForOrg()
函数上可见,所以我必须循环查看结果,找到单个回购信息。
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
房产?