Vanity URLs for OctoLab's Go modules.
- Maintainer
- GitHub CLI
- Bash 4+, Git, Python 3.9+, and Go (see
go.workfor the build version)
.gitmodules is the registry of vanity prefixes and repositories. Submodules
pin the source snapshots used to enumerate packages. Every registered module is
published; the selection in go.work only affects local development.
git submodule update --init
make list # print the manifest
make # generate and validate dist/ before replacing the previous build
make verify # check all module roots and generated package pages againAuthenticate gh and Git with access to the private repositories listed in
.gitmodules. Install Maintainer from its
v0.1.0-rc11 release;
the delivery workflow downloads that binary and verifies its release checksum.
Building Maintainer with go install can depend on this vanity service itself.
Package discovery runs separately in each module with GO111MODULE=off,
GOWORK=off, GOPROXY=off, and go list -find: it inspects local directories
without loading module graphs or downloading dependencies. A missing checkout,
mismatched module path, or failed discovery stops the build instead of
publishing an incomplete catalog.
Repository branches and topics are read through gh.
The public endpoint is https://go.octolab.org. DNS must point the subdomain's
CNAME to octomation.github.io (without /vanity). In this repository's
Pages settings, configure:
- Source: GitHub Actions.
- Custom domain: go.octolab.org.
- Enforce HTTPS, once GitHub has issued the domain certificate.
For an Actions deployment, a checked-in CNAME file does not configure the
domain; GitHub ignores it.
DNS alone is insufficient: without the Pages custom-domain setting, GitHub
serves its default certificate, which does not cover go.octolab.org.
If GitHub requires domain verification, first add go.octolab.org under
the organization's Pages settings.
Publish the TXT name and value generated by GitHub, then complete verification
before assigning the custom domain to this repository. Keep the TXT record
after verification. See GitHub's domain verification instructions.
The delivery workflow needs DEPENDABOT_TOKEN with read access to all
registered repositories, including private ones. An organization secret must
also be available to this repository. The same secret name in Dependabot's
settings is separate from an Actions secret. GITHUB_TOKEN is used for Pages
deployment; it cannot check out private repositories in other projects.
If the scheduled delivery workflow is disabled due to inactivity, re-enable it in Actions after reviewing the changes. Dispatch Continuous delivery to publish. Its build verifies every module's discovery metadata and requires the expected Pages custom domain before deployment.
After restoring the domain and certificate:
make checkThis checks the root, CLI, and config modules over verified HTTPS, then downloads
the root module at v0.12.0 and v0.12.2, CLI at v0.6.4, and config at
v0.0.5 into an empty temporary module cache with GOPROXY=direct and checksum
verification enabled. These targets follow the dependency upgrade in indexit
after the investigation in indexit#102
found that the historical config v0.0.4 tag is missing from GitHub.
Run the check with each Go version used by the consuming project's CI, then
rerun that project's dependency jobs. No TLS bypass or warm cache is required.
To check the entire published catalog, run
python3 bin/verify.py --url https://go.octolab.org after deploying the new build.
made with ❤️ for everyone by OctoLab
