Merge pull request #543 from netlify/isCollaborator-fix

Fix denied login for users with many repos.
This commit is contained in:
Shawn Erquhart 2017-08-20 16:10:15 -04:00 committed by GitHub
commit 06e5c9d7a2
2 changed files with 8 additions and 12 deletions

View File

@ -19,17 +19,13 @@ export default class API {
return this.request("/user");
}
isCollaborator(user) {
return this.request('/user/repos').then((repos) => {
let contributor = false
for (const repo of repos) {
if (repo.full_name.toLowerCase() === this.repo.toLowerCase() && repo.permissions.push) contributor = true;
}
return contributor;
}).catch((error) => {
console.error("Problem with response of /user/repos from GitHub");
throw error;
})
hasWriteAccess() {
return this.request(this.repoURL)
.then(repo => repo.permissions.push)
.catch(error => {
console.error("Problem fetching repo data from GitHub");
throw error;
});
}
requestHeaders(headers = {}) {

View File

@ -32,7 +32,7 @@ export default class GitHub {
this.token = state.token;
this.api = new API({ token: this.token, branch: this.branch, repo: this.repo, api_root: this.api_root });
return this.api.user().then(user =>
this.api.isCollaborator(user.login).then((isCollab) => {
this.api.hasWriteAccess().then((isCollab) => {
// Unauthorized user
if (!isCollab) throw new Error("Your GitHub user account does not have access to this repo.");
// Authorized user