ci: use GitLink code SSH host for mirror sync
GitLink repository metadata returns git@code.gitlink.org.cn as the SSH endpoint for repository pushes. Include that host in the sync workflow SSH config and fallback ssh-keyscan list so GitHub Actions uses the configured mirror private key for the actual remote URL.
This keeps the previously added www/gitlink host coverage for documentation examples while making the automated mirror path match the production git transport host.
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
SeekMoon
English | 简体中文
SeekMoon is a MoonBit package discovery workbench. It helps dependency consumers discover candidate packages, inspect evidence, run local validation, record adoption judgments, and render investigation reports before adding a dependency.
The Go CLI reads Mooncakes API data, Mooncakes assets, MoonBit local toolchain state, project context, local registry/cache state, repository signals, and project records. Upstream facts remain separate from local derived evidence, so search, inspection, comparison, probe, record, report, JSON, jq, shape, schema, and error output share the same evidence-state vocabulary.
The repository also contains the AsciiDoc bookshelf that defines the surrounding evidence model, command contracts, output contracts, implementation architecture, and acceptance journeys for SeekMoon and the package-reuse research series.
Links
github.com/MichengLiang/seekmoonDocumentation
Project Position
SeekMoon sits between MoonBit package ecosystem facts and a consumer’s dependency adoption decision. It does not replace
moon, Mooncakes, or the registry. It reads Mooncakes data, local MoonBit toolchain state, repository signals, and project records, then projects them into a reproducible CLI investigation workflow. Upstream facts remain separate from local derived evidence, with missing, unknown, and unverified states kept explicit.Repository Layout
cmd/seekmoon/internal/tests/bookshelf/docs/spike/justfileCLI Quick Start
Run from source:
Build a local binary:
Start with command help before using a command for the first time:
Common investigation path:
Example session:
searchandskill searchwrite numbered candidates into the current project’s default session. Later commands can use numbers such as1or2. When a number is unavailable, run search again or pass a full coordinate such asowner/module@version.Commands
doctorsyncsearchviewapisourceskill searchskill viewcompareproberecordreportrawOutput Modes
Every public output command supports the common output modes:
--json--jq <expr>--shape--schemaExamples:
Local State
SeekMoon separates project investigation state from reusable remote cache.
Project state lives under the current project’s
.seekmoon/directory:Reusable cache lives under the user’s XDG cache directory:
Development
SeekMoon uses Go for the CLI and pnpm for the bookshelf build.
Required tools for the full local gate:
justgofumptgolangci-lintgotestsumgovulncheckgoreleaserInstall Go module dependencies:
Run the main checks:
Run the full local gate:
just coverwrites.artifacts/coverage.out. The file is generated output and is ignored by Git.Integration tests that use real network, GitHub, Moon CLI commands, source downloads, or probe mutation are opt-in. Default test runs use fixtures, fake source readers, fake filesystems, and fake command runners.
Continuous Integration
The
CIworkflow runs two jobs:gogofumpt,golangci-lint, unit tests, race tests, coverage,govulncheck, module integrity, andgoreleaser check.bookshelfThe
Pagesworkflow builds and deploysbookshelf/build/htmlto GitHub Pages from themainbranch or a manual dispatch.Bookshelf
The source catalog is bookshelf/catalog.adoc.
Build the bookshelf locally:
Generated HTML is written to
bookshelf/build/html/.Release
Release configuration lives in .goreleaser.yaml.
Create a local snapshot release:
Tagged releases are published by the
Releaseworkflow when av*tag is pushed. Release notes come from CHANGELOG.md.The release build targets Linux, macOS, and Windows on
amd64andarm64.License
Apache-2.0. See LICENSE.