Можно ли выполнить действие с `context` на инициализации приложения?

Я просто ищу что-то подобное

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

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

1 ответ

Решение

Я в конечном итоге с помощью пробот-планировщик

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
  })
}

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

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

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(),

Другие вопросы по тегам