Zenn
🔐

社内npmパッケージのインストールにおけるGitHub CLI (gh) の活用

2025/04/02に公開

こんにちは、3月に株式会社Leaner Technologiesに入社しました mizukmb です。よろしくお願いします。

今回、オンボーディング中に見つけた小ネタについてテックブログで紹介します。

概要

ローカルPCにおける開発環境の構築作業の際、 npm install 時にGitHub Personal Access Token (以降、PAT) の発行が必要である旨がREADMEに記載されていました。社内限定で利用するnpmパッケージがGitHub Packagesで限定公開されているというケースです。

READMEの手順通りにGitHubの settings/tokens 画面からPATを発行してもよかったのですが、せっかくなので、手動でPATを発行せずに済む方法がないか検討してみました。

GitHub CLI (gh) にはローカルPCに認証トークンを発行・保管する gh auth login コマンドがあります。このコマンドを利用することで settings/tokens 画面を開いて手動でPATを発行する手間を省き、gh コマンド経由で認証トークンをローカルに取得・管理できます。
さらに、この方法なら不要なPATの乱立を防げるため、セキュリティ向上にも繋がります。

以降では gh コマンドを使った認証トークンの発行と npm install 時の利用方法について説明します。

手順

GitHub CLIはインストール済という前提で説明します。

  1. gh auth login -s 'read:packages' を実行します。過去に gh auth login を実行した事があってもこれを実行することでスコープが更新されます。
    • -s 'read:packages' はGitHub Packegesで管理されているパッケージのインストールに必要な権限です。デフォルトではこの権限は付与されていないので -s オプションを使って付与しています
    • 実行すると対話形式で設定が進むので、指示に従って設定を完了させます
    ❯ gh auth login -s 'read:packages'
    ? Where do you use GitHub? GitHub.com
    ? What is your preferred protocol for Git operations on this host? HTTPS
    ? Authenticate Git with your GitHub credentials? Yes
    ? How would you like to authenticate GitHub CLI? Login with a web browser
    
    ! First copy your one-time code: XXXX-XXXX
    Press Enter to open https://github.com/login/device in your browser...
    
    ✓ Authentication complete.
    - gh config set -h github.com git_protocol https
    ✓ Configured git protocol
    ✓ Logged in as mizukmb
    
  2. gh auth status を実行して、出力内の Token scopes'read:packages' が含まれている事を確認します
    ❯ gh auth status
    github.com
      ✓ Logged in to github.com account mizukmb (keyring)
      - Active account: true
      - Git operations protocol: https
      - Token: gho_************************************
      - Token scopes: 'gist', 'read:org', 'read:packages', 'repo', 'workflow'
    
  3. 作業対象のレポジトリで npm install を実行します。この時、指定の環境変数 (例えば GITHUB_TOKEN の場合) があれば、以下のように gh auth token コマンドで取得した認証トークンをインラインで渡して実行してください。
    GITHUB_TOKEN=$(gh auth token) npm install
    

まとめ

GitHub CLIの gh auth login を利用して、手動でのPAT発行を避けつつ、GitHub Packages上の社内npmパッケージをインストールする方法を紹介しました。

この方法により、ブラウザでPATを手動生成・コピーする手間が省け、より安全かつ効率的に開発環境をセットアップできます。ぜひ活用してみてください。

gh-do 拡張機能について

今回の手順では、 npm install コマンド実行時に直接環境変数を指定しました。しかし、より汎用的に gh の認証トークンを利用したい場合には、GitHub CLI拡張機能である gh-do が非常に便利です。このツールを使うと、gh auth token で発行した認証トークンを任意のコマンドへ簡単に渡すことができます。今回は直接利用しませんでしたが、関連する便利なツールとして紹介しました。

gh auth loginで作成されたクレデンシャルだけで生活するためにgh-doを作った - Copy/Cut/Paste/Hatena

参考

リーナーテックブログ

Discussion

ログインするとコメントできます