Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5b951c5
Add GitHub Actions workflow for release automation
Splatcrafter Jan 11, 2026
f68bf47
Simplify `release.yml` by consolidating environment variable setups a…
Splatcrafter Jan 11, 2026
9c7d0ad
Add CI workflow for build, test, quality analysis, and dependency checks
Splatcrafter Jan 11, 2026
6c087fd
Add QA profiles, static analysis, code coverage, and SBOM generation …
Splatcrafter Jan 11, 2026
05ae29a
Update CI to enhance OWASP Dependency Check and test reporting
Splatcrafter Jan 11, 2026
dcdc8ef
Update SECURITY.md with extended security practices, release artifact…
Splatcrafter Jan 11, 2026
5ac3d8a
Add GitHub Actions workflow for dependency review on PRs
Splatcrafter Jan 11, 2026
8668b86
Add CodeQL Security Analysis workflow
Splatcrafter Jan 11, 2026
55a204c
Refactor CodeQL workflow for simplified configuration and enhanced bu…
Splatcrafter Jan 11, 2026
2944350
Configure Dependabot for Maven dependencies and GitHub Actions updates
Splatcrafter Jan 11, 2026
ff98e52
Add OWASP Dependency-Check suppression configuration file
Splatcrafter Jan 11, 2026
150773e
Add security.txt to define security contact and policy information
Splatcrafter Jan 11, 2026
81ea5cf
Add Checkstyle configuration for code quality enforcement
Splatcrafter Jan 11, 2026
e7521c4
Add PGP public key for release artifact signing
Splatcrafter Jan 11, 2026
3ccc9a9
Update SECURITY.md with release signing key details and enhance Check…
Splatcrafter Jan 11, 2026
45dc08e
Simplify Checkstyle configuration by removing redundant modules
Splatcrafter Jan 11, 2026
7c9b73a
Normalize Javadoc line breaks across multiple classes for consistency.
Splatcrafter Jan 11, 2026
6ef8e2a
Parameterize JaCoCo coverage thresholds for flexibility across modules.
Splatcrafter Jan 11, 2026
868e8b7
Add unit tests for core functionality
Splatcrafter Jan 11, 2026
92aba11
Extend `.well-known/security.txt` expiration date to 2035
Splatcrafter Jan 12, 2026
5e14287
Increase `LineLength` check limit from 150 to 200 in `checkstyle.xml`.
Splatcrafter Jan 12, 2026
36c1194
Add SpotBugs annotations for improved static analysis and refine null…
Splatcrafter Jan 12, 2026
d2254e5
Add SpotBugs annotations to address false positives and enhance stati…
Splatcrafter Jan 12, 2026
ebd0697
Refine null-checking logic, improve defensive copying and constructor…
Splatcrafter Jan 12, 2026
d730cfb
Increase `LineLength` check limit from 200 to 250 in `checkstyle.xml`.
Splatcrafter Jan 12, 2026
0e202e7
Add unit tests for `AssertingContext`, `DataResultAssert`, and `Recor…
Splatcrafter Jan 12, 2026
bb14632
Update Dependency-Check cache path in GitHub Actions workflow for acc…
Splatcrafter Jan 12, 2026
ca45b6e
Remove JSON report from Dependency-Check artifact upload in GitHub Ac…
Splatcrafter Jan 12, 2026
760b2f6
Add SpotBugs annotations, improve null-check handling, and introduce …
Splatcrafter Jan 12, 2026
e9f0a98
Remove redundant variable assignment in `ValidateCommand` initialization
Splatcrafter Jan 12, 2026
3b736a4
Add SpotBugs annotations for improved static analysis across multiple…
Splatcrafter Jan 12, 2026
3cc54e0
Update Maven goal in CI workflow to `install` with `qa` profile for c…
Splatcrafter Jan 12, 2026
4ad3226
Simplify test report paths in CI workflow.
Splatcrafter Jan 12, 2026
034b403
Remove denied licenses configuration from dependency-review workflow.
Splatcrafter Jan 12, 2026
94ce756
Update dependency-review workflow to deny GPL and AGPL licenses
Splatcrafter Jan 12, 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
72 changes: 72 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
version: 2
updates:
# Maven dependencies
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
timezone: "Europe/Berlin"
open-pull-requests-limit: 10
reviewers:
- "aether-framework/maintainers"
labels:
- "dependencies"
- "java"
commit-message:
prefix: "deps"
include: "scope"
groups:
jackson:
patterns:
- "com.fasterxml.jackson*"
update-types:
- "minor"
- "patch"
spring:
patterns:
- "org.springframework*"
update-types:
- "minor"
- "patch"
testing:
patterns:
- "org.junit*"
- "org.assertj*"
update-types:
- "minor"
- "patch"
maven-plugins:
patterns:
- "org.apache.maven.plugins:maven-*"
- "org.codehaus.mojo:*"
update-types:
- "minor"
- "patch"
build-plugins:
patterns:
- "org.sonatype.central:*"
- "org.owasp:*"
- "org.cyclonedx:*"
- "org.jacoco:*"
- "com.github.spotbugs:*"
update-types:
- "minor"
- "patch"

# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "06:00"
timezone: "Europe/Berlin"
open-pull-requests-limit: 5
labels:
- "dependencies"
- "github-actions"
commit-message:
prefix: "ci"
include: "scope"
148 changes: 148 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
name: CI

on:
push:
branches: [ main, develop, 'feature/**' ]
pull_request:
branches: [ main, develop ]

permissions:
contents: read
checks: write
pull-requests: write

jobs:
build:
name: Build & Test (Java ${{ matrix.java }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: [ '17', '21' ]

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'

- name: Build and test with Maven
run: mvn -B clean verify -Pqa -Ddependency-check.skip=true

- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-java-${{ matrix.java }}
path: |
**/target/surefire-reports/
**/target/failsafe-reports/
retention-days: 7

- name: Upload coverage report
uses: actions/upload-artifact@v4
if: matrix.java == '21'
with:
name: coverage-report
path: |
**/target/site/jacoco/
**/target/jacoco.exec
retention-days: 7

- name: Publish Test Report
uses: mikepenz/action-junit-report@v4
if: always()
with:
report_paths: '**/target/*-reports/TEST-*.xml'
check_name: Test Report (Java ${{ matrix.java }})

quality:
name: Code Quality Analysis
runs-on: ubuntu-latest
needs: build

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven'

- name: Install artifacts for analysis
run: mvn -B -Ddependency-check.skip=true clean install -Pqa -DskipTests

- name: Run SpotBugs analysis
run: mvn -B spotbugs:check -Pqa -Ddependency-check.skip=true
continue-on-error: true

- name: Run Checkstyle analysis
run: mvn -B checkstyle:check -Pqa -Ddependency-check.skip=true
continue-on-error: true

- name: Upload SpotBugs report
uses: actions/upload-artifact@v4
if: always()
with:
name: spotbugs-report
path: '**/target/spotbugsXml.xml'
retention-days: 7

- name: Upload Checkstyle report
uses: actions/upload-artifact@v4
if: always()
with:
name: checkstyle-report
path: '**/target/checkstyle-result.xml'
retention-days: 7

dependency-check:
name: OWASP Dependency Check
runs-on: ubuntu-latest
needs: build
env:
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven'

- name: Cache Dependency-Check DB
uses: actions/cache@v4
with:
path: ~/.m2/repository/org/owasp/dependency-check-data
key: depcheck-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
restore-keys: |
depcheck-${{ runner.os }}-

- name: Run OWASP Dependency Check
run: mvn -B dependency-check:aggregate -Pqa
continue-on-error: true

- name: Upload Dependency Check report
uses: actions/upload-artifact@v4
if: always()
with:
name: dependency-check-report
path: |
target/dependency-check-report.html
retention-days: 30
47 changes: 47 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: CodeQL Security Analysis

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
schedule:
- cron: '0 0 * * 1' # Monday 00:00 UTC

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

jobs:
analyze:
name: Analyze (java-kotlin)
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: 'maven'

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: java-kotlin
build-mode: manual
queries: security-extended,security-and-quality

- name: Build with Maven
run: mvn -B clean compile -DskipTests

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:java-kotlin"
28 changes: 28 additions & 0 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Dependency Review

on:
pull_request:
branches: [ main, develop ]

permissions:
contents: read
pull-requests: write

jobs:
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Dependency Review
uses: actions/dependency-review-action@v4
with:
fail-on-severity: high
deny-licenses: GPL-3.0-only, GPL-3.0-or-later, AGPL-3.0-only, AGPL-3.0-or-later
comment-summary-in-pr: always
warn-only: false
Loading
Loading