mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Update update_json_date.yml
This commit is contained in:
		
							
								
								
									
										99
									
								
								.github/workflows/update_json_date.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										99
									
								
								.github/workflows/update_json_date.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,61 +1,42 @@
 | 
			
		||||
name: Update JSON Date on PR
 | 
			
		||||
name: Update JSON Date
 | 
			
		||||
on:
 | 
			
		||||
 pull_request:
 | 
			
		||||
   branches:
 | 
			
		||||
     - main
 | 
			
		||||
   types:
 | 
			
		||||
     - opened
 | 
			
		||||
     - synchronize
 | 
			
		||||
     - reopened
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
 contents: write
 | 
			
		||||
 pull-requests: write
 | 
			
		||||
 | 
			
		||||
  pull_request:
 | 
			
		||||
    types: [opened, synchronize, reopened]
 | 
			
		||||
        
 | 
			
		||||
jobs:
 | 
			
		||||
 update-json-date:
 | 
			
		||||
   runs-on: ubuntu-latest
 | 
			
		||||
   steps:
 | 
			
		||||
   - uses: actions/checkout@v4
 | 
			
		||||
     with:
 | 
			
		||||
       token: ${{ secrets.JSON_APP_KEY }}
 | 
			
		||||
       fetch-depth: 0
 | 
			
		||||
   
 | 
			
		||||
   - run: |
 | 
			
		||||
       echo "https://x-access-token:${GH_TOKEN}@github.com" > ~/.git-credentials
 | 
			
		||||
       git config --global credential.helper store
 | 
			
		||||
       git config --global url."https://x-access-token:${GH_TOKEN}@github.com/".insteadOf "https://github.com/"
 | 
			
		||||
       
 | 
			
		||||
       BASE_BRANCH=${{ github.event.pull_request.base.ref }}
 | 
			
		||||
       HEAD_BRANCH=${{ github.event.pull_request.head.ref }}
 | 
			
		||||
       
 | 
			
		||||
       git fetch origin $BASE_BRANCH
 | 
			
		||||
       
 | 
			
		||||
       NEW_FILES=$(git diff --name-status origin/$BASE_BRANCH HEAD | grep "^A" | awk '{print $2}' | grep '\.json$')
 | 
			
		||||
       
 | 
			
		||||
       echo "New JSON files found: $NEW_FILES"
 | 
			
		||||
       
 | 
			
		||||
       TODAY=$(date +%Y-%m-%d)
 | 
			
		||||
       
 | 
			
		||||
       for FILE in $NEW_FILES; do
 | 
			
		||||
         if [ -f "$FILE" ]; then
 | 
			
		||||
           echo "Checking $FILE"
 | 
			
		||||
           CURRENT_DATE=$(jq -r '.date_created' "$FILE")
 | 
			
		||||
           if [ "$CURRENT_DATE" != "$TODAY" ]; then
 | 
			
		||||
             echo "Updating date_created in $FILE from $CURRENT_DATE to $TODAY"
 | 
			
		||||
             jq --arg date "$TODAY" '.date_created = $date' "$FILE" > tmp.json && mv tmp.json "$FILE"
 | 
			
		||||
           fi
 | 
			
		||||
         fi
 | 
			
		||||
       done
 | 
			
		||||
       
 | 
			
		||||
       git config --global user.name "json-updater-bot[bot]"
 | 
			
		||||
       git config --global user.email "json-updater-bot[bot]@users.noreply.github.com"
 | 
			
		||||
       
 | 
			
		||||
       if [[ -n $(git status -s) ]]; then
 | 
			
		||||
         git commit -am "Update date_created to today's date in new JSON files"
 | 
			
		||||
         git push origin HEAD
 | 
			
		||||
       fi
 | 
			
		||||
     env:
 | 
			
		||||
       GH_TOKEN: ${{ secrets.JSON_APP_KEY }}
 | 
			
		||||
       GITHUB_TOKEN: ${{ secrets.JSON_APP_KEY }}
 | 
			
		||||
       APP_ID: ${{ secrets.JSON_APP_ID }}
 | 
			
		||||
  list-files:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout PR Branch
 | 
			
		||||
      uses: actions/checkout@v4
 | 
			
		||||
      with:
 | 
			
		||||
        ref: ${{ github.head_ref }}
 | 
			
		||||
 | 
			
		||||
    - name: Update JSON
 | 
			
		||||
      id: changed-files
 | 
			
		||||
      run: |
 | 
			
		||||
          FILES=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files --jq '.[].filename' | tr '\n' ' ')
 | 
			
		||||
          echo "changed_files=${FILES}"
 | 
			
		||||
          for FILE in $FILES; do
 | 
			
		||||
            if [[ "$FILE" =~ /(.*)\.json ]]; then
 | 
			
		||||
              NAME="${BASH_REMATCH[1]}"
 | 
			
		||||
            else
 | 
			
		||||
              echo "no new JSON in ${FILES}"
 | 
			
		||||
              continue
 | 
			
		||||
            fi
 | 
			
		||||
          
 | 
			
		||||
            JSON_FILE="json/${NAME}.json"
 | 
			
		||||
            if [[ -f "$JSON_FILE" ]]; then
 | 
			
		||||
              echo "Updating date_created in $JSON_FILE"
 | 
			
		||||
              jq --arg date "$(date +%Y-%m-%d)" '.date_created = $date' "$JSON_FILE" > tmp.json && mv tmp.json "$JSON_FILE"
 | 
			
		||||
            else
 | 
			
		||||
              echo "JSON file $FILES not found"
 | 
			
		||||
            fi
 | 
			
		||||
          done
 | 
			
		||||
             
 | 
			
		||||
          git config --global user.name "github-actions[bot]"
 | 
			
		||||
          git config --global user.email "github-actions[bot]@users.noreply.github.com"
 | 
			
		||||
          git diff --exit-code || git commit -am "Updating Dates in affected JSON files."
 | 
			
		||||
          git push 
 | 
			
		||||
      env:
 | 
			
		||||
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user