Skip to content

fix: Update the plugin index through a pull request - #52

Draft
0xmc wants to merge 3 commits into
mainfrom
fix/50-regenerate-index-via-pr
Draft

0xmc wants to merge 3 commits into
mainfrom
fix/50-regenerate-index-via-pr

Conversation

@0xmc

@0xmc 0xmc commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

The plugin index that datumctl reads has not updated since September, because the workflow that regenerates it pushes straight to main, and main accepts changes only through a reviewed pull request with passing CI.

The workflow now opens a pull request with the regenerated index, using the catalog's GitHub App so CI runs on it, and sets that pull request to merge once checks pass. The weekly catalog health check now fails when the index drifts from the plugin manifests, and this pull request regenerates the index, which drops the removed inventory plugin.

Important

Each regenerate pull request still needs one approving review before it merges, so approve it after each plugin update lands.

Test plan

  • The health check fails when a plugin manifest changes without regenerating the index, and passes once it is regenerated
  • Workflows lint clean and manifest validation passes
  • After merge, the next plugin update opens a regenerate pull request that CI runs on and that merges once approved

Fixes #50

🤖 Generated with Claude Code

0xmc and others added 3 commits November 3, 2026 16:22
The Regenerate index.yaml workflow committed straight to main, which
main stopped accepting: first branch protection required a pull
request, then the required-ci ruleset required the "ci / Build and
test" check. Every run since September failed, so index.yaml stopped
following plugins/ and still lists the removed inventory plugin.

The workflow now opens or refreshes a pull request on the
regenerate-index branch and turns on auto-merge, so the index reaches
main only after the required check passes. It uses the catalog's
GitHub App token, because a pull request opened with GITHUB_TOKEN
never triggers CI and the required check would never report.

Committing index.yaml in each plugin pull request, guarded by a drift
check, was rejected for now. The update-plugin-index action in
datum-cloud/actions edits only plugins/<name>.yaml, and it refuses to
reuse an open update pull request that touches any other file, so a
drift check would fail every release pull request.

scripts/sign-commit is dropped, since create-pull-request signs the
commit and this workflow was its only caller.

Fixes: #50

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The index regeneration workflow failed on every run for two months
without anyone noticing, because a failed run on main alerts no one.
The weekly catalog health check now also runs generate_index.py
--check and opens its issue when index.yaml no longer matches
plugins/.

The regenerate pull request normally merges within minutes of a
plugin change, so drift that survives to the weekly run means that
workflow is broken.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings index.yaml in line with plugins/ using
scripts/generate_index.py. This drops the removed inventory plugin
and adds the billing, search and telemetry entries and the newer
ipam release that never reached the index.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

Plugin index stopped regenerating: main rejects direct push

1 participant