Skip to content

Commit

Permalink
fix: filter out private repos
Browse files Browse the repository at this point in the history
filtering out private repos just in case, otherwise if a user somehow
found out the name of any of the PAT owner's private -
(considering they created the PAT with private repo access) repos's name
then they could see the repo in github extra pins.
  • Loading branch information
anuraghazra committed Jul 17, 2020
1 parent 6fedd69 commit 1c03323
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/fetchRepo.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const fetcher = (variables, token) => {
fragment RepoInfo on Repository {
name
nameWithOwner
isPrivate
stargazers {
totalCount
}
Expand Down Expand Up @@ -53,15 +54,21 @@ async function fetchRepo(username, reponame) {
throw new Error("Not found");
}

if (data.organization === null && data.user) {
if (!data.user.repository) {
const isUser = data.organization === null && data.user;
const isOrg = data.user === null && data.organization;

if (isUser) {
if (!data.user.repository || data.user.repository.isPrivate) {
throw new Error("User Repository Not found");
}
return data.user.repository;
}

if (data.user === null && data.organization) {
if (!data.organization.repository) {
if (isOrg) {
if (
!data.organization.repository ||
data.organization.repository.isPrivate
) {
throw new Error("Organization Repository Not found");
}
return data.organization.repository;
Expand Down
13 changes: 13 additions & 0 deletions tests/fetchRepo.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,17 @@ describe("Test fetchRepo", () => {
"Not found"
);
});

it("should throw error if repository is private", async () => {
mock.onPost("https://api.github.com/graphql").reply(200, {
data: {
user: { repository: { ...data_repo, isPrivate: true } },
organization: null,
},
});

await expect(fetchRepo("anuraghazra", "convoychat")).rejects.toThrow(
"User Repository Not found"
);
});
});

0 comments on commit 1c03323

Please sign in to comment.