Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,15 @@ This PR delivers strong, well-structured documentation that significantly exceed

### Summary of Deductions

| Category | Deduction | Reason |
| Category | Deduction | Reason |
| ---------------------------------- | --------- | --------------------------------------------------------------------- | --- | -------------------------------- |
| Missing troubleshooting/error docs | -5 | No guidance on common failure modes |
| Missing prerequisites | -2 | No runner/dependency requirements noted |
| Incomplete edge-case docs | -4 | maxdepth 2 limit, root-path sync naming, never-deletes implications |
| env-vars behavior mismatch | -2 | README implies compose-level injection, script does GITHUB_ENV export |
| auth-type values underdocumented | -2 | No explanation of what each auth type requires |
| Missing function docstrings | -2 | `discover_compose_files` and `export_env_vars` lack docstrings |
| Minor inline comment gaps | -1 | ` | | true`on curl,`sort -z` rationale |
| Missing troubleshooting/error docs | -5 | No guidance on common failure modes |
| Missing prerequisites | -2 | No runner/dependency requirements noted |
| Incomplete edge-case docs | -4 | maxdepth 2 limit, root-path sync naming, never-deletes implications |
| env-vars behavior mismatch | -2 | README implies compose-level injection, script does GITHUB_ENV export |
| auth-type values underdocumented | -2 | No explanation of what each auth type requires |
| Missing function docstrings | -2 | `discover_compose_files` and `export_env_vars` lack docstrings |
| Minor inline comment gaps | -1 | ` | | true`on curl,`sort -z` rationale |

## References

Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/apply-repo-settings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# This file is managed by nsheaps/.github (sync-files).
# Source: https://github.com/nsheaps/.github/blob/main/ansible/templates/.github/workflows/apply-repo-settings.yaml
# Edit-in-place will be overwritten on the next sync.
name: Apply Repo Settings

# Reads `.github/settings.yml` from THIS repo and applies the
# repository config + rulesets via the apply-repo-settings action
# (https://github.com/nsheaps/github-actions/tree/main/.github/actions/apply-repo-settings).
#
# Ephemeral, in-workflow alternative to the third-party
# repository-settings GitHub App. Runs only when invoked.
#
# Auth: reuses the org's automation App (AUTOMATION_GITHUB_APP_*) —
# same app used by sync-labels / sync-files / sync-secrets / sync-stars.
# That app must have `Administration: write` for rulesets to apply; if
# they don't, check the app's permission grants first.
#
# Triggers:
# workflow_dispatch manual, with dry-run toggle
# repository_dispatch external triggers (other workflows / curl)
# push to main when .github/settings.yml changes

on:
workflow_dispatch:
inputs:
dry-run:
description: "Render only; don't apply"
type: boolean
default: false
repository_dispatch:
types: [apply-repo-settings]
push:
branches: [main]
paths:
- '.github/settings.yml'
- '.github/workflows/apply-repo-settings.yaml'

permissions:
contents: read

concurrency:
# Serialize per-ref so a fast follow-up push waits for the in-flight run.
group: apply-repo-settings-${{ github.ref }}
cancel-in-progress: false

jobs:
apply:
name: Apply settings to this repo
runs-on: ubuntu-latest
steps:
- name: Checkout as GitHub App
id: checkout
uses: nsheaps/github-actions/.github/actions/checkout-as-app@main
with:
app-id: ${{ secrets.AUTOMATION_GITHUB_APP_ID }}
private-key: ${{ secrets.AUTOMATION_GITHUB_APP_PRIVATE_KEY }}

- name: Apply
id: apply
uses: nsheaps/github-actions/.github/actions/apply-repo-settings@main
with:
token: ${{ steps.checkout.outputs.token }}
dry-run: ${{ inputs.dry-run || false }}

- name: Show summary
if: always()
run: |
echo "Summary: ${{ steps.apply.outputs.summary }}"
2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Copyright (c) 2026 Nathan Heaps. All rights reserved.
> (https://polyformproject.org/licenses/internal-use/1.0.0), which is
> purpose-built for "use the software for internal business operations, do
> not distribute it." The one substantive adaptation is that PolyForm grants
> rights to *"you and your company"* (whoever accepts the license), whereas
> rights to _"you and your company"_ (whoever accepts the license), whereas
> this license grants them to a **single, specifically named licensee**
> (Oura, defined below). That is a real difference: the licensor here is not
> a generic member of the licensee's organization, so the "permitted
Expand Down
3 changes: 1 addition & 2 deletions pages/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -319,8 +319,7 @@ <h2>Detailed setup walkthrough</h2>
</p>
<pre>
cp pages/index.html docs/index.html
# Settings → Pages → Source: GitHub Actions (or branch /docs)</pre
>
# Settings → Pages → Source: GitHub Actions (or branch /docs)</pre>
<p>
Then use <code>https://&lt;your-org&gt;.github.io/&lt;repo&gt;/</code> as the redirect. Any
other HTTPS static host (Vercel, Netlify, etc.) works equally well.
Expand Down
Loading