Можно ли выполнить действие с `context` в начале приложения? - PullRequest
0 голосов
/ 18 сентября 2018

Я просто ищу что-то вроде этого

app.on('init', async context => {
 ...
})

В основном мне просто нужно сделать вызовы API github, но я не уверен, что есть способ сделать это без использованияКлиент API внутри объекта Context.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Я пробовал планировщик пробот, но его не было - возможно, он был удален в обновлении?

В любом случае мне удалось сделать это после большого количества копаний с использованием фактического объекта app - это.auth() метод возвращает обещание, содержащее интерфейс GitHubAPI: https://probot.github.io/api/latest/classes/application.html#auth

module.exports = app => {
    router.get('/hello-world', async (req, res) => {
        const github = await app.auth();
        const result = await github.repos.listForOrg({'org':'org name});
        console.log(result);
    })
}

.auth() принимает идентификатор установки, если вы хотите получить доступ к личным данным.Если вызывается пустым, клиент может получать только открытые данные.

Вы можете получить идентификатор установки, позвонив .auth() без параметров, а затем listInstallations():

const github = await app.auth();
const result = github.apps.listInstallations();
console.log(result);

Вы получитемассив, включающий идентификаторы, которые вы можете в .auth().

0 голосов
/ 01 октября 2018

В итоге я использовал пробот-планировщик

const createScheduler = require('probot-scheduler')
module.exports = app => {

  createScheduler(app, {
    delay: false
  })
  robot.on('schedule.repository', context => {
    // this is called on startup and can access context
  })
}
...