1# forge users lists everyone with their keys, passkeys and tokens, then the2# invites not taken up; ssh who lists a repo's owner, collaborators and3# readers, for anyone who may read it.4. "$(dirname "$0")/../lib.sh"5user dami6user ana7user bob8ssh-keygen -q -t ed25519 -N '' -C ana2 -f "$T/keys/ana2"9ok forge user add ana "$T/keys/ana2.pub"10export FORGE_BASE_URL=https://forge.test11private_server12signin ana >/dev/null || fail "ana's passkey"13ok ssh_as bob token14repo --private dami/notes15ok forge user invite fox --repo dami/notes --as reader1617ok forge users18eq "$(output)" "user keys passkeys tokens19ana 2 1 020bob 1 0 121dami 1 0 02223invited made until grants24fox 2026-09-01 00:00 2026-09-08 00:00 reader of dami/notes"2526ok ssh_as dami collaborators dami/notes add ana27ok ssh_as dami readers dami/notes add bob28for u in dami ana bob; do29 ok ssh_as "$u" who dami/notes30 eq "$(output)" "owner dami31collaborator ana32reader bob"33done34repo dami/open35ok ssh_as bob who dami/open36eq "$(output)" "owner dami37(it is public: anyone can read it; readers count once it is private)"38fails_with "usage: who" ssh_as bob who