【发布时间】:2013-11-20 17:48:36
【问题描述】:
我有一个在服务器上运行的 gitlab。目前,我还得到了需要添加到 gitlab 中的用户和电子邮件列表。有没有办法自动做到这一点? (即通过脚本/服务)
【问题讨论】:
标签: ruby-on-rails git bash shell gitlab
我有一个在服务器上运行的 gitlab。目前,我还得到了需要添加到 gitlab 中的用户和电子邮件列表。有没有办法自动做到这一点? (即通过脚本/服务)
【问题讨论】:
标签: ruby-on-rails git bash shell gitlab
如果可能(尚未测试),它可以通过 gitlab-shell 库完成,该库公开了 gitlab 的 API。
但添加用户还不是其 API 的一部分(它只添加 ssh 密钥)。
Issue 1942 确实提到 gitlab 本身有一个 API。
您可以在 spec/features/gitlab_flavored_markdown_spec.rb 之类的测试仪上举例:
require 'spec_helper'
describe "GitLab Flavored Markdown" do
let(:project) { create(:project_with_code) }
let(:issue) { create(:issue, project: project) }
let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
let(:fred) do
u = create(:user, name: "fred")
project.team << [u, :master]
u
end
【讨论】:
您可以在脚本中使用GitLab API to create users。 Recent versions of curl can url-encode 为您发布数据。否则空格必须是%20 和--data 而不是--data-urlencode。
curl --header "PRIVATE-TOKEN: QVy1PB7sTxfy4pqfZM1U" --data-urlencode "email=jon@doe.com&password=defaultpassword&username=jdoe&name=Jon Doe" "http://example.com/api/v3/users"
Curl 是您首选的 shell 语言(在我的例子中是 Bash)阻力最小的路径。如果您不想使用 curl 来编写创建用户的脚本,那么有许多不同语言的库可以与 GitLab API 进行交互。任你选。流行的库包括:
我确信还有更多其他语言的 API 库,只需 google 搜索您的首选语言,并将 GitLab API 作为查询的一部分。
【讨论】:
cli-gitlab 通过 npm 安装对我来说对于 LDAP (AD) 和本地用户都非常有效。它保存了“管理员”用户的令牌,这使得编写脚本/自动化事情变得更加容易。
【讨论】: