1+ name : Check Documentation URL Changes
2+
3+ on :
4+ pull_request :
5+ branches :
6+ - master
7+
8+ jobs :
9+ check-url-changes :
10+ runs-on : ubuntu-latest
11+ steps :
12+ - name : Checkout code
13+ uses : actions/checkout@v4
14+ with :
15+ fetch-depth : 0
16+
17+ - name : Identify deleted and renamed files
18+ run : |
19+ # Store deleted files
20+ DELETED_FILES=$(git diff --name-status origin/master ${{ github.event.pull_request.head.sha }} | grep '^D' | cut -f2- || true)
21+ echo "DELETED_FILES<<EOF" >> $GITHUB_ENV
22+ echo "$DELETED_FILES" >> $GITHUB_ENV
23+ echo "EOF" >> $GITHUB_ENV
24+
25+ # Store renamed files
26+ RENAMED_FILES=$(git diff --name-status origin/master ${{ github.event.pull_request.head.sha }} | grep '^R' | awk '{print $2 " -> " $3}' || true)
27+ echo "RENAMED_FILES<<EOF" >> $GITHUB_ENV
28+ echo "$RENAMED_FILES" >> $GITHUB_ENV
29+ echo "EOF" >> $GITHUB_ENV
30+
31+ # Set warning flag if there are any changes
32+ if [ ! -z "$DELETED_FILES" ] || [ ! -z "$RENAMED_FILES" ]; then
33+ echo "warning=true" >> $GITHUB_ENV
34+ else
35+ echo "warning=false" >> $GITHUB_ENV
36+ fi
37+
38+ # Print to console for logging
39+ echo "Deleted files:"
40+ echo "$DELETED_FILES"
41+ echo -e "\nRenamed files:"
42+ echo "$RENAMED_FILES"
43+
44+ - name : Post PR warning
45+ if : env.warning == 'true'
46+ uses : actions/github-script@v7
47+ with :
48+ github-token : ${{ secrets.GITHUB_TOKEN }}
49+ script : |
50+ const issue_number = context.payload.pull_request.number;
51+ const repo = context.repo;
52+ const deletedFiles = `${process.env.DELETED_FILES}`.trim();
53+ const renamedFiles = `${process.env.RENAMED_FILES}`.trim();
54+
55+ let message = `⚠️ **Documentation Warning**\n\n`;
56+
57+ if (deletedFiles) {
58+ message += `**Deleted files:**\n\`\`\`\n${deletedFiles}\n\`\`\`\n\n`;
59+ }
60+
61+ if (renamedFiles) {
62+ message += `**Renamed files:**\n\`\`\`\n${renamedFiles}\n\`\`\`\n\n`;
63+ }
64+
65+ message += `Please verify these changes before merging.`;
66+
67+ github.rest.issues.createComment({
68+ owner: repo.owner,
69+ repo: repo.repo,
70+ issue_number: issue_number,
71+ body: message
72+ });
0 commit comments