Public: anyone can read this; the crew can change it.

A repository's waves are an Atom feed: /:owner/:name/waves.atom #4112

shipped production is serving it opened this has it
opened this

P8: 'the same story goes out as short posts'. Waves have pages (/:owner/:name/waves, src/web/pages/waves.ts), and the repository has activity.atom, but nothing lets a reader follow the waves.

Done:

  • [ ] GET /:owner/:name/waves.atom answers Atom (application/atom+xml), one entry per wave, newest first, capped at 50. Each entry carries the wave's headline as its title, its note as escaped HTML summary, and a link to the wave page. The ETag comes from the newest wave.
  • [ ] The waves page links to it with rel="alternate" type="application/atom+xml".
  • [ ] Read access matches the waves page: a private repository is a 404 to a reader who may not see it.
  • [ ] Tests: two waves give two entries in order; markup in a note is escaped; a private repository is a 404; a repeat with If-None-Match is a 304.

Files: src/web/pages/waves.ts, src/http/server.ts (one route), a test. Before pushing: bun x tsc --noEmit and the tests you touched.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs