Как получить токен бегуна действий на 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,
};