Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
c2f63de
fix:codeql scan
msslulu Aug 28, 2026
2a05919
fix:codeql scan
msslulu Aug 28, 2026
1746057
fix:codeql scan
msslulu Aug 28, 2026
03e143f
fix:codeql scan
msslulu Aug 31, 2026
b324c37
fix:codeql scan
msslulu Aug 31, 2026
ceb3717
fix:codeql scan
msslulu Aug 31, 2026
bcb7ee0
Merge pull request #2 from msslulu/code-scanning
msslulu Aug 31, 2026
fe1a54c
fix:codeql scan
msslulu Aug 31, 2026
82fdc15
fix:codeql scan
msslulu Aug 31, 2026
a09a635
fix:codeql scan
msslulu Sep 1, 2026
b1087fc
fix:codeql scan
msslulu Sep 1, 2026
c919e36
fix:codeql scan
msslulu Sep 1, 2026
8310dac
Merge pull request #3 from msslulu/code-scanning
msslulu Sep 1, 2026
93ed667
fix:codeql scan
msslulu Sep 1, 2026
2d512ec
Merge pull request #4 from msslulu/code-scanning
msslulu Sep 1, 2026
5673da3
fix:codeql scan
msslulu Sep 1, 2026
06e73eb
Merge pull request #5 from msslulu/code-scanning
msslulu Sep 1, 2026
96457c5
fix:codeql scan
msslulu Sep 2, 2026
0e8a488
Merge pull request #6 from msslulu/code-scanning
msslulu Sep 2, 2026
84d2d55
fix:codeql scan Security issue
msslulu Sep 3, 2026
1870d90
fix:codeql scan Security issue
msslulu Sep 3, 2026
1e654c6
fix:codeql scan Security issue
msslulu Sep 3, 2026
320d46e
fix:codeql scan Security issue
msslulu Sep 3, 2026
9af2034
fix:codeql scan Security issue
msslulu Sep 3, 2026
81b04c8
fix:codeql scan Security issue
msslulu Sep 3, 2026
c7c8686
fix:codeql scan Security issue
msslulu Sep 3, 2026
cd4ac3d
fix:codeql scan Security issue
msslulu Sep 3, 2026
1573d3e
fix:codeql scan Security issue
msslulu Sep 3, 2026
23f513f
fix:codeql scan Security issue
msslulu Sep 3, 2026
950f477
fix:codeql scan Security issue
msslulu Sep 3, 2026
c88bd7b
fix:codeql scan Security issue
msslulu Sep 3, 2026
1717e83
fix:codeql scan Security issue
msslulu Sep 3, 2026
756565e
fix:codeql scan Security issue
msslulu Sep 4, 2026
76c3a0b
fix:codeql scan Security issue
msslulu Sep 4, 2026
0481570
fix:codeql scan Security issue
msslulu Sep 4, 2026
271f0c2
fix:codeql scan Security issue
msslulu Sep 4, 2026
3a8b939
fix:codeql scan Security issue
msslulu Sep 4, 2026
f4c04ea
fix:codeql scan Security issue
msslulu Sep 4, 2026
8a87a97
fix:codeql scan Security issue
msslulu Sep 4, 2026
7029e72
fix:codeql scan Security issue
msslulu Sep 4, 2026
39ba7ad
fix:codeql scan Security issue
msslulu Sep 4, 2026
b57732c
fix:codeql scan Security issue
msslulu Sep 8, 2026
476d772
fix:codeql scan Security issue
msslulu Sep 8, 2026
381ed9e
fix:codeql scan Security issue
msslulu Sep 8, 2026
6613573
fix:codeql scan Security issue
msslulu Sep 8, 2026
42662e2
fix:codeql scan Security issue
msslulu Sep 8, 2026
74397d5
Merge remote-tracking branch 'origin/fix-codeql-scanning' into fix-co…
msslulu Sep 8, 2026
1171e5b
fix:codeql scan Security issue
msslulu Sep 8, 2026
efaf48e
fix:codeql scan Security issue
msslulu Sep 8, 2026
b782207
fix:codeql scan Security issue
msslulu Sep 8, 2026
d3cea77
fix:codeql scan Security issue
msslulu Sep 8, 2026
bc88fa5
fix:codeql scan Security issue
msslulu Sep 8, 2026
99be186
fix:codeql scan Security issue
msslulu Sep 8, 2026
417c270
fix:codeql scan Security issue
msslulu Sep 8, 2026
deb53c1
fix:codeql scan Security issue
msslulu Sep 8, 2026
111c981
fix:codeql scan Security issue
msslulu Sep 8, 2026
6f528e8
fix:codeql scan Security issue
msslulu Sep 9, 2026
ce799c2
fix:codeql scan Security issue
msslulu Sep 9, 2026
a0a7ca4
fix:codeql scan Security issue
msslulu Sep 9, 2026
1e9bb5f
fix:codeql scan Security issue
msslulu Sep 9, 2026
cf47cef
fix:codeql scan Security issue
msslulu Sep 9, 2026
f66cbb2
fix:codeql scan Security issue
msslulu Sep 9, 2026
8131cf1
fix:codeql scan Security issue
msslulu Sep 9, 2026
7550d7f
fix:codeql scan Security issue
msslulu Sep 9, 2026
dd71933
fix:codeql scan Security issue
msslulu Sep 9, 2026
85189cb
fix:codeql scan Security issue
msslulu Sep 9, 2026
f1191b6
fix:codeql scan Security issue
msslulu Sep 10, 2026
21a16b7
fix:codeql scan Security issue
msslulu Sep 10, 2026
365f4e7
fix:codeql scan Security issue
msslulu Sep 10, 2026
9e2eb51
fix:codeql scan Security issue
msslulu Sep 10, 2026
a427f91
fix:codeql scan Security issue
msslulu Sep 10, 2026
b7007cd
fix:codeql scan Security issue
msslulu Sep 10, 2026
ee9ba38
fix:codeql scan Security issue
msslulu Sep 11, 2026
ece3fb0
fix:codeql scan Security issue
msslulu Sep 11, 2026
1d8f948
fix:codeql scan Security issue
msslulu Sep 11, 2026
9277aaf
fix:codeql scan Security issue
msslulu Sep 11, 2026
83137f3
fix:codeql scan Security issue
msslulu Sep 11, 2026
da5607c
fix:codeql scan Security issue
msslulu Sep 11, 2026
30d0ca5
fix:codeql scan Security issue
msslulu Sep 11, 2026
cc0cd9c
fix:codeql scan Security issue
msslulu Sep 11, 2026
ae62766
fix:codeql scan Security issue
msslulu Sep 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/scripts/checkstyle-pr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ for module in "${!module_files[@]}"; do
echo " - 运行 Checkstyle 检查(增量扫描)..."
echo "$file_list"
set +e
PROJECT_ROOT=$(pwd)
PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
rm -f "$report_file"
output=$(cd "$module" && \
echo " Current directory: $(pwd)" && \
Expand All @@ -129,7 +129,7 @@ for module in "${!module_files[@]}"; do
echo " ⚠️ not found: $include"; \
fi; \
done && \
mvn checkstyle:check \
mvn -f "$PROJECT_ROOT/pom.xml" -pl "$module" checkstyle:check \
-Dcheckstyle.config.location="$PROJECT_ROOT/checkstyle/code-check-checkstyle.xml" \
-Dcheckstyle.violationSeverity=warning \
-Dcheckstyle.outputFormat=xml \
Expand Down Expand Up @@ -158,7 +158,7 @@ for module in "${!module_files[@]}"; do
# (可选)生成 HTML 报告供人工查看
echo " - 生成 HTML 报告(可选)..."
set +e
(cd "$module" && mvn checkstyle:checkstyle \
(cd "$module" && mvn -f "$PROJECT_ROOT/pom.xml" -pl "$module" checkstyle:checkstyle \
-Dcheckstyle.config.location="$PROJECT_ROOT/checkstyle/code-check-checkstyle.xml" \
-Dcheckstyle.includes="$file_list" \
-Dcheckstyle.violationSeverity=warning) > /dev/null 2>&1
Expand Down
34 changes: 34 additions & 0 deletions .github/scripts/codeql-matrix.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

set -euo pipefail

java_build_mode="${1:-autobuild}"

matrix_entries=""

has_files() {
git ls-files "$@" | grep . >/dev/null
}

add_entry() {
local entry="$1"
if [ -n "$matrix_entries" ]; then
matrix_entries="$matrix_entries,$entry"
else
matrix_entries="$entry"
fi
}

if has_files '.github/workflows/*.yml' '.github/workflows/*.yaml'; then
add_entry '{"language":"actions","build-mode":"none"}'
fi

if has_files '*.java'; then
add_entry "{\"language\":\"java-kotlin\",\"build-mode\":\"$java_build_mode\"}"
fi

if has_files '*.js' '*.jsx' '*.ts' '*.tsx' '*.mjs' '*.cjs' '*.vue' '*.html'; then
add_entry '{"language":"javascript-typescript","build-mode":"none"}'
fi

printf '{"include":[%s]}\n' "$matrix_entries"
221 changes: 221 additions & 0 deletions .github/workflows/codeql-full.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
name: CodeQL Full Scan

on:
schedule:
- cron: '34 7 * * 1'
workflow_dispatch:

permissions:
contents: read
security-events: write
packages: read
actions: read

jobs:
detect:
name: Detect CodeQL languages
runs-on: ubuntu-latest
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Build matrix
id: matrix
shell: bash
run: |
matrix=$(bash .github/scripts/codeql-matrix.sh manual)
printf 'matrix=%s\n' "$matrix" >> "$GITHUB_OUTPUT"

analyze:
needs: detect
name: Full scan (${{ matrix.language }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.detect.outputs.matrix) }}

steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Set up JDK 17
if: matrix.language == 'java-kotlin'
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
cache: maven

- name: Initialize CodeQL
uses: github/codeql-action/init@v4

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

codeql-full.yml 中的 Initialize CodeQL 步骤未配置 config-file: ./.github/codeql/codeql-config.yml。与 codeql.yml 相比,缺少了对测试代码及生成目录的路径排除。

with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}

- name: Build project
if: matrix.language == 'java-kotlin'
run: mvn -B clean test-compile -DskipTests -Dcheckstyle.skip=true -Dpmd.skip=true -Dspotbugs.skip=true -Dcpd.skip=true

- name: Prepare CodeQL SARIF directory
shell: bash
run: |
rm -rf codeql-sarif
mkdir -p codeql-sarif

- name: Perform CodeQL Analysis
id: codeql-analysis
uses: github/codeql-action/analyze@v4
with:
output: ${{ github.workspace }}/codeql-sarif
upload: always
category: "/codeql-full:${{ matrix.language }}"

- name: Summarize CodeQL SARIF report
id: sarif-summary
if: always()
shell: bash
run: |
set -euo pipefail

mkdir -p codeql-sarif
report_index="codeql-sarif/scan-files.txt"
sarif_count=0
invalid_sarif=0
violations=0

{
printf 'language=%s\n' '${{ matrix.language }}'
printf 'codeql_output=%s\n' '${{ github.workspace }}/codeql-sarif'
printf '\nGenerated SARIF files:\n'
} > "$report_index"

while IFS= read -r -d '' file; do
sarif_count=$((sarif_count + 1))
result_count=$(jq '[.runs[]?.results[]?] | length' "$file" 2>/dev/null || true)

if [[ "$result_count" =~ ^[0-9]+$ ]]; then
violations=$((violations + result_count))
printf '%s results=%s\n' "$file" "$result_count" >> "$report_index"
else
invalid_sarif=$((invalid_sarif + 1))
printf '%s results=invalid-sarif\n' "$file" >> "$report_index"
fi
done < <(find codeql-sarif -type f -name '*.sarif' -print0)

{
printf '\nSummary:\n'
printf 'sarif_count=%s\n' "$sarif_count"
printf 'invalid_sarif=%s\n' "$invalid_sarif"
printf 'violations=%s\n' "$violations"
} >> "$report_index"

printf 'sarif_count=%s\n' "$sarif_count" >> "$GITHUB_OUTPUT"
printf 'invalid_sarif=%s\n' "$invalid_sarif" >> "$GITHUB_OUTPUT"
printf 'violations=%s\n' "$violations" >> "$GITHUB_OUTPUT"

- name: Install SARIF tools
if: ${{ always() && hashFiles('codeql-sarif/**/*.sarif') != '' }}
run: python -m pip install sarif-tools

- name: Generate CodeQL HTML report
id: html-report
if: ${{ always() && hashFiles('codeql-sarif/**/*.sarif') != '' }}
shell: bash
run: |
set -euo pipefail

html_dir="codeql-html-report"
rm -rf "$html_dir"
mkdir -p "$html_dir"

html_count=0
while IFS= read -r -d '' sarif_file; do
sarif html "$sarif_file" --output "$html_dir"
html_count=$((html_count + 1))
printf '%s -> %s/\n' "$sarif_file" "$html_dir"
done < <(find codeql-sarif -type f -name '*.sarif' -print0)

index_file="$html_dir/reports.html"
{
printf '<!doctype html>\n'
printf '<html lang="en">\n'
printf '<head><meta charset="utf-8"><title>CodeQL HTML Reports</title></head>\n'
printf '<body>\n'
printf '<h1>CodeQL HTML Reports - %s</h1>\n' '${{ matrix.language }}'
printf '<ul>\n'
while IFS= read -r -d '' html_file; do
link="${html_file#$html_dir/}"
printf '<li><a href="%s">%s</a></li>\n' "$link" "$link"
done < <(find "$html_dir" -maxdepth 1 -type f -name '*.html' ! -name 'reports.html' -print0 | sort -z)
printf '</ul>\n'
printf '</body>\n'
printf '</html>\n'
} > "$index_file"

if [ -n "${GITHUB_STEP_SUMMARY:-}" ]; then
{
printf '## CodeQL HTML report\n\n'
printf '| Metric | Result |\n'
printf '|------|------|\n'
printf '| Language | %s |\n' '${{ matrix.language }}'
printf '| HTML files | %s |\n' "$html_count"
printf '| Artifact | codeql-full-html-%s |\n' '${{ matrix.language }}'
} >> "$GITHUB_STEP_SUMMARY"
fi

printf 'html_count=%s\n' "$html_count" >> "$GITHUB_OUTPUT"

- name: Upload CodeQL SARIF report
if: always()
uses: actions/upload-artifact@v7
with:
name: codeql-full-sarif-${{ matrix.language }}
path: codeql-sarif
if-no-files-found: error
retention-days: 30

- name: Upload CodeQL HTML report
if: ${{ always() && hashFiles('codeql-html-report/**/*.html') != '' }}
uses: actions/upload-artifact@v7
with:
name: codeql-full-html-${{ matrix.language }}
path: codeql-html-report
if-no-files-found: error
retention-days: 30

- name: Check CodeQL findings
if: always()
shell: bash
env:
SARIF_COUNT: ${{ steps.sarif-summary.outputs.sarif_count }}
INVALID_SARIF: ${{ steps.sarif-summary.outputs.invalid_sarif }}
VIOLATIONS: ${{ steps.sarif-summary.outputs.violations }}
run: |
sarif_count="${SARIF_COUNT:-0}"
invalid_sarif="${INVALID_SARIF:-0}"
violations="${VIOLATIONS:-0}"

if [[ "$sarif_count" -eq 0 ]]; then
echo "::error::CodeQL did not produce a SARIF report."
exit 1
fi

if [[ "$invalid_sarif" -ne 0 ]]; then
echo "::error::CodeQL produced $invalid_sarif invalid SARIF report(s)."
exit 1
fi

if [[ "$violations" -ne 0 ]]; then
echo "::error::CodeQL found $violations result(s)."
exit 1
fi

echo "CodeQL found no results."
Loading
Loading