the*_*row 6 git github github-api
我们有很多不活跃的分支机构(最新的是7个月,最早的是两年前).
如果没有为他们打开PR,我想从远程批量删除所有这些分支.
我应该使用Github的API吗?我是否应该使用git使用此StackOverflow问题中提供的代码段?
是否有一些我不熟悉的Github功能可以帮助组织我们的存储库?
Sur*_*rya 39
您可以在打开陈旧分支后右键单击浏览器,然后在浏览器 java 脚本控制台中运行它。
删除所有陈旧的分支。即)此脚本自动单击到下一页并继续删除下一页中的过时分支。
async function deleteStaleBranches(delay=500) {
var stale_branches = document.querySelectorAll('[aria-label="Delete branch"]');
for (var i = 0; i < stale_branches.length; i++) {
stale_branches.item(i).click();
await new Promise(r => setTimeout(r, delay));
}
const next = document.querySelector('[aria-label="Next Page"]');
if(next) {
next.click();
setTimeout(() => deleteStaleBranches(500), 500);
}
} (() => { deleteStaleBranches(500); })();
Run Code Online (Sandbox Code Playgroud)
仅删除当前页面中存在的过时分支:
async function deleteStaleBranches(delay=500) {
var stale_branches = document.querySelectorAll('[aria-label="Delete branch"]');
for (var i = 0; i < stale_branches.length; i++) {
stale_branches.item(i).click();
await new Promise(r => setTimeout(r, delay));
}
} (() => { deleteStaleBranches(500); })();
Run Code Online (Sandbox Code Playgroud)
你当然可以使用GitHub API来实现这一点,但是你需要做一些小小的工作.
首先,使用list pull requests API获取打开拉取请求的列表.此列表中的每个项目都包含一个["head"]["ref"]
条目,该条目将是分支的名称.
现在,使用get all references API,列出存储库中的所有引用.请注意,Git Data API中分支的语法与从pull请求API返回的语法略有不同(例如refs/heads/topic
vs. topic
),因此您必须对此进行补偿.引用API还返回标记,除非您只搜索refs/heads/
子命名空间,如文档中所述,因此请注意这一点.
一旦你有了这两个分支引用列表,就可以很容易地确定哪些分支没有开放拉取请求(不要忘记考虑master
或你想保留的任何其他分支!).
此时,您可以使用删除引用API从存储库中删除这些分支引用.
归档时间: |
|
查看次数: |
4854 次 |
最近记录: |