Github にソースコードを PUSH したタイミングで、ソースコードの差分をチェックして、定義した条件にマッチしたらメール通知を行うスクリプトです。
例えば、
・危険なコードが含まれている。
・デバッグコードが含まれている。
・ダミーデータが含まれている。
などをチェックすることができるようになります。
var recipient = ""; var subject = "ALARM"; var rules = /console\.log|debug/i; var target = "refs/heads/master"; function doGet(e) { } function doPost(e) { var body = ""; var hasAlart = false; try { var jsonString = e.postData.getDataAsString(); var jsonData = JSON.parse(jsonString); var url = jsonData['compare'] + ".diff"; if(jsonData['ref'] == target) { var response = UrlFetchApp.fetch(url); var data = response.getContentText(); var lines = data.split('\n'); var row = 1; body = jsonData['compare'] + "\n"; for(var line in lines){ var reg = /^\+\s(.*)|^\-\s(.*)/; var match = reg.exec(lines[line]); if(match) { var result = rules.exec(lines[line]); if(result) { body += lines[line] + "\n"; row++; hasAlart = true; } } } if(hasAlart) { MailApp.sendEmail(recipient, subject, body); } } } catch(error) { body = error; hasAlart = true; MailApp.sendEmail(recipient, subject, body); } }
こちらのスクリプトをGoogle Apps Script で簡単にウェブAPIをつくるの手順で公開し、 ウェブアプリケーションURLをGithubのWebhookに設定すれば稼動します。