-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
69 lines (65 loc) · 2.1 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"use strict";
var http = require('http'),
github = require('./github.js'),
config = require('./config.js'),
autopr = require('./git-api.js')[1],
log = require('./logger.js'),
teamMembers = config.teamMembers,
state, branch,
server = http.createServer(function(req, res) {
var response = [];
if (req.method === "POST" && req.headers && (/^GitHub/).test(req.headers["user-agent"])) {
req.on('data', function(data) {
response.push(data.toString("utf-8"));
});
req.on('end', function() {
var data = response.join("");
data = JSON.parse(data.toString('utf-8'));
if (data.pusher) {
var user = data.pusher.name;
if (data.commits.length) {
var commitMessage = data.commits[0].message,
sha = data.commits[0].id;
}
var release_branch = data.ref.replace(/^refs\/heads\//, "");
if ((/^r\d\.([1-9]|1[0-2])\.([0-9]|1[1-2])\d*$/).test(release_branch)) {
if (data.created) {
state = "opened";
log.i(user, state, release_branch);
github.autostage(state, release_branch, 527, "release");
} else if (!data.created && !data.deleted) {
state = "hotfix";
log.i(user, state, release_branch);
log.i("create auto pr only for " + sha + " commit");
github.hotfix(sha, user);
return;
} else return;
} else if (data.pusher.name === "scrollbackbot") {
state = "auto PR with this commit only";
log.i(user, state, release_branch);
autopr(release_branch, commitMessage);
}
} else if (data.pull_request) {
var user = data.sender.login,
pullRequestNo = data.pull_request.number;
branch = data.pull_request.head.ref;
state = data.action;
log.i(user, state, branch);
if (teamMembers.indexOf(user) < 0) return;
github.autostage(state, branch, pullRequestNo);
} else {
return;
}
log.i('Request ended');
res.end('Autostage Server');
});
req.on('close', function() {
console.log('connection closed');
});
}
req.on("err", function() {
console.log("err");
});
});
server.listen(7001);
console.log('Server is running on port 7001');