Skip to content

Commit 1195a4e

Browse files
committed
See notes,
added isolation mode for easier testing, further tidy to start, began tidy of github.js Updates to changelog
1 parent a8f6bdd commit 1195a4e

4 files changed

Lines changed: 74 additions & 59 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
Pending - x.x.x
22
---
33
* Added CHANGELOG.md
4-
* Removed redundant data folder
5-
* Removed unneeded build.sh
6-
* Moved logic script into lib
4+
* Removed redundant data folder.
5+
* Removed unneeded build.sh.
6+
* Moved logic script into lib.
7+
* Refactored start.js and github.js for clarity.
78

89
6 April 2016 - 6.0.0
910
---

lib/github.js

Lines changed: 58 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var gitUrl
88

99
var opts = {
1010
registry: 'http://registry.npmjs.org/',
11-
token: ''
11+
token: 'NO_TOKEN'
1212
}
1313

1414
module.exports = function (options) {
@@ -21,33 +21,34 @@ module.exports = function (options) {
2121
seneca.add('role:github,cmd:query', cmdQuery)
2222
seneca.add('role:github,cmd:parse', cmdParse)
2323
seneca.add('role:github,cmd:extract', cmdExtract)
24-
25-
seneca.add('role:info,req:part', function (args, done) {
26-
console.log('foo')
27-
done()
28-
29-
this.act('role:github,cmd:get', {name: args.name}, function (err, mod) {
30-
if (err) {
31-
return done(err)
32-
}
33-
this.act('role:info,res:part,part:github', {name: args.name, data: mod.data$()})
34-
})
35-
})
24+
seneca.add('role:info,req:part', aliasGet)
3625

3726
return {
3827
name: 'nodezoo-github'
3928
}
4029
}
4130

31+
function aliasGet (msg, done) {
32+
var seneca = this
33+
var payload = {name: msg.name}
34+
35+
seneca.act('role:github,cmd:get', payload, (err, data) => {
36+
if (err) return done(err)
37+
38+
payload.data = data
39+
seneca.act('role:info,res:part,part:github', payload)
40+
done()
41+
})
42+
}
43+
4244
function cmdGet (args, done) {
4345
var seneca = this
46+
var cache = seneca.make$('github')
4447

4548
var githubName = args.name
46-
var githubEnt = seneca.make$('github')
47-
4849
var url = opts.registry + githubName
49-
// check if in the cache
50-
githubEnt.load$(githubName, function (err, github) {
50+
51+
cache.load$(githubName, function (err, github) {
5152
if (err) {
5253
return done(err)
5354
}
@@ -93,59 +94,63 @@ function cmdGet (args, done) {
9394
function cmdQuery (args, done) {
9495
var seneca = this
9596

96-
var githubEnt = seneca.make$('github')
97+
var cache = seneca.make$('github')
9798
var githubName = args.name
9899
var user = args.user
99100
var repo = args.repo
100101

101102
github.authenticate({
102-
type: 'basic',
103-
username: opts.token,
104-
password: 'x-oauth-basic'
103+
type: 'token',
104+
token: opts.token
105105
})
106106

107-
github.repos.get({user: user, repo: repo}, function (err, repo) {
108-
if (err) {
109-
return done(err)
110-
}
107+
var getRepos = {
108+
user: user,
109+
repo: repo
110+
}
111+
112+
github.repos.get(getRepos, (err, repo) => {
113+
if (err) return done(err)
114+
if (!repo) return done()
115+
111116
var data
112-
if (repo) {
113-
var pullRequests = []
114-
github.pullRequests.getAll({user: user, repo: githubName, state: 'open'}, function (err, response) {
115-
if (err) {
116-
console.log(err)
117-
}
118-
if (response) {
119-
pullRequests = response
120-
}
121-
})
122-
data = {
117+
var pullRequests = []
118+
var getPullRequests = {
119+
user: user,
120+
repo: githubName,
121+
state: 'open'
122+
}
123+
124+
github.pullRequests.getAll(getPullRequests, (err, prs) => {
125+
if (err) console.log(err)
126+
127+
var data = {
123128
name: args.repo || '',
124129
user: args.user || '',
125130
repo: args.repo || '',
126131
stars: repo.stargazers_count || '',
127132
watches: repo.subscribers_count || '',
128133
forks: repo.forks_count || '',
129134
last: repo.pushed_at || '',
130-
url: gitUrl || '',
131-
gitClone: repo.clone_url || '',
132-
pullRequests: pullRequests.length || ''
135+
urlRepo: gitUrl || '',
136+
urlClone: repo.clone_url || '',
137+
pullRequests: prs && prs.length || 0,
138+
cached: Date.now()
133139
}
134-
// update the data if module exists in cache, if not create it
135-
githubEnt.load$(githubName, function (err, github) {
136-
if (err) {
137-
return done(err)
138-
}
139-
if (github) {
140-
return github.data$(data).save$(done)
141-
}
142-
else {
143-
data.id$ = githubName
144-
githubEnt.make$(data).save$(done)
145-
}
140+
141+
function complete (err) {
142+
if (err) return done (err)
143+
else done (null, data)
144+
}
145+
146+
cache.load$(githubName, function (err, github) {
147+
if (err) return done(err)
148+
if (github) return github.data$(data).save$(complete)
149+
150+
data.id$ = githubName
151+
cache.make$(data).save$(complete)
146152
})
147-
}
148-
else return done()
153+
})
149154
})
150155
}
151156

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"version": "6.0.0",
44
"description": "nodezoo.com micro-service handling github meta data",
55
"scripts": {
6-
"start": "node srv/start.js"
6+
"start": "node srv/start.js",
7+
"isolated": "GITHUB_ISOLATED=true node srv/start.js"
78
},
89
"main": "lib/github.js",
910
"keywords": [

srv/start.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,26 @@ var opts = {
1111
tag: envs.GITHUB_TAG || 'nodezoo-github'
1212
},
1313
github: {
14-
token: envs.GITHUB_TOKEN || ''
14+
token: envs.GITHUB_TOKEN || '668fd718441b4d97699763b9d97f402c8370d331'
1515
},
1616
mesh: {
1717
auto: true,
1818
listen: [
1919
{pin: 'role:github,cmd:get', model: 'consume'},
2020
{pin: 'role:info,req:part', model: 'observe'}
2121
]
22+
},
23+
isolated: {
24+
host: envs.GITHUB_HOST || 'localhost',
25+
port: envs.GITHUB_PORT || '8052'
2226
}
2327
}
2428

29+
var Service =
2530
Seneca(opts.seneca)
2631
.use(Entities)
2732
.use(Github, opts.github)
28-
.use(Mesh, opts.mesh)
33+
34+
envs.GITHUB_ISOLATED
35+
? Service.listen(opts.isolated)
36+
: Service.use(Mesh, opts.mesh)

0 commit comments

Comments
 (0)