The daily digest, end to end. Collect a window of hive-agi activity (merged pull requests from GitHub; releases and news from RSS or Atom feeds, the hive-store release feed by default), compose it, render it, and post it to Slack once a day: the digest as the message, and a Markdown copy in its thread for pasting into ClojureVerse, Reddit or Discord.
Every effect arrives in deps, so the pipeline runs against stubs:
:merged-prs! (fn [window]) -> GitHub search hits
:fetch-text! (fn [url]) -> feed XML
:post! (fn [text opts]) -> {:ok :ts :channel} | {:ok false :error}
:read-state (fn []) -> state map
:write-state! (fn [state])
The daily digest, end to end. Collect a window of hive-agi activity
(merged pull requests from GitHub; releases and news from RSS or Atom
feeds, the hive-store release feed by default), compose it, render it,
and post it to Slack once a day: the digest as the message, and a
Markdown copy in its thread for pasting into ClojureVerse, Reddit or
Discord.
Every effect arrives in `deps`, so the pipeline runs against stubs:
:merged-prs! (fn [window]) -> GitHub search hits
:fetch-text! (fn [url]) -> feed XML
:post! (fn [text opts]) -> {:ok :ts :channel} | {:ok false :error}
:read-state (fn []) -> state map
:write-state! (fn [state])(build! deps settings now last-at)Collect and render the digest for the window ending at now, without
posting. last-at is the previous post's window end, or nil.
Collect and render the digest for the window ending at `now`, without posting. `last-at` is the previous post's window end, or nil.
(post! {:keys [post! read-state write-state!] :as deps}
settings
now
{:keys [force?]})Post today's digest unless today already has one. force? posts anyway.
GitHub being unreachable posts nothing and records nothing, so the next
tick retries. A day with nothing to say records the day without posting.
Post today's digest unless today already has one. `force?` posts anyway. GitHub being unreachable posts nothing and records nothing, so the next tick retries. A day with nothing to say records the day without posting.
(preview! {:keys [read-state] :as deps} settings now)What today's post would say, from the last post's window end to now.
What today's post would say, from the last post's window end to now.
(shipped! {:keys [list-artifacts! fetch-text!]}
{:digest/keys [maven-group maven-repo]}
window)Maven releases of group published inside the window. Each artifact's
metadata is read on its own, so one unreadable artifact is an error line,
not a lost section.
Maven releases of `group` published inside the window. Each artifact's metadata is read on its own, so one unreadable artifact is an error line, not a lost section.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |