Skip to content

Commit bcb728a

Browse files
committed
Fix misleading private repository message during partial fetch
1 parent 8bbbc4f commit bcb728a

1 file changed

Lines changed: 28 additions & 8 deletions

File tree

src/hooks/useGitHubData.ts

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,28 @@ export const useGitHubData = (getOctokit: () => any) => {
3636
setError('');
3737

3838
try {
39-
const [issueRes, prRes] = await Promise.all([
39+
const [issueRes, prRes] = await Promise.allSettled([
4040
fetchPaginated(octokit, username, 'issue', page, perPage),
4141
fetchPaginated(octokit, username, 'pr', page, perPage),
4242
]);
4343

44-
setIssues(issueRes.items);
45-
setPrs(prRes.items);
46-
setTotalIssues(issueRes.total);
47-
setTotalPrs(prRes.total);
44+
if (issueRes.status === 'fulfilled') {
45+
setIssues(issueRes.value.items);
46+
setTotalIssues(issueRes.value.total);
47+
}
48+
49+
if (prRes.status === 'fulfilled') {
50+
setPrs(prRes.value.items);
51+
setTotalPrs(prRes.value.total);
52+
}
53+
54+
if (
55+
issueRes.status === 'rejected' ||
56+
prRes.status === 'rejected'
57+
) {
58+
setError('Some GitHub data could not be fetched completely.');
59+
}
60+
4861
setRateLimited(false);
4962
} catch (err: any) {
5063
const errorMessage = err.message?.toLowerCase() || "";
@@ -53,13 +66,20 @@ export const useGitHubData = (getOctokit: () => any) => {
5366
setRateLimited(true);
5467
} else if (errorMessage.includes("do not exist")){
5568
setError('User not found. Please check the spelling of the GitHub username.');
56-
} else if (err.status === 401 || errorMessage.includes("permission")){
69+
}
70+
else if (errorMessage.includes("validation failed")) {
71+
setError('Invalid GitHub username or insufficient permissions.');
72+
}
73+
else if (err.status === 401 || errorMessage.includes("permission")){
5774
setError('Private repository detected. Please input PAT.');
5875
}else if(err.status===404){
5976
setError('Resource not found.');
6077
}
61-
else{
62-
setError(err.message || 'Failed to fetch data');
78+
79+
else {
80+
setError(
81+
'Unable to fetch GitHub data. Please verify the username, token, or network connection.'
82+
);
6383
}
6484
} finally {
6585
setLoading(false);

0 commit comments

Comments
 (0)