Yim*_*ong 8 github github-api github-api-v3
当您转到GitHub时,在Issues下,它将所有未解决的问题作为HTML页面拉出。我们希望实现一个仪表板,以显示存储库中的所有问题(按标签分组),包括那些未正确标记的问题。
这是相应的存储库列表问题API。
当我最初使用jQuery和Javascript时,现在使用PHP进行概念验证,因为其内置的会话处理功能使我可以使用同一页面登录,让GitHub进行身份验证和回调并继续。但这对我来说并不重要,任何语言都可以。
我已经设法通过OAUTH2访问GitHub API,但是当我通过https://api.github.com/orgs/{org}/repos它获取存储库列表时,它会显示为一个空数组。
因为/orgs/{org}/reposAPI返回一个空数组,所以相应的/repos/{org}/{repo}/issuesAPI 当然会返回一个错误。
编辑:请参阅此后续解决方案!很高兴我终于可以正常工作了!
这是一个REST API。您需要使用Http请求来调用某些终结点。我不知道您要使用哪种语言,因此我无法为您提供实现此目标的良好示例。如果您尚不知道要使用哪种语言,请使用邮差创建对github API的REST API调用。
假设您要检索Microsoft的Typescript存储库的问题,则需要调用以下API端点:
https://api.github.com/repos/microsoft/typescript/issues
Run Code Online (Sandbox Code Playgroud)
请注意,在这里,我已经替换了我要获取的文档的:owner和:repo价值。
然后,您可以将一些参数传递给调用以过滤数据,例如API标签。
https://api.github.com/repos/microsoft/typescript/issues?labels=API
Run Code Online (Sandbox Code Playgroud)
这只会返回标记为的问题API。
这是如何使用API的基础。
您可以使用 jQuery Ajax 访问 Github API 并添加基本身份验证标头进行身份验证(请参阅此处),下面显示了一个示例,这将提取给定存储库的问题并在警报窗口中显示前 10 个问题。
请参阅此处有关拉取问题的文档:https://developer.github.com/v3/issues/以查看可使用哪些参数来过滤、排序等。
例如,您可以使用以下命令获取标记为“bug”的所有问题:
/issues?labels=bug
Run Code Online (Sandbox Code Playgroud)
这可以包括多个标签,例如
/issues?labels=enhancement,nicetohave
Run Code Online (Sandbox Code Playgroud)
您可以轻松修改以在表格等中列出。
const username = 'github_username'; // Set your username here
const password = 'github_password'; // Set your password here
const repoPath = "organization/repo" // Set your Repo path e.g. microsoft/typescript here
$(document).ready(function() {
$.ajax({
url: `https://api.github.com/repos/${repoPath}/issues`,
type: "GET",
crossDomain: true,
// Send basic authentication header.
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
},
success: function (response) {
console.log("Response:", response);
alert(`${repoPath} issue list (first 10):\n - ` + response.slice(0,10).map(issue => issue.title).join("\n - "))
},
error: function (xhr, status) {
alert("error: " + JSON.stringify(xhr));
}
});
});
Run Code Online (Sandbox Code Playgroud)
下面的代码片段列出了使用 jQuery 和 Github API 的(公共)存储库的问题:
(请注意,我们此处不添加身份验证标头!)
/issues?labels=bug
Run Code Online (Sandbox Code Playgroud)
/issues?labels=enhancement,nicetohave
Run Code Online (Sandbox Code Playgroud)