Skip to content

Commit d5b7334

Browse files
Merge pull request #14 from hyperpolymath/cleanup/registry-readiness
security: standardize secret scanning on TruffleHog
2 parents c997355 + 5826d5a commit d5b7334

45 files changed

Lines changed: 1351 additions & 139 deletions

Some content is hidden

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

.claude/CLAUDE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
<!--
2+
SPDX-License-Identifier: MPL-2.0
3+
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
4+
-->
15
# Skein.jl — Project Instructions
26

37
## Overview

.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/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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

.github/workflows/casket-pages.yml

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,33 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: GitHub Pages
3-
43
on:
54
push:
65
branches: [main, master]
76
workflow_dispatch:
8-
97
permissions:
108
contents: read
119
pages: write
1210
id-token: write
13-
1411
concurrency:
1512
group: "pages"
1613
cancel-in-progress: false
17-
1814
jobs:
1915
build:
2016
runs-on: ubuntu-latest
17+
timeout-minutes: 15
2118
steps:
2219
- name: Checkout
2320
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
24-
2521
- name: Checkout casket-ssg
2622
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
2723
with:
2824
repository: hyperpolymath/casket-ssg
2925
path: .casket-ssg
30-
3126
- name: Setup GHCup
3227
uses: haskell-actions/setup@ec49483bfc012387b227434aba94f59a6ecd0900 # v2
3328
with:
3429
ghc-version: '9.8.2'
3530
cabal-version: '3.10'
36-
3731
- name: Cache Cabal
3832
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
3933
with:
@@ -42,11 +36,9 @@ jobs:
4236
~/.cabal/store
4337
.casket-ssg/dist-newstyle
4438
key: ${{ runner.os }}-casket-${{ hashFiles('.casket-ssg/casket-ssg.cabal') }}
45-
4639
- name: Build casket-ssg
4740
working-directory: .casket-ssg
4841
run: cabal build
49-
5042
- name: Prepare site source
5143
shell: bash
5244
run: |
@@ -89,26 +81,23 @@ jobs:
8981
echo "Project-specific site content can be added later under site/."
9082
} > .site-src/index.md
9183
fi
92-
9384
- name: Build site
9485
run: |
9586
mkdir -p _site
9687
cd .casket-ssg && cabal run casket-ssg -- build ../.site-src ../_site
9788
touch ../_site/.nojekyll
98-
9989
- name: Setup Pages
10090
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
101-
10291
- name: Upload artifact
10392
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
10493
with:
10594
path: '_site'
106-
10795
deploy:
10896
environment:
10997
name: github-pages
11098
url: ${{ steps.deployment.outputs.page_url }}
11199
runs-on: ubuntu-latest
100+
timeout-minutes: 15
112101
needs: build
113102
steps:
114103
- name: Deploy to GitHub Pages

.github/workflows/ci.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,19 @@
22
name: CI
33
permissions:
44
contents: read
5-
65
on:
76
push:
87
branches: [main]
98
pull_request:
109
branches: [main]
11-
1210
concurrency:
1311
group: ${{ github.workflow }}-${{ github.ref }}
1412
cancel-in-progress: true
15-
1613
jobs:
1714
test:
1815
name: Julia ${{ matrix.julia-version }} - ${{ matrix.os }}
1916
runs-on: ${{ matrix.os }}
17+
timeout-minutes: 15
2018
strategy:
2119
fail-fast: false
2220
matrix:
@@ -25,15 +23,11 @@ jobs:
2523
include:
2624
- julia-version: '1.11'
2725
os: macos-latest
28-
2926
steps:
3027
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
31-
3228
- uses: julia-actions/setup-julia@4c0cb0fce8556fdb04a90347310e5db8b1f98fb9 # v2
3329
with:
3430
version: ${{ matrix.julia-version }}
35-
3631
- uses: julia-actions/cache@e97f6fc1a6e21c82253c85e269be7340376aa425 # v2
37-
3832
- name: Install, build, test
3933
run: julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.build(); Pkg.test()'

.github/workflows/governance.yml

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

1313
name: Governance
14-
1514
on:
1615
push:
1716
branches: [main, master]
@@ -28,7 +27,7 @@ concurrency:
2827

2928
permissions:
3029
contents: read
31-
3230
jobs:
3331
governance:
34-
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@main
32+
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613
33+
timeout-minutes: 10
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
name: Guix/Nix Package Policy
3+
on: [push, pull_request]
4+
permissions:
5+
contents: read
6+
jobs:
7+
check:
8+
runs-on: ubuntu-latest
9+
timeout-minutes: 15
10+
permissions:
11+
contents: read
12+
steps:
13+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
14+
- name: Enforce Guix primary / Nix fallback
15+
run: |
16+
# Check for package manager files
17+
HAS_GUIX=$(find . -name "*.scm" -o -name ".guix-channel" -o -name "guix.scm" 2>/dev/null | head -1)
18+
HAS_NIX=$(find . -name "*.nix" 2>/dev/null | head -1)
19+
20+
# Block new package-lock.json, yarn.lock, Gemfile.lock, etc.
21+
NEW_LOCKS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E 'package-lock\.json|yarn\.lock|Gemfile\.lock|Pipfile\.lock|poetry\.lock|cargo\.lock' || true)
22+
if [ -n "$NEW_LOCKS" ]; then
23+
echo "⚠️ Lock files detected. Prefer Guix manifests for reproducibility."
24+
fi
25+
26+
# Prefer Guix, fallback to Nix
27+
if [ -n "$HAS_GUIX" ]; then
28+
echo "✅ Guix package management detected (primary)"
29+
elif [ -n "$HAS_NIX" ]; then
30+
echo "✅ Nix package management detected (fallback)"
31+
else
32+
echo "ℹ️ Consider adding guix.scm or flake.nix for reproducible builds"
33+
fi
34+
35+
echo "✅ Package policy check passed"

0 commit comments

Comments
 (0)