clone

a personal forge on plain git: static pages, stacked-diff reviews, signed local ci, repo sites and releases

main
forge / test / scenarios / lake-ingest.sh
lake-ingest.sh 1.6K
1# forge lake adds the forge's facts to the lake: events (pushes, comments,2# builds), build metrics with a row per repo, and review log lines.3. "$(dirname "$0")/../lib.sh"4user dami5user ana6repo dami/greet7clone dami dami/greet "$T/w/d"8at "$T/w/d" commit "first"9push_as dami "$T/w/d" origin main10clone ana dami/greet "$T/w/a"11at "$T/w/a" commit "idea"12push_as ana "$T/w/a" origin HEAD:ana/idea13echo "looks fine" | ssh_as dami comment dami/greet 1 >"$T_LOG" 2>&1 || fail "comment failed"14build dami/greet15ok forge lake16has "$T_LOG" '^lake: added 4 events, 1 build, 2 review log lines, 0 ended, 0 attestations, [0-9]+ commits?;'17exists "$FORGE_ROOT/.forge/lake/catalog.sqlite"18exists "$FORGE_ROOT/.forge/lake/data"19eq "$(lq "SELECT string_agg(type, ' ' ORDER BY type) FROM events")" "built comment push push"20eq "$(lq "SELECT repo || ' ' || \"user\" FROM events WHERE type = 'comment'")" "dami/greet dami"21eq "$(lq "SELECT scope || ' ' || reason FROM builds")" "dami/greet manual"22eq "$(lq "SELECT repo FROM build_repos")" "dami/greet"23eq "$(lq "SELECT string_agg(kind, ' ' ORDER BY ts, kind) FROM reviews WHERE review = 1")" "created rev"24eq "$(lq "SELECT \"user\" || ' ' || branch FROM reviews WHERE kind = 'created'")" "ana ana/idea"25# Event times are the clock the hooks stamp (FORGE_NOW here).26eq "$(lq "SELECT epoch(min(t))::BIGINT FROM events WHERE type = 'push'")" "$T_NOW"27# A dry run says what it would add and adds nothing.28at "$T/w/d" commit "second"29push_as dami "$T/w/d" origin main30ok forge lake --dry-run31has "$T_LOG" 'would add 1 event, 0 builds'32eq "$(lq "SELECT count(*) FROM events")" 4