scai
Version:
> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.
44 lines (43 loc) • 1.38 kB
JavaScript
export async function fetchOpenPullRequests(token, owner, repo) {
const url = `https://api.github.com/repos/${owner}/${repo}/pulls`;
const res = await fetch(url, {
headers: {
Authorization: `token ${token}`,
Accept: "application/vnd.github.v3+json",
},
});
if (!res.ok) {
throw new Error(`GitHub API error: ${res.status} ${res.statusText}`);
}
const prs = await res.json();
return prs.map((pr) => ({
number: pr.number,
title: pr.title,
diff_url: pr.diff_url,
}));
}
export async function fetchPullRequestDiff(pr, token) {
const res = await fetch(pr.diff_url, {
headers: {
Authorization: `token ${token}`,
Accept: "application/vnd.github.v3.diff",
},
});
if (!res.ok) {
throw new Error(`Error fetching PR diff: ${res.status} ${res.statusText}`);
}
return await res.text();
}
export async function getGitHubUsername(token) {
const res = await fetch('https://api.github.com/user', {
headers: {
Authorization: `token ${token}`,
Accept: "application/vnd.github.v3+json",
},
});
if (!res.ok) {
throw new Error(`Error fetching user info: ${res.status} ${res.statusText}`);
}
const user = await res.json();
return user.login; // GitHub username
}