Skip to content

chore(standards): align repo with OpsMill standards (mechanical drift) - #360

Merged
BeArchiTek merged 6 commits into
developfrom
bot/repo-drift
Jul 3, 2026
Merged

chore(standards): align repo with OpsMill standards (mechanical drift)#360
BeArchiTek merged 6 commits into
developfrom
bot/repo-drift

Conversation

@BeArchiTek

@BeArchiTek BeArchiTek commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Repository standards alignment

Comprehensive remediation of the auditing-repo-standards findings. Four commits, each a
self-contained concern:

1. Baseline mechanical fixes (b2f243a)

  • common-gitignore — secret patterns (.env, .env.local, *.pem, *.key, credentials.json, secrets.yaml)
  • python-project-metadatareadme = "README.md"
  • python-testing-pytest — dropped unused asyncio_mode = "auto"
  • markdown-linting-markdownlint[tool.rumdl] config; removed legacy .markdownlint.yaml
  • Doc drift — AGENTS.md tech-stack synced to pyproject.toml
  • ci-infrahub-sdk-auto-bump / ci-infrahub-auto-bumpupdate-infrahub-sdk.yml, update-infrahub.yml (target develop; testcontainers via the integration group). Org secret GH_UPDATE_PACKAGE_OTTO is configured. ✓

2. yamllint + asyncio docs (37f7c45)

  • yaml-linting-yamllinttruthy.check-keys: false
  • Swept stale asyncio_mode from two dev-doc snippets

3. rumdl full adoption (1213d47)

  • rumdl fmt applied (34 fixes); rumdl check clean
  • CI markdown-lint job + markdown filter output; invoke linter.lint-markdown
  • Fixed broken dev/README.md links; reconciled stale markdownlint doc refs → rumdl; fixed a false "Poetry"→uv ref in the constitution
  • Scoped rumdl to repo-owned markdown (excludes Docusaurus docs/ [Vale-owned], vendored .agents/, .specify/templates)

4. npm → pnpm docs toolchain (31944f4)

  • js-package-manager-pnpmpnpm-lock.yaml replaces package-lock.json; pnpm/action-setup + --frozen-lockfile in all three docs entry points; file-filters.yml updated
  • Security overrides preserved — moved to docs/pnpm-workspace.yaml (pnpm 11's home) and confirmed present in the lock (webpack 5.104.1, postcss 8.5.10, js-yaml 4.2.0, …)
  • .gitignore now ignores node_modules + docs build output

Verified locally: pnpm install --frozen-lockfile + docusaurus build succeed; rumdl check, yamllint, and ruff check all clean.

Notes for the reviewer

  • rumdl 0.2.x ignores the rule doc's MD013 = false form — this uses the working disable = [...] schema.
  • pnpm 11 no longer reads package.json's pnpm field — overrides/build-approval live in pnpm-workspace.yaml.

Still needs a human decision (not in this PR)

  • github-branch-protection on stable — currently 0 required reviews + force-push enabled. A
    straight "require 1 review + enforce_admins + restrictions:null" would break the direct
    pushes to stable in workflow-changelog-and-docs.yml and trigger-push-stable.yml. Needs a
    config that keeps the release bot able to push (allowlist) — applied deliberately by an admin.
  • python-changelog-towncrier — this is an Ansible collection with a bundled CHANGELOG.rst;
    towncrier (CHANGELOG.md) would compete with it. Pick: keep RST / adopt antsibull-changelog / switch to towncrier.

Generated with assistance from the detecting-repo-drift skill. Review before merging.

@BeArchiTek
BeArchiTek requested a review from a team as a code owner July 2, 2026 21:40
@BeArchiTek BeArchiTek added the repo-drift Automated repo-standards drift label Jul 2, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 2, 2026

Copy link
Copy Markdown

Deploying infrahub-ansible with  Cloudflare Pages  Cloudflare Pages

Latest commit: f3ec15f
Status:⚡️  Build in progress...

View logs

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 7 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".github/workflows/update-infrahub.yml">

<violation number="1" location=".github/workflows/update-infrahub.yml:11">
P3: The manual input `run` is exposed to users but never used, so toggling it has no effect and can mislead operators. Consider removing it or wiring it into a step condition to control integration-test behavior.</violation>

<violation number="2" location=".github/workflows/update-infrahub.yml:53">
P1: Dependency update can execute unexpected shell tokens or fail on malformed version input because the version variable is unquoted in the `uv add` command. Quoting the full requirement string keeps input as data and makes updates deterministic.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

# (kept separate from `dev` due to a cachetools transitive-pin conflict).
- name: Update testcontainers to workflow version ${{ env.INFRAHUB_VERSION }}
run: |
uv add --group integration infrahub-testcontainers==${INFRAHUB_VERSION}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Dependency update can execute unexpected shell tokens or fail on malformed version input because the version variable is unquoted in the uv add command. Quoting the full requirement string keeps input as data and makes updates deterministic.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/update-infrahub.yml, line 53:

<comment>Dependency update can execute unexpected shell tokens or fail on malformed version input because the version variable is unquoted in the `uv add` command. Quoting the full requirement string keeps input as data and makes updates deterministic.</comment>

<file context>
@@ -0,0 +1,87 @@
+      # (kept separate from `dev` due to a cachetools transitive-pin conflict).
+      - name: Update testcontainers to workflow version ${{ env.INFRAHUB_VERSION }}
+        run: |
+          uv add --group integration infrahub-testcontainers==${INFRAHUB_VERSION}
+
+      - name: Prepare the branch for the update
</file context>

version:
description: "Infrahub version to test"
required: true
run:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The manual input run is exposed to users but never used, so toggling it has no effect and can mislead operators. Consider removing it or wiring it into a step condition to control integration-test behavior.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/update-infrahub.yml, line 11:

<comment>The manual input `run` is exposed to users but never used, so toggling it has no effect and can mislead operators. Consider removing it or wiring it into a step condition to control integration-test behavior.</comment>

<file context>
@@ -0,0 +1,87 @@
+      version:
+        description: "Infrahub version to test"
+        required: true
+      run:
+        description: "Whether to run integration tests"
+        required: false
</file context>

Benoit Kohler and others added 6 commits July 3, 2026 10:39
Mechanical fixes from the auditing-repo-standards audit:
- gitignore: add secret patterns (.env, .env.local, *.pem, *.key, credentials.json, secrets.yaml) [common-gitignore]
- pyproject: add readme = "README.md" [python-project-metadata]
- pyproject: drop unused asyncio_mode (collection is synchronous; pytest-asyncio not installed) [python-testing-pytest]
- pyproject: adopt rumdl config; remove legacy .markdownlint.yaml [markdown-linting-markdownlint]
- AGENTS.md: sync tech-stack table with pyproject (Python/ansible-core/infrahub-sdk) [doc drift]
- ci: add infrahub-sdk + infrahub instance auto-bump workflows [ci-infrahub-sdk-auto-bump, ci-infrahub-auto-bump]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… docs

- .yamllint.yml: set truthy.check-keys=false (avoids false positives on GHA `on:` keys) [yaml-linting-yamllint]
- dev docs: drop asyncio_mode from illustrative pytest snippets to match pyproject [python-testing-pytest follow-up]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- pyproject: scope [tool.rumdl] to repo-owned markdown — exclude docs/ (Vale-owned MDX),
  .agents/ (vendored skills/commands), .specify/templates (vendored spec-kit)
- uv.lock: lock rumdl (added to dev deps in an earlier commit without re-locking)
- rumdl fmt: auto-fix 34 issues across dev/, tests/, plugins/, root
- dev/README.md: fix broken relative links (commands/ -> ../.agents/commands/)
- CI: add markdown-lint job (uv run rumdl check .) + markdown filter output [markdown-linting-markdownlint]
- tasks: add linter.lint-markdown, include it in `invoke lint`
- docs: reconcile stale markdownlint references -> rumdl; fix false "Poetry" -> uv in constitution

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- docs/pnpm-lock.yaml: generated, replaces package-lock.json
- docs/pnpm-workspace.yaml: security overrides (webpack/postcss/js-yaml/ws/... pins) + core-js
  build decline — pnpm 11 reads overrides here, not from package.json's "pnpm" field
- docs/package.json: add packageManager pnpm@11.6.0; drop the now-ignored overrides block
- .github/build-docs.sh, workflow-linter.yml, workflow-changelog-and-docs.yml:
  pnpm/action-setup@v4 + pnpm install --frozen-lockfile (was npm)
- .github/file-filters.yml: package-lock.json -> pnpm-lock.yaml
- .gitignore: ignore node_modules + docs build output
- .yamllint.yml: ignore generated docs/pnpm-lock.yaml

Verified locally: frozen install + docusaurus build both succeed; security override
pins confirmed present in pnpm-lock.yaml. [js-package-manager-pnpm]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
pnpm 11 requires Node >= 22.13; the documentation-lint job (and the
changelog-and-docs docs build) were still pinned to Node 20 after the
npm -> pnpm migration, so pnpm crashed with
`ERR_UNKNOWN_BUILTIN_MODULE: node:sqlite`. Bumps both docs workflows to
Node 22, matching the canonical infrahub-mcp/styrmin config.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The rebase onto develop pulled in vendored spec-kit content authored after
this branch adopted rumdl: `.specify/extensions/**` and the
`.github/agents/speckit.*.agent.md` definitions (added verbatim from
infrahub). Those 269 formatting deviations belong to upstream, not this
collection, and would fail the new `rumdl check .` CI job.

Broaden the rumdl `exclude` to keep it scoped to repo-owned markdown:
`.specify/templates` -> all of `.specify`, plus `.github/agents`. This
mirrors the existing `.agents`/`docs` exclusions and develop's own
`.yamllint.yml` `.specify/**` ignore. `rumdl check .` is clean (47 files).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@BeArchiTek
BeArchiTek merged commit 7ff39e7 into develop Jul 3, 2026
21 of 22 checks passed
@BeArchiTek
BeArchiTek deleted the bot/repo-drift branch July 3, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

repo-drift Automated repo-standards drift

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant