30 lines
933 B
YAML
30 lines
933 B
YAML
name: 检查提交路径权限
|
||
on: [push, pull_request]
|
||
|
||
jobs:
|
||
check-path:
|
||
name: 校验提交路径
|
||
runs-on: gitea-runner
|
||
steps:
|
||
- name: 拉取代码
|
||
uses: actions/checkout@v3
|
||
|
||
- name: 检查是否修改了他人目录
|
||
run: |
|
||
# 获取当前用户(优先用 GITEA_USERNAME,备用提交者用户名)
|
||
USERNAME=${GITEA_USERNAME:-$(git log -1 --pretty=format:'%an')}
|
||
echo "当前提交用户:$USERNAME"
|
||
|
||
# 获取所有修改的目录
|
||
CHANGED_DIRS=$(git diff --name-only HEAD~1 | xargs -n1 dirname | sort -u)
|
||
echo "修改的目录有:$CHANGED_DIRS"
|
||
|
||
for dir in $CHANGED_DIRS; do
|
||
if [[ "$dir" != "$USERNAME" && ! "$dir" =~ ^\. ]]; then
|
||
echo "错误:你无权修改 '$dir' 目录!"
|
||
exit 1
|
||
fi
|
||
done
|
||
|
||
echo "✅ 提交通过路径权限检查。"
|