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

如何通过Curl/Postman访问设为Only Project Members的GitLab Pages?

GitLab Pages 私有访问实现方案(仅项目成员可见场景)

当GitLab Pages可见性设置为Only Project Members时,可通过以下两种方式实现无需登录GitLab、仅通过访问令牌完成访问:

1. 利用个人访问令牌获取会话Cookie访问

GitLab Pages的私有访问依赖GitLab会话认证,可先通过API获取会话Cookie,再携带Cookie访问页面:

  • 生成个人访问令牌,需勾选read_user和read_repository权限
  • 用Curl获取会话Cookie(保存到本地文件):
curl -c cookies.txt "https://gitlab.com/users/sign_in" \
  --data "user[login]=你的用户名" \
  --data "user[password]=你的密码" \
  --data "authenticity_token=$(curl -s "https://gitlab.com/users/sign_in" | grep 'name="authenticity_token"' | sed 's/.*value="\(.*\)".*/\1/')"
  • 携带Cookie访问Pages页面:
curl -b cookies.txt "https://你的项目域名.gitlab.io/目标页面路径"

2. 通过GitLab API代理获取Pages内容

直接调用GitLab项目文件API获取Pages静态文件内容,无需访问Pages域名:

  • 生成带read_repository权限的个人访问令牌
  • 用Curl请求API获取目标文件(以index.html为例):
curl --header "PRIVATE-TOKEN: 你的个人访问令牌" \
  "https://gitlab.com/api/v4/projects/项目ID/repository/files/index.html?ref=pages分支(通常为main或gh-pages)"
  • 若返回的content字段为Base64编码,可解码后查看:
curl --header "PRIVATE-TOKEN: 你的个人访问令牌" \
  "https://gitlab.com/api/v4/projects/项目ID/repository/files/index.html?ref=main" | jq -r '.content' | base64 -d

注意事项

  • 个人访问令牌需妥善保管,避免泄露
  • 第一种方式的Cookie存在有效期,过期后需重新获取
  • 第二种方式仅支持单个静态文件获取,页面内的相对路径资源(如CSS、JS)需单独请求对应文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:41:30