Improve issue/merge_request regexps;

This commit is contained in:
Benjamin Bouvier 2017-06-28 12:50:07 +02:00
parent 90245819af
commit 8efdd4544a

View File

@ -222,11 +222,40 @@ function fetch_and_say(isIssue, id, from, chan) {
}); });
} }
var issueRegexp = /(?:\s|^)#(\d+)/g;
var mergeRequestRegexp = /(?:\s|^)!(\d+)/g;
function testIssueRegexp(r) {
function test(input, expected) {
var match = r.exec(input);
var found = 0;
while (match !== null) {
if (match[1] !== expected[found].toString()) {
throw new Error('should have found ' + expected[found]);
}
found++;
match = r.exec(input);
}
if (expected.length !== found) {
throw new Error('missing expected occurrences: ' + expected.length + 'vs expected ' + found);
}
r.lastIndex = 0;
}
test('hello #301 jeej', [301]);
test('#302 lol', [302]);
test('lol#303', []);
test('lol #303', [303]);
test('\t#304', [304]);
test(' #305', [305]);
test('hello#305 #306 jeej#42 #307 #lol # #308', [306, 307, 308]);
};
testIssueRegexp(issueRegexp);
app.listen(config.port, config.hostname, function() { app.listen(config.port, config.hostname, function() {
console.log('gitlab-to-irc running.'); console.log('gitlab-to-irc running.');
var issueRegexp = /#(\d+)/g;
var mergeRequestRegexp = /!(\d+)/g;
client.on('message', function(from, chan, message) { client.on('message', function(from, chan, message) {
var matches = null; var matches = null;
while ((matches = issueRegexp.exec(message)) !== null) { while ((matches = issueRegexp.exec(message)) !== null) {