Skip to content

Commit e141664

Browse files
committed
CI: fix load-test port, security-scan TruffleHog/dependency-check, document NVD_API_KEY
- load-test: set PORT=8000 so backend listens where curl/k6 expect - security-scan: resolve base SHA for TruffleHog (fix BASE==HEAD on schedule/dispatch) - security-scan: use job-local dependency-check data dir to avoid H2/MVStore corruption - backend: dependencyCheck data.directory from property or RUNNER_TEMP/buildDir - SETUP.md: add NVD_API_KEY secret instructions for dependency-check
1 parent 3c4b1bf commit e141664

4 files changed

Lines changed: 31 additions & 4 deletions

File tree

.github/SETUP.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ docker run -it -p 18000:18000 ghcr.io/maxluxs/flagent:latest
8484
2. Нажмите **New repository secret**
8585
3. Добавьте необходимые секреты (например, API ключи для интеграций)
8686

87+
### NVD_API_KEY (для Security Scan — Dependency Check)
88+
89+
Для стабильной работы шага **Dependency Vulnerability Scan** в workflow `security-scan.yml` добавьте секрет **NVD_API_KEY**:
90+
91+
- **Name:** `NVD_API_KEY`
92+
- **Value:** бесплатный API-ключ с [NVD — Request an API Key](https://nvd.nist.gov/developers/request-an-api-key)
93+
94+
Без ключа запросы к NVD часто получают 403/rate limit, сканирование долго ретраится и может падать. С ключом обновление базы CVE быстрее и стабильнее.
95+
8796
## Структура workflows
8897

8998
- **`.github/workflows/ci.yml`** - Основной CI: тесты, сборка, покрытие кода

.github/workflows/load-test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868

6969
- name: Start Flagent Server
7070
env:
71+
PORT: 8000
7172
FLAGENT_DB_DBDRIVER: postgresql
7273
FLAGENT_DB_DBCONNECTIONSTR: postgresql://flagent:flagent@localhost:5432/flagent
7374
run: |

.github/workflows/security-scan.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Gradle Dependency Check
3131
env:
3232
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
33-
run: ./gradlew :backend:dependencyCheckAnalyze
33+
run: ./gradlew :backend:dependencyCheckAnalyze -PdependencyCheck.dataDirectory=$RUNNER_TEMP/dependency-check-data
3434

3535
- name: Upload Dependency Check Results
3636
if: always()
@@ -47,13 +47,25 @@ jobs:
4747
with:
4848
fetch-depth: 0
4949

50-
# On push use event.before so BASE != HEAD; on PR use PR base/head
50+
- name: Resolve base SHA
51+
id: resolve_base
52+
run: |
53+
if [ -n "${{ github.event.pull_request.base.sha }}" ]; then
54+
echo "base=${{ github.event.pull_request.base.sha }}" >> "$GITHUB_OUTPUT"
55+
elif [ -n "${{ github.event.before }}" ] && [ "${{ github.event.before }}" != "0000000000000000000000000000000000000000" ]; then
56+
echo "base=${{ github.event.before }}" >> "$GITHUB_OUTPUT"
57+
else
58+
BASE=$(git rev-parse HEAD^ 2>/dev/null || true)
59+
echo "base=${BASE:-${{ github.sha }}}" >> "$GITHUB_OUTPUT"
60+
fi
61+
5162
- name: TruffleHog Scan
63+
if: steps.resolve_base.outputs.base != github.sha
5264
uses: trufflesecurity/trufflehog@main
5365
with:
5466
path: ./
55-
base: ${{ github.event.pull_request.base.sha || github.event.before || github.event.repository.default_branch }}
56-
head: ${{ github.event.pull_request.head.sha || github.sha }}
67+
base: ${{ steps.resolve_base.outputs.base }}
68+
head: ${{ github.sha }}
5769

5870
container-scan:
5971
name: Container Image Scan

backend/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ dependencyCheck {
1414
failBuildOnCVSS = 11f // Don't fail on CVSS, only report
1515
failOnError = false // Don't fail when NVD is unreachable (403, etc.)
1616
formats = listOf("HTML", "JSON")
17+
val dataDir = project.findProperty("dependencyCheck.dataDirectory")?.toString()
18+
?: "${System.getenv("RUNNER_TEMP") ?: layout.buildDirectory.get().asFile}/dependency-check-data"
19+
data.directory.set(dataDir)
1720
}
1821

1922
java {
@@ -66,6 +69,8 @@ dependencies {
6669

6770
// Messaging
6871
implementation(libs.bundles.messaging)
72+
// Override transitive lz4-java (kafka-clients pulls org.lz4:1.8.0); root build substitutes with at.yawk.lz4 fork
73+
implementation(libs.lz4.java)
6974

7075
// JWT (JJWT)
7176
implementation(libs.jjwt.api)

0 commit comments

Comments
 (0)