Anda dapat menggunakan jQuery Ajax untuk mengakses API Github dan menambahkan header otentikasi dasar untuk mengotentikasi (lihat di sini ), sebuah contoh ditunjukkan di bawah ini, ini akan menarik masalah untuk repo yang diberikan dan menampilkan 10 pertama di jendela peringatan.
Lihat dokumentasi tentang masalah penarikan di sini: https://developer.github.com/v3/issues/ untuk melihat parameter mana yang dapat Anda gunakan untuk memfilter, menyortir dll.
Misalnya Anda bisa mendapatkan semua masalah yang berlabel 'bug' menggunakan:
/issues?labels=bug
Ini dapat mencakup beberapa label, mis
/issues?labels=enhancement,nicetohave
Anda dapat dengan mudah memodifikasi daftar di tabel dll.
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));
}
});
});
Di bawah ini adalah masalah cantuman cuplikan untuk repo (publik) menggunakan jQuery dan Github API:
(Perhatikan bahwa kami tidak menambahkan header otentikasi di sini!)
const repoPath = "leachim6/hello-world" //
$(document).ready(function() {
$.ajax({
url: `https://api.github.com/repos/${repoPath}/issues`,
type: "GET",
crossDomain: true,
success: function (response) {
tbody = "";
response.forEach(issue => {
tbody += `<tr><td>${issue.number}</td><td>${issue.title}</td><td>${issue.created_at}</td><td>${issue.state}</td></tr>`;
});
$('#output-element').html(tbody);
},
error: function (xhr, status) {
alert("error: " + JSON.stringify(xhr));
}
});
});
<head>
<meta charset="utf-8">
<title>Issue Example</title>
<link rel="stylesheet" href="css/styles.css?v=1.0">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.4.1.min.js" crossorigin="anonymous"></script>
</head>
<body style="margin:50px;padding:25px">
<h3>Issues in Repo</h3>
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Issue #</th>
<th scope="col">Title</th>
<th scope="col">Created</th>
<th scope="col">State</th>
</tr>
</thead>
<tbody id="output-element">
</tbody>
</table>
</body>
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3/issues/#list-issues-for-a-repository" }
, tetapi saya membaca dan itu tampaknya respons standar ketika mencoba mengakses repo pribadi, jadi meneliti tentang OAuth, dll. FWIW, menggunakan JavaScript di bawah kerangka jQuery.