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

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


