gpt4 book ai didi

github - 在 Github 中启用组织级别的分支保护规则

转载 作者:行者123 更新时间:2023-12-03 16:24:09 24 4
gpt4 key购买 nike

是否可以在 Github 中的组织级别启用分支保护规则,以便该组织的所有存储库部分为应用的分支继承这些规则。现在,在每个 repo 的基础上为同一组分支启用这些相同的规则集真的很麻烦。

最佳答案

我使用一个使用 GitHub API 的简单 ruby​​ 脚本让它工作:-

require "json"
require "logger"

LOGGER = Logger.new(STDOUT)

def run(cmd)
LOGGER.debug("Running: #{cmd}")
output = `#{cmd}`
raise "Error: #{$?}" unless $?.success?
output
end


def repos(page = 1, list = [])
cmd = %Q{curl -s --user "user:pwd" https://github_url/api/v3/orgs/org_name/repos?page=#{page}}
data = JSON.parse(run(cmd))
list.concat(data)
repos(page + 1, list) unless data.empty?
list
end

repos.each do |repo|
require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://github_url/api/v3/repos/org_name/#{repo["name"]}/branches/master/protection")
request = Net::HTTP::Put.new(uri)
request.basic_auth("user", "pwd")
request["Accept"] = "application/vnd.github.luke-cage-preview+jso"
request.body = JSON.dump({
"required_status_checks" => {
"strict" => true,
"contexts" => [
"continuous-integration/travis-ci"
]
},
"enforce_admins" => true,
"required_pull_request_reviews" => {
"dismiss_stale_reviews" => true
},
"restrictions" => nil
})

req_options = {
use_ssl: uri.scheme == "https",
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
end

关于github - 在 Github 中启用组织级别的分支保护规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54222881/

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