name: Update date_created in JSON files on: # Dieser Trigger wird für das Öffnen von PRs sowie für das Aktualisieren von offenen PRs verwendet pull_request: types: [opened, synchronize] schedule: # Dieser Trigger wird 4x am Tag ausgelöst, um sicherzustellen, dass das Datum aktualisiert wird - cron: "0 0,6,12,18 * * *" # Führt alle 6 Stunden aus workflow_dispatch: # Manuelle Ausführung des Workflows möglich jobs: update-date: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install yq run: | sudo apt-get update sudo apt-get install -y yq - name: Set the current date id: set_date run: echo "TODAY=$(date -u +%Y-%m-%d)" >> $GITHUB_ENV - name: Check for changes in PR run: | # Hole den PR-Branch PR_BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge" git fetch origin $PR_BRANCH # Liste alle JSON-Dateien im PR auf, die geändert wurden CHANGED_JSON_FILES=$(git diff --name-only origin/main...$PR_BRANCH | grep '.json') if [ -z "$CHANGED_JSON_FILES" ]; then echo "No JSON files changed in this PR." exit 0 fi # Gehe alle geänderten JSON-Dateien durch und aktualisiere das Datum for file in $CHANGED_JSON_FILES; do echo "Updating date_created in $file" # Setze das aktuelle Datum yq eval ".date_created = \"${{ env.TODAY }}\"" -i "$file" git add "$file" done - name: Commit and push changes run: | # Prüfe, ob es Änderungen gibt und committe sie git config user.name "json-updater-bot" git config user.email "github-actions[bot]@users.noreply.github.com" git commit -m "Update date_created to ${{ env.TODAY }}" || echo "No changes to commit" # Push zurück in den PR-Branch git push origin $PR_BRANCH