Skip to content

Add metadata changes feed#51

Merged
retlehs merged 3 commits intomainfrom
metadata-changes-feed
Mar 21, 2026
Merged

Add metadata changes feed#51
retlehs merged 3 commits intomainfrom
metadata-changes-feed

Conversation

@retlehs
Copy link
Copy Markdown
Member

@retlehs retlehs commented Mar 21, 2026

Summary

  • Implements GET /metadata/changes.json so mirrors, indexers, and other tools can track incremental metadata updates without crawling and reprocessing full repository metadata
  • New metadata_changes SQLite table records which packages changed during each build
  • ?since=<timestamp> returns the latest action per package name within the requested window
  • Returns resync action when since is older than 24h retention window
  • Missing/invalid since returns error + bootstrap timestamp
  • metadata-changes-url advertised in packages.json (absolute URL pointing to app server)
  • Skips delete detection for partial builds to avoid false deletes

Ref https://packagist.org/apidoc#track-package-updates

Closes #23

Test plan

  • go test ./... passes (6 new handler tests + smoke test assertion)
  • make dev — verify packages.json includes metadata-changes-url
  • curl /metadata/changes.json returns {error, timestamp}
  • curl /metadata/changes.json?since=0 returns resync action
  • After a build, curl /metadata/changes.json?since=<timestamp> returns changed packages
image

🤖 Generated with Claude Code

Implements GET /metadata/changes.json so mirrors, indexers, and other
tools can track incremental metadata updates without crawling and
reprocessing full repository metadata.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@retlehs retlehs self-assigned this Mar 21, 2026
@retlehs retlehs merged commit 8287dc5 into main Mar 21, 2026
5 checks passed
@retlehs retlehs deleted the metadata-changes-feed branch March 21, 2026 20:45
@retlehs
Copy link
Copy Markdown
Member Author

retlehs commented Mar 21, 2026

image

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.

Metadata changes feed (Composer repo API)

1 participant