Skip to content

chore: bootstrap plugwerk/.github with org-wide defaults#1

Merged
bigpuritz merged 2 commits into
mainfrom
bootstrap
May 9, 2026
Merged

chore: bootstrap plugwerk/.github with org-wide defaults#1
bigpuritz merged 2 commits into
mainfrom
bootstrap

Conversation

@bigpuritz
Copy link
Copy Markdown
Contributor

Summary

Bootstraps the new plugwerk/.github org-config repo with the full set of org-wide defaults: Renovate config, community-health files, profile README, issue forms, PR template, and a Renovate-config validator workflow.

Plans the org out of GitHub-default-placeholder territory: every repo in the org currently inherits an empty SECURITY.md, no community standards, and (for examples and website) Renovate defaults rather than the considered config that lives in plugwerk/plugwerk/.github/renovate.json.

Closes

What's in this PR

File Purpose
LICENSE AGPL-3.0, matches plugwerk/plugwerk
README.md Repo-internal overview + override-behavior doc
default.json Renovate org default — cross-cutting rules only
.github/workflows/renovate-config-validator.yml Validates default.json on push/PR
.github/SECURITY.md Real security policy (private advisories + email fallback)
.github/CODE_OF_CONDUCT.md Contributor Covenant 2.1
.github/CONTRIBUTING.md Generic org guide; defers to per-repo AGENTS.md
.github/SUPPORT.md Where-to-ask guidance
.github/FUNDING.yml Empty (commented examples for future)
.github/PULL_REQUEST_TEMPLATE.md Generic version (no Liquibase line)
.github/ISSUE_TEMPLATE/{bug_report,feature_request,config}.yml Structured YAML forms
profile/README.md Public org landing page at https://github.com/plugwerk

Renovate config split — what's here vs. what stays in plugwerk

The split keeps examples and website from being polluted with Java/Kotlin/Spring rules they cannot use, while still giving them sensible cross-cutting defaults out of the box.

Here in default.json (cross-cutting):

  • config:recommended + helpers:pinGitHubActionDigests
  • Schedule (before 6am every weekday, Europe/Berlin)
  • Dependency Dashboard, label chore, concurrency limits
  • GitHub Actions: minor/patch grouped, majors split, SHA-pinned
  • Dockerfile: base-image digest grouping
  • npm: minor/patch grouped, majors split per-package, exact-version pin

Stays in plugwerk/plugwerk/.github/renovate.json (per-repo override, follow-up PR):

  • Spring Boot grouping (org.springframework.boot/security, io.spring.dependency-management)
  • Kotlin grouping (org.jetbrains.kotlin)
  • Test deps grouping (JUnit/Mockito/Testcontainers)
  • Jackson grouping (tools.jackson + com.fasterxml.jackson)
  • OkHttp grouping
  • Gradle wrapper
  • eclipse-temurin Java 21.x version pin

The follow-up PR in plugwerk/plugwerk shrinks renovate.json to extends: ["github>plugwerk/.github"] plus the Java-specific packageRules only, and deletes the stale GitHub-default-placeholder SECURITY.md.

Verification after merge

  1. Renovate validator workflow — runs on this PR; merge once green.
  2. Org profile — visit https://github.com/plugwerk; the new README should render in place of the GitHub-default placeholder.
  3. Renovate dashboard pickup — open the Renovate Dependency Dashboard issue on plugwerk/examples and plugwerk/website; under "Detected dependencies" the resolved config should now include the rules from this default.json. May take up to one Renovate run cycle (cron is 04:00 UTC weekdays).
  4. Community-Standards scorehttps://github.com/plugwerk/<any-repo>/community should show all checks green for the org-wide files.

Follow-ups (separate PRs)

Risks

  • Renovate behavior shift in examples and website: the new defaults add concurrency limits, pinning, and grouping these repos do not have today. Existing open Renovate PRs may be re-created with new branch names. Mitigation: review and merge or close the small set of currently-open Renovate PRs in those repos before merging this PR.
  • Profile README is public-facing — please proofread the wording before merge.
  • Renovate app installation — the org's Renovate-app permissions need to cover plugwerk/.github for the extends resolution to work everywhere; this is the case if the install is org-wide rather than per-repo whitelisted.

AI Agent Disclosure

  • This PR was authored by an AI agent (Claude Opus 4.7)

bigpuritz added 2 commits May 9, 2026 10:45
Initial bundle for the plugwerk/.github org-config repo:

- AGPL-3.0 LICENSE (matches plugwerk/plugwerk)
- Repo-internal README explaining layout and override behavior
- Renovate default.json — cross-cutting rules only (config:recommended,
  pinGitHubActionDigests, GitHub Actions/Dockerfile/npm grouping, npm
  major split, npm pin rangeStrategy). Java/Kotlin/Spring rules stay
  in plugwerk/plugwerk's per-repo override.
- Renovate config validator workflow — runs npx renovate-config-validator
  --strict on default.json for every push and PR
- SECURITY.md — real policy (private advisories primary,
  info@devtank42.de fallback), supported versions, best-effort SLA,
  AGPL-3.0 disclosure note
- CODE_OF_CONDUCT.md — Contributor Covenant 2.1 with org contact email
- CONTRIBUTING.md — generic org guide, defers to per-repo AGENTS.md /
  CLAUDE.md for project specifics, includes CLA reference
- SUPPORT.md — discussions vs. issues guidance, no OSS support SLA
- FUNDING.yml — empty (commented examples for future activation)
- profile/README.md — public org landing page (Plugwerk overview,
  Phase 2 status, repo list, AGPL-3.0 + commercial)
- ISSUE_TEMPLATE/ — structured YAML forms (bug, feature, config) with
  blank_issues_enabled: false and contact links to Discussions /
  Security Policy / commercial inquiries
- PULL_REQUEST_TEMPLATE.md — generic version (no project-specific
  Liquibase rollback line; that override stays in plugwerk/plugwerk)

Closes plugwerk/plugwerk#398
The 'Phase 2, alpha' framing is more appropriate per-repo (where the
actual maturity differs) than on the org landing page.
@bigpuritz bigpuritz merged commit 01e57fd into main May 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant