Skip to content

Commit beadf4e

Browse files
committed
update
1 parent dfdcafd commit beadf4e

File tree

1 file changed

+43
-23
lines changed

1 file changed

+43
-23
lines changed

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

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,82 @@
1-
name: Navigation File Change Checker
1+
name: Documentation & Navigation Change Checker
22

33
on:
44
pull_request_target:
55
branches:
66
- url-test # target branch
77
paths:
8+
- '**/*.md'
89
- '**/*.nav.yml'
910
- '**/*.nav.yaml'
1011

1112
jobs:
12-
check-nav-changes:
13+
check-doc-nav-changes:
1314
runs-on: ubuntu-latest
1415
steps:
15-
# 1️⃣ Checkout the PR branch (fork-safe)
16+
# 1️⃣ Checkout PR branch (fork-safe)
1617
- name: Checkout PR branch
1718
uses: actions/checkout@v4
1819
with:
1920
fetch-depth: 0
2021
ref: ${{ github.event.pull_request.head.ref }}
2122
repository: ${{ github.event.pull_request.head.repo.full_name }}
2223

23-
# 2️⃣ Fetch the base branch so git diff works
24+
# 2️⃣ Fetch the base branch for diffs
2425
- name: Fetch base branch
2526
run: |
2627
git fetch origin ${{ github.event.pull_request.base.ref }} --depth=1
2728
28-
# 3️⃣ Detect nav file changes
29-
- name: Detect nav file changes
29+
# 3️⃣ Detect deleted, renamed, and modified files
30+
- name: Identify documentation and nav changes
3031
run: |
3132
BASE_BRANCH=origin/${{ github.event.pull_request.base.ref }}
3233
HEAD_SHA=${{ github.event.pull_request.head.sha }}
3334
34-
# Deleted nav files
35-
DELETED_NAV=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^D.*\.nav\.ya?ml$' | cut -f2- || true)
35+
# Deleted Markdown files
36+
DELETED_MD=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^D.*\.md$' | cut -f2- || true)
37+
38+
# Renamed Markdown files
39+
RENAMED_MD=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^R.*\.md$' | awk '{print $2 " -> " $3}' || true)
3640
37-
# Added or modified nav files
41+
# Nav files
42+
DELETED_NAV=$(git diff --name-status $BASE_BRANCH $HEAD_SHA | grep '^D.*\.nav\.ya?ml$' | cut -f2- || true)
3843
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)
3945
46+
# Build NAV_CHANGES with diffs
4047
NAV_CHANGES=""
41-
42-
# Process deleted files
4348
for FILE in $DELETED_NAV; do
4449
NAV_CHANGES+="$FILE: [FILE DELETED]\n\n"
4550
done
46-
47-
# Process added or modified files
4851
for FILE in $MODIFIED_NAV; do
4952
DIFF=$(git diff $BASE_BRANCH $HEAD_SHA -- "$FILE" | grep -vE '^\+\+\+|^---' || true)
5053
NAV_CHANGES+="$FILE:\n$DIFF\n\n"
5154
done
55+
for FILE in $RENAMED_NAV; do
56+
NAV_CHANGES+="$FILE [RENAMED]\n\n"
57+
done
5258
5359
# Export to environment
60+
echo "DELETED_MD<<EOF" >> $GITHUB_ENV
61+
echo "$DELETED_MD" >> $GITHUB_ENV
62+
echo "EOF" >> $GITHUB_ENV
63+
64+
echo "RENAMED_MD<<EOF" >> $GITHUB_ENV
65+
echo "$RENAMED_MD" >> $GITHUB_ENV
66+
echo "EOF" >> $GITHUB_ENV
67+
5468
echo "NAV_CHANGES<<EOF" >> $GITHUB_ENV
5569
echo -e "$NAV_CHANGES" >> $GITHUB_ENV
5670
echo "EOF" >> $GITHUB_ENV
5771
5872
# Set warning flag
59-
if [ -n "$NAV_CHANGES" ]; then
73+
if [ -n "$DELETED_MD" ] || [ -n "$RENAMED_MD" ] || [ -n "$NAV_CHANGES" ]; then
6074
echo "warning=true" >> $GITHUB_ENV
6175
else
6276
echo "warning=false" >> $GITHUB_ENV
6377
fi
6478
65-
# Debug output
66-
echo -e "NAV file changes detected:\n$NAV_CHANGES"
67-
68-
# 4️⃣ Post a comment if changes exist
79+
# 4️⃣ Post PR comment if changes exist
6980
- name: Post PR comment
7081
if: env.warning == 'true'
7182
uses: actions/github-script@v7
@@ -74,14 +85,23 @@ jobs:
7485
script: |
7586
const issue_number = context.payload.pull_request.number;
7687
const repo = context.repo;
88+
const deletedMd = `${process.env.DELETED_MD}`.trim();
89+
const renamedMd = `${process.env.RENAMED_MD}`.trim();
7790
const navChanges = `${process.env.NAV_CHANGES}`.trim();
7891
79-
let formatted = navChanges.split('\n').map(line => {
80-
if (line.includes('[FILE DELETED]')) return `❌ ${line.replace(': [FILE DELETED]', '')}`;
81-
return line;
82-
}).join('\n');
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`;
93+
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+
}
83103
84-
const message = `🔍 **Navigation File Changes Detected**\n\nThis PR modifies navigation files (.nav.yml/.nav.yaml) which could affect the Table of Contents.\n\n**Changes:**\n\`\`\`\n${formatted}\n\`\`\`\n\n🚨 Please verify:\n- Navigation structure still matches intended URLs\n- Internal links are correct\n- Any deleted entries are handled or redirected`;
104+
message += `🚨 Please verify:\n- Internal links are correct\n- Navigation structure is still valid\n- Any deleted or renamed entries are handled properly`;
85105
86106
github.rest.issues.createComment({
87107
owner: repo.owner,

0 commit comments

Comments
 (0)