Skip to content

Commit b2611c3

Browse files
committed
Merge pull request #76 from eduardobs79/master
Adding the default README, if any
2 parents 5760ca9 + 00719e7 commit b2611c3

File tree

1 file changed

+47
-33
lines changed

1 file changed

+47
-33
lines changed

lib/github.js

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
var GitHub = require('github4')
44
var github = new GitHub()
55
var Request = require('request')
6+
var async = require('async')
67

78
var opts = {
89
registry: 'http://registry.npmjs.org/',
@@ -92,46 +93,59 @@ function queryGithub (msg, done) {
9293
token: opts.token
9394
})
9495

95-
var params = {
96-
user: msg.user,
97-
repo: msg.repo
98-
}
96+
async.parallel({
97+
getRepository: function (cb) {
98+
github.repos.get({user: msg.user, repo: msg.repo}, cb)
99+
},
100+
101+
getReadme: function (cb) {
102+
github.repos.getReadme({user: msg.user, repo: msg.repo}, (err, readme) => {
103+
if (err) return cb(err)
104+
if (!readme.content) return cb(null, false)
99105

100-
github.repos.get(params, (err, repo) => {
106+
github.misc.renderMarkdownRaw({
107+
data: new Buffer(readme.content, 'base64').toString('ascii')
108+
}, (err, response) => {
109+
if (err && !response) return cb(err) // API fails expecting a JSON object
110+
111+
cb(null, response.data)
112+
})
113+
})
114+
},
115+
116+
getPullRequests: function (cb) {
117+
github.pullRequests.getAll({user: msg.user, repo: msg.repo, state: 'open'}, cb)
118+
}
119+
}, (err, results) => {
101120
if (err) return done(err)
102-
if (!repo) return done()
103121

104-
params.state = 'open'
122+
var data = {
123+
name: msg.repo || '',
124+
user: msg.user || '',
125+
repo: msg.repo || '',
126+
stars: results.getRepository.stargazers_count || 0,
127+
watches: results.getRepository.subscribers_count || 0,
128+
forks: results.getRepository.forks_count || 0,
129+
last: results.getRepository.pushed_at || '',
130+
urlRepo: 'https://github.com/' + msg.user + '/' + msg.repo,
131+
urlClone: 'git+https://github.com/' + msg.user + '/' + msg.repo + '.git',
132+
urlSsh: '[email protected]:' + msg.user + '/' + msg.repo + '.git',
133+
readme: results.getReadme,
134+
pullRequests: results.getPullRequests && results.getPullRequests.length || 0,
135+
cached: Date.now()
136+
}
105137

106-
github.pullRequests.getAll(params, (err, prs) => {
138+
function complete (err, data) {
107139
if (err) return done(err)
108-
var data = {
109-
name: msg.repo || '',
110-
user: msg.user || '',
111-
repo: msg.repo || '',
112-
stars: repo.stargazers_count || 0,
113-
watches: repo.subscribers_count || 0,
114-
forks: repo.forks_count || 0,
115-
last: repo.pushed_at || '',
116-
urlRepo: 'https://github.com/' + msg.user + '/' + msg.repo,
117-
urlClone: 'git+https://github.com/' + msg.user + '/' + msg.repo + '.git',
118-
urlSsh: '[email protected]:' + msg.user + '/' + msg.repo + '.git',
119-
pullRequests: prs && prs.length || 0,
120-
cached: Date.now()
121-
}
122-
123-
function complete (err, data) {
124-
if (err) return done(err)
125-
else done(null, data.data$(data))
126-
}
140+
else done(null, data.data$(data))
141+
}
127142

128-
cache.load$(msg.name, (err, cached) => {
129-
if (err) return done(err)
130-
if (cached) return cached.data$(data).save$(complete)
143+
cache.load$(msg.name, (err, cached) => {
144+
if (err) return done(err)
145+
if (cached) return cached.data$(data).save$(complete)
131146

132-
data.id$ = msg.name
133-
cache.make$(data).save$(complete)
134-
})
147+
data.id$ = msg.name
148+
cache.make$(data).save$(complete)
135149
})
136150
})
137151
}

0 commit comments

Comments
 (0)