Serverless Framework Dashboard CI/CD 排障指南:重置 GitHub OAuth 授权与 GitHub App 安装

Serverless Framework Dashboard CI/CD 排障指南:重置 GitHub OAuth 授权与 GitHub App 安装
Serverless Framework Dashboard CI/CD 排障指南重置 GitHub OAuth 授权与 GitHub App 安装【免费下载链接】serverless⚡ Serverless Framework – Effortlessly build apps that auto-scale, incur zero costs when idle, and require minimal maintenance using AWS Lambda and other managed cloud services.项目地址: https://gitcode.com/GitHub_Trending/se/serverless本文讲解 Serverless Framework Dashboard 的 CI/CD 与 GitHub 集成出问题时如何排障。Dashboard CI/CD 依赖两层 GitHub 授权机制面向用户的 OAuth 应用授权流以及用于读取仓库内容的 Serverless GitHub App 安装。当仓库下拉框看不到仓库、集成状态异常时按照本文的两种重置流程撤销 OAuth 访问、重新配置或卸载 GitHub App即可将集成的状态恢复干净无需改动仓库内任何文件。背景Dashboard CI/CD 与 GitHub 集成的两层结构在 CI/CD 总览 中Serverless CI/CD 的定位是“从 GitHub 自动测试并部署服务”其前提包括项目含serverless.yml已提交到 GitHub也支持 BitBucket服务部署在 AWS 上使用 Node 或 Python 运行时。配置流程分三步先在 Provider 文档 的指引下把 AWS Access Role 与 Dashboard 中的 Provider 关联起来Dashboard 每次部署会为该账号生成短期凭据避免在 CI/CD 中长期保存密钥然后在 Dashboard 应用的 CI/CD 设置中“connect to git”按提示完成 GitHub 授权并安装 Serverless Framework App再选择包含该服务的仓库serverless.yml中的 service 名必须与所配置的服务一致最后在 “branch deploys” 区域把分支映射到 stage之后对该分支的每次提交都会自动用对应 stage 及其 Provider 部署。其中第二步涉及两套相互独立的授权这正是排障的着眼点OAuth 应用授权流用户级Dashboard 通过 OAuth 应用流认证你的 GitHub 账号获得“代表你访问 GitHub”的令牌。文档原文说明撤销它“将撤销 Serverless Framework Dashboard 代表你访问 GitHub 所用的密钥”。它解决的是“Dashboard 知道你是谁、能看到你名下哪些仓库”。Serverless GitHub App 安装仓库访问级GitHub App 的安装决定了 Serverless 应用具体可以读取哪些仓库你的账号、某个组织或选定的若干仓库。它解决的是“Serverless 有没有权限真正拉取目标仓库的代码”。两者中任何一环状态异常例如令牌过期后残留、App 被误删、仓库权限被收窄都会表现为仓库选不到、部署不触发等问题。从源码结构看本地 CLI 侧的部署流程也会把 VCS 快照仓库 origin URL、分支、commit SHA、commit 信息与提交者邮箱等连同部署记录一并上报到平台见 deployments.js 中的setVcsData与saveDeployment——后者通过CoreSDK以authTokenaccessKey调用sdk.deployments.create落库。可以推断Dashboard 侧正是依赖仓库与部署记录之间的这种关联来驱动 branch deploys 与部署详情展示因此 GitHub 集成一旦失效整条 CI/CD 链路都会受影响而根据 FAQServerless CI/CD 是 100% SaaS 化托管的不需要自托管任何 agent所有排障都发生在 GitHub 设置页与 Dashboard 设置页两个位置。何时需要执行本文的重置操作仓库下拉框中看不到目标仓库此时下拉框下方会出现 “If you do not see your repository, install the Serverless application in Github” 的提示并给出 “install the Serverless application” 链接、授权流程中途失败后状态卡死、更换了 GitHub 账号/组织或调整后权限后 Dashboard 仍无法访问仓库。两种机制的修复入口分别在 GitHub 的 “Authorized GitHub Apps” 页和 “Installed GitHub Apps” 页均位于 GitHub 网站的 Settings → Applications 之下以及 Dashboard 应用的 CI/CD 设置页。重置 OAuth 访问Reset the OAuth access当怀疑用户级 OAuth 令牌状态异常时按以下 4 步重置打开 GitHub 的Authorized GitHub Apps管理页在 “Serverless” 条目旁点击“Revoke”。此操作会撤销 Serverless Framework Dashboard 代表你访问 GitHub 所用的密钥。重新走一遍前面“进入部署设置”的 1–4 步即登录 Dashboard → 打开目标应用的 settings → 在 “connect to git” 区块点击 “connect to Github” → 在 “repository settings” 区块选择仓库系统会提示你 “connect github repository”此时重新向 GitHub 完成一次认证。认证后会弹出 GitHub App 的安装说明。如果你之前并没有卸载 Serverless 的 GitHub App则无需再改这些设置直接关闭窗口即可。刷新 Dashboard 的部署deployment设置页使新的授权状态生效。注意第 3 步的判断要点撤销 OAuth 并不影响 GitHub App 的安装状态二者相互独立因此 App 仍在装的情况下只需要重新授权 刷新页面。配置或重置已安装的 GitHub App当问题出在仓库访问权限层面例如 App 被安装在错误的账号/组织下、Repository access 被收窄、或需要彻底重装按以下步骤处理打开 GitHub 的Installed GitHub Apps管理页找到 “Serverless” 应用并点击“Configure”。在这里你可以更新其访问设置也可以直接卸载该应用。检查“Repository access”设置确认 Serverless 拥有对你要部署的仓库的访问权例如是 “All repositories” 还是仅 “Select repositories”所选仓库是否包含目标仓库。如有必要可以直接Uninstall卸载该应用。卸载应用后重新走一遍进入部署设置的 1–4 步并刷新该页面。在仓库下拉框下方会出现提示 “If you do not see your repository, install the Serverless application in Github”点击其中的“install the Serverless application”链接重新安装 Serverless GitHub App并在这一步确认 Repository access 覆盖目标仓库。两条流程的关系可以这样理解OAuth 重置处理“身份与令牌”App 配置/卸载重装处理“仓库访问范围”。前者更轻量通常不卸载 App后者更彻底可连 App 一起卸掉重来。验证与恢复后续配置重置完成后建议按顺序验证在 Dashboard 应用的 CI/CD 设置页刷新后确认 “repository settings” 中已选中正确的仓库如需指定 mono-repo 中的服务还要确认 base directory 与 service 名匹配。检查 “branch deploys” 区域的分支到 stage 的映射是否仍然完整——每行映射一个 source branch 到 target stage提交即自动部署且目标 stage 必须已配置有效的 Provider详见 Branch Deployments。Dashboard 的改动是自动保存的无需额外提交。提交一次代码到 Dashboard 的 “deployments” 视图确认出现新的测试与部署记录。另外两点适用前提值得留意免费层级仅支持公共仓库私有仓库的 CI/CD 需要付费层级见 FAQ如果你不需要 Dashboard 托管的流水线也可以改用 在自己的 CI/CD 中运行 的方式使用长期关联到个人账号的 access token注意该账号被删除时 token 会被一并吊销。小结与延伸阅读排障只需记住两个入口GitHub 的Authorized GitHub Apps撤销 OAuth与Installed GitHub Apps配置/卸载 Serverless App再配合 Dashboard 部署设置页的刷新与重装提示链接。原文档全文见 troubleshooting.md完整的 CI/CD 上手流程见 README.mdAWS 凭据接入见 providers.md常见问题见 faq.md部署记录与 VCS 数据上报的实现参考 deployments.js。【免费下载链接】serverless⚡ Serverless Framework – Effortlessly build apps that auto-scale, incur zero costs when idle, and require minimal maintenance using AWS Lambda and other managed cloud services.项目地址: https://gitcode.com/GitHub_Trending/se/serverless创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻