[php] 用composer自動驗證同時獲取gitlab的私有庫的方法

????本篇文章的主要內容是關于用composer自動驗證同時獲取gitlab的私有庫的方法,感興趣的朋友可以學習一下。? ??

????近期購買了laravel的nova以后,需要對它的核心代碼做一些修改,為方便與團隊其他成員分享,以及在nova官方庫更新后方便對差異管理。便將nova庫掛在自己的gitlab,通過composer直接引用。

相關推薦:【composer教程

立即學習PHP免費學習筆記(深入)”;

? ? gitlab上全是私有庫,composer獲取需要認證,在本地測試時輸入用戶名/密碼過認證倒不打緊,生產服務器上布署就有問題了,由于是自動布署,必須是全自動才行。經過一番折騰,composer可以通過配置gitlab的private Token完成驗證,獲取到私有庫,不用再輸用戶名密碼。

? ? 為方便描述操作過程。這里以官方包laravel/nova為例,我將laravel/nova放到自已的gitlab上,路徑為https://git.papamk.com/xxx/nova,并設置為私有庫。我們的目標是composer可以直接獲取該包而不用輸入密碼。

配置過程

1. 生成Private Token

  在gitlab上,在`User Settings`中找到`Access Tokens`,見下圖:

? ? ??????:生成的token只顯示一次,記得保存下來,后面要用到。?

[php] 用composer自動驗證同時獲取gitlab的私有庫的方法

2.配置composer的認證信息

  編輯~/.composer/auth.json(如果沒有該文件,就直接創建)?

 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 }

注意點:

  • 除非你使用的是gitlab.com,否則你應該將gitlab的域名添加到gitlab-domains中;?

3. 編輯 composer.json

{????//?...省略其他部分 ????"repositories":?[ ??????{????????"type":?"gitlab",????????"url":?"https://git.papamk.com/xxx/nova" ??????} ????],????"require":?{????????//?...省略其他包 ????????"laravel/nova":?"dev-master", ????} }

  重點:

  • type:必須是gitlab
  • 包名:官方包包名為laravel/nova,這里仍然要使用laravel/nova,不能使用xxx/nova?

  到此大功告成,運行下composer install或者composer udpate試試。

其他問題

  有可能會出現配置正確,但是包的獲取是直接從本地cache中直接讀取的問題。這個時候,直接刪除~/.composer/cache,再試一下即可。?

相關教程:composer教程

以上就是[php] 用

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享