?? 導(dǎo)讀
需求
github訪問(wèn)時(shí)好時(shí)不好的,而且克隆代碼及其麻煩,經(jīng)常失敗。所以小編往往是把代碼先在國(guó)內(nèi)做個(gè)鏡像,然后再下載。
gitcode
目前使用還是挺方便的,今天就以gitcode為例,寫(xiě)兩個(gè)腳本,加速代碼下載。
1?? 創(chuàng)建子項(xiàng)目
手動(dòng)操作
- 注冊(cè)并登錄自己的倉(cāng)庫(kù)主頁(yè):https://gitcode.net/dashboard/projects/home
- 按照下圖打開(kāi)自己的組織
![]()
- 在列表中,選擇要?jiǎng)?chuàng)建
子組織
的組織。小編以yemao
為例進(jìn)行講解。![]()
- 選擇新建子組織:
然后點(diǎn)擊《新建自組織》按鈕,進(jìn)入《新建組織》頁(yè)面![]()
- 在《新建組織》頁(yè)面,輸入子組織名稱,并創(chuàng)建組織。
需要注意該頁(yè)面的url中,包含了當(dāng)前組織的id,為1191151
,我們需要使用該值編寫(xiě)代碼。![]()
編寫(xiě)代碼
代碼很簡(jiǎn)單,封裝了一個(gè)函數(shù),傳遞
父組織的ID
和子組織的名稱
即可。
該函數(shù)邏輯很簡(jiǎn)單,分為下面三個(gè)步驟:
- 跳轉(zhuǎn)到創(chuàng)建子組織頁(yè)面
- 設(shè)置組織名稱
- 點(diǎn)擊新建組織
打開(kāi)控制臺(tái),輸入下面的代碼,多次執(zhí)行即可創(chuàng)建子組織:
function 創(chuàng)建子組織(orgId, orgSub) {
let url = `https://gitcode.net/groups/new?parent_id=${orgId}`
// 跳轉(zhuǎn)到創(chuàng)建子組織頁(yè)面
if (!location.href.startsWith(url)) {
location.href = url
}
// 設(shè)置組織名稱
document.querySelector('#group_name').value=orgSub
document.querySelector('#group_path').value=orgSub
// 點(diǎn)擊新建組織
$('#new_group > div:nth-child(8) > div > input').click()
}
創(chuàng)建子組織(1191151, 'CheatEngine')
2?? 導(dǎo)入github項(xiàng)目
手動(dòng)操作
- 打開(kāi)《新建項(xiàng)目》頁(yè)面
![]()
- 選擇《導(dǎo)入項(xiàng)目》
![]()
- 選擇《從 URL 導(dǎo)入倉(cāng)庫(kù)》
當(dāng)前頁(yè)面地址為https://gitcode.net/projects/new?spm=1033.2243.3001.5861#import_project
,我們將從這里開(kāi)始編寫(xiě)代碼![]()
- 填寫(xiě)信息并新建項(xiàng)目
![]()
編寫(xiě)代碼
寫(xiě)代碼的時(shí)候發(fā)現(xiàn)一個(gè)更方便的方案,從項(xiàng)目中打開(kāi)項(xiàng)目就不用設(shè)置
項(xiàng)目 URL
了。
通過(guò)上面的方式進(jìn)入導(dǎo)入頁(yè)面,項(xiàng)目URL已經(jīng)被設(shè)置為了CheatEnine
,我們記錄下namespace_id=2172762
,后面要用到。
設(shè)置項(xiàng)比較多,代碼相對(duì)復(fù)雜些,不過(guò)需要注意的只有下面幾項(xiàng)內(nèi)容:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-437106.html
- 填入Git倉(cāng)庫(kù)URL后,需要點(diǎn)擊別的地方,否則頁(yè)面會(huì)提示
URL不能為空。
- 《新建項(xiàng)目》按鈕定位:
'input[data-disable-with="新建項(xiàng)目"]'
function 導(dǎo)入項(xiàng)目(namespaceId, tags, importUrl) {
let url = `https://gitcode.net/projects/new?namespace_id=${namespaceId}#import_project`
// 跳轉(zhuǎn)到頁(yè)面
if (!location.href.startsWith(url)) {
location.href = url
}
// 點(diǎn)擊《從URL導(dǎo)入倉(cāng)庫(kù)》按鈕
let eleImportUrlData = $('.import-url-data :visible')
if (eleImportUrlData.length === 0) {
$('.js-import-git-toggle-button').click()
}
// 填入Git倉(cāng)庫(kù)URL
let eleImportURL = $('#project_import_url')
if (eleImportURL.length !== 0) {
eleImportURL[0].value = importUrl
}
// 設(shè)置項(xiàng)目名稱、項(xiàng)目標(biāo)識(shí)串
let lst = importUrl.split('/')
let name = lst[lst.length - 1]
$('#project_name')[0].value = name
$('#project_path')[0].value = name
// 設(shè)置描述
let eleProjectDescription = $('#project_description')
if (eleProjectDescription.length !== 0) {
eleProjectDescription[0].value = `github地址為: ${importUrl}`
// 點(diǎn)擊一下,觸發(fā)URL變化
eleProjectDescription.click()
}
// 設(shè)置項(xiàng)目主題
$('#project_tag_list')[0].value = tags
// 點(diǎn)擊新建組織
$('input[data-disable-with="新建項(xiàng)目"]').click()
}
導(dǎo)入項(xiàng)目(2172762, '游戲安全', 'https://github.com/korcankaraokcu/PINCE')
?? 文章小結(jié)
- 上面的代碼算是半自動(dòng)化,部分操作會(huì)刷新頁(yè)面導(dǎo)致js失效,可以結(jié)合electron及preload.js實(shí)現(xiàn)全自動(dòng),或者結(jié)合瀏覽器插件也可以實(shí)現(xiàn)(如油猴)。
- 如果需要導(dǎo)入多個(gè)url,我們可以通過(guò)
localStorage
保存已經(jīng)導(dǎo)入過(guò)的url,從而實(shí)現(xiàn)大量url導(dǎo)入。
?? 參考資料
- 無(wú)
**ps:**文章中內(nèi)容僅用于技術(shù)交流,請(qǐng)勿用于違規(guī)違法行為。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-437106.html
到了這里,關(guān)于【JS每N日一練】【自動(dòng)化】gitcode創(chuàng)建子項(xiàng)目并導(dǎo)入git的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!