/** * An HTTP endpoint that acts as a webhook for GitHub issues event * @param {object} event * @returns {any} result */ module.exports = async (event, context) => { // authenticates you with the API standard library // type `await lib.` to display API autocomplete const lib = require("lib")({ token: process.env.STDLIB_SECRET_TOKEN }); if ( context.params.event.repository.owner.login == process.env.GH_NAMESPACE && context.params.event.repo == process.env.GH_REPO_SLUG ) { const issueMetadata = lib.github.issues["@0.3.5"].retrieve({ owner: `${event.repository.owner.login}`, repo: `${event.repository.name}`, issue_number: Number(`${event.issue.id}`), }); const issueBody = issueMetadata.body; let glApiResponse = lib.http.request["@1.1.6"].post({ url: `https://${process.env.GITLAB_HOST}/api/v3/projects/${process.env.GITLAB_PROJECT_ID}/issues`, authorization: `${process.env.GITLAB_TOKEN}`, params: { title: `todo`, body: `todo`, }, }); let closeThis = lib.github.issues["@0.3.5"].update({ owner: `${event.repository.owner.login}`, repo: `${event.repository.name}`, issue_number: Number(`${event.issue.number}`), state: "closed", }); return { github: closeThis, gitlab: glApiResponse, }; } else { return { ok: false, error: "Repo name and owner login mismatch found!", }; } };