|
1 | | -name: Update Date Created in PR |
| 1 | +name: Update date_created in JSON files |
2 | 2 |
|
3 | 3 | on: |
| 4 | + # Dieser Trigger wird für das Öffnen von PRs sowie für das Aktualisieren von offenen PRs verwendet |
4 | 5 | pull_request: |
5 | | - paths: |
6 | | - - '*.json' |
7 | 6 | types: [opened, synchronize] |
8 | | - workflow_dispatch: |
| 7 | + schedule: |
| 8 | + # Dieser Trigger wird 4x am Tag ausgelöst, um sicherzustellen, dass das Datum aktualisiert wird |
| 9 | + - cron: "0 0,6,12,18 * * *" # Führt alle 6 Stunden aus |
9 | 10 |
|
10 | 11 | jobs: |
11 | 12 | update-date: |
12 | 13 | runs-on: ubuntu-latest |
13 | 14 |
|
14 | 15 | steps: |
15 | | - - name: Checkout PR branch |
| 16 | + - name: Checkout repository |
16 | 17 | uses: actions/checkout@v4 |
17 | | - with: |
18 | | - ref: ${{ github.head_ref }} |
19 | 18 |
|
20 | 19 | - name: Install yq |
21 | 20 | run: | |
22 | | - curl -sSL https://github.com/mikefarah/yq/releases/download/v4.18.1/yq_linux_amd64 -o /usr/local/bin/yq |
23 | | - chmod +x /usr/local/bin/yq |
| 21 | + sudo apt-get update |
| 22 | + sudo apt-get install -y yq |
24 | 23 |
|
25 | | - - name: Update date_created in JSON |
| 24 | + - name: Set the current date |
| 25 | + id: set_date |
| 26 | + run: echo "TODAY=$(date -u +%Y-%m-%d)" >> $GITHUB_ENV |
| 27 | + |
| 28 | + - name: Check for changes in PR |
26 | 29 | run: | |
27 | | - TODAY=$(date -u +%Y-%m-%d) |
28 | | - yq e '.date_created = strftime("%Y-%m-%d")' -i your_file.json |
| 30 | + # Hole den PR-Branch |
| 31 | + PR_BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge" |
| 32 | + git fetch origin $PR_BRANCH |
| 33 | +
|
| 34 | + # Liste alle JSON-Dateien im PR auf, die geändert wurden |
| 35 | + CHANGED_JSON_FILES=$(git diff --name-only origin/main...$PR_BRANCH | grep '.json') |
| 36 | +
|
| 37 | + if [ -z "$CHANGED_JSON_FILES" ]; then |
| 38 | + echo "No JSON files changed in this PR." |
| 39 | + exit 0 |
| 40 | + fi |
29 | 41 |
|
30 | | - - name: Commit changes if necessary |
| 42 | + # Gehe alle geänderten JSON-Dateien durch und aktualisiere das Datum |
| 43 | + for file in $CHANGED_JSON_FILES; do |
| 44 | + echo "Updating date_created in $file" |
| 45 | + # Setze das aktuelle Datum |
| 46 | + yq eval ".date_created = \"${{ env.TODAY }}\"" -i "$file" |
| 47 | + git add "$file" |
| 48 | + done |
| 49 | +
|
| 50 | + - name: Commit and push changes |
31 | 51 | run: | |
32 | | - git status |
33 | | - git diff --quiet || (git commit -m "Update date_created to $TODAY" && git push origin ${{ github.head_ref }}) |
| 52 | + # Prüfe, ob es Änderungen gibt und committe sie |
| 53 | + git config user.name "json-updater-bot" |
| 54 | + git config user.email "github-actions[bot]@users.noreply.github.com" |
| 55 | +
|
| 56 | + git commit -m "Update date_created to ${{ env.TODAY }}" || echo "No changes to commit" |
| 57 | +
|
| 58 | + # Push zurück in den PR-Branch |
| 59 | + git push origin $PR_BRANCH |
0 commit comments