Documentation
¶
Overview ¶
Package githubcheck 通过 GitHub API 查询某个 Runner 是否已在 GitHub 上登记, 并在从本工具删除 Runner 时把它从 GitHub 一并注销。
凭据只来自 Manager 侧的凭据目录(config/tokens/<runner name>,可选 PAT), 没有就跳过——本工具不保管也不要求这个凭据。
凭据不放在 Runner 目录下:容器模式会把那个目录整个挂进 Runner 容器,Job 读得到。 详见 internal/secrets。留在旧位置的 PAT 由 secrets.Store 在每次读取前搬走。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DeregisterResult ¶
type DeregisterResult struct {
// Done 为 true 表示 GitHub 上已经没有这个 Runner 了(本次删除的,或本来就没有)
Done bool
// MessageKey / MessageArgs 描述结果,由调用方渲染。
//
// 这里刻意不给现成的句子。同一个结果有两个去向、两种语言要求:它既要拼进 API
// 响应(跟随请求语言),又要写进日志(固定英文,见 handler 的 i18n 说明)。
// 一个 string 字段服务不了两边——本包又够不着翻译表,因为那是 handler 那一侧
// 由 main 注入的。所以这里只回传「是什么事」,由拿得到语言的人去说成话。
MessageKey string
MessageArgs []any
}
DeregisterResult 说明一次注销尝试的结果。
func Deregister ¶
func Deregister(ctx context.Context, store *secrets.Store, installDir, targetType, target, runnerName string) DeregisterResult
Deregister 把某个 Runner 从 GitHub 注销。
用该 Runner 的 PAT 调 DELETE .../actions/runners/{id}。没有 PAT 就注销不了: GitHub 侧的删除需要 PAT 或一个新的 removal token,而 config.sh remove 也要 removal token, 二者本工具都拿不到。这种情况下如实说明,让人知道 GitHub 上还留着一个。
仍然要在删除安装目录之前调用:令牌本身已经不在那里了,但照旧文档放进去的那份 要先被搬出来才能用上,而搬运的源头就是那个目录。
Click to show internal directories.
Click to hide internal directories.