Compare commits

...

1 Commits

Author SHA1 Message Date
417c4d5afd feat:配置文件补充
All checks were successful
CodeChecker 变更检测 / code-check (push) Has been skipped
2026-07-20 14:50:08 +08:00
2 changed files with 371 additions and 0 deletions

View File

@@ -0,0 +1,288 @@
# ============================================================
# 变更检测配置
# ============================================================
# 总开关false-》流水线直接退出
checker:
enabled: true
# 类变更检测Vo/Dto/Entity/Model 字段增删改等)
class_check:
enabled: true
# Dto 类字段变更后,继续检测受影响 Controller 的 API 参数变更
dto_api_follow_up:
enabled: true
# Dto/Vo 嵌套关系索引:影响分析传播 & API 参数字段展开深度
nest_index:
max_depth: 3
dto_entity_conversion:
enabled: false
# *-entity / *-model / *-common-entity / *-doris-model 模块
model_dirs:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-common-entity/src/main/java
- fantaibao-data-analysis/fantaibao-data-analysis-entity/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-entity/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-entity/src/main/java
- fantaibao-thousands-faces/fantaibao-thousands-faces-entity/src/main/java
- fantaibao-training/fantaibao-training-entity/src/main/java
# jnpf
- jnpf-app/jnpf-app-entity/src/main/java
- jnpf-attence/jnpf-attence-entity/src/main/java
- jnpf-bigdata-support/jnpf-bigdata-support-entity/src/main/java
- jnpf-capital/jnpf-capital-entity/src/main/java
- jnpf-contract/jnpf-contract-entity/src/main/java
- jnpf-duty/jnpf-duty-entity/src/main/java
- jnpf-email/jnpf-email-entity/src/main/java
- jnpf-example/jnpf-example-entity/src/main/java
- jnpf-extend/jnpf-extend-entity/src/main/java
- jnpf-file/jnpf-file-model/src/main/java
- jnpf-file/jnpf-file-yozo/jnpf-file-yozo-entity/src/main/java
- jnpf-form/jnpf-form-entity/src/main/java
- jnpf-ftb/jnpf-ftb-entity/src/main/java
- jnpf-im/jnpf-im-entity/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-entity/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-entity/src/main/java
- jnpf-message/jnpf-message-entity/src/main/java
- jnpf-oauth/jnpf-oauth-entity/src/main/java
- jnpf-permission/jnpf-permission-entity/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-doris-model/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-entity/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-entity/src/main/java
- jnpf-salary/jnpf-salary-entity/src/main/java
- jnpf-system/jnpf-system-entity/src/main/java
- jnpf-tenant/jnpf-tenant-entity/src/main/java
- jnpf-visualdata/jnpf-visualdata-entity/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-entity/src/main/java
- jnpf-visualdev/jnpf-visualdev-generater/jnpf-visualdev-generater-entity/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-entity/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-entity/src/main/java
- jnpf-websocket/jnpf-websocket-entity/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-entity/src/main/java
- jnpf-workflow/jnpf-workflow-form/jnpf-workflow-form-entity/src/main/java
# 接口索引扫描目录,用于分析类变更对 API 的影响范围
endpoint_scan:
controllers:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-server/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-consumers/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-controller/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-biz/src/main/java
- fantaibao-thousands-faces/fantaibao-thousands-faces-biz/src/main/java
- fantaibao-training/fantaibao-training-consumers/src/main/java
- fantaibao-training/fantaibao-training-controller/src/main/java
# jnpf
- jnpf-app/jnpf-app-controller/src/main/java
- jnpf-attence/jnpf-attence-controller/src/main/java
- jnpf-bigdata-support/jnpf-bigdata-support-biz/src/main/java
- jnpf-capital/jnpf-capital-biz/src/main/java
- jnpf-contract/jnpf-contract-biz/src/main/java
- jnpf-duty/jnpf-duty-controller/src/main/java
- jnpf-email/jnpf-email-biz/src/main/java
- jnpf-example/jnpf-example-consumers/src/main/java
- jnpf-example/jnpf-example-controller/src/main/java
- jnpf-extend/jnpf-extend-controller/src/main/java
- jnpf-file/jnpf-file-storage/src/main/java
- jnpf-file/jnpf-file-upload/src/main/java
- jnpf-file/jnpf-file-yozo/jnpf-file-yozo-controller/src/main/java
- jnpf-form/jnpf-form-controller/src/main/java
- jnpf-ftb/jnpf-ftb-biz/src/main/java
- jnpf-im/jnpf-im-biz/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-controller/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-controller/src/main/java
- jnpf-message/jnpf-message-controller/src/main/java
- jnpf-oauth/jnpf-oauth-controller/src/main/java
- jnpf-permission/jnpf-permission-biz/src/main/java
- jnpf-permission/jnpf-permission-controller/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-controller/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-biz/src/main/java
- jnpf-salary/jnpf-salary-biz/src/main/java
- jnpf-scheduletask/jnpf-scheduletask-controller/src/main/java
- jnpf-system/jnpf-system-controller/src/main/java
- jnpf-tenant/jnpf-tenant-biz/src/main/java
- jnpf-tenant/jnpf-tenant-controller/src/main/java
- jnpf-visualdata/jnpf-visualdata-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-generater/jnpf-visualdev-generater-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-controller/src/main/java
- jnpf-websocket/jnpf-websocket-biz/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-controller/src/main/java
- jnpf-workflow/jnpf-workflow-form/jnpf-workflow-form-controller/src/main/java
feign_apis:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-api/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-api/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-api/src/main/java
- fantaibao-training/fantaibao-training-api/src/main/java
# jnpf
- jnpf-app/jnpf-app-api/src/main/java
- jnpf-attence/jnpf-attence-api/src/main/java
- jnpf-capital/jnpf-capital-api/src/main/java
- jnpf-contract/jnpf-contract-api/src/main/java
- jnpf-duty/jnpf-duty-api/src/main/java
- jnpf-email/jnpf-email-api/src/main/java
- jnpf-example/jnpf-example-api/src/main/java
- jnpf-extend/jnpf-extend-api/src/main/java
- jnpf-file/jnpf-file-api/src/main/java
- jnpf-form/jnpf-form-api/src/main/java
- jnpf-ftb/jnpf-ftb-api/src/main/java
- jnpf-im/jnpf-im-api/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-api/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-api/src/main/java
- jnpf-message/jnpf-message-api/src/main/java
- jnpf-oauth/jnpf-oauth-api/src/main/java
- jnpf-permission/jnpf-permission-api/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-api/src/main/java
- jnpf-salary/jnpf-salary-api/src/main/java
- jnpf-scheduletask/jnpf-scheduletask-api/src/main/java
- jnpf-system/jnpf-system-api/src/main/java
- jnpf-tenant/jnpf-tenant-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-api/src/main/java
- jnpf-websocket/jnpf-websocket-api/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-api/src/main/java
# Dto/Entity 转换逻辑扫描目录(*-biz 及含业务逻辑的 server 模块)
conversion_scan:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-server/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-biz/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-biz/src/main/java
- fantaibao-thousands-faces/fantaibao-thousands-faces-biz/src/main/java
- fantaibao-training/fantaibao-training-biz/src/main/java
# jnpf
- jnpf-app/jnpf-app-biz/src/main/java
- jnpf-attence/jnpf-attence-biz/src/main/java
- jnpf-bigdata-support/jnpf-bigdata-support-biz/src/main/java
- jnpf-capital/jnpf-capital-biz/src/main/java
- jnpf-contract/jnpf-contract-biz/src/main/java
- jnpf-duty/jnpf-duty-biz/src/main/java
- jnpf-email/jnpf-email-biz/src/main/java
- jnpf-example/jnpf-example-biz/src/main/java
- jnpf-extend/jnpf-extend-biz/src/main/java
- jnpf-file/jnpf-file-yozo/jnpf-file-yozo-biz/src/main/java
- jnpf-form/jnpf-form-biz/src/main/java
- jnpf-ftb/jnpf-ftb-biz/src/main/java
- jnpf-im/jnpf-im-biz/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-biz/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-biz/src/main/java
- jnpf-message/jnpf-message-biz/src/main/java
- jnpf-oauth/jnpf-oauth-biz/src/main/java
- jnpf-permission/jnpf-permission-biz/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-app-biz/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-biz/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-biz/src/main/java
- jnpf-salary/jnpf-salary-biz/src/main/java
- jnpf-system/jnpf-system-biz/src/main/java
- jnpf-tenant/jnpf-tenant-biz/src/main/java
- jnpf-visualdata/jnpf-visualdata-biz/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-biz/src/main/java
- jnpf-visualdev/jnpf-visualdev-generater/jnpf-visualdev-generater-biz/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-biz/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-biz/src/main/java
- jnpf-websocket/jnpf-websocket-biz/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-biz/src/main/java
- jnpf-workflow/jnpf-workflow-form/jnpf-workflow-form-biz/src/main/java
# API 变更检测(路径 / 请求方式 / 参数),与 class_check 同级
api_check:
enabled: true
exclude_framework_params: true
endpoint_scan:
controllers:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-server/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-consumers/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-controller/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-biz/src/main/java
- fantaibao-thousands-faces/fantaibao-thousands-faces-biz/src/main/java
- fantaibao-training/fantaibao-training-consumers/src/main/java
- fantaibao-training/fantaibao-training-controller/src/main/java
# jnpf
- jnpf-app/jnpf-app-controller/src/main/java
- jnpf-attence/jnpf-attence-controller/src/main/java
- jnpf-bigdata-support/jnpf-bigdata-support-biz/src/main/java
- jnpf-capital/jnpf-capital-biz/src/main/java
- jnpf-contract/jnpf-contract-biz/src/main/java
- jnpf-duty/jnpf-duty-controller/src/main/java
- jnpf-email/jnpf-email-biz/src/main/java
- jnpf-example/jnpf-example-consumers/src/main/java
- jnpf-example/jnpf-example-controller/src/main/java
- jnpf-extend/jnpf-extend-controller/src/main/java
- jnpf-file/jnpf-file-storage/src/main/java
- jnpf-file/jnpf-file-upload/src/main/java
- jnpf-file/jnpf-file-yozo/jnpf-file-yozo-controller/src/main/java
- jnpf-form/jnpf-form-controller/src/main/java
- jnpf-ftb/jnpf-ftb-biz/src/main/java
- jnpf-im/jnpf-im-biz/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-controller/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-controller/src/main/java
- jnpf-message/jnpf-message-controller/src/main/java
- jnpf-oauth/jnpf-oauth-controller/src/main/java
- jnpf-permission/jnpf-permission-biz/src/main/java
- jnpf-permission/jnpf-permission-controller/src/main/java
- jnpf-pub-opinion/jnpf-pub-opinion-controller/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-biz/src/main/java
- jnpf-salary/jnpf-salary-biz/src/main/java
- jnpf-scheduletask/jnpf-scheduletask-controller/src/main/java
- jnpf-system/jnpf-system-controller/src/main/java
- jnpf-tenant/jnpf-tenant-biz/src/main/java
- jnpf-tenant/jnpf-tenant-controller/src/main/java
- jnpf-visualdata/jnpf-visualdata-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-generater/jnpf-visualdev-generater-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-controller/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-controller/src/main/java
- jnpf-websocket/jnpf-websocket-biz/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-controller/src/main/java
- jnpf-workflow/jnpf-workflow-form/jnpf-workflow-form-controller/src/main/java
feign_apis:
# fantaibao
- fantaibao-data-analysis/fantaibao-data-analysis-api/src/main/java
- fantaibao-patrol-store/fantaibao-patrol-store-api/src/main/java
- fantaibao-personnel-evaluation/fantaibao-personnel-evaluation-api/src/main/java
- fantaibao-training/fantaibao-training-api/src/main/java
# jnpf
- jnpf-app/jnpf-app-api/src/main/java
- jnpf-attence/jnpf-attence-api/src/main/java
- jnpf-capital/jnpf-capital-api/src/main/java
- jnpf-contract/jnpf-contract-api/src/main/java
- jnpf-duty/jnpf-duty-api/src/main/java
- jnpf-email/jnpf-email-api/src/main/java
- jnpf-example/jnpf-example-api/src/main/java
- jnpf-extend/jnpf-extend-api/src/main/java
- jnpf-file/jnpf-file-api/src/main/java
- jnpf-form/jnpf-form-api/src/main/java
- jnpf-ftb/jnpf-ftb-api/src/main/java
- jnpf-im/jnpf-im-api/src/main/java
- jnpf-memoo-scheduling/jnpf-memoo-scheduling-api/src/main/java
- jnpf-memoo-share/jnpf-memoo-share-api/src/main/java
- jnpf-message/jnpf-message-api/src/main/java
- jnpf-oauth/jnpf-oauth-api/src/main/java
- jnpf-permission/jnpf-permission-api/src/main/java
- jnpf-saas-billing/jnpf-saas-billing-api/src/main/java
- jnpf-salary/jnpf-salary-api/src/main/java
- jnpf-scheduletask/jnpf-scheduletask-api/src/main/java
- jnpf-system/jnpf-system-api/src/main/java
- jnpf-tenant/jnpf-tenant-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-base/jnpf-visualdev-base-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-onlinedev/jnpf-visualdev-onlinedev-api/src/main/java
- jnpf-visualdev/jnpf-visualdev-portal/jnpf-visualdev-portal-api/src/main/java
- jnpf-websocket/jnpf-websocket-api/src/main/java
- jnpf-workflow/jnpf-workflow-engine/jnpf-workflow-engine-api/src/main/java
# 企业微信通知开关
wecom:
enabled: true
webhook_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=61f08cc9-b734-4dff-a931-7f33654c0a81"
notify:
only_on_change: true
# 实体类变更与 API 参数变更重叠时的通知策略both | class_only | api_only
dto_overlap_mode: class_only

View File

@@ -0,0 +1,83 @@
name: CodeChecker 变更检测
run-name: ${{ gitea.actor }}的CodeChecker变更检测
on:
push:
# branches:
# - check-code-dev-test
workflow_dispatch:
env:
# CodeChecker 私库坐标com.codechecker:code-checker:1.0.0
CODE_CHECKER_VERSION: "1.0.0"
CODE_CHECKER_REPO_URL: "http://192.168.3.25:18081/nexus/repository/maven-releases"
jobs:
code-check:
if: ${{ gitea.ref != 'refs/heads/pre' && gitea.ref != 'refs/heads/dev' && gitea.ref != 'refs/heads/master-2.0' }}
runs-on: jdk11
steps:
# 浅克隆CodeChecker 仅需 HEAD 与 HEAD~1避免全量拉取
# 指定 --branch 确保非默认分支推送时也能正确检出 gitea.sha
- name: 检出代码
run: |
git config --global http.sslVerify false
git clone --depth 2 --single-branch --branch "${{ gitea.ref_name }}" \
"https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" .
# 将 commit 绑定回本地分支,避免 detached HEAD 导致分支识别为「未知」
git checkout -B "${{ gitea.ref_name }}" "${{ gitea.sha }}"
# git config --global http.sslVerify false
# git clone --depth 2 --single-branch --branch "${{ gitea.ref_name }}" \
# "https://${{ gitea.token }}@git.niujiekeji.com/${{ gitea.repository }}.git" .
# git checkout ${{ gitea.sha }}
- name: 检查配置文件
run: |
if [ ! -f .gitea/config/code-check-config.yaml ]; then
echo "错误: 缺少 .gitea/config/code-check-config.yaml"
exit 1
fi
- name: 从 Nexus 私库下载 CodeChecker
run: |
GROUP_PATH="com/codechecker/code-checker"
JAR_NAME="code-checker-${CODE_CHECKER_VERSION}.jar"
JAR_URL="${CODE_CHECKER_REPO_URL}/${GROUP_PATH}/${CODE_CHECKER_VERSION}/${JAR_NAME}"
JAR_PATH="/tmp/${JAR_NAME}"
echo "下载: ${JAR_URL}"
if command -v curl >/dev/null 2>&1; then
curl -fsSL -o "${JAR_PATH}" "${JAR_URL}"
elif command -v wget >/dev/null 2>&1; then
wget -q -O "${JAR_PATH}" "${JAR_URL}"
else
echo "错误: Runner 缺少 curl 或 wget无法从 Nexus 下载 jar"
exit 1
fi
if [ ! -s "${JAR_PATH}" ]; then
echo "错误: 下载失败或文件为空: ${JAR_PATH}"
exit 1
fi
ls -lh "${JAR_PATH}"
- name: 验证 JDK
run: |
echo "Java: $(java -version 2>&1 | head -1)"
- name: 执行 CodeChecker 变更检测
run: |
OLD_SHA=$(git rev-parse HEAD~1 2>/dev/null || echo "")
if [ -z "$OLD_SHA" ]; then
echo "首次提交,跳过变更检测"
exit 0
fi
COMMIT_TIME=$(git log -1 --format=%cd --date=format:'%Y-%m-%d %H:%M:%S')
java -jar "/tmp/code-checker-${CODE_CHECKER_VERSION}.jar" \
--config .gitea/config/code-check-config.yaml \
--repo-root . \
--old-sha "$OLD_SHA" \
--new-sha "$(git rev-parse HEAD)" \
--modifier "${{ gitea.actor }}" \
--modify-time "$COMMIT_TIME"