Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions .devcontainer/Containerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Dev Container image for {{PROJECT_NAME}}
# Dev Container image for cicd-squabbler
# Base: Chainguard Wolfi (minimal, supply-chain-secure)
# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile .
# Build: podman build -t cicd-squabbler-dev -f .devcontainer/Containerfile .
# `:latest` suits a dev container (rebuilt daily); pin by digest
# (...@sha256:<digest>) if you need a reproducible dev environment.

Expand All @@ -26,7 +26,7 @@ RUN groupadd -g 1000 nonroot || true \
&& useradd -m -u 1000 -g 1000 -s /bin/bash nonroot || true

# Set workspace directory
WORKDIR /workspaces/{{PROJECT_NAME}}
WORKDIR /workspaces/cicd-squabbler

# Default shell
ENV SHELL=/bin/bash
Expand Down
7 changes: 5 additions & 2 deletions .devcontainer/README.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Dev Container Usage
:author: {{AUTHOR}} <{{AUTHOR_EMAIL}}>
:author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

== Overview

Expand All @@ -25,4 +25,7 @@ This dev container uses `cgr.dev/chainguard/wolfi-base` with git, curl, bash, an

== Customization

Replace `{{PROJECT_NAME}}` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch.
The placeholders this template shipped with are rendered for
`cicd-squabbler`. To customize further, adjust the base image or the package
list in `Containerfile` and the features in `devcontainer.json`. Run
`just deps` to verify the environment after first launch.
6 changes: 3 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
//
// Dev Container configuration for {{PROJECT_NAME}}
// Dev Container configuration for cicd-squabbler
// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod
// Container runtime: Podman (recommended) or any OCI-compliant runtime
{
"name": "{{PROJECT_NAME}}",
"name": "cicd-squabbler",

"build": {
"dockerfile": "Containerfile",
Expand Down
2 changes: 1 addition & 1 deletion .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ if has guix && [ -f guix.scm ]; then
fi

# Project environment variables
export PROJECT_NAME="{{PROJECT_NAME}}"
export PROJECT_NAME="cicd-squabbler"
export RSR_TIER="infrastructure"
# Add non-secret project env vars above (e.g. DATABASE_URL, service endpoints).
# Real secrets belong in .env (gitignored) — never commit them to .envrc.
Expand Down
2 changes: 1 addition & 1 deletion .github/.mailmap
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{AUTHOR}} <{{AUTHOR_EMAIL}}> <{{AUTHOR_EMAIL_ALT}}>
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
37 changes: 9 additions & 28 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,6 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Code of Conduct

<!--
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all {{PLACEHOLDER}} values:
cicd-squabbler - Your project name
hyperpolymath - GitHub/GitLab username or org
cicd-squabbler - Repository name
{{CONDUCT_EMAIL}} - Email for conduct reports
{{CONDUCT_TEAM}} - Name of conduct team/committee
{{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours)
{{CURRENT_YEAR}} - Current year

Review and customise:
- Adjust enforcement ladder for your community size
- Add/remove examples based on your context
- Ensure contact methods work for your team
============================================================================
-->

## Our Pledge

Expand Down Expand Up @@ -140,7 +121,7 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

| Method | Details | Best For |
|--------|---------|----------|
| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters |
| **Email** | j.d.a.jewell@open.ac.uk | Detailed reports, sensitive matters |
| **Private Message** | Contact any maintainer directly | Quick questions, minor issues |
| **Anonymous Form** | [Link to form if available] | When you need anonymity |

Expand All @@ -156,8 +137,8 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

**What Happens Next**

1. You will receive acknowledgment within **{{RESPONSE_TIME}}**
2. The {{CONDUCT_TEAM}} will review the report
1. You will receive acknowledgment within **48 hours**
2. The the project maintainers will review the report
3. We may ask for additional information
4. We will determine appropriate action
5. We will inform you of the outcome (respecting others' privacy)
Expand All @@ -173,7 +154,7 @@ All reports will be handled with discretion:

### Conflicts of Interest

If a {{CONDUCT_TEAM}} member is involved in an incident:
If a the project maintainers member is involved in an incident:

- They will recuse themselves from the process
- Another maintainer or external party will handle the report
Expand All @@ -183,7 +164,7 @@ If a {{CONDUCT_TEAM}} member is involved in an incident:

## Enforcement Guidelines

The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences:
The the project maintainers will follow these guidelines in determining consequences:

### 1. Correction

Expand Down Expand Up @@ -235,13 +216,13 @@ For contributors with elevated access (Perimeter 2 or 1):
If you believe an enforcement decision was made in error:

1. **Wait 7 days** after the decision (cooling-off period)
2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]"
2. **Email** j.d.a.jewell@open.ac.uk with subject line "Appeal: [Original Report ID]"
3. **Explain** why you believe the decision should be reconsidered
4. **Provide** any new information not previously available

**Appeals Process**

- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original
- Appeals are reviewed by a different the project maintainers member than the original
- You will receive a response within 14 days
- The appeals decision is final
- You may only appeal once per incident
Expand Down Expand Up @@ -315,7 +296,7 @@ We thank these communities for their leadership in creating welcoming spaces.
If you have questions about this Code of Conduct:

- Open a [Discussion](https://github.com/hyperpolymath/cicd-squabbler/discussions) (for general questions)
- Email {{CONDUCT_EMAIL}} (for private questions)
- Email j.d.a.jewell@open.ac.uk (for private questions)
- Contact any maintainer directly

---
Expand All @@ -328,4 +309,4 @@ We're all here because we care about this project. Let's make it a place where e

---

<sub>Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1</sub>
<sub>Last updated: 2026 · Based on Contributor Covenant 2.1</sub>
2 changes: 1 addition & 1 deletion .github/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Format: Name <email> (role)
# Replace placeholders with actual maintainer information.

{{AUTHOR}} <{{AUTHOR_EMAIL}}> (Lead Maintainer)
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> (Lead Maintainer)

# Additional maintainers:
# Name <email> (role)
4 changes: 2 additions & 2 deletions .github/SUPPORT
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

For questions, help, and community discussion:

- GitHub Discussions: https://github.com/{{OWNER}}/{{REPO}}/discussions
- GitHub Issues: https://github.com/{{OWNER}}/{{REPO}}/issues
- GitHub Discussions: https://github.com/hyperpolymath/cicd-squabbler/discussions
- GitHub Issues: https://github.com/hyperpolymath/cicd-squabbler/issues
- Documentation: See README.adoc in the root directory.
3 changes: 1 addition & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
<!-- Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -->
<!-- Authoritative source: docs/AI-CONVENTIONS.md -->

# Copilot Instructions
Expand All @@ -16,7 +15,7 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

- SPDX: `MPL-2.0` on all new files.
- Never use AGPL-3.0.
- Copyright: `{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>`
- Copyright: `Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>`

## Code Style

Expand Down
19 changes: 12 additions & 7 deletions .github/workflows/actions.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ workflows:
- 'actions/checkout@v7.0.1'
'.github/workflows/dependabot-automerge.yml':
- 'dependabot/fetch-metadata@v3.1.0'
- 'step-security/harden-runner@v2.16.0'
'.github/workflows/dogfood-gate.yml':
- 'actions/checkout@v7.0.1'
'.github/workflows/e2e.yml':
Expand Down Expand Up @@ -57,7 +56,8 @@ workflows:
- 'hyperpolymath/standards@8f2ee50841e216cd8c192eeb68953118190f105c'
'.github/workflows/security-policy.yml':
- 'actions/checkout@v7.0.1'
'.github/workflows/standards-pipeline.yml': []
'.github/workflows/standards-pipeline.yml':
- 'hyperpolymath/standards@ed5e3f651305dd1ce0d0b5d2d08b97a963634632'
'.github/workflows/static-analysis-gate.yml':
- 'actions/checkout@v7.0.1'
- 'actions/download-artifact@v8.0.1'
Expand Down Expand Up @@ -218,6 +218,16 @@ dependencies:
- 'erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124'
- 'github/codeql-action@cdf488f595d80d6e07e03d4674febd5ab45fa938'
- 'ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc'
'hyperpolymath/standards@ed5e3f651305dd1ce0d0b5d2d08b97a963634632':
ref: 'ed5e3f651305dd1ce0d0b5d2d08b97a963634632'
commit: 'sha1-ed5e3f651305dd1ce0d0b5d2d08b97a963634632'
owner_id: 6759885
repo_id: 1116521501
uses:
- 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1'
- 'haskell-actions/setup@6037f33647c3f17758a2356c80fc4a53d7e0685d'
- 'hyperpolymath/standards@571cc734cd69fb846032ec77a662aa8ee4fc32cd'
- 'oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6'
'ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc':
ref: '2d1146689b8cda280b9bc96326124645441f03bc'
commit: 'sha1-2d1146689b8cda280b9bc96326124645441f03bc'
Expand All @@ -233,11 +243,6 @@ dependencies:
commit: 'sha1-efb35369e0ad2afab669f228072c1b0d510eae64'
owner_id: 2242
repo_id: 204253808
'step-security/harden-runner@v2.16.0':
ref: 'v2.16.0'
commit: 'sha1-fa2e9d605c4eeb9fcad4c99c224cee0c6c7f3594'
owner_id: 88700172
repo_id: 422287306
'swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6':
ref: '6323deb102c322ba6fcbdcafc7e3dddab59af2b6'
commit: 'sha1-6323deb102c322ba6fcbdcafc7e3dddab59af2b6'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: CodeQL Security Analysis
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/container-build.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: container build
on:
pull_request:
Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/dependabot-automerge.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
#
# dependabot-automerge.yml — enable GitHub's native auto-merge on
# Dependabot pull requests that match a declared severity / ecosystem
Expand Down Expand Up @@ -57,10 +57,17 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Harden Runner
uses: step-security/harden-runner@v2.16.0
with:
egress-policy: audit
# RECORDED DECISION (issue #105, 2026-09-26): this job previously ran
# `step-security/harden-runner` in egress-AUDIT mode. That action is not
# on the estate allowlist (hyperpolymath/standards
# rhodium-standard-repositories/actions-allowlist/allowed-actions.json),
# so the governance Allowlist Preflight failed the repo on every run.
# The issue offered two resolutions: (a) allowlist it estate-wide, or
# (b) drop it here. Option (b) was taken: the step was observability
# only (audit mode enforces nothing), and an allowlist change is an
# estate decision that cannot be taken from a single repo. Reversing
# this is a one-line revert IF the estate chooses (a) and adds
# `step-security/harden-runner@*` to the allowlist.
- name: Fetch Dependabot metadata
id: meta
uses: dependabot/fetch-metadata@v3.1.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dogfood-gate.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# dogfood-gate.yml — Hyperpolymath Dogfooding Quality Gate
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# RSR Standard E2E + Aspect + Benchmark Workflow Template
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/estate-rules.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Estate Rules — enforces hyperpolymath estate-wide conventions:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/governance.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Governance

on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/guix-policy.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Guix Package Policy
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hypatia-scan.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
#
# Standalone Hypatia security scan (push / PR / weekly). This is NOT a duplicate
# of the `hypatia-scan` job in `static-analysis-gate.yml`: that job exists to
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/instant-sync.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Instant Forge Sync - Triggers propagation to all forges on push/release
name: Instant Sync
on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/label-triage.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Label Triage

# Classify newly-filed issues against the estate label taxonomy.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/labels.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Labels

# Applies the canonical estate label set from .github/labels.json.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mirror.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Mirror to Git Forges
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/openssf-compliance.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# OpenSSF Best Practices compliance gate — blocks PRs and pushes that lack
# required files or still contain unfilled placeholder tokens.
name: OpenSSF Compliance
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: GitHub Pages (Ddraig SSG)
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push-email-notify.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Dormant push-email notification. ARMED by setting the repo variable
# PUSH_EMAIL_ENABLED=true (the single on/off switch). Addresses are pre-filled;
# sending needs the org SMTP secrets (SMTP_HOST/PORT/USER/PASS). Inherited by
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
name: Code Quality
on:
push:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
#
# Release workflow — triggered by version tags (v*).
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rhodibot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
# This workflow is managed by gh actions-lock.
# rhodibot.yml — RSR compliance CANARY (report-only)
#
# Rhodibot does NOT mutate this repository. It never deletes, renames,
Expand Down
Loading