Skip to content

Commit a3ff5dd

Browse files
Merge pull request #23 from hyperpolymath/campaign-253/migrate-netstack-interface-deno
security: standardize secret scanning on TruffleHog
2 parents a7f89f5 + d56756a commit a3ff5dd

136 files changed

Lines changed: 1198 additions & 1167 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# CODEOWNERS - Define code review assignments for GitHub
3+
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
4+
5+
# Default: sole maintainer for all files
6+
* @hyperpolymath
7+
8+
# Security-sensitive files require explicit ownership
9+
SECURITY.md @hyperpolymath
10+
.github/workflows/ @hyperpolymath
11+
.machine_readable/ @hyperpolymath
12+
contractiles/ @hyperpolymath
13+
14+
# License files
15+
LICENSE @hyperpolymath
16+
LICENSES/ @hyperpolymath
17+
18+
# Configuration
19+
.gitignore @hyperpolymath
20+
.github/ @hyperpolymath
21+
22+
# Documentation
23+
README* @hyperpolymath
24+
CONTRIBUTING* @hyperpolymath
25+
CODE_OF_CONDUCT* @hyperpolymath
26+
GOVERNANCE* @hyperpolymath
27+
MAINTAINERS* @hyperpolymath
28+
CHANGELOG* @hyperpolymath
29+
ROADMAP* @hyperpolymath
30+
31+
# Build and CI
32+
Justfile @hyperpolymath
33+
Makefile @hyperpolymath
34+
*.sh @hyperpolymath

.github/copilot/coding-agent.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
mcp_servers:
2+
boj-server:
3+
command: npx
4+
args: ["-y", "@hyperpolymath/boj-server@latest"]
5+
env:
6+
BOJ_URL: http://localhost:7700

.github/workflows/boj-build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
jobs:
88
trigger-boj:
99
runs-on: ubuntu-latest
10+
timeout-minutes: 15
1011
steps:
1112
- name: Checkout
1213
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

.github/workflows/governance.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,21 @@
1111
# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing).
1212

1313
name: Governance
14-
1514
on:
1615
push:
1716
branches: [main, master]
1817
pull_request:
1918
workflow_dispatch:
20-
2119
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
2220
# updates do not pile up queued runs against the shared account-wide
2321
# Actions concurrency pool. Applied only to read-only check workflows
2422
# (no publish/mutation), so cancelling a superseded run is always safe.
2523
concurrency:
2624
group: ${{ github.workflow }}-${{ github.ref }}
2725
cancel-in-progress: true
28-
2926
permissions:
3027
contents: read
31-
3228
jobs:
3329
governance:
34-
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@main
30+
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613
31+
timeout-minutes: 10

.github/workflows/hypatia-scan.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
# See standards#191 for the reusable's purpose and design.
44

55
name: Hypatia Security Scan
6-
76
on:
87
push:
98
branches: [main, master, develop]
@@ -12,18 +11,16 @@ on:
1211
schedule:
1312
- cron: '0 0 * * 0'
1413
workflow_dispatch:
15-
1614
# Estate guardrail: cancel superseded runs so re-pushes don't pile up.
1715
concurrency:
1816
group: ${{ github.workflow }}-${{ github.ref }}
1917
cancel-in-progress: true
20-
2118
permissions:
2219
contents: read
2320
security-events: write
2421
pull-requests: write
25-
2622
jobs:
2723
hypatia:
28-
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@97df762107501909f50bb770e9bc200b6c415600
24+
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@6cd3772824e59c8c9affeab66061e25383544242
25+
timeout-minutes: 10
2926
secrets: inherit

.github/workflows/instant-sync.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Instant Forge Sync - Triggers propagation to all forges on push/release
33
name: Instant Sync
4-
54
on:
65
push:
76
branches: [main, master]
87
release:
98
types: [published]
10-
119
permissions:
1210
contents: read
13-
1411
jobs:
1512
dispatch:
1613
runs-on: ubuntu-latest
14+
timeout-minutes: 15
1715
steps:
1816
- name: Trigger Propagation
1917
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v3
@@ -28,6 +26,5 @@ jobs:
2826
"sha": "${{ github.sha }}",
2927
"forges": ""
3028
}
31-
3229
- name: Confirm
3330
run: echo "::notice::Propagation triggered for ${{ github.event.repository.name }}"

.github/workflows/mirror.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: Mirror to Git Forges
3-
43
on:
54
push:
65
branches: [main]
76
workflow_dispatch:
8-
97
permissions:
108
contents: read
11-
129
jobs:
1310
mirror:
1411
uses: hyperpolymath/standards/.github/workflows/mirror-reusable.yml@e6b2884722350515934d443daf23442f2195796f
12+
timeout-minutes: 10
1513
secrets: inherit

.github/workflows/scorecard-enforcer.yml

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Prevention workflow - runs OpenSSF Scorecard and fails on low scores
33
name: OpenSSF Scorecard Enforcer
4-
54
on:
65
push:
76
branches: [main]
87
schedule:
9-
- cron: '0 6 * * 1' # Weekly on Monday
8+
- cron: '0 6 * * 1' # Weekly on Monday
109
workflow_dispatch:
11-
1210
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1311
# updates do not pile up queued runs against the shared account-wide
1412
# Actions concurrency pool. Applied only to read-only check workflows
1513
# (no publish/mutation), so cancelling a superseded run is always safe.
1614
concurrency:
1715
group: ${{ github.workflow }}-${{ github.ref }}
1816
cancel-in-progress: true
19-
2017
permissions:
2118
contents: read
22-
2319
jobs:
2420
# The OSSF Scorecard publish endpoint enforces a hard contract: the job that
2521
# runs `ossf/scorecard-action` with `publish_results: true` must contain
@@ -33,44 +29,41 @@ jobs:
3329
# uses-only; `check-score` is the gating job that emits the error.
3430
scorecard:
3531
runs-on: ubuntu-latest
32+
timeout-minutes: 15
3633
permissions:
3734
security-events: write
38-
id-token: write # For OIDC
35+
id-token: write # For OIDC
3936
steps:
4037
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4138
with:
4239
persist-credentials: false
43-
4440
- name: Run Scorecard
4541
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
4642
with:
4743
results_file: results.sarif
4844
results_format: sarif
4945
publish_results: true
50-
5146
- name: Upload SARIF
5247
uses: github/codeql-action/upload-sarif@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4
5348
with:
5449
sarif_file: results.sarif
55-
5650
- name: Persist SARIF for downstream score-gate job
5751
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
5852
with:
5953
name: scorecard-results
6054
path: results.sarif
6155
retention-days: 1
62-
6356
check-score:
6457
needs: scorecard
6558
runs-on: ubuntu-latest
59+
timeout-minutes: 15
6660
permissions:
6761
contents: read
6862
steps:
6963
- name: Download SARIF from scorecard job
7064
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v5.0.0
7165
with:
7266
name: scorecard-results
73-
7467
- name: Check minimum score
7568
run: |
7669
SCORE=$(jq -r '.runs[0].tool.driver.properties.score // 0' results.sarif 2>/dev/null || echo "0")
@@ -84,20 +77,18 @@ jobs:
8477
echo "::error::Scorecard score $SCORE is below minimum $MIN_SCORE"
8578
exit 1
8679
fi
87-
8880
# Check specific high-priority items
8981
check-critical:
9082
runs-on: ubuntu-latest
83+
timeout-minutes: 15
9184
steps:
9285
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
93-
9486
- name: Check SECURITY.md exists
9587
run: |
9688
if [ ! -f "SECURITY.md" ]; then
9789
echo "::error::SECURITY.md is required"
9890
exit 1
9991
fi
100-
10192
- name: Check for pinned dependencies
10293
run: |
10394
# Check workflows for unpinned actions
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: Secret Scanner
3-
43
on:
54
pull_request:
65
push:
76
branches: [main]
8-
97
concurrency:
108
group: ${{ github.workflow }}-${{ github.ref }}
119
cancel-in-progress: true
12-
1310
permissions:
1411
contents: read
15-
1612
jobs:
1713
scan:
1814
uses: hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml@3e4bd4c93911750727e2e4c66dff859e00079da0
15+
timeout-minutes: 10
1916
secrets: inherit
17+
trufflehog:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
21+
with:
22+
fetch-depth: 0
23+
- name: TruffleHog Secret Scan
24+
uses: trufflesecurity/trufflehog@main
25+
with:
26+
extra_args: --only-verified --fail
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# AI Manifest for 6a2 Directory
2+
3+
## Purpose
4+
5+
This manifest declares the AI-assistant context for the 6a2 machine-readable metadata directory.
6+
7+
## Canonical Locations
8+
9+
The 6 core A2ML files MUST exist in this directory:
10+
1. AGENTIC.a2ml
11+
2. ECOSYSTEM.a2ml
12+
3. META.a2ml
13+
4. NEUROSYM.a2ml
14+
5. PLAYBOOK.a2ml
15+
6. STATE.a2ml
16+
17+
## Invariants
18+
19+
- No duplicate files in root directory
20+
- Single source of truth: this directory is authoritative
21+
- No stale metadata
22+
23+
## Protocol
24+
25+
When multiple agents may write to A2ML files concurrently:
26+
1. Read file and record git-sha-at-read in [provenance] section
27+
2. Lock by creating .lock-<FILENAME>
28+
3. Write updated file with new [provenance] metadata
29+
4. Release by removing lock file
30+
5. On conflict: re-read and retry if git-sha-at-read does not match HEAD
31+

0 commit comments

Comments
 (0)