commits
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
there exists a git flag to generate patches for a single commit: -1. use
this instead of calculating the parent when preparing format-patches.
Signed-off-by: oppiliappan <me@oppi.li>
the rev-list approach to building format-patch internally performs
merge-base calculations.
Signed-off-by: oppiliappan <me@oppi.li>
the previous commit iterator approach was faulty in cases of merge
commits, as it only uses the first parent returned by .Parents().
this also makes use of the --no-merges flag when preparing commits for
format-patch.
Signed-off-by: oppiliappan <me@oppi.li>
when calling rev-list, HEAD was passed as a default argument:
git rev-list HEAD --count
but HEAD is only populated when we perform git.Open; it is zeroed out
when we perform git.PlainOpen:
git rev-list 00000... --count
this causes rev-list to exit with an error, when used in repos that are
git.PlainOpen'd.
Signed-off-by: oppiliappan <me@oppi.li>
similar to jetstream consumer, we now ingest events from every known
knot.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
tracks commit per user by day
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
consumers can configure a cursor-store, where cursors of individual
event sources are stored. the module provides an in-memory store and a
redis-backed store.
Signed-off-by: oppiliappan <me@oppi.li>
- EventSource: a knot's identity (its hostname currently)
- Message: message struct that follows the event structure to
deserialize just rkey and nsid upfront, this could allow consumers to
filter by nsid or configure cursor ranges to listen to
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
initial commit does not have a parent commit and should be excluded from
the signature check.
Signed-off-by: oppiliappan <me@oppi.li>
this was incorrectly adding the current pull into the formatpatch twice.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
takes a yaml based workflow and compiles it down to a
sh.tangled.pipeline object, after performing some basic analysis.
Signed-off-by: oppiliappan <me@oppi.li>
in order to work around the limitations of not having github actions'
marketplace, this approach opts to use nixpkgs as a source for packages.
alternate registries can be specified too, these are expected to be nix
flakes that expose packages.
this takes a page out of replit's approach to supplying packages to
their devshells, however, instead of using nix syntax, we use only a
flake + package combo, and the compiler will simply convert this into a
step like so:
nix profile install flake#package
Signed-off-by: oppiliappan <me@oppi.li>
the `db.Op` event is now replaced by the `refUpdate` event. all knot
generated events will be stored in the events db as raw json.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
move the parsing logic into a separate file
Signed-off-by: oppiliappan <me@oppi.li>
generic websocket consumer for one or more event streams from knots
Signed-off-by: oppiliappan <me@oppi.li>
useful for bigger stacks to reduce the amount of vertical space
occupied.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
this is a helper derivation to speed up go builds, it builds sqlite
shared objects and header files which are then passed into
buildGoModule.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
And a high-level cache package for future use.
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
old knots will not attach a commit to a branch. sorting by commit time
fails in these responses.
Signed-off-by: oppiliappan <me@oppi.li>
- removes characters that bsky.app inserts for handles
- better errors for handles that do not conform to atproto format
Signed-off-by: oppiliappan <me@oppi.li>
fix highlighting for zon files.
Signed-off-by: oppiliappan <me@oppi.li>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
Signed-off-by: Anirudh Oppiliappan <anirudh@tangled.sh>
if the client is nil, posthog fails to enqueue a request, it crashes the
route and prevents redirect (as seen while creating pull comments and
pull requests)
Signed-off-by: oppiliappan <me@oppi.li>
the pull listing should be less noisy now.
Signed-off-by: oppiliappan <me@oppi.li>
break out summarizedHeader and summarizedPullState into resuable
fragments.
Signed-off-by: oppiliappan <me@oppi.li>
allows subscribers to stream git operations from knotserver. includes a
very primitive backfill implementation such that we can upgrade to xrpc
streams down the line.
Signed-off-by: oppiliappan <me@oppi.li>
when calling rev-list, HEAD was passed as a default argument:
git rev-list HEAD --count
but HEAD is only populated when we perform git.Open; it is zeroed out
when we perform git.PlainOpen:
git rev-list 00000... --count
this causes rev-list to exit with an error, when used in repos that are
git.PlainOpen'd.
Signed-off-by: oppiliappan <me@oppi.li>
in order to work around the limitations of not having github actions'
marketplace, this approach opts to use nixpkgs as a source for packages.
alternate registries can be specified too, these are expected to be nix
flakes that expose packages.
this takes a page out of replit's approach to supplying packages to
their devshells, however, instead of using nix syntax, we use only a
flake + package combo, and the compiler will simply convert this into a
step like so:
nix profile install flake#package
Signed-off-by: oppiliappan <me@oppi.li>