Skip to content

Commit 3e21670

Browse files
committed
update
1 parent 4673453 commit 3e21670

File tree

1 file changed

+26
-55
lines changed

1 file changed

+26
-55
lines changed

.github/workflows/check-url-changes.yml

Lines changed: 26 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,41 @@ name: Documentation & Navigation Change Checker
33
on:
44
pull_request:
55
branches:
6-
- url-test # target branch
7-
paths:
8-
- '**/*.md'
9-
- '**/*.nav.yml'
10-
- '**/*.nav.yaml'
6+
- url-test
117

128
jobs:
139
check-doc-nav-changes:
1410
runs-on: ubuntu-latest
1511
steps:
16-
# 1️⃣ Checkout PR branch (fork-safe)
1712
- name: Checkout PR branch
1813
uses: actions/checkout@v4
1914
with:
2015
fetch-depth: 0
2116
ref: ${{ github.event.pull_request.head.ref }}
2217
repository: ${{ github.event.pull_request.head.repo.full_name }}
2318

24-
# 2️⃣ Fetch the base branch for diffs
2519
- name: Fetch base branch
26-
run: |
27-
git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
20+
run: git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
2821

29-
# 3️⃣ Detect deleted, renamed, and modified files
30-
- name: Identify documentation and nav changes
22+
- name: Identify .md and .nav changes
3123
run: |
32-
BASE_BRANCH=origin/${{ github.event.pull_request.base.ref }}
33-
HEAD_SHA=${{ github.event.pull_request.head.sha }}
34-
35-
# Deleted Markdown files
36-
DELETED_MD=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^D.*\.md$' | cut -f2- || true)
24+
BASE=origin/${{ github.event.pull_request.base.ref }}
25+
HEAD=${{ github.event.pull_request.head.sha }}
3726
38-
# Renamed Markdown files
39-
RENAMED_MD=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^R.*\.md$' | awk '{print $2 " -> " $3}' || true)
27+
# Markdown changes
28+
DELETED_MD=$(git diff --name-status $BASE $HEAD | grep '^D.*\.md$' | cut -f2- || true)
29+
RENAMED_MD=$(git diff --name-status $BASE $HEAD | grep '^R.*\.md$' | awk '{print $2 " -> " $3}' || true)
4030
41-
# Nav files
42-
DELETED_NAV=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^D.*\.nav\.ya?ml$' | cut -f2- || true)
43-
MODIFIED_NAV=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep -E '^[AM].*\.nav\.ya?ml$' | cut -f2- || true)
44-
RENAMED_NAV=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^R.*\.nav\.ya?ml$' | awk '{print $2 " -> " $3}' || true)
31+
# Nav changes
32+
DELETED_NAV=$(git diff --name-status $BASE $HEAD | grep '^D.*\.nav\.ya?ml$' | cut -f2- || true)
33+
MODIFIED_NAV=$(git diff --name-status $BASE $HEAD | grep -E '^[AM].*\.nav\.ya?ml$' | cut -f2- || true)
34+
RENAMED_NAV=$(git diff --name-status $BASE $HEAD | grep '^R.*\.nav\.ya?ml$' | awk '{print $2 " -> " $3}' || true)
4535
46-
# Build NAV_CHANGES with diffs
4736
NAV_CHANGES=""
48-
for FILE in $DELETED_NAV; do
49-
NAV_CHANGES+="$FILE: [FILE DELETED]\n\n"
50-
done
51-
for FILE in $MODIFIED_NAV; do
52-
DIFF=$(git diff $BASE_BRANCH $HEAD_SHA -- "$FILE" | grep -vE '^\+\+\+|^---' || true)
53-
NAV_CHANGES+="$FILE:\n$DIFF\n\n"
54-
done
55-
for FILE in $RENAMED_NAV; do
56-
NAV_CHANGES+="$FILE [RENAMED]\n\n"
57-
done
58-
59-
# Export to environment
37+
for f in $DELETED_NAV; do NAV_CHANGES+="$f: [DELETED]\n\n"; done
38+
for f in $MODIFIED_NAV; do DIFF=$(git diff $BASE $HEAD -- "$f" | grep -vE '^\+\+\+|^---'); NAV_CHANGES+="$f:\n$DIFF\n\n"; done
39+
for f in $RENAMED_NAV; do NAV_CHANGES+="$f [RENAMED]\n\n"; done
40+
6041
echo "DELETED_MD<<EOF" >> $GITHUB_ENV
6142
echo "$DELETED_MD" >> $GITHUB_ENV
6243
echo "EOF" >> $GITHUB_ENV
@@ -69,43 +50,33 @@ jobs:
6950
echo -e "$NAV_CHANGES" >> $GITHUB_ENV
7051
echo "EOF" >> $GITHUB_ENV
7152
72-
# Set warning flag
73-
if [ -n "$DELETED_MD" ] || [ -n "$RENAMED_MD" ] || [ -n "$NAV_CHANGES" ]; then
53+
if [ -n "$DELETED_MD$RENAMED_MD$NAV_CHANGES" ]; then
7454
echo "warning=true" >> $GITHUB_ENV
7555
else
7656
echo "warning=false" >> $GITHUB_ENV
7757
fi
7858
79-
# 4️⃣ Post PR comment if changes exist
80-
- name: Post PR comment
59+
- name: Post PR comment if relevant
8160
if: env.warning == 'true'
8261
uses: actions/github-script@v7
8362
with:
8463
github-token: ${{ secrets.GITHUB_TOKEN }}
8564
script: |
86-
const issue_number = context.payload.pull_request.number;
87-
const repo = context.repo;
8865
const deletedMd = `${process.env.DELETED_MD}`.trim();
8966
const renamedMd = `${process.env.RENAMED_MD}`.trim();
9067
const navChanges = `${process.env.NAV_CHANGES}`.trim();
9168
92-
let message = `🔍 **Documentation & Navigation Checker**\n\nThis PR modifies documentation (.md) or navigation files (.nav.yml/.nav.yaml), which could affect links and Table of Contents.\n\n`;
69+
let message = "🔍 **Documentation & Navigation Checker**\n\nThis PR modifies `.md` or `.nav.yml/.nav.yaml` files.\n\n";
9370
94-
if (deletedMd) {
95-
message += `**Deleted Markdown files:**\n\`\`\`\n${deletedMd}\n\`\`\`\n\n`;
96-
}
97-
if (renamedMd) {
98-
message += `**Renamed Markdown files:**\n\`\`\`\n${renamedMd}\n\`\`\`\n\n`;
99-
}
100-
if (navChanges) {
101-
message += `**Navigation file changes:**\n\`\`\`\n${navChanges}\n\`\`\`\n\n`;
102-
}
71+
if (deletedMd) message += `**Deleted Markdown files:**\n\`\`\`\n${deletedMd}\n\`\`\`\n\n`;
72+
if (renamedMd) message += `**Renamed Markdown files:**\n\`\`\`\n${renamedMd}\n\`\`\`\n\n`;
73+
if (navChanges) message += `**Navigation file changes:**\n\`\`\`\n${navChanges}\n\`\`\`\n\n`;
10374
104-
message += `🚨 Please verify:\n- Internal links are correct\n- Navigation structure is still valid\n- Any deleted or renamed entries are handled properly`;
75+
message += "🚨 Please verify:\n- Links are correct\n- TOC matches expected structure\n- Deleted/renamed entries are handled";
10576
10677
github.rest.issues.createComment({
107-
owner: repo.owner,
108-
repo: repo.repo,
109-
issue_number: issue_number,
78+
owner: context.repo.owner,
79+
repo: context.repo.repo,
80+
issue_number: context.payload.pull_request.number,
11081
body: message
11182
});

0 commit comments

Comments
 (0)