[教學] composer 如何使用 Gitlab 上的私人 Registry

前一篇文章已經教學如何建立 Gitlab 私人的 composer package registry,建立完後就可以讓其他在 Group 中的成員透過 composer 方式安裝套件到專案中,而本篇將教學如何讓 composer 能夠存取並使用該 composer package registry。

取得 personal access token

因為 Registry 是沒有公開的,所以無法直接取得 Registry 中的 package 清單,需要使用 Access Token

首先到 Personal Access Tokens 頁面 (https://gitlab.com/profile/personal_access_tokens) 建立提供 composer 安裝使用的 token

並且勾選 api 這個權限

送出後取得 token

※ 注意:這時需要把 token 複製下來 (頁面關閉後無法再看見,需要重新建立)

設定 auth.json

因為 Registry 是 private 的,需要設定上 token

可以選擇設定在 global 或是只設定在 repo 中

  • 假如想要設定在 global 就將 auth.json 存在 ~/.composer/auth.json

  • 假如想要設定在 repo 上,直接將 auth.json 放在 repo 的根目錄 (注意不要 commit 推出去)

內容如下 (<personal_access_token> 取代成剛剛取得的 token)

{
    "gitlab-token": {
       "gitlab.com": "<personal_access_token>"
    }
}

gitlab-token 官方說明:

composer.json 加上 repositories

先取得 registry 所在 group 的 id

到 group 頁面上便可取得

接著在 composer.json 加上 repositories 與要安裝的 package

(將 <group_id> 改成剛剛的取得的 id,<package_name><version> 則是要安裝的 package)

{
  ...
  "repositories": [
    { "type": "composer", "url": "https://gitlab.com/api/v4/group/<group_id>/-/packages/composer/packages.json" }
  ],
  "require": {
    ...
    "<package_name>": "<version>"
  },
  ...
}

設定完後只要執行 composer install 就能安裝 package