gitlab 通過 api 批量增加用戶

近期部門搭建了正式的 gitlab 服務(wù)器欠母,在安全性和可靠性等方面相較之前線下的服務(wù)器都有了很好的提升锚贱。所以仔戈,迫切需要將線下 gitlab 的用戶、項(xiàng)目等數(shù)據(jù)遷移到正式環(huán)境拧廊。關(guān)于項(xiàng)目遷移监徘,分為兩種情況,分別是全量備份和單 project 導(dǎo)入吧碾,本文不做詳細(xì)分享凰盔,在這里重點(diǎn)分享下 gitlab 賬戶遷移的問題。

1. 用戶信息準(zhǔn)備

用戶信息整理的方式有很多種倦春,這里省略户敬。我們最終拿到的是 excel 形式的用戶數(shù)據(jù)表,形如下圖的形式:


image.png

接下來溅漾,將 excel 轉(zhuǎn)換為 utf-8 形式文本 userinfo.txt山叮,方便我們后面通過腳本解析。導(dǎo)出的方式如下:


image.png

轉(zhuǎn)換后的形式如下:


image.png

2. 方式一:手工批量增加

通過web頁(yè)面增加用戶

http://172.20.5.36/admin/users/new

新增頁(yè)面如下:


image.png

此種方式費(fèi)時(shí)費(fèi)力添履,作為有逼格的技術(shù)人員當(dāng)然不會(huì)采用屁倔。。暮胧。
而且锐借,此種方式增加的用戶,還需要登錄之后強(qiáng)制修改密碼往衷,也是一件蛋疼的事情

3. 方式二:通過 gitlab api 寫入用戶

#!/bin/bash
#批量創(chuàng)建 gitlab 用戶
userinfo="userinfo.txt"
while read line 
do
    password=`echo $line | awk '{print $1}'`
    mail=`echo $line | awk '{print $2}'`
    username=`echo $line | awk '{print $3}'`
    name=`echo $line | awk '{print $4}'`
    curl -d "password=$password&email=$mail&username=$username&name=$name&private_token=AH2zvaHy8txyWtUxMvyz" "http://172.20.5.36/api/v3/users"
# v4接口調(diào)用失敗钞翔,不得已切換為 v3 接口,如果有朋友用 v4 接口 ok 的話席舍,請(qǐng)不吝賜教
done <$userinfo

問題:

用這種方法可以成功注冊(cè)用戶布轿,但注冊(cè)的用戶無(wú)法登陸,原因在于密碼中存在亂碼来颤,懷疑是 ascii 轉(zhuǎn)碼問題汰扭,時(shí)間有限沒有詳細(xì)去分析切換到了下面一種實(shí)現(xiàn)。

4. 方式三:通過 python-gitlab 庫(kù)寫入用戶

#!/bin/bash
# 安裝 python-gitlab 庫(kù)
git clone https://github.com/python-gitlab/python-gitlab
cd python-gitlab
sudo python setup.py install

安裝完成之后福铅,可以通過 python-gitlab 接口來實(shí)現(xiàn)與上面方案等價(jià)的功能萝毛,具體實(shí)現(xiàn)代碼如下:

# encoding: utf-8
import gitlab
import sys

#聲明 gitlab 實(shí)例,采用private_token的形式來實(shí)現(xiàn)連接
gl = gitlab.Gitlab('http://172.20.5.36', private_token='FFbQs12313123eauof_EpVmaPcz', api_version=3)

# 打開本地文件
f = open(r"/Users/xxxx/WorkSpace/temp/test/users.txt", "r")
line = f.readline()
while line:
    # 分割每一行
    temp = line.split(" ") 
    password = temp[0].decode('ascii','ignore').encode('utf-8')
    email = temp[1]
    username = temp[2]
    name = temp[3]
    user_data = {'email':email, 'username':username, 'name':name, 'password':password}
    user = gl.users.create(user_data)
    print(user)
    line = f.readline()
f.close()
注:
# encoding: utf-8滑黔,這一行的作用在于聲明采用 utf-8 編碼
最終效果:注冊(cè)成功的用戶可以順利通過賬號(hào)密碼登陸 gitlab笆包,并且不會(huì)被強(qiáng)制要求更改密碼环揽。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市庵佣,隨后出現(xiàn)的幾起案子歉胶,更是在濱河造成了極大的恐慌,老刑警劉巖秧了,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跨扮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡验毡,警方通過查閱死者的電腦和手機(jī)衡创,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晶通,“玉大人璃氢,你說我怎么就攤上這事∈桑” “怎么了一也?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)喉脖。 經(jīng)常有香客問我椰苟,道長(zhǎng),這世上最難降的妖魔是什么树叽? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任舆蝴,我火速辦了婚禮,結(jié)果婚禮上题诵,老公的妹妹穿的比我還像新娘洁仗。我一直安慰自己,他們只是感情好性锭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布赠潦。 她就那樣靜靜地躺著,像睡著了一般草冈。 火紅的嫁衣襯著肌膚如雪她奥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天怎棱,我揣著相機(jī)與錄音方淤,去河邊找鬼。 笑死蹄殃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的你踩。 我是一名探鬼主播诅岩,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼讳苦,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吩谦?” 一聲冷哼從身側(cè)響起鸳谜,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎式廷,沒想到半個(gè)月后咐扭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑废,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年蝗肪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蠕趁。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡薛闪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俺陋,到底是詐尸還是另有隱情豁延,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布腊状,位于F島的核電站诱咏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏缴挖。R本人自食惡果不足惜袋狞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望醇疼。 院中可真熱鬧硕并,春花似錦、人聲如沸秧荆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乙濒。三九已至陕赃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颁股,已是汗流浹背么库。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甘有,地道東北人诉儒。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像亏掀,于是被迫代替她去往敵國(guó)和親忱反。 傳聞我的和親對(duì)象是個(gè)殘疾皇子泛释,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容