我正在尝试通过API在github上的某个分支中创建一个文件,但是没有找到一种方法来成功设置分支以获取或创建文件。这是我的方法:
def self.save_file_to_github access_token, github_user, github_repo, path, content, branch
sha = nil
url = "https://api.github.com/repos/#{github_user}/#{github_repo}/contents/#{path}"
RestClient.get(url,{ params:{access_token:access_token,branch:branch},accept:'json'}){ |response, request, result|
if response.code==200
sha=JSON.parse(response)['sha']
end
}
RestClient.put(url, { message: "my message", content: Base64.strict_encode64(content), sha: sha }.to_json,{ params:{access_token:access_token},accept:'json'}){ |response, request, result|
puts response.code
puts response
}
end
首先检查文件是否存在,获取sha1密钥。然后把它放到新文件中。这一切都很好,我找不到一种方法来获取文件并重新放置它时指定分支。如何指定分支?
答案 0 :(得分:1)
您在Repo API至retrieve文件中使用的操作,如果其中包含默认为ref
的参数master
科。将其替换为您需要的分支。
对于creating文件,API中的参数称为branch
,并再次默认为master
。将此设置为您需要的分支,您应该很高兴。像这样:
def self.save_file_to_github access_token, github_user, github_repo, path, content, branch
sha = nil
url = "https://api.github.com/repos/#{github_user}/#{github_repo}/contents/#{path}"
RestClient.get(url,{ params:{access_token:access_token, ref: branch},accept:'json'}){ |response, request, result|
if response.code==200
sha=JSON.parse(response)['sha']
end
}
RestClient.put(url, { message: "my message", content: Base64.strict_encode64(content), branch: branch, sha: sha }.to_json,{ params:{access_token:access_token},accept:'json'}){ |response, request, result|
puts response.code
puts response
}
end