用JS删除仓库的所有PR
JS 删除 所有 仓库 pr
2023-06-13 09:13:55 时间
背景
之前参加过一个小游戏项目,出过让新人操作的教程,结果提了一堆Pull Requests,写个脚本全删了。
步骤
先去申请一个Token,默认的就行,粘贴下来: https://github.com/settings/tokens/new?scopes=repo
下载一个JS库,用来操作Github API:
> pnpm add @octokit/core
看Github API Docs,关掉PR其实就是把它的状态更新成closed
。参见这里:
- https://docs.github.com/en/rest/pulls/pulls#list-pull-requests
- https://docs.github.com/en/rest/pulls/pulls#update-a-pull-request
所以我们要用这个逻辑来关掉一个PR:
octokit.request('PATCH /repos/{owner}/{repo}/pulls/{pull_number}', {
owner: 'OWNER',
repo: 'REPO',
pull_number: '123',
state: 'closed',
})
开写,都是基本的语法,用了一下Promise.all
把一个Promise<T>[]
包装成Promise<T[]>
:
const { Octokit } = require('@octokit/core')
async function main() {
const octokit = new Octokit({ auth: 'TOKEN' })
const response = await octokit.request('GET /repos/{owner}/{repo}/pulls', {
owner: 'OWNER',
repo: 'REPO'
})
await Promise.all(response.data.map(item => item.number).map(pullNumber => octokit.request('PATCH /repos/{owner}/{repo}/pulls/{pull_number}', {
owner: 'OWNER',
repo: 'REPO',
pull_number: pullNumber.toString(),
state: 'closed',
})))
}
main()
我不确定这里的pullNumber
是否需要加toString
,但出于写静态类型语言的洁癖,我给加上了。
就这样。
相关文章
- JS中Class类的详解
- js判断map是否为空
- 用JS获取地址栏url参数的方法_js的url是啥
- 数组转对象2种方法有哪些_js 数组转对象
- 前端JS计算精度损失的问题
- js数组删除指定数据方法「建议收藏」
- js手写面试题总结
- 快速掌握JS操作MySQL数据库技巧(js操作mysql数据库)
- JS在Oracle中的应用(js如何oracle)
- 获取客户端网卡MAC地址和IP地址实现JS代码
- 动态加载js和css(外部文件)
- JS修改URL参数(实现代码)
- js正则解析URL参数示例代码
- js动态创建、删除表格示例代码
- js中符号转意问题示例探讨
- C#Js时间格式化问题简单实例
- js实现的折叠导航示例
- js点击页面其他地方关闭弹出层(示例代码)
- js与jquery获取父元素,删除子元素的两种不同方法
- JS操作iframe里的dom(实例讲解)
- js获取当前地址JS获取当前URL的示例代码