bosh-hub is meant to be the destination for all BOSH related things: releases, stemcells, documentation, etc.
Releases are tracked by adding a new WatcherRec. Periodic release watcher runs in a goroutine and downloads git repository for every watched release periodically. It compares if there are any new final releases and adds them as new ImportRecs.
Periodic release importer runs in a goroutine and picks up one release import at a time. It runs bosh create release X --with-tarball
to build a release tarball for a specific release version. It then uploads created tarball and creates a ReleaseTarballRec. If importing of a release fails new ImportErrRec is created and release version is not tried to be imorted again until associated ImportErr is deleted.
In addition to creating ReleaseTarballRecs for each imported release version, release, jobs and packages details are saved.
Periodic S3 bucket importer runs periodically and downloads all S3 items' metadata from all configured buckets. It then filters out non-stemcell items and saves links to found stemcell items as s3StemcellRecs
StemcellsController sorts and shows saved results.
Periodic github note importer runs in a goroutine and downloads release notes from Github repositories. It always overwrites existing release notes for each ReleaseVersionRec. Release notes are retrieved via authenticated access (personal access token) to the official Github API.
DocsController wraps pre-rendered HTML documents under docs/
path. Doc HTML pages are rendered before deploying an app. Running ./build-docs.sh
uses Bookbinder project with configuration stored in docs-bosh-io/
folder.