diff --git a/.github/workflows/nightly-security-audit.yml b/.github/workflows/nightly-security-audit.yml new file mode 100644 index 00000000..53814fdd --- /dev/null +++ b/.github/workflows/nightly-security-audit.yml @@ -0,0 +1,76 @@ +name: Nightly Security & Mutation Audit + +on: + schedule: + # Triggers every single night at 02:00 UTC + - cron: '0 2 * * *' + workflow_dispatch: # Allows manual trigger for verification + +permissions: + contents: write + +jobs: + audit: + name: Run Security and Mutation Suite + runs-on: ubuntu-latest + + steps: + - name: Checkout Code Repository + uses: actions/checkout@v4 + + - name: Install Rust Toolchain (Nightly) + uses: dtolnay/rust-toolchain@nightly + + - name: Cache Cargo Dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-nightly-${{ hashFiles('**/Cargo.lock') }} + + - name: Install Utility Tooling Engines + run: | + cargo install cargo-deny --locked || true + cargo install cargo-audit --locked || true + cargo install cargo-mutants --locked || true + + - name: Initialize or Clear Audit Log File + run: | + echo "# 🛡️ Automated Security & Mutation Audit Log" > AUDIT_LOG.md + echo "Generated on: $(date -u)" >> AUDIT_LOG.md + echo "---" >> AUDIT_LOG.md + + - name: Execute Cargo Deny Checks + run: | + echo "## 📦 Dependency License & Advisory Checks (cargo-deny)" >> AUDIT_LOG.md + echo "\`\`\`text" >> AUDIT_LOG.md + cargo deny check licenses bans sources 2>&1 >> AUDIT_LOG.md || echo "cargo-deny failed or flagged warnings" >> AUDIT_LOG.md + echo "\`\`\`" >> AUDIT_LOG.md + echo "---" >> AUDIT_LOG.md + + - name: Execute Cargo Audit Sweeps + run: | + echo "## 🔍 Vulnerability Advisory Scans (cargo-audit)" >> AUDIT_LOG.md + echo "\`\`\`text" >> AUDIT_LOG.md + cargo audit 2>&1 >> AUDIT_LOG.md || echo "cargo-audit detected critical vulnerability markers" >> AUDIT_LOG.md + echo "\`\`\`" >> AUDIT_LOG.md + echo "---" >> AUDIT_LOG.md + + - name: Execute Cargo Mutants Quality Runs + run: | + echo "## 🧬 Mutation Testing Resilience Analytics (cargo-mutants)" >> AUDIT_LOG.md + echo "\`\`\`text" >> AUDIT_LOG.md + cargo mutants --all-features 2>&1 >> AUDIT_LOG.md || echo "cargo-mutants flagged missed mutant structures" >> AUDIT_LOG.md + echo "\`\`\`" >> AUDIT_LOG.md + + - name: Commit and Push Security Results to Repo + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git add AUDIT_LOG.md + git diff-index --quiet HEAD || git commit -m "chore(ci): update nightly AUDIT_LOG.md validation tracking profiles [skip ci]" + git push origin HEAD:${{ github.ref }} \ No newline at end of file diff --git a/.github/workflows/smoke-ci.yml b/.github/workflows/smoke-ci.yml new file mode 100644 index 00000000..4010891e --- /dev/null +++ b/.github/workflows/smoke-ci.yml @@ -0,0 +1,46 @@ +name: Smoke CI Gate + +on: + push: + branches: [ main, master, develop ] + pull_request: + branches: [ main, master, develop ] + +permissions: + contents: read + +jobs: + smoke-test: + name: Code Quality & Testing Suite + runs-on: ubuntu-latest + + steps: + - name: Checkout Code Repository + uses: actions/checkout@v4 + + - name: Install Stable Rust Toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + + - name: Cache Cargo Build Artifacts + uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-smoke-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo-smoke- + + - name: Check Code Formatting Style (fmt) + run: cargo fmt --check + + - name: Execute Static Analysis Compiler Lints (clippy) + run: cargo clippy --all-targets --all-features -- -D warnings + + - name: Run Core Verification Tests (test) + run: cargo test --all-features --workspace \ No newline at end of file diff --git a/cv-project b/cv-project new file mode 160000 index 00000000..a3e7ec5d --- /dev/null +++ b/cv-project @@ -0,0 +1 @@ +Subproject commit a3e7ec5d44e489119381ac12aeedaea7ad084e4c diff --git a/deny.toml b/deny.toml index 2c09b63b..0c0409a6 100644 --- a/deny.toml +++ b/deny.toml @@ -14,3 +14,17 @@ unknown-git = "warn" allow-registry = ["https://github.com/rust-lang/crates.io-index"] allow-git = [] +[licenses] +unlicensed = "deny" +allow = [ + "MIT", + "Apache-2.0", + "BSD-3-Clause", +] + +[bans] +multiple-versions = "warn" + +[sources] +unknown-registry = "deny" +unknown-git = "deny" \ No newline at end of file diff --git a/project_modern_ui_ux_gpt3 b/project_modern_ui_ux_gpt3 new file mode 160000 index 00000000..a201ed1b --- /dev/null +++ b/project_modern_ui_ux_gpt3 @@ -0,0 +1 @@ +Subproject commit a201ed1b248d94cc22110591b7f4ef61c456f0c8