mirror of
https://github.com/Glitchy-Sheep/boosty-downloader.git
synced 2026-10-14 21:33:23 +00:00
[PR #220] [MERGED] refactor(api): read blog metadata and capture its schema #218
Labels
No labels
api-drift
bug
ci
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Glitchy-Sheep/boosty-downloader#218
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Glitchy-Sheep/boosty-downloader/pull/220
Author: @Glitchy-Sheep
Created: 10/4/2026
Status: ✅ Merged
Merged: 10/4/2026
Merged by: @Glitchy-Sheep
Base:
main← Head:feat/read-blog-info📝 Commits (1)
df55156refactor(api): read blog metadata and capture its schema📊 Changes
21 files changed (+1153 additions, -34 deletions)
View changed files
📝
Taskfile.yml(+2 -2)📝
boosty_downloader/infrastructure/boosty_api/core/client.py(+25 -0)📝
boosty_downloader/infrastructure/boosty_api/models/base.py(+1 -1)➕
boosty_downloader/infrastructure/boosty_api/models/blog.py(+43 -0)📝
docs/api/README.md(+4 -4)📝
docs/api/boosty-api.yaml(+553 -1)📝
scripts/api_schema/__main__.py(+13 -7)📝
scripts/api_schema/live_api.py(+5 -0)📝
scripts/api_schema/observed_shapes.py(+1 -1)📝
scripts/api_schema/openapi_document.py(+32 -7)📝
scripts/api_schema/schema_changes.py(+3 -1)📝
scripts/api_schema/unread_keys.py(+17 -6)📝
scripts/weekly_report.py(+1 -1)📝
test/e2e/download_flow_test.py(+39 -2)➕
test/support/synthetic_blog.py(+37 -0)➕
test/unit/api_schema/blog_capture_test.py(+99 -0)📝
test/unit/api_schema/openapi_document_test.py(+59 -1)📝
test/unit/api_schema/schema_changes_test.py(+28 -0)➕
test/unit/boosty_api/blog_info_test.py(+134 -0)📝
test/unit/boosty_api/client_test.py(+50 -0)...and 1 more files
📄 Description
📝 Summary
Add blog metadata support to the API client for future library author records. The OpenAPI generator now captures the blog endpoint, and synthetic blog responses are checked against its observed schema.
🔧 What changes
get_blog_info()with title, structured description, cover, owner name/avatar and remote post count. Invalid optional fields become unknown while valid sibling values, empty strings/lists and zero are preserved.GET /blog/{blog}in schema generation and drift reports. Description blocks have separate components so their observations cannot overwrite post schemas.🧪 Tests
task cipassed on Python 3.12.12: lint, formatting, types, import boundaries, 417 unit/e2e tests and wheel/sdist builds..env; the focused live checks used the main config's account token.⏭️ Next
Connect these metadata to domain author records and persistence in later library changes. This PR adds API support without changing CLI download behavior.
✅ Checklist
--helpand README if needed (CLI unchanged)docs/if the download flow or dev process changed## Unreleasedin CHANGELOG.md (or theci/skip-changeloglabel if not user-facing)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.