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

如何使用wget获取GitHub私有仓库?附变更日志生成需求

使用wget访问GitHub私有仓库并抓取PR/Commit生成变更日志

一、用wget访问GitHub私有资源的核心:添加认证头

GitHub私有仓库的API或资源访问需要认证,最简便的方式是使用个人访问令牌(PAT),wget通过--header参数携带认证信息即可访问。

步骤1:生成GitHub个人访问令牌

在GitHub设置中创建PAT,需勾选repo权限(确保能访问私有仓库的PR、Commit等数据),生成后妥善保存令牌(仅显示一次)。

步骤2:用wget请求GitHub API(抓取PR/Commit)

直接用wget请求GitHub REST API,带上认证头即可获取私有仓库的PR和Commit数据:

  • 抓取已合并的PR列表(以main分支为基准):
    wget --header="Authorization: token YOUR_GITHUB_PAT" -O prs.json "https://api.github.com/repos/OWNER/REPO/pulls?state=closed&base=main&sort=updated&direction=desc"
    
  • 抓取指定分支的Commit列表:
    wget --header="Authorization: token YOUR_GITHUB_PAT" -O commits.json "https://api.github.com/repos/OWNER/REPO/commits?sha=main&per_page=100"
    
    注:将OWNER替换为仓库所属用户/组织,REPO替换为仓库名,调整参数可筛选PR状态、Commit范围等。

二、解析数据生成变更日志

获取的JSON数据可以用jq工具快速提取关键信息,生成符合需求的变更日志格式:

  • 提取PR信息生成Markdown格式:
    jq '.[] | "- #\(.number) \(.title)(提交者:\(.user.login))"' prs.json > changelog.md
    
  • 提取Commit信息追加到日志:
    jq '.[] | "- \(.sha[:7]) \(.commit.message | split("\n")[0])(作者:\(.commit.author.name))"' commits.json >> changelog.md
    

三、上传至Confluence

通过Confluence的REST API上传生成的变更日志,示例(wget也可实现类似POST请求,以下用curl作参考):

curl -u YOUR_CONFLUENCE_USER:YOUR_CONFLUENCE_TOKEN -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "type": "page",
    "title": "项目变更日志",
    "space": {"key": "SPACE_KEY"},
    "body": {
      "storage": {
        "value": "<h1>近期变更</h1>"'"$(cat changelog.md | sed 's/-/\\*/g')"'",
        "representation": "storage"
      }
    }
  }' \
  https://your-confluence-domain/rest/api/content/

注:替换Confluence的用户、令牌、空间键和域名。

四、处理分页(可选)

GitHub API默认每页返回30条数据,若PR/Commit数量较多,可通过page参数手动分页获取,或解析响应头中的Link字段自动处理分页。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:33:17