Как получить токен бегуна действий на github

Я хочу создать виртуальную машину и настроить ее как самостоятельного исполнителя во время рабочего процесса. Прямо сейчас меня блокирует отсутствие API, который дает мне Runner Token. Если он существует, я мог бы создать экземпляр и зарегистрировать его как бегуна, чтобы иметь возможность использовать его в следующем задании.

Есть ли у кого-нибудь обходной путь для получения токена бегуна?

2 ответа

Решение

На данный момент вам нужно создать экземпляры вручную, используя приведенное здесь руководство.

По словам сотрудников github, есть план в конечном итоге добавить api для генерации токенов бегуна, но не раскрывается график того, когда это может произойти.

API для этого находится в планах. На данный момент у меня нет графика, чтобы поделиться. Но мы опубликуем сообщение в журнале изменений, когда это станет доступно.

И чтобы прояснить некоторую путаницу вокруг PAT / токенов бегунов. Токен участника, предоставляемый через пользовательский интерфейс, является временным токеном, срок действия которого истекает через 60 минут. У него есть только возможность регистрировать бегунов.

PAT не могут регистрировать бегунов.

API для создания регистрационного токена уже доступен:

  • Здесь вы можете прочитать, как создать его для уровня репозитория.
  • А здесь - на уровне организации

Используя следующий код JavaScript, вы можете создать токен регистрации GitHub внутри вашего действия GitHub:

      const core = require('@actions/core');
const github = require('@actions/github');

async function getRegistrationToken() {
  const githubToken = core.getInput('github_token'); // the GitHub Secret Token provided as an input of your GitHub Action using ${{ secrets.GITHUB_TOKEN }}
  const octokit = github.getOctokit(githubToken);

  const response = await octokit.request('POST /repos/{owner}/{repo}/actions/runners/registration-token', {
    owner: github.context.repo.owner, // the value is taken from the environment variable GITHUB_REPOSITORY which is provided by the GitHub Action during runtime
    repo: github.context.repo.repo, // the value is taken from the environment variable GITHUB_REPOSITORY which is provided by the GitHub Action during runtime
  });

  return response.data.token;
}

module.exports = {
  getRegistrationToken,
};

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