Phil Skentelbery
d8828fb6c6
feat: Implement Micropub endpoint for creating posts (Phase 3)
Following design in /docs/design/micropub-endpoint-design.md and
/docs/decisions/ADR-028-micropub-implementation.md
Micropub Module (starpunk/micropub.py):
- Property normalization for form-encoded and JSON requests
- Content/title/tags extraction from Micropub properties
- Bearer token extraction from Authorization header or form
- Create action handler integrating with notes.py CRUD
- Query endpoints (config, source, syndicate-to)
- OAuth 2.0 compliant error responses
Micropub Route (starpunk/routes/micropub.py):
- Main /micropub endpoint handling GET and POST
- Bearer token authentication and validation
- Content-type handling (form-encoded and JSON)
- Action routing (create supported, update/delete return V1 error)
- Comprehensive error handling
Integration:
- Registered micropub blueprint in routes/__init__.py
- Maps Micropub properties to StarPunk note format
- Returns 201 Created with Location header per spec
- V1 limitations clearly documented (no update/delete)
All 23 Phase 3 tests pass
Total: 77 tests pass (21 Phase 1 + 33 Phase 2 + 23 Phase 3)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 12:33:39 -07:00
..
2025-11-24 12:33:39 -07:00
2025-11-23 19:36:08 -07:00
2025-11-22 19:19:37 -07:00
2025-11-23 19:36:08 -07:00
2025-11-24 11:52:09 -07:00
2025-11-18 23:01:53 -07:00
2025-11-19 08:40:46 -07:00
2025-11-24 12:33:39 -07:00
2025-11-24 11:52:09 -07:00
2025-11-18 23:01:53 -07:00
2025-11-18 23:01:53 -07:00
2025-11-24 11:52:09 -07:00
2025-11-18 20:35:36 -07:00