আপনি গিথুব এপিআই অ্যাক্সেস করতে jQuery অ্যাজাক্স ব্যবহার করতে পারেন এবং প্রমাণীকরণের জন্য একটি মৌলিক প্রমাণীকরণ শিরোনাম যুক্ত করতে পারেন ( এখানে দেখুন ), উদাহরণ নীচে দেখানো হয়েছে, এটি প্রদত্ত রেপোগুলির জন্য সমস্যাগুলি টানবে এবং একটি সতর্কতা উইন্ডোতে প্রথম 10 দেখায়।
সমস্যাগুলি টানতে এখানে ডকুমেন্টেশন দেখুন: আপনি কোন প্যারামিটারগুলি ফিল্টার করতে বাছাই করতে পারেন তা দেখার জন্য https://developer.github.com/v3/issues/
উদাহরণস্বরূপ আপনি ব্যবহার করে 'বাগ' লেবেলযুক্ত সমস্ত সমস্যা পেতে পারেন:
/issues?labels=bug
এর মধ্যে একাধিক লেবেল অন্তর্ভুক্ত থাকতে পারে eg
/issues?labels=enhancement,nicetohave
আপনি সহজেই কোনও টেবিলের তালিকাতে তালিকা পরিবর্তন করতে পারেন etc.
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));
}
});
});
নীচে jQuery এবং গিথুব এপিআই ব্যবহার করে একটি (সর্বজনীন) রেপোর জন্য স্নিপেট লিস্টিংয়ের সমস্যা রয়েছে:
(নোট আমরা এখানে একটি প্রমাণীকরণ শিরোনাম যোগ না!)
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" }
, তবে আমি পড়েছি এবং প্রাইভেট রেপোগুলি অ্যাক্সেস করার চেষ্টা করার সময় এটি স্পষ্টতই স্ট্যান্ডার্ড প্রতিক্রিয়া, সুতরাং OAuth ইত্যাদির উপর গবেষণা করে FWIW, jQuery কাঠামোর আওতায় জাভাস্ক্রিপ্ট ব্যবহার করে।