27 Commits
Author SHA1 Message Date
james.maesandCodex 7f85781879 chore(release): prepare Munitor 0.3.11
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 15:25:37 -05:00
james.maesandCodex 73c3d4d753 docs: record verified agile CI rollout and measurements
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 14:51:58 -05:00
james.maesandCodex d5a7d59e96 chore(release): prepare Munitor 0.3.10
Publish verified docs-only Java CI and aggregate merge checks.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 14:20:52 -05:00
james.maesandCodex a56ef1d8e7 feat: add docs-only Java CI and aggregate merge checks
Retain all applicable checks behind one result and use native CircleCI reporting.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 14:10:56 -05:00
james.maesandCodex 154d453a00 chore(release): prepare Munitor 0.3.9
Promote the verified lean Java pipeline and bounded Maven artifact handoff.

Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 11:05:50 -05:00
james.maesandCodex f402fb8347 chore(release): prepare Munitor 0.3.8
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 09:21:59 -05:00
james.maesandCodex 01176862d4 chore(release): prepare Munitor 0.3.7
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 08:04:03 -05:00
james.maesandCodex 21517b25e7 fix: refresh generated JVM runtime packages on every build
Co-Authored-By: Codex <noreply@openai.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-19 07:50:52 -05:00
james.maesandClaude Opus 5.5 9e2c45e79a docs(readme): adoption examples use 0.3.6
Signed-off-by: James Maes <james@kof22.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 17:11:51 -05:00
james.maesandClaude Opus 5.5 578c7ea0eb docs(readme): adoption examples use 0.3.5
Signed-off-by: James Maes <james@kof22.com>

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 15:31:55 -05:00
james.maesandClaude Opus 5.5 b09ced056f feat: scan container images in PR pipelines
New munitor/docker_scan job (image-scan) in the pr-checks workflow of
java-webapp, gradle-webapp, node-api and node-webapp: builds the app
image and every supplemental image, runs the same Trivy 0.69.3
HIGH/CRITICAL --exit-code 1 scan as the release pipeline (same
.trivyignore), stores the JSON results, and never pushes.
build_push_supplemental gains push (default true, unchanged behavior).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:18:41 -05:00
james.maes e54d739554 Merge pull request #29 from KofTwentyTwo/feature/signed-gitops-commits
fix: sign GitOps bumps, run tests in CI, scope feature snapshots
2026-10-12 06:14:14 -05:00
james.maesandClaude Opus 5.5 1c64d1e18e fix: sign GitOps bumps, run tests in CI, scope feature snapshots
update_cd_repo creates the CD commit through the GraphQL
createCommitOnBranch mutation so GitHub signs it, letting the GitOps
repository require signed commits without a bypass actor. Concurrent
bumps retry against the refreshed head.

CI pins circleci/orb-tools to 12.5.0 and adds a test job running the
script, template and BATS suites. Feature branches publish only the
immutable dev:<sha> tag; develop keeps dev:snapshot (#26). The
generator accepts the documented org key (#27). Adds .editorconfig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 05:51:41 -05:00
james.maesandClaude Opus 5.5 24482fd030 docs(readme): link the QQQ adoption checklist; neutral example
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 05:47:45 -05:00
james.maesandClaude Opus 5.5 b4a9d120eb docs: add adoption guide, security policy and code owners
Add an "Adopting in another app" section to the README (version,
.munitor.yml example, CircleCI settings, contexts and secrets, branch
model, deployment infrastructure, known limitations, 0.3.3 upgrade
notes), a tier and standards statement, and reference rows for the
previously undocumented .munitor.yml keys. Add SECURITY.md,
.github/CODEOWNERS and a CONTRIBUTING workflow section (branches,
Conventional Commits, DCO sign-off, local checks), and fix the
nonexistent `make test` target in CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-10-12 05:29:05 -05:00
james.maesandClaude Opus 5.5 57cb7a2aca fix: atomic release versions and immutable image tags
Two main merges built minutes apart both computed the same GitVersion
version. The later pipeline overwrote the image tag in GHCR, github-release
tagged whatever main pointed at (--target main), and the GitOps bump was a
no-op, so production ran an image without the later merge (Website-Backend
0.1.24 and 0.1.32).

- allocate_version: on main, reserve vX.Y.Z by creating the git tag through
  the GitHub refs API (create-if-absent). On conflict with another commit,
  take the next patch; reruns of the same commit reuse their tag. Existing
  tags are never moved. Runs in mvn/gradle/node build-and-test before the
  version is baked into artifacts.
- guard_image_tags: refuse to push a main or supplemental version tag that
  already exists for a different commit (org.opencontainers.image.revision
  label, now set on every build); fail closed on registry errors.
- update_cd_repo: verify vX.Y.Z belongs to this commit before bumping the
  GitOps repo; record the source commit in the GitOps commit message.
- github_release: target CIRCLE_SHA1 instead of main and refuse when the tag
  points elsewhere.
- Generator: render cd_path only when cd.path is set, so manifests pinned to
  orb versions predating the parameter (website develop branches, Concilium,
  makers4) stop failing with "Unexpected argument(s): cd_path".

Tests: tests/test_allocate_version.sh (incl. 8 concurrent allocators against
an atomic fake refs API) and tests/test_release_guards.sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 13:56:58 -05:00
James MaesandGPT-6 ae7d93328f fix(#18): unblock website release CI
Closes #18

Co-Authored-By: GPT-6 <codex@openai.com>
Signed-off-by: James Maes <jmaes@dmdbrands.com>
2026-10-10 15:06:49 -05:00
James Maes 0fcd218b9f docs(#9): close out 0.3 release 2026-07-12 10:02:03 -05:00
James Maes 4b11b3acc8 feat(#9): support consolidated GitOps write-back 2026-07-12 05:39:14 -05:00
James Maes 894a550312 fix: preserve node-webapp Dockerfiles
Add an opt-in repository Dockerfile path while retaining generated images by default. Closes #7
2026-07-11 13:42:35 -05:00
james.maesandClaude Opus 4.6 9247dcc82a feat: add argocd-apps pipeline type for app-of-apps repos
Adds a new pipeline type for ArgoCD app-of-apps repositories that use
environment directories (envs/) instead of the standard base/overlays/
kustomize layout. Makes kustomize_validate configurable with overlay_dir
parameter and conditional base build skip.

- Add KUSTOMIZE_OVERLAY_DIR env var and overlay_dir parameter to
  kustomize_validate command/job
- Skip base build when base_path is empty string
- Use unset-only default (-) for KUSTOMIZE_BASE_PATH so "" is honored
- Use explicit null check for base_path in extract_munitor_vars (yq //
  treats "" as falsy)
- Pipeline-aware yamllint_paths defaults for argocd-apps
- New template, example, fixtures, and tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:29:27 -06:00
james.maesandClaude Opus 4.6 e410e04fde docs: add node-webapp pipeline type, NVD conditional, and missing examples
- README: add node-webapp section with minimal/full config examples
- README: update .munitor.yml reference table for node-webapp fields
- README: expand contexts.* into individual rows with per-pipeline info
- README: note NVD context is optional, add troubleshooting for silent
  continuation failures from empty context items
- README: fix java-webapp minimal config to include contexts.registry
- CONTRIBUTING: add node-webapp and Website repos to module inventory
- CONTRIBUTING: add NVD to conditional flags list, warn about empty
  optional contexts breaking CircleCI continuation
- CONTRIBUTING: update pack script examples with current template lists
- Examples: add validate_cd_repo.yml and terraform.yml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 12:11:17 -06:00
james.maesandClaude Opus 4.6 e06f31c39f fix: use kof22 CircleCI namespace for orb publishing
The CircleCI orb namespace is kof22, not KofTwentyTwo. Update orb slug
from KofTwentyTwo/munitor to kof22/munitor across CI config, scripts,
examples, tests, and docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:41:32 -06:00
james.maesandClaude Opus 4.6 325f8204a0 refactor: rename all internal faber/FABER references to munitor/MUNITOR
Rename files, variables, functions, container names, temp paths,
and config file names to complete the migration to the Munitor
namespace. Regenerate packed scripts. All 362 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:21:36 -06:00
james.maes 60411297c2 feat: rebrand orb for KofTwentyTwo org
Update org defaults (registry, npm scope, CI bot, orb slug),
Makefile, orb metadata, all runtime script fallbacks, command/job
parameter defaults, CI config, examples, display strings, docs,
and test assertions. Internal API names (FABER_*, faber_helpers,
.faber.yml) are preserved. All 362 tests pass.
2026-02-21 13:46:37 -06:00
james.maesandClaude Opus 4.6 08e00fb4d4 Initial commit: Munitor orb (based on Faber)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 09:21:39 -06:00
james.maes cb8f809853 Initial commit 2026-02-21 09:17:16 -06:00