From 1b58e809c537efce9cf32aae7178d70598210a17 Mon Sep 17 00:00:00 2001 From: Sebass van Boxel Date: Wed, 10 Oct 2018 15:13:12 +0200 Subject: [PATCH] Use luis to determine label --- ModerateIssue/get-luis-intent.js | 8 ++++---- ModerateIssue/index.js | 6 ++++-- test/moderateIssueTest.js | 9 +++++---- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ModerateIssue/get-luis-intent.js b/ModerateIssue/get-luis-intent.js index 5fb0f54..ae1aa5b 100644 --- a/ModerateIssue/get-luis-intent.js +++ b/ModerateIssue/get-luis-intent.js @@ -1,10 +1,10 @@ const luisAppId = process.env.LUIS_APP_ID; const endpointKey = process.env.LUIS_ENDPOINT_KEY; -const request = require('request'); -const querystring = require('querystring'); - -module.exports = function getLuisIntent(utterance) { +module.exports = function (utterance) { + const request = require('request'); + const querystring = require('querystring'); + const luisEndpoint = "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/"; const queryParams = { diff --git a/ModerateIssue/index.js b/ModerateIssue/index.js index fb6e382..a659478 100644 --- a/ModerateIssue/index.js +++ b/ModerateIssue/index.js @@ -1,10 +1,11 @@ const octokit = require("@octokit/rest")(); const authenticate = require('./authenticate'); +const getLuisIntent = require('./get-luis-intent'); module.exports = async function (context, data) { const { body } = data const { action, repository, issue, installation } = body; - const { number } = issue; + const { number, title } = issue; const repo = repository.name; const owner = repository.owner.login; const installationId = installation.id; @@ -13,11 +14,12 @@ module.exports = async function (context, data) { let response = ""; if (action === "opened") { await authenticate(octokit, installationId) + const label = await getLuisIntent(title); response = await octokit.issues.addLabels({ owner, repo, number, - labels: ['new issue'] + labels: [label] }) } context.res = { diff --git a/test/moderateIssueTest.js b/test/moderateIssueTest.js index c7026ca..b7f5821 100644 --- a/test/moderateIssueTest.js +++ b/test/moderateIssueTest.js @@ -4,7 +4,8 @@ var issueOpenedPayload = require('./fixtures/issue-opened.json') describe("ModerateIssue", () => { var moderateIssue - + var defaultLabel; + before(() => { createCommentStub = sinon.spy() addLabelsStub = sinon.spy() @@ -15,11 +16,11 @@ describe("ModerateIssue", () => { } } - + defaultLabel = 'question' moderateIssue = proxyquire("../ModerateIssue/index", { '@octokit/rest': () => octoKitStubs, './authenticate': () => true, - './get-luis-intent': () => 'question' + './get-luis-intent': () => new Promise(resolve => resolve(defaultLabel)) }); }); @@ -27,7 +28,7 @@ describe("ModerateIssue", () => { await moderateIssue({}, { body: issueOpenedPayload }) sinon.assert.calledWith(addLabelsStub, { - labels: ['new issue'], + labels: [defaultLabel], number: issueOpenedPayload.issue.number, owner: issueOpenedPayload.repository.owner.login, repo: issueOpenedPayload.repository.name