Skip to content

Commit fe2d715

Browse files
committedNov 12, 2014
remove issues from triage queue
1 parent adf9c7b commit fe2d715

6 files changed

+43
-25
lines changed
 

‎lib/sync-issues.js

+21-14
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
module.exports = sync
22

3-
function sync(db, github, repo, ready) {
3+
function sync(db, github, repo, syncAll, ready) {
44
var next = startIssues
55
var updateNeeded = []
66
var lastSeen
77

8+
db.run('get-most-recent-issue', [repo.id], function(err, result) {
9+
if (err) {
10+
return ready(err)
11+
}
12+
13+
lastSeen = result.rows.length && !syncAll ? result.rows[0].updatedAt : new Date(0)
14+
console.log('\nfetching ' + repo.user + '/' + repo.name + ' issues since ' + lastSeen)
15+
next()
16+
})
17+
818
function startIssues() {
919
github.issues.repoIssues({
1020
user: repo.user,
@@ -19,16 +29,6 @@ function sync(db, github, repo, ready) {
1929
github.getNextPage(issues, onissues)
2030
}
2131

22-
db.run('get-most-recent-issue', [repo.id], function(err, result) {
23-
if (err) {
24-
return ready(err)
25-
}
26-
27-
lastSeen = result.rows.length ? result.rows[0].updatedAt : new Date(0)
28-
console.log('\nfetching ' + repo.user + '/' + repo.name + ' issues since ' + lastSeen)
29-
next()
30-
})
31-
3232
function onissues(err, issues) {
3333
if (err) {
3434
return ready(err)
@@ -39,8 +39,12 @@ function sync(db, github, repo, ready) {
3939
}
4040

4141
next = iterIssues.bind(null, issues)
42-
4342
var shouldContinue = issues.every(function(issue) {
43+
var isPullRequest = false
44+
if (issue.pull_request && issue.pull_request.url) {
45+
isPullRequest =
46+
+issue.pull_request.url.split('/').slice(-1)[0] === issue.number
47+
}
4448
var obj = {
4549
'number': issue.number,
4650
'state': issue.state,
@@ -53,6 +57,7 @@ function sync(db, github, repo, ready) {
5357
'assignee': issue.assignee ? issue.assignee.login : '',
5458
'locked': issue.locked,
5559
'labels': issue.labels.map(function(xs) { return xs.name }),
60+
'is_pull_request': isPullRequest
5661
}
5762

5863
updateNeeded.push(obj)
@@ -117,7 +122,8 @@ function sync(db, github, repo, ready) {
117122
data.user,
118123
data.assignee,
119124
data.locked,
120-
data.labels
125+
data.labels,
126+
data.is_pull_request
121127
], ready)
122128
}
123129

@@ -134,7 +140,8 @@ function sync(db, github, repo, ready) {
134140
data.user,
135141
data.assignee,
136142
data.locked,
137-
data.labels
143+
data.labels,
144+
data.is_pull_request
138145
], ready)
139146
}
140147

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
BEGIN;
2+
ALTER TABLE nbm_issue ADD COLUMN is_pull_request BOOLEAN DEFAULT NULL;
3+
COMMIT;

‎sql/create-issue.sql

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ INSERT INTO "nbm_issue" (
1010
"user",
1111
"assignee",
1212
"locked",
13-
"labels"
13+
"labels",
14+
"is_pull_request"
1415
) VALUES (
1516
$1,
1617
$2,
@@ -23,5 +24,6 @@ INSERT INTO "nbm_issue" (
2324
$9,
2425
$10,
2526
$11,
26-
$12
27+
$12,
28+
$13
2729
) RETURNING "id"

‎sql/get-random-issue.sql

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ FROM "nbm_issue" "t0"
2424
LEFT JOIN "nbm_repo" "t1" ON ("t0"."repo_id" = "t1"."id")
2525
WHERE
2626
"t0"."state" = 'open' AND
27+
"t0"."is_pull_request" = FALSE AND
2728
"t0"."id" NOT IN (
2829
SELECT "issue_id" FROM "nbm_user_issue" "t2"
2930
WHERE "t2"."user_id" = $1

‎sql/update-issue.sql

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ UPDATE "nbm_issue" SET
88
"user" = $9,
99
"assignee" = $10,
1010
"locked" = $11,
11-
"labels" = $12
11+
"labels" = $12,
12+
"is_pull_request" = $13
1213
WHERE "number" = $1 AND "repo_id" = $2

‎sync-gh-issues.js

+12-8
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
1+
'use strict'
2+
13
var sync = require('./lib/sync-issues.js')
24
var getQuerybox = require('./lib/sql.js')
35
var Github = require('github')
6+
var once = require('once')
47
var pg = require('pg.js')
58

69
module.exports = syncAll
710

811
if (module.id === '.') {
9-
syncAll(function() {})
12+
syncAll(process.argv[2] === '--all', function() {})
1013
}
1114

12-
function syncAll(ready_) {
13-
var config = require('./config.json')
14-
var ready = function(err) {
15-
var fn = ready_
16-
ready_ = Function()
17-
fn(err)
15+
function syncAll(all, ready) {
16+
if (arguments.length === 1) {
17+
ready = all
18+
all = false
1819
}
1920

21+
var config = require('./config.json')
22+
ready = once(ready)
23+
2024
var github = new Github({
2125
version: '3.0.0'
2226
, protocol: 'https'
@@ -44,7 +48,7 @@ function syncAll(ready_) {
4448
if (!pending) return end()
4549

4650
results.rows.forEach(function(repo) {
47-
sync(qbox, github, repo, function(err) {
51+
sync(qbox, github, repo, all, function(err) {
4852
if (err) console.error(err.stack)
4953

5054
!--pending && end()

0 commit comments

Comments
 (0)
Please sign in to comment.