name: harbor-navigator description: Navigate and query self-hosted Harbor container registry instances via REST API. Use when the user asks about Harbor projects, container images, repositories, artifacts, tags, vulnerability scans, replication policies, robot accounts, storage quotas, or audit logs. Triggers on mentions of Harbor, container registry, image repositories, docker images, artifact scanning, CVEs in images, replication, or requests to check what images exist or have been recently pushed. Supports multiple Harbor instances.
Harbor Navigator
Query self-hosted Harbor v2.x container registry instances via REST API v2.0 using the bundled go run ~/.claude/scripts/harbor-navigator/main.go CLI wrapper. Reads credentials from ~/.netrc. Uses unauthenticated access for read operations (works with OIDC instances where all projects are public). See references/api_endpoints.md for full endpoint reference.
Finding Hosts
Scan ~/.netrc for Harbor hostnames:
go run ~/.claude/scripts/harbor-navigator/main.go discover
go run ~/.claude/scripts/harbor-navigator/main.go discover myorg # custom substring
Test a connection (use hostname or substring):
go run ~/.claude/scripts/harbor-navigator/main.go acme test
Commands
All commands: go run ~/.claude/scripts/harbor-navigator/main.go <host> <command> [args...]
<host> is a hostname or substring matching a ~/.netrc entry. The script auto-filters for harbor hosts.
Projects and Repositories
- List projects:
go run ~/.claude/scripts/harbor-navigator/main.go acme projects 25 - Project details:
go run ~/.claude/scripts/harbor-navigator/main.go acme project-info my-project - List repositories in a project:
go run ~/.claude/scripts/harbor-navigator/main.go acme repos my-project 25 - List artifacts (images) in a repository:
go run ~/.claude/scripts/harbor-navigator/main.go acme artifacts my-project/my-repo 25 - List tags:
go run ~/.claude/scripts/harbor-navigator/main.go acme tags my-project/my-repo - Search projects and repos:
go run ~/.claude/scripts/harbor-navigator/main.go acme search "nginx" - Recently pushed repos:
go run ~/.claude/scripts/harbor-navigator/main.go acme recent-pushes my-project 20 go run ~/.claude/scripts/harbor-navigator/main.go acme recent-pushes # all projects
Vulnerability Scanning
- View vulnerability report:
go run ~/.claude/scripts/harbor-navigator/main.go acme vulns my-project/my-repo latest - Trigger a scan (requires authenticated access):
go run ~/.claude/scripts/harbor-navigator/main.go acme scan my-project/my-repo latest
Replication and Registries
- Replication policies:
go run ~/.claude/scripts/harbor-navigator/main.go acme replication-policies - Replication execution history:
go run ~/.claude/scripts/harbor-navigator/main.go acme replication-runs 5 10 - Connected registries:
go run ~/.claude/scripts/harbor-navigator/main.go acme registries
Administration
- System info:
go run ~/.claude/scripts/harbor-navigator/main.go acme system-info - Component health:
go run ~/.claude/scripts/harbor-navigator/main.go acme health - Labels:
go run ~/.claude/scripts/harbor-navigator/main.go acme labels g(g=global, p=project) - Garbage collection:
go run ~/.claude/scripts/harbor-navigator/main.go acme gc - Storage quotas:
go run ~/.claude/scripts/harbor-navigator/main.go acme quotas - Robot accounts:
go run ~/.claude/scripts/harbor-navigator/main.go acme robot-accounts - Audit log:
go run ~/.claude/scripts/harbor-navigator/main.go acme audit-log 25
Note: Some admin endpoints (gc, quotas, robot-accounts, audit-log) require authenticated access and may fail with unauthenticated mode.
Utility
- Current user:
go run ~/.claude/scripts/harbor-navigator/main.go acme whoami - Test connection:
go run ~/.claude/scripts/harbor-navigator/main.go acme test
Workflow: Image Audit
- Run
projectsto see all projects and repo counts - Run
repos <project>to browse repositories - Run
artifacts <project/repo>to see images with scan status - For interesting images, run
tags <project/repo>to see available tags - Run
vulns <project/repo> <tag>to view CVEs on specific images - Run
search <term>to find specific images across all projects - Run
recent-pushesto see what was updated recently