Repository navigation
fix(track): 用 Lithe Store Bot(GitHub App)合入组织插件 - #53
Merged
Merged
Conversation
The Lithe-IDEA organization disables deploy keys, and GitHub does not accept GitHub Actions as a ruleset bypass actor. The organization scope now creates a token of the organization-owned Lithe Store Bot GitHub App and squash-merges the pull request with --match-head-commit. The ruleset bypass names only this app.
xiaoyumuxi
marked this pull request as ready for review
November 4, 2026 23:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
改动类型
插件
lithe-plugin-index.json)改动内容
#50 用 deploy key 合入组织插件,但 Lithe-IDEA 组织禁用了 deploy key(添加时返回
Deploy keys are disabled for this repository),GitHub 也不允许把 GitHub Actions 加入仓库规则集的绕过名单。所以 #51(maven-build 0.1.2)只能保持打开并给出警告。这个 PR 改用组织自己的私有 GitHub App “Lithe Store Bot” 作为唯一的 bot 绕过者。.github/workflows/track-releases.ymlSTORE_BOT_APP_CLIENT_ID不为空时,用actions/create-github-app-token@v3(client-id+ secretSTORE_BOT_APP_PRIVATE_KEY)生成只能访问本仓库的 app token。ssh-key和 job 级GH_TOKEN。checkout 以及三个调用 gh 的步骤统一使用同一个 token,优先级是 app token、可选的STORE_BOT_TOKEN、GITHUB_TOKEN。组织外那一轮不生成 app token,写不了 main。用 app token 开的 PR 会触发Validate index。gh pr merge --squash --match-head-commit <本轮校验过的提交>:与仓库现有的 squash 历史一致;分支在校验之后被改动过时,GitHub 拒绝合并。合并失败时给出警告,PR 保持打开;合并成功后删除分支。docs/maintainers.mdSTORE_BOT_APP_CLIENT_ID或卸载 App”。lithe-plugin-*仓库并发布 Release 把插件发布到 Store。合并前后需要的设置
组织管理员运行一次配置脚本(GitHub App manifest 流程):
STORE_BOT_APP_CLIENT_ID,私钥直接存为 secretSTORE_BOT_APP_PRIVATE_KEY,不落盘。没有配置时,组织那一轮行为和现在一样,只给出警告,所以设置可以在合并前做,也可以在合并后做。
验证
node --test scripts/store.test.mjs:52 通过,0 失败(本 PR 不改脚本)。actionlint .github/workflows/*.yml:只有两条关于actions/create-github-app-token@v3的误报(“缺少 app-id”“没有 client-id 输入”)。actionlint 1.7.12(当前最新)内置的是旧版元数据;v3.3.0 的action.yml里推荐使用client-id,app-id已废弃且不再必填。仓库 CI 不运行 actionlint。自检
plugin.json的vendor.signatureRequirement为"none",ID 不在dev.lithe.*(不涉及)node scripts/validate-index.mjs --verify-archives(本 PR 不改索引)plugin.json中声明,并在仓库 README 中说明(不涉及)downloadURL/sha256,没有删除历史版本(撤回除外)