From 5da06e75e77cf45ed924f08fc6b808b1473ea43f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:08:44 +0100 Subject: [PATCH] Update update_json_date.yml --- .github/workflows/update_json_date.yml | 53 +++++++++++++++++++------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/.github/workflows/update_json_date.yml b/.github/workflows/update_json_date.yml index 1065bc8d..dbfe69f3 100644 --- a/.github/workflows/update_json_date.yml +++ b/.github/workflows/update_json_date.yml @@ -2,9 +2,12 @@ name: Update JSON Date in PR on: pull_request: - paths: - - 'json/*.json' - types: [opened, synchronize, reopened] + branches: + - main + types: + - opened + - synchronize + - reopened jobs: update_json: @@ -13,29 +16,53 @@ jobs: steps: - name: Check out repository uses: actions/checkout@v4 - with: - ref: ${{ github.head_ref }} - name: Configure Git user run: | git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" - - name: Make script executable - run: chmod +x .github/workflows/scripts/update_json_date.sh + - name: Get list of changed files in PR + id: files + uses: actions/github-script@v7 + with: + script: | + const prNumber = context.payload.pull_request.number; + const prFiles = await github.rest.pulls.listFiles({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: prNumber, + }); - - name: Run the update script - run: ./.github/workflows/scripts/update_json_date.sh + // Filter for JSON files only + const changedJsonFiles = prFiles.data + .filter(file => file.filename.endsWith('.json')) + .map(file => file.filename); + + core.setOutput('changed_files', changedJsonFiles.join('\n')); + console.log('Changed JSON files:', changedJsonFiles); + + - name: Update dates in changed JSON files + run: | + changed_files="${{ steps.files.outputs.changed_files }}" + if [[ -z "$changed_files" ]]; then + echo "No JSON files changed in this PR. Exiting." + exit 0 + fi + + for file in $changed_files; do + echo "Updating $file with current date." + # Your logic to update the file + jq '.date_created = "'"$(date +%Y-%m-%d)"'"' "$file" > tmp.$$.json && mv tmp.$$.json "$file" + done - name: Commit changes if updated run: | git add *.json git diff --cached --quiet || git commit -m "Update JSON dates" - - name: Push changes with API keys + - name: Push changes env: - JSON_API_ID: ${{ secrets.JSON_API_ID }} - JSON_API_KEY: ${{ secrets.JSON_API_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - git remote set-url origin https://$JSON_API_ID:$JSON_API_KEY@github.com/${{ github.repository }}.git git push