2

我想在我的工作流程中创建一个 VM 并设置为自托管运行器。现在,阻碍我的是缺乏给我 Runner Token 的 API。如果存在,我可以创建实例并将其注册为运行器,以便在下一个作业中使用它。

现在有没有人可以解决获得跑步者令牌的方法?

4

2 回答 2

3

延迟更新

看起来他们终于创建了 runner api。请参阅此处的 API规范

[POST] /repos/{owner}/{repo}/actions/runners/registration-token

他们现在也有关于如何做到这一点的示例片段。有关完整示例,请参阅此处发布的其他答案。


上一个答案

现在,您必须使用此处找到的指南手动创建实例。

github 工作人员称,计划最终添加一个用于生成 runner 令牌的 api,但没有透露何时发生这种情况的时间表。

路线图上有一个用于此的 API。我目前没有时间表可以分享。但我们将在可用时将其发布到变更日志

并澄清围绕 PAT/跑步者令牌的一些困惑。通过 UI 提供的 runner 令牌是一个临时令牌,会在 60 分钟后过期。它仅具有注册跑步者的能力。

PAT 无法注册跑步者。

于 2020-01-02T17:59:32.750 回答
3

创建注册令牌的 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,
};

于 2020-12-14T22:19:12.077 回答