You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Octokit调用GitHub OAuth应用执行操作后,如何显示应用名称而非用户名?

解决GitHub操作显示个人用户名而非OAuth应用名称的问题

你遇到的问题根源在于:当前使用的是个人身份的访问令牌(不管是个人访问令牌还是OAuth用户授权令牌),这类令牌代表的是你的个人账号,所以所有操作都会关联到你的用户名anmol-kumar0815。要让操作显示应用名称AutomatedApp,你需要改用GitHub App的安装访问令牌,以应用自身身份执行操作。

具体解决步骤

1. 替换OAuth应用为GitHub App

传统的GitHub OAuth应用无法以应用身份执行修改类操作(比如给Issue加标签),这类操作会默认绑定到授权用户。你需要创建一个GitHub App:

  • 进入GitHub设置 → Developer settings → GitHub Apps → 点击New GitHub App
  • 填写应用名称为AutomatedApp,并配置所需权限(比如给Issues模块勾选读写权限)
  • 将创建好的App安装到目标仓库中

2. 生成GitHub App的安装访问令牌

GitHub App需要通过临时的安装令牌来调用API,生成方式如下:

require "octokit"
require "jwt"
require "openssl"

# 替换为你的GitHub App信息
APP_ID = "你的App ID(在App设置页面查看)"
PRIVATE_KEY_PATH = "下载的App私钥PEM文件路径"
INSTALLATION_ID = "应用安装到仓库的ID(在安装页面查看)"

# 生成JWT令牌,用于认证GitHub App身份
payload = {
  iat: Time.now.to_i,
  exp: Time.now.to_i + 600, # 令牌有效期10分钟,需定期刷新
  iss: APP_ID
}
private_key = OpenSSL::PKey::RSA.new(File.read(PRIVATE_KEY_PATH))
jwt_token = JWT.encode(payload, private_key, "RS256")

# 创建App客户端,获取安装访问令牌
app_client = Octokit::Client.new(bearer_token: jwt_token)
installation_token = app_client.create_installation_access_token(INSTALLATION_ID)[:token]

# 使用安装令牌初始化操作客户端
def client
  @_client ||= Octokit::Client.new(bearer_token: installation_token, auto_paginate: true)
end

3. 执行操作

之后调用client.add_label等方法时,GitHub就会显示AutomatedApp added a label.,因为此时操作是通过GitHub App的身份发起的。

核心区别

  • 个人访问令牌/OAuth用户令牌:代表你的个人账号,操作记录显示个人用户名
  • GitHub App安装令牌:代表应用本身,操作记录显示应用名称

内容的提问来源于stack exchange,提问作者Anmol Shrivastav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:25:08