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 must satisfy the ingestors.PollingIngestor
interface. It is currently our only ingestor interface, and
schedules ingestion of new versions at specific intervals (ingestor.Schedule()
).
By default a PackageVersion
-- unique by Platform
/Name
/Version
-- will be limited to one published event per "ttl",
which defaults to 24 hours. This duration can be overridden by implementing the TTLer interface in the ingestor.
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 ./...
You'll need the same version of our linter as CI, so reference the ".circleci/config.yml"
for the installation command.
golangci-lint run
: this will run the linter.
golangci-lint run --fix
: this will run the linter and autofix any autofix-able linter errors.
- merge PR into
main
branch tl setenv libraries
./bin/deploy.sh