使用Node實(shí)現(xiàn)Git倉(cāng)庫(kù)批量克隆的操作步驟
前言
分享一個(gè)node腳本,通過(guò)調(diào)用gitee的OpenApi獲取自己的代碼倉(cāng)庫(kù)列表,達(dá)到批量克隆項(xiàng)目的效果
準(zhǔn)備工作
gitee倉(cāng)庫(kù)及賬號(hào)
node環(huán)境
獲取令牌
登錄gitee進(jìn)入設(shè)置頁(yè)面
找到私人令牌這一項(xiàng),用于創(chuàng)建token,點(diǎn)擊生成
權(quán)限按需選擇,最后點(diǎn)擊提交,
驗(yàn)證密碼
最后生成令牌,令牌只會(huì)顯示一次,如果忘記了只能重新生成,所以要復(fù)制保存好
使用方式
參考Gitee的OpenAPI接口文檔:Gitee API 文檔
訪問(wèn)gitee.com/api/v5/user/repos接口獲取用戶的所有倉(cāng)庫(kù)
在gitee官方的swagger工具中我們可以模擬請(qǐng)求獲取數(shù)據(jù)結(jié)構(gòu)
申請(qǐng)授權(quán)gitee賬戶
勾選需要用上的權(quán)限
點(diǎn)擊測(cè)試按鈕
就可以直接發(fā)起請(qǐng)求,訪問(wèn)對(duì)于接口,獲取或操作數(shù)據(jù)
代碼實(shí)現(xiàn)
在node環(huán)境下,我們可以使用http或axios模塊對(duì)數(shù)據(jù)進(jìn)行請(qǐng)求,接著使用exec輸出命令達(dá)到批量克隆的效果,這里的請(qǐng)求我用的是utils-lib-js的Request方式
const { exec } = require("child_process"); const { Request } = require("utils-lib-js"); // 替換為你的 Gitee API Token const access_token = ""; const per_page = 3; // 每頁(yè)獲取的數(shù)量,最大為3 const page = 1; const request = new Request("https://gitee.com/"); // 獲取所有倉(cāng)庫(kù)信息 const getAllRepos = (page) => { request .GET(`/api/v5/user/repos`, { page, per_page, access_token, }) .then((repos) => { if (repos.length > 0) { repos.forEach((repo) => { const { html_url, name } = repo; // 克隆每個(gè)倉(cāng)庫(kù)到本地 exec(`cd ./repos && git clone ${html_url}`, (cloneErr) => { if (cloneErr) return console.error(`克隆出錯(cuò): ${cloneErr}`); console.log(`${name} 克隆完成`); }); }); // 繼續(xù)獲取下一頁(yè)的倉(cāng)庫(kù)信息 getAllRepos(page + 1); } else { console.log("克隆命令執(zhí)行完畢!"); } }) .catch(console.log); }; getAllRepos(page);
實(shí)現(xiàn)效果
在控制臺(tái)輸入pnpm start后會(huì)開(kāi)始批量克隆代碼,myCode出錯(cuò)是因?yàn)樘罅耍胰∠?/p>
在repos文件夾下就會(huì)生成對(duì)應(yīng)的代碼集合
寫在最后
本文主要介紹Gitee令牌獲取方式,OpenAPI的使用,最后通過(guò)nodejs腳本實(shí)現(xiàn)了批量clone用戶所有倉(cāng)庫(kù)代碼的效果。
以上就是使用Node實(shí)現(xiàn)Git倉(cāng)庫(kù)批量克隆的操作步驟的詳細(xì)內(nèi)容,更多關(guān)于Node Git倉(cāng)庫(kù)克隆的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
connect中間件session、cookie的使用方法分享
今天大象哥用了下connect的session和cookie,感覺(jué)還挺好用的,分享一下(里面坑挺多的,文檔寫的太模糊了,費(fèi)了哥不少時(shí)間)。2014-06-06node.js開(kāi)發(fā)中使用Node Supervisor實(shí)現(xiàn)監(jiān)測(cè)文件修改并自動(dòng)重啟應(yīng)用
這篇文章主要介紹了node.js開(kāi)發(fā)中使用Node Supervisor實(shí)現(xiàn)監(jiān)測(cè)文件修改并自動(dòng)重啟應(yīng)用的功能,從而避免大量重復(fù)的CTRL+C終止程序動(dòng)作,需要的朋友可以參考下2014-11-11nodejs簡(jiǎn)單讀寫excel內(nèi)容的方法示例
這篇文章主要介紹了nodejs簡(jiǎn)單讀寫excel內(nèi)容的方法,簡(jiǎn)單分析了nodejs常見(jiàn)的讀寫Excel模塊,并結(jié)合實(shí)例形式分析了nodejs讀寫Excel具體操作技巧,需要的朋友可以參考下2018-03-03詳解如何用typescript開(kāi)發(fā)koa2的二三事
這篇文章主要介紹了詳解如何用typescript開(kāi)發(fā)koa2的二三事,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊
這篇文章主要介紹了nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11