1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Postman v12のネイティブGit連携 - 入門ハンズオン

1
Last updated at Posted at 2026-03-24

はじめに

これは、Postman v12で登場したネイティブGit連携のハンズオン記事です。

これまで、API仕様・テスト・モック・コレクションといったPostmanの成果物はPostman Cloud上で管理していましたが、v12のネイティブGit統合により、通常のアプリケーションコードとまったく同じように、Gitのブランチやプルリクエストで管理できるようになりました。

本記事ではコードファーストアプローチ(既にAPIのソースコードがある前提でPostmanの活用を進める)で、Git連携のセットアップからCI/CDによる自動化まで、一通り体験します。

なお、ネイティブGit連携の概念については以下の記事でわかりやすく解説されているので、まず参照ください。

ネイティブGit連携のポイント整理とコラボレーションの流れ

ハンズオンに入る前に、ネイティブGit連携を活用した開発フローを理解するうえで基本となる考え方を紹介します。とりあえず理屈より先に手を動かしたいという方はここを読み飛ばしていただいてもOKです。

コラボレーション(共同作業)の種類

Postmanでのコラボレーション(共同作業)は、API(Application Programming Interface)のインターフェース設計・テスト・ドキュメントを中心に行うものです。その具体的な内容や登場人物は、APIライフサイクルのステージによって異なります。

ネイティブGit連携は、GitをベースにAPIのソースコードと同じようにPostmanの成果物を扱うことから、主に開発者向けの機能になります。一方、FEを含めAPIの連携先のチームだったり、企画やQA担当者、パートナーとのAPI共同作業・反復作業においては、Gitを活用しないケースも多いでしょう。そのようなGitを使わないメンバーとの共同作業は、これまでと同じようにPostman Cloud経由で行えます。

大きく分けると、コラボレーションには次の2種類があります。

作業の種類 主な手段
コードの共同作業(開発者同士) Gitベース開発
APIインターフェースの反復作業(API開発チームと社内企画・QAチームやパートナー連携など) Postman Cloud経由のコラボレーション

ネイティブGit連携によるコラボレーションのポイント

ポイントを整理します。Postmanを活用したコラボレーションの基盤はPostman Cloudワークスペースです。Git連携パターンでも、Gitリポジトリは必ずワークスペースとリンクさせて作業を行います。Gitを使わないチームメンバーとの共同作業は、Postman Cloudのワークスペースを通じて行います。

また、Gitベースの開発においては、GitリポジトリがSingle Source of Truth(SSoT) になります。コレクション・環境・その他のPostmanデータはコードと共にGitリポジトリに保存され、プルリクエストを通じて更新します。さらに、Gitリポジトリに保存されたPostmanの成果物は、CI経由でPostman Cloudに同期するのが基本です。前述のとおり、コラボレーションの基盤はPostman Cloudワークスペースであり、APIの共同反復作業ではPostman Cloud経由のコラボレーションが基本であるためです。

以下、全体の概略図になります。

0.postman-git-overview.png

ネイティブGit連携によるコラボレーションの流れ

  1. [初回のみ] 共同開発メンバーがアクセス可能なワークスペースとGitリポジトリを作成し、ローカル環境にclone。ワークスペースとGitリポジトリをリンク(紐づけ)する
  2. 作業用ブランチを作成し、Postmanコレクション・環境・モック・Spec Hubなどを活用してローカルで開発・テストを実施。APIコードとともにPostmanデータをローカルリポジトリに保存
  3. ブランチをリモートにpushし、プルリクエスト経由でリリースブランチ(もしくはマージ先ブランチ)にマージ
  4. そのイベントをトリガーにCIが実行され、ローカルの開発内容がCI経由でPostman Cloudに同期

なお、開発者メンバーが機能開発を行う場合は、上記フローの2〜4を繰り返します。

1. 事前準備

必要なもの

  • Postmanアカウント
  • GitHubアカウント
  • チームで共有可能なワークスペース(Internal ワークスペース)
  • Gitリポジトリとそのclone

Postmanワークスペースの作成

チームメンバーがアクセス可能なワークスペースを作成します。ワークスペースタイプは Internal を選択します。Internalワークスペースでは、共同開発したいチーム、または特定のメンバーを招待して作業できます。

手順: PostmanアプリのヘッダーにあるWorkspace をクリック → Create をクリック

1.postman-git-create-ws.png

ハンズオン用のGitHubリポジトリの作成

まずは、プライベートな空のGitリポジトリを作成して、リポジトリ用フォルダーに移動します。

ここではghコマンドでレポジトリを作成しています。ghコマンドを使わない人は、直接GitHubサイトで作成してください。またリポジトリ名はpostman-git-showcasとしてますが、お好きな名前でどうぞ。

# Privateな空のリモートリポジトリを作成してローカルにclone
gh repo create postman-git-showcase --private --clone
# リポジトリ用フォルダーに移動
cd postman-git-showcase

次に、サンプルAPIのソースパッケージをダウンロードして、APIのソースファイルをプロジェクトに追加して、その内容をmainブランチにpushします。

# サンプルAPIコードをダウンロードしてリポジトリの作業フォルダーにコピー
curl -OL https://github.com/yokawasa/postman-git-code-first-showcase/archive/refs/tags/api-code.zip && unzip -j api-code.zip && rm api-code.zip

# APIファイルを追加、mainブランチにpush
git add *
git commit -m "Initial commit"
git push origin main

次に、作業用ブランチを作成します。ここではfeature/api-testingという名前のブランチを作成します。

git checkout -b feature/api-testing

2. Connect Git(ワークスペースとGitリポジトリの紐づけ)

「1.事前準備」で作成したハンズオン用のワークスペースとGitリポジトリの紐づけを行います。

  1. Postmanアプリのフッターにある [Connect Git] をクリック
  2. [Open folder] が表示されるので、クリックしてGitリポジトリを選択
  3. [Connect to workspace] が表示されるのでクリック → ワークスペースとGitリポジトリが紐づけられる

2.postman-git-link-workspace.png

紐づけが完了すると、サイドバーメニューのローカルファイルに下図のようなSetupガイドページが表示されます。サイドバーにはファイル一覧が、フッターにはGitリポジトリの現在のブランチが表示されます(ここでは、Setupガイドは無視して次に進みます)。

3.postman-git-ws-connected-git.png

紐づけの解除方法
サイドバーメニューのローカルファイル → [⋯]Disconnect を選択することで紐づけを解除できます。

3. Postmanコレクションの作成

ここでは Agent Mode(PostmanのAIエージェント機能) を使ってPostmanコレクションを作成します。

* Agent Modeの基本については、Postman Agent Mode入門シリーズで詳しく解説しているので興味のある方は一読ください。

事前確認: AI設定をオンにする

Postmanの設定でAI機能がオンになっていることを確認します。

4.postman-git-ai-setting.png

Agent Modeでコレクションを作成

  1. 右サイドバーのAIアイコンをクリックしてChatウィンドウを開く(右サイドバーが表示されていない場合はフッターの右サイドバー表示アイコンをクリック)
  2. 次のプロンプトを入力する
prompt
このプロジェクトのAPIサーバーのソースコードに基づいてコレクションを作成してください

5.postman-git-input-prompt-to-create-collection.png

途中、Auto-Runが有効化されていない場合は確認が促されます。

作成が完了すると、サイドバーの [ローカルアイテム] アイコンをクリックし、コレクション部分をトグルすると作成されたコレクション(例: Poll API)が表示されます。

6.postman-git-show-collection.png

4. APIの手動テスト

APIサーバーの起動

ターミナルを開き、APIサーバーを起動します。

# npmパッケージのインストール
npm install

# APIサーバーの起動
npm start

補足:Postmanアプリのフッターにある [Terminal] からもターミナルが利用可能です。画面を切り替える手間が省けるため、ぜひ活用してみてください。

7.postman-git-terminal;.png

テストの実行

まずは、手動でAPIリクエストを実行して結果を確認します。

手順: 各APIリクエストを送信([Send] ボタンをクリック) → レスポンスメニューのTest Resultsでテスト結果を確認

8.postman-git-api-test-manual-run.png

次に、Postmanのコレクションランナーを使って、コレクション全体のテストを実行します。

手順: コレクションを選択 → [⋯]Run を選択 → [Start run] ボタンをクリック

これで、コレクションランナーがコレクションのテスト実行を開始します。そして、各APIリクエストのテスト結果を一覧で確認できます。

9.postman-git-run-collection-runner.png

5. Postman Cloudへの同期

ローカルファイルシステム上で作業しているPostmanアイテムをPostman Cloudに同期します。

同期の手順

  1. ワークスペースを開き、フッターにある [Push to Postman Cloud] をクリック
  2. Pushしたいアイテム(ここではコレクション)を選択して [Push] ボタンをクリック

10.postman-git-push-to-cloud-footer.png

特にエラー表示がなければ、その時点のローカルのPostmanコレクションがPostman Cloudに同期されているはずです。

Local View / Cloud Viewの切り替え

下記の手順でLocal ViewからCloud Viewに切り替えます。Cloud Viewで表示されるコレクションの内容が、ローカルのコレクションと同じであることを確認ください。

  • フッターのブランチ名をクリック → [Postman Cloud] をクリックするとCloud View(Postman Cloud上のアイテム)に切り替わる
  • [Switch to Local] をクリックするとLocal Viewに戻る

11.postman-git-switch-to-cloud.png

6. Postman CLIでテスト実行&Postman Cloudに同期

これまでPostmanアプリのUIで行ってきた操作を、今度は Postman CLI で実行します。CI/CDパイプラインでのテスト実行やPostman Cloudへの同期はPostman CLIを経由して行うため、パイプラインに組み込む前に、まずは手動で実行してみましょう。

Postman CLIのインストール

公式ページの手順 に従いインストールします。npmが使える環境では次のコマンドでインストールできます。npmが使えない環境の方は、npmが使えない環境の場合は、公式の手順から適切な方法を選択してください。

npm install postman-cli@latest -g

[補足] -gでグローバルにインストールされます。不要な場合は、-g を省略してください。なお、npmで-gを付けずに(ローカルに)インストールした場合、以降の手順でpostmanコマンド実行時に、npx postmanと打ってください。

Postman CLIでコレクションテストを実行

次の手順で、Postman CLIでコレクション(Poll API)を実行します。

# コレクションの実行
# postman collection run <collectionIDまたはパス>
postman collection run postman/collections/Poll\ API
  • postman/collections/Poll\ APIはローカルファイルシステム上でのコレクションファイルが格納されているフォルダーへの相対パス

コレクションの実行が成功すると、次のような結果が出力されます。

→ Get Poll Results

  GET http://localhost:3000/polls/1 [200 OK, 414 B, 1 ms]
  ✓  Status code is 200
  ✓  Response has question and options properties
  ✓  Options array contains vote counts

┌─────────────────────────┬───────────────────┬───────────────────┐
│                         │          executed │            failed │
├─────────────────────────┼───────────────────┼───────────────────┤
│              iterations │                 1 │                 0 │
├─────────────────────────┼───────────────────┼───────────────────┤
│                requests │                 3 │                 0 │
├─────────────────────────┼───────────────────┼───────────────────┤
│            test-scripts │                 3 │                 0 │
├─────────────────────────┼───────────────────┼───────────────────┤
│      prerequest-scripts │                 0 │                 0 │
├─────────────────────────┼───────────────────┼───────────────────┤
│              assertions │                 7 │                 0 │
├─────────────────────────┴───────────────────┴───────────────────┤
│ total run duration: 245 ms                                      │
└─────────────────────────────────────────────────────────────────┘

Postman CLIでワークスペースをPostman Cloudに同期

postman workspace push を使います。このコマンドはローカルファイルを検証し、クラウドワークスペースと同期します。実行にはpostman login でのログインが必要です。

postman login
postman workspace push

もし、CI/CD環境で確認プロンプトをスキップしたい場合は 次のように、-y または --yes オプションをつけて実行します。

postman workspace push -y

npm scriptsへのコマンド追加

よく使うコマンドは、package.json のnpm scriptsに追加しておくと便利です。

"scripts": {
  "start": "node app.js",
  "start:daemon": "pm2 start app.js --name poll-api",
  "stop:daemon": "pm2 stop poll-api",
  "restart:daemon": "pm2 restart poll-api",
  "postman:test": "postman collection run postman/collections/Poll\\ API",
  "postman:publish": "postman login && postman workspace push"
}

これで、次のようにnpm runコマンドでコレクションテストや同期が実行できます。

npm run postman:test
npm run postman:publish

7. CIの設定(GitHub Actions)

次に、コレクションのテストや Postman Cloud への同期を CI パイプラインで実行するための設定を行います。CI のトリガーイベントと実行内容は以下の通りです。

イベント 実行内容
PRの作成・更新(main 向け) (マージ前処理) コレクションを実行し、コレクションのテストに問題がないことをチェック
mainへのマージ (マージ後処理)コレクションテスト + ローカルのPostmanアイテムをPostman Cloudへ同期

GitHub Actions ワークフローファイルの作成

次の内容の.github/workflows/postman.ymlを作成します。

.github/workflows/postman.yml
name: "Postman CI"
on:
  # PRの作成・更新時にAPIテストを実行
  pull_request:
    branches:
      - main
  # mainへのマージ時にAPIテスト+Postman Cloudへのpushを実行
  push:
    branches:
      - main

jobs:
  automated-api-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '24.x'
      - name: Install dependencies
        run: npm install
      - name: Start API server as daemon
        run: npm run start:daemon
      - name: Install Postman CLI
        run: curl -o- "https://dl-cli.pstmn.io/install/unix.sh" | sh
      - name: Verify Postman CLI version
        run: postman --version
      - name: Login to Postman
        run: postman login --with-api-key ${{ secrets.POSTMAN_API_KEY }}
      - name: Run API tests
        run: postman collection run postman/collections/Poll\ API
      - name: Push to Postman Cloud (only when code is merged)
        if: github.event_name == 'push'
        run: postman workspace push -y
      - name: Stop API server
        run: npm run stop:daemon

ポイント:

  • postman login では --with-api-key オプションでPostman APIキーを指定することで、ログイン時の対話をスキップできる (Postman APIキーの取得方法は後述します)
  • postman workspace push-y オプションで確認プロンプトをスキップ(CI環境では必須)
  • postman workspace push はPRのマージ時(push イベント)のみ実行するよう if 条件で制御

Postman APIキーの取得

Postman CLIでPostmanにログインするためにはPostman API キーが必要です。以下のいづれかの方法で、Postman APIキー管理ページに遷移します。

Postmanキー管理ページで [Generate API Key] ボタンをクリックしてAPIキーを生成します。APIキー文字列は生成時にしか表示されないので、生成時に必ずクリップボードなどにコピーしておきましょう。

こうするとすっきりすると思います。


GitHub Actions Secretの設定

先の手順で取得したPostman APIキーを、GitHubリポジトリのSecretとして登録します。

リポジトリの Settings → Security: Secrets and Variables → Actions を開き、[New repository secret] をクリックして次の内容を入力してください。

項目
Name POSTMAN_API_KEY
Secret PostmanのAPIキーの値

12.postman-git-github-actions-secret.png

参考: GitHub Actions でのシークレットの使用

8. プルリクエストの作成とCIの実行

まずは、ローカルのfeature/api-testingブランチの作業内容をGitHub(リモートリポジトリ)にpushします。

ブランチをpush

git add .github
git add .postman
git add postman
git add package.json

git commit -m "Add postman items and CI workflow"
git push origin feature/api-testing

GitHub上でプルリクエストを作成

マージ元ブランチ(feature/api-testing)からマージ先(main)へのプルリクエストを作成します。

13.postman-git-create-pr.png

参考: pull request の作成

GitHub ActionsとPRのマージ

プルリクエストを作成すると、自動的にGitHub Actionsが起動します。各ステップをクリックすると詳細な実行結果を確認できます。

問題がなければ [Merge Pull Request] ボタンをクリックしてPRをマージします。

14.postman-git-gha-pr-merge.png

マージ後、再度CIがキックされ、APIテストとPostman CloudへのPushが実行されます。

15.postman-git-githubaction-result.png

Cloud ViewでPostman Cloudの結果を確認

さきほどと同じ手順で、フッターから [Postman Cloud] に切り替えて、変更が反映されていることを確認してください。

まとめ

本記事では、PostmanのネイティブGit連携を使った以下の一連の流れを体験しました。

  1. ワークスペースとGitリポジトリの紐づけ
  2. Agent Modeを使ったコレクション作成
  3. ローカルでのAPIテスト
  4. Postman Cloudへの手動同期
  5. Postman CLIを使ったテストと同期
  6. CI(GitHub Actions)によるテストと同期の自動化

ネイティブGit連携を活用することで、APIのコードとPostmanの成果物を一元管理でき、Gitを使う開発者チームにとっては、開発ワークフローに自然に組み込むことができます。また、Gitリポジトリへのマージ内容をCIを通じて自動的にPostman Cloudに同期することで、Gitを使わないQAチームやパートナーともPostman Cloudを通じて共同作業をすすめることができます。

次は、同じネイティブGit連携でもAPI(デザイン)ファーストなアプローチで行うハンズオン記事を書きます(たぶん)。ご期待ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?