GitHub ActionsでPRマージされたファイル一覧を取得する方法

GitHub ActionsでPRマージされたファイル一覧を取得する方法

PRマージされた場合にマージされたファイル一覧を取得する方法です。

ファイルの中身を触るなら`tj-actions`、ファイル名だけで判定するなら`gh api`が推奨です。

tj-actions/changed-filesを使用する

name: List Merged Files

on:
  pull_request:
    types: [closed]
    branches: [main]
jobs:
  list-files:
    # PRがマージされた場合のみ実行
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # 全履歴を取得しないと差分が計算できない場合があります

      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v44

      - name: List all changed files
        run: |
          echo "変更されたファイルの一覧:"
          for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
            echo "$file"
          done

GitHub APIを使用する

GitHub APIを使用する方法です。actions/checkout、tj-actions/changed-filesなしで実現可能になります。

name: List Merged Files

on:
  pull_request:
    types: [closed]
    branches: [main]
jobs:
  list-files:
    # PRがマージされた場合のみ実行
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      # gh api を使ってPRのファイル一覧を取得し、jqでファイル名のみを抽出
      - name: Get changed files via GitHub API
        env:
          GH_TOKEN: ${{ github.token }}
          PR_URL: ${{ github.event.pull_request.html_url }}
        run: |
          gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files --paginate \
          | jq -r '.[].filename' > changed_files.txt
          echo "--- Changed Files ---"
          cat changed_files.txt

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました