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

如何使用Kohsuke的Java版GitHub API连接企业实例获取仓库信息并安装GitHub Apps

身份验证(连接GitHub企业实例)

GitHub已废弃密码登录方式,统一使用个人访问令牌(PAT)完成身份验证,同时需要指定企业实例的API端点,避免默认连接公共GitHub:

import org.kohsuke.github.GitHub;
import org.kohsuke.github.GitHubBuilder;
import org.kohsuke.github.GHRepository;
import java.io.File;

public class AppInstaller {
    public static void main(String[] args) throws Exception {
        // 替换为你的GitHub企业实例API端点,固定格式为https://<企业GitHub域名>/api/v3
        String ghEnterpriseEndpoint = "https://github.your-company.com/api/v3";
        // 替换为你在企业GitHub后台生成的PAT
        String personalAccessToken = "ghp_xxxxxxxxxxxxxxx";
        
        // 构建客户端实例,完成身份验证
        GitHub github = new GitHubBuilder()
                .withEndpoint(ghEnterpriseEndpoint)
                .withOAuthToken(personalAccessToken)
                .build();
        
        // 验证连接是否生效
        System.out.println("连接成功,当前登录账号:" + github.getMyself().getLogin());
获取仓库基础信息

所有GHRepository对象必须通过已验证的GitHub客户端获取,不能自行new实例,获取指定仓库信息的代码如下:

// 替换为目标仓库的完整路径,格式为<组织名/用户名>/<仓库名>
        String repoFullPath = "your-org/your-repo-name";
        GHRepository repo = github.getRepository(repoFullPath);
        
        // 打印基础信息示例,可按需扩展
        System.out.println("仓库全名:" + repo.getFullName());
        System.out.println("仓库描述:" + repo.getDescription());
        System.out.println("Star数量:" + repo.getStargazersCount());
        System.out.println("是否公开:" + repo.isPublic());
代码安装GitHub App

前提条件:你拥有该GitHub App的管理员权限,且用于验证的PAT具备目标组织/仓库的管理员权限,提前准备好GitHub App的ID、App私钥文件(.pem格式):

// 替换为你的GitHub App ID
        String appId = "123456";
        // 替换为你存储App私钥文件的本地路径
        String privateKeyPath = "/path/to/your-app-private-key.pem";
        
        // 以GitHub App身份完成验证
        GitHub appClient = new GitHubBuilder()
                .withEndpoint(ghEnterpriseEndpoint)
                .withJwtToken(appId, new File(privateKeyPath).toPath())
                .build();
        
        // 替换为要安装App的目标组织名,也可指定具体仓库安装
        String targetOrg = "target-org-name";
        appClient.getApp().install(targetOrg);
        
        // 如需获取安装后的App实例,可调用以下代码
        // GHAppInstallation installation = appClient.getApp().getInstallationByOrganization(targetOrg);
    }
}
注意事项
  • 生成PAT时需勾选对应权限:读取仓库信息要勾选repo权限,安装GitHub App要勾选admin:org和admin:repo_hook权限
  • 运行代码的机器需要能正常访问企业GitHub实例的API端口
  • GitHub App本身需提前配置好所需的权限范围,安装后才会生效

内容的提问来源于stack exchange,提问作者Joseph Gordon Leiber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:45:04