[php] 用composer自動(dòng)驗(yàn)證同時(shí)獲取gitlab的私有庫(kù)的方法

????本篇文章的主要內(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),后面要用到。?

[php] 用composer自動(dòng)驗(yàn)證同時(shí)獲取gitlab的私有庫(kù)的方法

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] 用

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享