Skip to content

Instantly share code, notes, and snippets.

@tygern
Last active March 15, 2017 21:25
Show Gist options
  • Save tygern/6d1dad2a5dc5018a028badf5c7cdd04b to your computer and use it in GitHub Desktop.
Save tygern/6d1dad2a5dc5018a028badf5c7cdd04b to your computer and use it in GitHub Desktop.
Google feedback form to Pivotal Tracker
function sentToTracker() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
var lastRow = sheet.getLastRow();
var feedback = feedbackFromRow(sheet, lastRow);
createStory(feedback, "1990653", "6b99e32f7dbf9a37317171b28c48b1d6");
}
function feedbackFromRow(sheet, row) {
return {
"timestamp": sheet.getRange(row, 1).getValue(),
"url": sheet.getRange(row, 2).getValue(),
"section": sheet.getRange(row, 3).getValue(),
"email": sheet.getRange(row, 4).getValue(),
"comment": sheet.getRange(row, 5).getValue()
}
}
function storyDescription(feedback) {
var description = "\n\n\n--------\n\n**Comment**\n" + feedback.comment + "\n\n**link:** " + feedback.url + "\n\n**section:** " + feedback.section;
if (feedback.email) {
description += "\n\n**email:** " + feedback.email;
}
description += "\n\n" + feedback.timestamp;
return description;
}
function createStory(feedback, projectId, apiToken) {
var projectUrl = "https://www.pivotaltracker.com/services/v5/projects/" + projectId + "/stories";
var headers = {
"X-TrackerToken": apiToken,
"Content-Type": "application/json"
};
var body = {
"name": feedback.section + ": updates from feedback",
"description": storyDescription(feedback),
"story_type": "feature",
"labels": ["feedback"]
};
UrlFetchApp.fetch(projectUrl, {
"method": "post",
"headers": headers,
"payload": JSON.stringify(body)
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment