A dapper consumer of ecosystem APIs.
Depper is an ingestor of package releases from multiple ecosystems (each ecosystem is found in ingestors/).
When new package releases are found, they are pushed to a shared redis queue for Libraries.io to process.
ingestors.Ingestor
: these are scheduled to ingest new versions at specific intervals (ingestor.Schedule()
).ingestors.StreamingIngestor
: these are always running in a goroutine, ingesting new releases via a channel
Depper has to know where to pick up once it restarts, so there are several methods for storing such a cursor:
ingestors.setBookmarkTime()
+ingestor.getBookmarkTime()
[RECOMMENDED] : reads/sets atime.Time
to redis (persistent)ingestors.setBookmark()
+ingestor.getBookmark()
: reads/sets an arbitrary string to redis (persistent)LatestRun
: reads/sets atime.Time
on the ingestor instance (non-persistent)
go run main.go
go test -v ./...
- merge PR into
main
branch tl setenv libraries
./bin/deploy.sh