neil 3 月之前
父節點
當前提交
424d33faa0
共有 1 個文件被更改,包括 35 次插入7 次删除
  1. 35 7
      .github/workflows/wiki-monitor.yml

+ 35 - 7
.github/workflows/wiki-monitor.yml

@@ -7,15 +7,43 @@ jobs:
   notify:
     runs-on: ubuntu-latest
     steps:
+      - name: Checkout wiki repository
+        uses: actions/checkout@v4
+        with:
+          repository: ${{ github.repository }}.wiki
+          path: wiki
+
       - name: Generate wiki change message
         run: |
-          sudo apt-get update && sudo apt-get install -y jq
-          echo "Wiki page edited" > wiki-change-msg.txt
-          echo "User: ${{ github.actor }}" >> wiki-change-msg.txt
-          echo "Time: $(date '+%Y-%m-%d %H:%M:%S')" >> wiki-change-msg.txt
-          echo "" >> wiki-change-msg.txt
-          cat "$GITHUB_EVENT_PATH"
-          jq -r '.pages // [] | .[] | "Page: \(.html_url) (action: \(.action))"' "$GITHUB_EVENT_PATH" >> wiki-change-msg.txt
+        actor="${{ github.actor }}"
+        sender_url=$(jq -r '.sender.html_url' "$GITHUB_EVENT_PATH")
+        page_name=$(jq -r '.pages[0].page_name' "$GITHUB_EVENT_PATH")
+        page_sha=$(jq -r '.pages[0].sha' "$GITHUB_EVENT_PATH")
+        page_url=$(jq -r '.pages[0].html_url' "$GITHUB_EVENT_PATH")
+        page_action=$(jq -r '.pages[0].action' "$GITHUB_EVENT_PATH")
+        now="$(date '+%Y-%m-%d %H:%M:%S')"
+
+        cd wiki
+        prev_sha=$(git rev-list $page_sha^ -- "$page_name.md" | head -n 1)
+        if [ -n "$prev_sha" ]; then
+            git diff $prev_sha $page_sha -- "$page_name.md" > ../wiki.diff || echo "(No diff found)" > ../wiki.diff
+        else
+            echo "(no diff)" > ../wiki.diff
+        fi
+        cd ..
+        {
+        echo "Wiki edited"
+        echo -n "User: "
+        echo "[$actor]($sender_url)"
+        echo "Time: $now"
+        echo "Page: [$page_name]($page_url) (Action: $page_action)"
+        echo ""
+        echo "----"
+        echo "###  diff:"
+        echo '```diff'
+        cat wiki.diff
+        echo '```'
+        } > wiki-change-msg.txt
 
       - name: Create issue to notify Neilpang
         uses: peter-evans/create-issue-from-file@v5