javascriptnode.jsgithubgithub-actions

Get a list of GitHub runners?


I am fairly new to GitHub workflow/actions and tasked with getting a list of our current runners matching runners. I am across this statement looking at an existing workflow.

runs-on: ["self-hosted", "management-control-plane", "${{ needs.env.outputs.env }}"]

So it looks like its saying 'find one our existing VM with specified tag 'management-control-plane' in the specified environment. So, Github as a list of these somewhere that its referencing.

Question: How can I query the list of VMs using a tag and environment? Thank you!


Solution

  • You can use the REST API to list all runners for your organisation or repository.

    Here's a sample from the docs:

    curl \
      -H "Accept: application/vnd.github.v3+json" \
      https://api.github.com/orgs/ORG/actions/runners
    
    {
      "total_count": 2,
      "runners": [
        {
          "id": 23,
          "name": "linux_runner",
          "os": "linux",
          "status": "online",
          "busy": true,
          "labels": [
            {
              "id": 5,
              "name": "self-hosted",
              "type": "read-only"
            },
            {
              "id": 7,
      // etc...