Skip to content

Commit a494abe

Browse files
committed
change migration script to use async.whilst
1 parent 96df077 commit a494abe

File tree

1 file changed

+36
-30
lines changed

1 file changed

+36
-30
lines changed

scripts/update-github-webhooks-event.js

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,35 +19,39 @@ function findAllRepos(cb) {
1919

2020
var allErrors = [];
2121

22+
23+
function findUser (users, cb) {
24+
var user;
25+
var count = 0;
26+
async.whilst(
27+
function () { return !user || count < users.length; },
28+
function (callback) {
29+
var u = users[count];
30+
count++;
31+
User.findByGithubId(user, function (err, gitHubUser) {
32+
if (gitHubUser) {
33+
user = gitHubUser;
34+
}
35+
callback();
36+
});
37+
},
38+
function (err) {
39+
if (err) {
40+
return cb(err);
41+
}
42+
cb(null, user);
43+
}
44+
);
45+
}
46+
47+
2248
function findUsersForRepos(repos, cb) {
2349
debug('findUsersForRepos', 'total repos num:', repos.length);
2450
async.map(repos, function (repo, callback) {
25-
User.findByGithubId(repo.creators[0], function (err, user) {
51+
findUser(repo.creators, function (err, user) {
2652
if (err) { return callback(err); }
2753
repo.user = user;
28-
if (!user) {
29-
if (!repo.creators[1]) {
30-
return callback(null, repo);
31-
}
32-
User.findByGithubId(repo.creators[1], function (err, user) {
33-
if (err) { return callback(err); }
34-
repo.user = user;
35-
if (!user) {
36-
if (!repo.creators[2]) {
37-
return callback(null, repo);
38-
}
39-
User.findByGithubId(repo.creators[2], function (err, user) {
40-
if (err) { return callback(err); }
41-
repo.user = user;
42-
callback(null, repo);
43-
});
44-
} else {
45-
callback(null, repo);
46-
}
47-
});
48-
} else {
49-
callback(null, repo);
50-
}
54+
callback(null, repo);
5155
});
5256
}, cb);
5357
}
@@ -56,9 +60,9 @@ function findUsersForRepos(repos, cb) {
5660
function updateHooksEvents(repos, cb) {
5761
debug('updateHooksEvents', 'total repos num:', repos.length);
5862
async.mapLimit(repos, 50, function(repo, callback) {
59-
console.log('processing repo', repo);
63+
debug('processing repo', repo);
6064
if (!repo.user) {
61-
console.log('user not found for the repo', repo);
65+
debug('user not found for the repo', repo);
6266
return callback();
6367
}
6468
var github = new GitHub({token: repo.user.accounts.github.accessToken});
@@ -67,12 +71,14 @@ function updateHooksEvents(repos, cb) {
6771
if (err) {
6872
allErrors.push(err);
6973
if(err.output.statusCode === 404) {
70-
console.log('repos not found. just skip it', repo);
74+
debug('repos not found. just skip it', repo);
7175
callback(null);
72-
} else if(err.output.statusCode === 502) {
73-
console.log('access token removed. just skip it', repo);
76+
}
77+
else if(err.output.statusCode === 502) {
78+
debug('access token removed. just skip it', repo);
7479
callback(null);
75-
} else {
80+
}
81+
else {
7682
callback(err);
7783
}
7884
}

0 commit comments

Comments
 (0)