{
  "description": "Run the runner, register it with a GitLab instance, or verify registered runners. Service management, run-single, executor-specific registration options and token reset are left out.",
  "name": "gitlab-runner",
  "subcommands": [
    {
      "name": "run",
      "description": "Fetch and process jobs from GitLab until stopped.",
      "options": [
        {
          "names": [
            "--config"
          ],
          "description": "Config file",
          "args": {
            "name": "config",
            "isOptional": false,
            "template": "filepaths"
          }
        },
        {
          "names": [
            "--working-directory"
          ],
          "description": "Working directory",
          "args": {
            "name": "working_directory",
            "isOptional": false,
            "template": "folders"
          }
        },
        {
          "names": [
            "--user"
          ],
          "description": "Run builds as user",
          "args": {
            "name": "user",
            "isOptional": false
          }
        },
        {
          "names": [
            "--listen-address"
          ],
          "description": "host:port for the Prometheus metrics server.",
          "args": {
            "name": "listen_address",
            "description": "host:port for the Prometheus metrics server.",
            "isOptional": false
          }
        }
      ]
    },
    {
      "name": "register",
      "description": "Register a runner non-interactively with a URL and authentication token.",
      "options": [
        {
          "names": [
            "--url"
          ],
          "description": "GitLab URL",
          "args": {
            "name": "url",
            "isOptional": false
          }
        },
        {
          "names": [
            "--token"
          ],
          "description": "Authentication token",
          "args": {
            "name": "token",
            "isOptional": false
          }
        },
        {
          "names": [
            "--name"
          ],
          "description": "Runner name",
          "args": {
            "name": "name",
            "isOptional": false
          }
        },
        {
          "names": [
            "--non-interactive"
          ],
          "description": "Non-interactive"
        },
        {
          "names": [
            "--config"
          ],
          "description": "Config file",
          "args": {
            "name": "config",
            "isOptional": false,
            "template": "filepaths"
          },
          "isDangerous": true
        }
      ]
    },
    {
      "name": "verify",
      "description": "Check that registered runners can connect to GitLab.",
      "options": [
        {
          "names": [
            "--url"
          ],
          "description": "GitLab URL",
          "args": {
            "name": "url",
            "isOptional": false
          }
        },
        {
          "names": [
            "--token"
          ],
          "description": "Runner token",
          "args": {
            "name": "token",
            "isOptional": false
          }
        },
        {
          "names": [
            "--delete"
          ],
          "description": "Delete runners that fail verification",
          "isDangerous": true
        },
        {
          "names": [
            "--config"
          ],
          "description": "Config file",
          "args": {
            "name": "config",
            "isOptional": false,
            "template": "filepaths"
          }
        }
      ]
    }
  ]
}
