结果共享

Registry

发布 Dataset、组织权限、结果归档与分享。

Registry 是独立的 HTTP 服务:发包、管组织、存结果、登录。
它不是本地 Viewer,也不是 ageval Core。

CLI 默认连公开 Hub(https://ageval.zjureal.com),登录不必先填 URL。自托管再用 AGEVAL_REGISTRY_URL 或 --registry-url 覆盖。

怎么用

  1. 按仓库 services/registry/README.md 启动自托管服务。发版标签会把 Registry 与 Hub 镜像推到 GHCR,本机可用 compose 一次拉起 Postgres、对象存储、Registry 与 Hub
  2. CLI 登录后创建组织。Dataset 用 ageval publish --draft 覆盖当前工作树,owner 再用 ageval release 固化为不可变版本;也可直接 ageval publish 发 release。按需上传整份运行或单次运行的结果
  3. 私有结果可以分享给某个组织或用户
  4. 浏览用 Hub 网页端;Hub 走浏览器 OAuth,CLI 走 Device Flow

公网部署

公网必须走 Postgres + S3;TLS 加在 Hub 前面,不要把 Python 端口直接暴露出去。本机开发仍可用 --local。

具体命令以 ageval --help 和 registry README 为准。

所有权(摘要)

对象归属谁能读私有内容删除 / 改公开或私有 / 覆盖上传
包(Dataset release)组织组织成员 / admin组织 owner / admin
单次运行 / 整份运行结果上传者本人 / 被分享对象 / admin上传者 / admin

加入组织不会自动看到别人的私有结果,除非对方分享给你。
任意组织 member 都可在该组织下 publish;删除包 / 改包公开或私有 / --replace 覆盖同版本 需要 org owner。
邀请码在创建时只完整展示一次,之后只能看到前缀。
owner 或 admin 按 GitHub login 加减成员(ageval registry org-add-member / org-remove-member),用 org-set-role 改已有成员角色,用 org-transfer 把组织交给现有成员(调用者变为 member)。最后一名 owner 不能离开、降级或被移除。对方不必在线。allowlist 上的官方 slug(默认 official)不能自助 create / claim,只有 admin bootstrap token 能 org-create。

Git 源 Dataset

托管在 git 仓库里的 Dataset 可以直接运行(ageval run github:org/repo@v1.0.0,可选 #<subdir>),也能不上传文件就注册到 Hub:ageval publish --repo github:org/repo@v1.0.0。https URL 不能内嵌 userinfo(https://<token>@host 或 https://user:pass@host);Hub 只保存无 userinfo 的 https URL,或 git@host:path。注册会钉住解析出的 commit,并记录只覆盖评分文件的评测摘要;同一版本评分文件变了再注册会被拒绝,只改文档则接受。来自已注册源的 suite 结果会归因到该版本;未注册源的结果照常保存但不上榜。Dataset 页面会链接到钉版 commit,并展示声明的 prepare 脚本与 assets 供审查。

发布后 owner 操作(CLI)

创建时 --public 只决定当时公开还是私有;之后可用 CLI 改,不必重新发包或重传结果:

# 按 GitHub login 加减成员(owner 或 admin;对方不必在线)
# ageval registry org-add-member my-lab alice --role member
# ageval registry org-set-role my-lab alice --role owner
# ageval registry org-transfer my-lab alice
# ageval registry org-remove-member my-lab alice

# 包:公开或私有 / 删除(删除必须 --yes)
ageval registry set-visibility 'my-org/dataset@0.1.0' --visibility public
# ageval registry delete 'my-org/dataset@0.1.0' --yes

# 包:描述(owner 覆写,不重新发包;空串清除覆写,回到包内 manifest 描述)
ageval registry set-description my-org/dataset --description '一句话描述'

# 结果:公开或私有 / 取消分享 / 删除
ageval results set-visibility <run_or_suite_id> --kind attempt|suite --visibility private
ageval results unshare <id> --kind attempt --share-org my-lab
# ageval results delete <id> --kind suite --yes
# 删整份运行默认不删各次运行;显式级联:
# ageval results delete <suite_id> --kind suite --with-attempts --yes

覆盖上传: 同一 dataset_id@version / run_id / suite_run_id 默认 409。
仅 owner 可加 --replace(ageval publish / results upload / upload-suite),覆盖 blob、指标/标签与公开或私有;无静默覆盖。

命令细节见 ageval --help、src/ageval/cli/README.md 与 registry README。

公网是否开放、谁能上传,由部署方决定。

本页目录