????本篇文章的主要內(nèi)容是關(guān)于用composer自動(dòng)驗(yàn)證同時(shí)獲取gitlab的私有庫(kù)的方法,感興趣的朋友可以學(xué)習(xí)一下。? ??
????近期購(gòu)買(mǎi)了laravel的nova以后,需要對(duì)它的核心代碼做一些修改,為方便與團(tuán)隊(duì)其他成員分享,以及在nova官方庫(kù)更新后方便對(duì)差異管理。便將nova庫(kù)掛在自己的gitlab,通過(guò)composer直接引用。
相關(guān)推薦:【composer教程】
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
? ? gitlab上全是私有庫(kù),composer獲取需要認(rèn)證,在本地測(cè)試時(shí)輸入用戶名/密碼過(guò)認(rèn)證倒不打緊,生產(chǎn)服務(wù)器上布署就有問(wèn)題了,由于是自動(dòng)布署,必須是全自動(dòng)才行。經(jīng)過(guò)一番折騰,composer可以通過(guò)配置gitlab的private Token完成驗(yàn)證,獲取到私有庫(kù),不用再輸用戶名密碼。
? ? 為方便描述操作過(guò)程。這里以官方包laravel/nova為例,我將laravel/nova放到自已的gitlab上,路徑為https://git.papamk.com/xxx/nova,并設(shè)置為私有庫(kù)。我們的目標(biāo)是composer可以直接獲取該包而不用輸入密碼。
配置過(guò)程
1. 生成Private Token
在gitlab上,在`User Settings`中找到`Access Tokens`,見(jiàn)下圖:
? ? ??????:生成的token只顯示一次,記得保存下來(lái),后面要用到。?
2.配置composer的認(rèn)證信息
編輯~/.composer/auth.json(如果沒(méi)有該文件,就直接創(chuàng)建)?
1 { 2 "bitbucket-oauth": {}, 3 "github-oauth": {}, 4 "gitlab-oauth": { 5 }, 6 "gitlab-token": { 7 "git.papamk.com": "<你的Private Token>" 8 }, 9 "http-basic": {},10 "gitlab-domains":["git.papamk.com"]11 }
注意點(diǎn):
- 除非你使用的是gitlab.com,否則你應(yīng)該將gitlab的域名添加到gitlab-domains中;?
3. 編輯 composer.json
{????//?...省略其他部分 ????"repositories":?[ ??????{????????"type":?"gitlab",????????"url":?"https://git.papamk.com/xxx/nova" ??????} ????],????"require":?{????????//?...省略其他包 ????????"laravel/nova":?"dev-master", ????} }
重點(diǎn):
- type:必須是gitlab
- 包名:官方包包名為laravel/nova,這里仍然要使用laravel/nova,不能使用xxx/nova?
到此大功告成,運(yùn)行下composer install或者composer udpate試試。
其他問(wèn)題
有可能會(huì)出現(xiàn)配置正確,但是包的獲取是直接從本地cache中直接讀取的問(wèn)題。這個(gè)時(shí)候,直接刪除~/.composer/cache,再試一下即可。?
相關(guān)教程:composer教程
以上就是[php] 用