gpt4 book ai didi

gitlab - 如何从命令行获取 GitLab 个人访问 token

转载 作者:行者123 更新时间:2023-12-04 12:04:05 28 4
gpt4 key购买 nike

是否有可能获得 Gitlab 的个人访问 token ? API 通过命令行而不是 Web 界面?我正在做一些集成测试,Gitlab部署到干净的环境中是测试 session 设置的一部分。部署后测试用户正在使用 Gitlab 进行一些工作API。为了访问 API,测试用户需要提供个人访问 token 。

我设法转储流量,我看到在呈现的 HTML 模板中提供了 token 以响应 POST。要求:

00:06:40.616996 IP6 localhost.amanda > localhost.53808: Flags [P.], seq 1:580, ack 1054, win 497, options [nop,nop,TS val 3133641719 ecr 3133641673], length 579
`..U.c.@................................'`.0...y.eIz.....k.....
........HTTP/1.1 302 Found
Server: nginx
Date: Tue, 21 Nov 2017 21:06:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 119
Connection: keep-alive
Cache-Control: no-cache
Location: http://localhost:10080/profile/personal_access_tokens
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 88178813-95ad-419a-b56b-5a5ddb183885
X-Runtime: 0.044209
X-Ua-Compatible: IE=edge
X-Xss-Protection: 1; mode=block
X-Accel-Buffering: no

内心深处的回应:
<input type="text" name="created-personal-access-token" id="created-personal-access-token" value="j1WZujuaKVVEkh8h8Fej" readonly="readonly" class="form-control js-select-on-focus" aria-describedby="created-personal-access-token-help-block" />

但是,POST HTML 表单然后解析生成的 HTML 以获取 token 似乎太脏了。任何人都可以分享如何正确操作的 secret 吗?

最佳答案

如果您可以控制 Docker 容器的部署方式,则将此文件保存在本地:

# Inspired by https://gitlab.com/gitlab-org/gitlab/-/blob/master/db/fixtures/development/25_api_personal_access_token.rb
# frozen_string_literal: true

puts "=======================================".color(:red)
puts "---------------------------------------".color(:red)
puts "Creating api access token for root user".color(:red)
puts "---------------------------------------".color(:red)
puts "=======================================".color(:red)

token = PersonalAccessToken.new
token.user_id = User.find_by(username: 'root').id
token.name = 'api-token-for-testing'
token.scopes = ["api"]
token.set_token('ypCa3Dzb23o5nvsixwPA')
token.save

print 'OK'

并修改您的 docker-compose.yml包括
        image: gitlab/gitlab-ee
volumes:
- ./25_api_personal_access_token.rb:/opt/gitlab/embedded/service/gitlab-rails/ee/db/fixtures/production/25_api_personal_access_token.rb

这对我有用。一旦 GitLab 容器被初始化并且我可以看到登录页面,我继续使用 Python 库导入我的测试数据并针对正在运行的 GitLab 实例运行一堆集成测试。

注1:
我在上面使用 GitLab EE,但您可以探索 /opt/gitlab/embedded/service/gitlab-rails/更多 fixtures目录并将此初始化放在其他地方。

笔记2:
来自 gitlab 存储库的原始文件对我不起作用 b/c 它旨在用于开发模式和 require对我来说失败了。还有 token_digest是硬编码的,不会与 GitLab 生成的盐匹配!

关于gitlab - 如何从命令行获取 GitLab 个人访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423024/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com