Skip to content

Instantly share code, notes, and snippets.

@kwmt
Created September 5, 2018 01:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kwmt/e2b5b35c82a75fe18043be5ef0ae83fb to your computer and use it in GitHub Desktop.
Save kwmt/e2b5b35c82a75fe18043be5ef0ae83fb to your computer and use it in GitHub Desktop.
Google Form to Gitlab issue and slack on google app script
// ref) https://gist.github.com/bmcbride/62600e48274961819084
var token = "your gitlab api token";
function onFormSubmit(e) {
var title = e.values[2];
var email = e.values[1];
var detail = e.values[3];
var body = " From: "+email+"\n\n" + detail;
var labels = "お問い合わせフォームから"
var payload = {
"title": title,
"description": body,
"labels": labels
};
var options = {
"method": "POST",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};
var response = UrlFetchApp.fetch("https://gitlab.com/api/v4/projects/:id/issues?private_token="+token, options);
// POST は 201 created
// https://docs.gitlab.com/ee/api/#status-codes
if(response.getResponseCode() == 201) {
Logger.log(response.getContentText());
var content = JSON.parse(response.getContentText());
var message = "新規お問い合わせが届きました。\n\nissue link\n" + "<" + content.web_url + ">";
postToSlack(message);
} else {
var message = "お問い合わせが届きましたが、gitlabの登録に失敗しました。\nレスポンス内容\n" + response.getContentText();
postToSlack(message);
}
}
function postToSlack(message) {
var webhookUrl = 'your webhook url of slack';
var username = 'お問い合わせフォーム';
var jsonData =
{
"username" : username,
"text" : message
};
var payload = JSON.stringify(jsonData);
var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
var response = UrlFetchApp.fetch(webhookUrl, options);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment