正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Runner API

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このページでは、インスタンスに登録されているRunnerのエンドポイントについて説明します。現在のユーザーにリンクされたRunnerを作成するには、Runnerの作成を参照してください。

ページネーションは、次のAPIエンドポイント(デフォルトでは20個のアイテムを返します)で使用できます:

GET /runners
GET /runners/all
GET /runners/:id/jobs
GET /projects/:id/runners
GET /groups/:id/runners

登録トークンと認証トークン

RunnerをGitLabに接続するには、2つのトークンが必要です。

トークン説明
登録トークン(GitLab 15.6で非推奨となり、GitLab 20.0で削除予定)Runnerを登録するために使用するトークン。GitLabを通じて取得できます。
認証トークンGitLabインスタンスでRunnerを認証するために使用するトークン。このトークンは、ユーザーがRunnerを登録すると、自動的に取得されます。つまり、ユーザーが手動でRunnerを登録するか、認証トークンをリセットすると、Runners APIによって自動的に取得されます。POST /user/runnersエンドポイントを使用しても、トークンを取得できます。

次に、Runnerの登録にトークンを使用する方法の例を示します:

  1. GitLab APIと登録トークンを使用してRunnerを登録し、認証トークンを受け取ります。

  2. 認証トークンをRunnerの設定ファイルに追加します:

    [[runners]]
      token = "<authentication_token>"

これで、GitLabとRunnerが接続されます。

利用可能なRunnerの一覧

ユーザーが利用できるRunnerのリストを取得します。

前提要件:

  • グループRunnerの場合、オーナーのネームスペースでオーナーロールが必要です。
  • プロジェクトRunnerの場合、Runnerに割り当てられたプロジェクトのメンテナーロール以上が必要です。
GET /runners
GET /runners?scope=active
GET /runners?type=project_type
GET /runners?status=online
GET /runners?paused=true
GET /runners?tag_list=tag1,tag2
属性必須説明
scope文字列いいえ非推奨: 代わりに、typeまたはstatusを使用してください。返されるRunnerのスコープ(activepausedonlineofflineのいずれか)。指定されていない場合は、すべてのRunnerが表示されます
type文字列いいえ返されるRunnerのタイプ(instance_typegroup_typeproject_typeのいずれか)
status文字列いいえ返されるRunnerの状態(onlineofflinestalenever_contactedのいずれか)。
その他の可能な値は、非推奨のactivepausedです。
offline Runnerをリクエストすると、staleofflineに含まれているため、stale Runnerも返される場合があります。
pausedブール値いいえ新規ジョブを受け入れているRunnerのみを含めるか、無視しているRunnerのみを含めるか
tag_list文字列配列いいえRunnerタグのリスト
version_prefix文字列いいえ返されるRunnerのバージョンのプレフィックス。例: 15.01416.1.241
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners"

statusクエリパラメータのactivepausedの値は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、pausedクエリパラメータを使用してください。

応答のactive属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

[
    {
        "active": true,
        "paused": false,
        "description": "test-1-20150125",
        "id": 6,
        "ip_address": "",
        "is_shared": false,
        "runner_type": "project_type",
        "name": null,
        "online": true,
        "status": "online"
    },
    {
        "active": true,
        "paused": false,
        "description": "test-2-20150125",
        "id": 8,
        "ip_address": "",
        "is_shared": false,
        "runner_type": "group_type",
        "name": null,
        "online": false,
        "status": "offline"
    }
]

すべてのRunnerをリストする

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed、GitLab Dedicated

GitLabインスタンス(プロジェクトおよび共有)内のすべてのRunnerのリストを取得します。

前提要件:

  • 管理者アクセス権または監査担当者アクセス権が必要です。
GET /runners/all
GET /runners/all?scope=online
GET /runners/all?type=project_type
GET /runners/all?status=online
GET /runners/all?paused=true
GET /runners/all?tag_list=tag1,tag2
属性必須説明
scope文字列いいえ非推奨: 代わりに、typeまたはstatusを使用してください。返されるRunnerのスコープ(specificsharedactivepausedonlineofflineのいずれか)指定されていない場合は、すべてのRunnerが表示されます
type文字列いいえ返されるRunnerのタイプ(instance_typegroup_typeproject_typeのいずれか)
status文字列いいえ返されるRunnerの状態(onlineofflinestalenever_contactedのいずれか)。
その他の可能な値は、非推奨のactivepausedです。
offline Runnerをリクエストすると、staleofflineに含まれているため、stale Runnerも返される場合があります。
pausedブール値いいえ新規ジョブを受け入れているRunnerのみを含めるか、無視しているRunnerのみを含めるか
tag_list文字列配列いいえRunnerタグのリスト
version_prefix文字列いいえ返されるRunnerのバージョンのプレフィックス。例: 15.016.1.241
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/all"

statusクエリパラメータのactivepausedの値は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、pausedクエリパラメータを使用してください。

応答のactive属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

[
    {
        "active": true,
        "paused": false,
        "description": "shared-runner-1",
        "id": 1,
        "ip_address": "",
        "is_shared": true,
        "runner_type": "instance_type",
        "name": null,
        "online": true,
        "status": "online"
    },
    {
        "active": true,
        "paused": false,
        "description": "shared-runner-2",
        "id": 3,
        "ip_address": "",
        "is_shared": true,
        "runner_type": "instance_type",
        "name": null,
        "online": false,
        "status": "offline"
    },
    {
        "active": true,
        "paused": false,
        "description": "test-1-20150125",
        "id": 6,
        "ip_address": "",
        "is_shared": false,
        "runner_type": "project_type",
        "name": null,
        "online": true,
        "status": "paused"
    },
    {
        "active": true,
        "paused": false,
        "description": "test-2-20150125",
        "id": 8,
        "ip_address": "",
        "is_shared": false,
        "runner_type": "group_type",
        "name": null,
        "online": false,
        "status": "offline"
    }
]

最初の20個よりも多くのRunnerを表示するには、ページネーションを使用してください。

Runnerの詳細を取得する

Runnerの詳細を取得します。

このエンドポイントを介したインスタンスRunnerの詳細は、すべての認証済みユーザーが利用できます。

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • グループRunnerの場合: オーナーのネームスペースで、メンテナーロール以上。
    • プロジェクトRunnerの場合: Runnerを所有するプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

GET /runners/:id
属性必須説明
id整数はいRunnerのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6"

応答のactive属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

応答のversionrevisionplatform、およびarchitecture属性はGitLab 17.0で非推奨となり、REST APIの将来のバージョンで削除される予定です。同じ属性が、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

{
    "active": true,
    "paused": false,
    "architecture": null,
    "description": "test-1-20150125",
    "id": 6,
    "ip_address": "",
    "is_shared": false,
    "runner_type": "project_type",
    "contacted_at": "2016-01-25T16:39:48.066Z",
    "maintenance_note": null,
    "name": null,
    "online": true,
    "status": "online",
    "platform": null,
    "projects": [
        {
            "id": 1,
            "name": "GitLab Community Edition",
            "name_with_namespace": "GitLab.org / GitLab Community Edition",
            "path": "gitlab-foss",
            "path_with_namespace": "gitlab-org/gitlab-foss"
        }
    ],
    "revision": null,
    "tag_list": [
        "ruby",
        "mysql"
    ],
    "version": null,
    "access_level": "ref_protected",
    "maximum_timeout": 3600
}

Runnerの詳細を更新する

Runnerの詳細を更新します。

PUT /runners/:id

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • インスタンスRunnerの場合: GitLabインスタンスへの管理者アクセス。
    • グループRunnerの場合: オーナーのネームスペースにおけるオーナーロール。
    • プロジェクトRunnerの場合: Runnerに割り当てられたプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

属性必須説明
id整数はいRunnerのID
description文字列いいえRunnerの説明
activeブール値いいえ非推奨: 代わりに、pausedを使用してください。Runnerがジョブの受信を許可されているかどうかを示すフラグ
pausedブール値いいえRunnerが新規ジョブを無視する必要があるかどうかを指定します
tag_list配列いいえRunnerのタグのリスト
run_untaggedブール値いいえタグ付けされていないジョブをRunnerが実行できるかどうかを指定します
lockedブール値いいえRunnerがロックされるかどうかを指定します
access_level文字列いいえRunnerのアクセスレベル(not_protectedまたはref_protected
maximum_timeout整数いいえRunnerがジョブを実行できる時間(秒単位)を制限する最大タイムアウト
maintenance_note文字列いいえRunnerの自由形式のメンテナンスノート(1024文字)
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6" \
     --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2"

activeクエリパラメータは非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

{
    "active": true,
    "architecture": null,
    "description": "test-1-20150125-test",
    "id": 6,
    "ip_address": "",
    "is_shared": false,
    "runner_type": "group_type",
    "contacted_at": "2016-01-25T16:39:48.066Z",
    "maintenance_note": null,
    "name": null,
    "online": true,
    "status": "online",
    "platform": null,
    "projects": [
        {
            "id": 1,
            "name": "GitLab Community Edition",
            "name_with_namespace": "GitLab.org / GitLab Community Edition",
            "path": "gitlab-foss",
            "path_with_namespace": "gitlab-org/gitlab-foss"
        }
    ],
    "revision": null,
    "tag_list": [
        "ruby",
        "mysql",
        "tag1",
        "tag2"
    ],
    "version": null,
    "access_level": "ref_protected",
    "maximum_timeout": null
}

Runnerを一時停止する

Runnerを一時停止します。

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • インスタンスRunnerの場合: GitLabインスタンスへの管理者アクセス。
    • グループRunnerの場合: オーナーのネームスペースにおけるオーナーロール。
    • プロジェクトRunnerの場合: Runnerに割り当てられたプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

PUT --form "paused=true" /runners/:runner_id

# --or--

# Deprecated: removal planned in 16.0
PUT --form "active=false" /runners/:runner_id
属性必須説明
runner_id整数はいRunnerのID
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     --form "paused=true"  "https://gitlab.example.com/api/v4/runners/6"

# --or--

# Deprecated: removal planned in 16.0
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     --form "active=false"  "https://gitlab.example.com/api/v4/runners/6"

activeフォーム属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

Runnerが処理したジョブをリストする

指定されたRunnerが処理している、または処理したジョブをリストします。ジョブのリストは、ユーザーが少なくともレポーターロールを持っているプロジェクトに限定されます。

GET /runners/:id/jobs
属性必須説明
id整数はいRunnerのID
system_id文字列いいえRunnerマネージャーが実行されているマシンのシステムID
status文字列いいえジョブの状態(runningsuccessfailedcanceledのいずれか)
order_by文字列いいえidでジョブを順序付けます
sort文字列いいえascまたはdesc順にジョブを並べ替えます(デフォルト: desc)。sortが指定されている場合は、order_byも指定する必要があります
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/1/jobs?status=running"

レスポンス例:

[
    {
        "id": 2,
        "status": "running",
        "stage": "test",
        "name": "test",
        "ref": "main",
        "tag": false,
        "coverage": null,
        "created_at": "2017-11-16T08:50:29.000Z",
        "started_at": "2017-11-16T08:51:29.000Z",
        "finished_at": "2017-11-16T08:53:29.000Z",
        "duration": 120,
        "queued_duration": 2,
        "user": {
            "id": 1,
            "name": "John Doe2",
            "username": "user2",
            "state": "active",
            "avatar_url": "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",
            "web_url": "http://localhost/user2",
            "created_at": "2017-11-16T18:38:46.000Z",
            "bio": null,
            "location": null,
            "public_email": "",
            "linkedin": "",
            "twitter": "",
            "website_url": "",
            "organization": null
        },
        "commit": {
            "id": "97de212e80737a608d939f648d959671fb0a0142",
            "short_id": "97de212e",
            "title": "Update configuration\r",
            "created_at": "2017-11-16T08:50:28.000Z",
            "parent_ids": [
                "1b12f15a11fc6e62177bef08f47bc7b5ce50b141",
                "498214de67004b1da3d820901307bed2a68a8ef6"
            ],
            "message": "See merge request !123",
            "author_name": "John Doe2",
            "author_email": "user2@example.org",
            "authored_date": "2017-11-16T08:50:27.000Z",
            "committer_name": "John Doe2",
            "committer_email": "user2@example.org",
            "committed_date": "2017-11-16T08:50:27.000Z"
        },
        "pipeline": {
            "id": 2,
            "sha": "97de212e80737a608d939f648d959671fb0a0142",
            "ref": "main",
            "status": "running"
        },
        "project": {
            "id": 1,
            "description": null,
            "name": "project1",
            "name_with_namespace": "John Doe2 / project1",
            "path": "project1",
            "path_with_namespace": "namespace1/project1",
            "created_at": "2017-11-16T18:38:46.620Z"
        }
    }
]

Runnerのマネージャーをリストする

Runnerのすべてのマネージャーをリストします。

GET /runners/:id/managers
属性必須説明
id整数はいRunnerのID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/1/managers"

レスポンス例:

[
    {
      "id": 1,
      "system_id": "s_89e5e9956577",
      "version": "16.11.1",
      "revision": "535ced5f",
      "platform": "linux",
      "architecture": "amd64",
      "created_at": "2024-06-09T11:12:02.507Z",
      "contacted_at": "2024-06-09T06:30:09.355Z",
      "ip_address": "127.0.0.1",
      "status": "offline"
    },
    {
      "id": 2,
      "system_id": "runner-2",
      "version": "16.11.0",
      "revision": "91a27b2a",
      "platform": "linux",
      "architecture": "amd64",
      "created_at": "2024-06-09T09:12:02.507Z",
      "contacted_at": "2024-06-09T06:30:09.355Z",
      "ip_address": "127.0.0.1",
      "status": "offline"
    }
]

プロジェクトのRunnerをリストする

祖先グループと許可されているインスタンスRunnerを含めて、プロジェクトで利用可能なすべてのRunnerをリストします。

前提要件:

  • GitLabインスタンスの管理者であるか、対象プロジェクトのメンテナーまたは監査担当者ロール以上を持っている必要があります。
GET /projects/:id/runners
GET /projects/:id/runners?scope=active
GET /projects/:id/runners?type=project_type
GET /projects/:id/runners/all?status=online
GET /projects/:id/runners/all?paused=true
GET /projects/:id/runners?tag_list=tag1,tag2
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
scope文字列いいえ非推奨: 代わりに、typeまたはstatusを使用してください。返されるRunnerのスコープ(activepausedonlineofflineのいずれか)。指定されていない場合は、すべてのRunnerが表示されます
type文字列いいえ返されるRunnerのタイプ(instance_typegroup_typeproject_typeのいずれか)
status文字列いいえ返されるRunnerの状態(onlineofflinestalenever_contactedのいずれか)。
その他の可能な値は、非推奨のactivepausedです。
offline Runnerをリクエストすると、staleofflineに含まれているため、stale Runnerも返される場合があります。
pausedブール値いいえ新規ジョブを受け入れているRunnerのみを含めるか、無視しているRunnerのみを含めるか
tag_list文字列配列いいえRunnerタグのリスト
version_prefix文字列いいえ返されるRunnerのバージョンのプレフィックス。例: 15.01416.1.241
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners"

statusクエリパラメータのactivepausedの値は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、pausedクエリパラメータを使用してください。

応答のactive属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

[
    {
        "active": true,
        "paused": false,
        "description": "test-2-20150125",
        "id": 8,
        "ip_address": "",
        "is_shared": false,
        "runner_type": "project_type",
        "name": null,
        "online": false,
        "status": "offline"
    },
    {
        "active": true,
        "paused": false,
        "description": "development_runner",
        "id": 5,
        "ip_address": "",
        "is_shared": true,
        "runner_type": "instance_type",
        "name": null,
        "online": true,
        "status": "online"
    }
]

Runnerをプロジェクトに割り当てる

利用可能なプロジェクトRunnerをプロジェクトに割り当てます。

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • Runnerを所有するプロジェクトおよび対象プロジェクトのメンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
POST /projects/:id/runners
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
runner_id整数はいRunnerのID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners" \
     --form "runner_id=9"

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLab 17.0では、この属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

{
    "active": true,
    "description": "test-2016-02-01",
    "id": 9,
    "ip_address": "",
    "is_shared": false,
    "runner_type": "project_type",
    "name": null,
    "online": true,
    "status": "online"
}

プロジェクトからRunnerの割り当てを解除する

プロジェクトからプロジェクトRunnerの割り当てを解除します。オーナープロジェクトからRunnerの割り当てを解除することはできません。このアクションを試みると、エラーが発生します。代わりに、Runnerの削除への呼び出しを使用します。

前提要件:

  • 管理者でない限り、Runnerをロックしてはいけません。

  • ユーザーアクセス: 次のいずれかが必要です:

    • 割り当てを解除するプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

DELETE /projects/:id/runners/:runner_id
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
runner_id整数はいRunnerのID
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners/9"

グループのRunnerをリストする

許可されているインスタンスRunnerを含めて、グループとその祖先グループで利用可能なすべてのRunnerをリストます。

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • GitLabインスタンスへの管理者アクセス。
    • グループのオーナーまたは監査担当者ロール。
    • グループ内でadmin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

GET /groups/:id/runners
GET /groups/:id/runners?type=group_type
GET /groups/:id/runners/all?status=online
GET /groups/:id/runners/all?paused=true
GET /groups/:id/runners?tag_list=tag1,tag2
属性必須説明
id整数はいグループのID
type文字列いいえ返されるRunnerのタイプ(instance_typegroup_typeproject_typeのいずれか)。project_type値は非推奨であり、GitLab 15.0で削除される予定です
status文字列いいえ返されるRunnerの状態(onlineofflinestalenever_contactedのいずれか)。
その他の可能な値は、非推奨のactivepausedです。
offline Runnerをリクエストすると、staleofflineに含まれているため、stale Runnerも返される場合があります。
pausedブール値いいえ新規ジョブを受け入れているRunnerのみを含めるか、無視しているRunnerのみを含めるか
tag_list文字列配列いいえRunnerタグのリスト
version_prefix文字列いいえ返されるRunnerのバージョンのプレフィックス。例: 15.01416.1.241
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"

statusクエリパラメータのactivepausedの値は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、pausedクエリパラメータを使用してください。

応答のactive属性は非推奨であり、REST APIの将来のバージョンで削除される予定です。代わりに、paused属性を使用してください。

応答のip_address属性はGitLab 16.1で非推奨となり、REST APIの将来のバージョンで削除される予定です。GitLabでは、t属性は空の文字列を返します。ipAddress属性は、それぞれのRunnerマネージャー内にあります。GraphQL CiRunnerManagerタイプでのみ利用可能です。

レスポンス例:

[
  {
    "id": 3,
    "description": "Shared",
    "ip_address": "",
    "active": true,
    "paused": false,
    "is_shared": true,
    "runner_type": "instance_type",
    "name": "gitlab-runner",
    "online": null,
    "status": "never_contacted"
  },
  {
    "id": 6,
    "description": "Test",
    "ip_address": "",
    "active": true,
    "paused": false,
    "is_shared": true,
    "runner_type": "instance_type",
    "name": "gitlab-runner",
    "online": false,
    "status": "offline"
  },
  {
    "id": 8,
    "description": "Test 2",
    "ip_address": "",
    "active": true,
    "paused": false,
    "is_shared": false,
    "runner_type": "group_type",
    "name": "gitlab-runner",
    "online": null,
    "status": "never_contacted"
  }
]

Runnerを作成する

このエンドポイントは、Runner登録トークンを使用した登録がプロジェクト設定またはグループ設定で無効になっている場合、HTTP 410 Gone状態コードを返します。Runner登録トークンを使用した登録が無効になっている場合は、POST /user/runnersエンドポイントを使用して、Runnerを作成して登録します。

Runner登録トークンを使用してRunnerを作成します。

POST /runners
属性必須説明
token文字列はい登録トークン
description文字列いいえRunnerの説明
infoハッシュいいえRunnerのメタデータ。nameversionrevisionplatformarchitectureを含めることができますが、UIの管理者エリアには、versionplatformarchitectureのみが表示されます
activeブール値いいえ非推奨: 代わりに、pausedを使用してください。Runnerに新規ジョブの受信を許可するかどうかを指定します
pausedブール値いいえRunnerが新規ジョブを無視する必要があるかどうかを指定します
lockedブール値いいえ現在のプロジェクトに対してRunnerをロックする必要があるかどうかを指定します
run_untaggedブール値いいえタグ付けされていないジョブをRunnerが処理する必要があるかどうかを指定します
tag_list文字列配列いいえRunnerタグのリスト
access_level文字列いいえRunnerのアクセスレベル(not_protectedまたはref_protected
maximum_timeout整数いいえRunnerがジョブを実行できる時間(秒単位)を制限する最大タイムアウト
maintainer_note文字列いいえ非推奨maintenance_noteを参照してください
maintenance_note文字列いいえRunnerの自由形式のメンテナンスノート(1024文字)
curl --request POST "https://gitlab.example.com/api/v4/runners" \
     --form "token=<registration_token>" --form "description=test-1-20150125-test" \
     --form "tag_list=ruby,mysql,tag1,tag2"

応答:

状態説明
201Runnerが作成されました
403無効なRunner登録トークン
410Runner登録が無効になっています

レスポンス例:

{
    "id": 12345,
    "token": "6337ff461c94fd3fa32ba3b1ff4125",
    "token_expires_at": "2021-09-27T21:05:03.203Z"
}

Runnerを削除する

次の要素を指定して、Runnerを削除できます:

  • RunnerのID
  • Runnerの認証トークン

IDでRunnerを削除する

IDでRunnerを削除するには、アクセストークンとRunnerのIDを使用します:

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • インスタンスRunnerの場合: GitLabインスタンスへの管理者アクセス。
    • グループRunnerの場合: オーナーのネームスペースにおけるオーナーロール。
    • プロジェクトRunnerの場合: Runnerを所有するプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

DELETE /runners/:id
属性必須説明
id整数はいRunnerのID。IDは、設定 > CI/CDで確認できます。Runnersを展開すると、Remove Runner(Runnerの削除)の下にポンド記号で始まるIDが表示されます(例: #6)。
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6"

認証トークンでRunnerを削除する

認証トークンを使用してRunnerを削除します。

DELETE /runners
属性必須説明
token文字列はいRunnerの認証トークン
curl --request DELETE "https://gitlab.example.com/api/v4/runners" \
     --form "token=<authentication_token>"

応答:

状態説明
204Runnerが削除されました

登録済みRunnerの認証を検証する

登録済みRunnerの認証情報を検証します。

POST /runners/verify
属性必須説明
token文字列はいRunnerの認証トークン
system_id文字列いいえRunnerのシステム識別子。この属性は、tokenglrt-で始まる場合に必須です。
curl --request POST "https://gitlab.example.com/api/v4/runners/verify" \
     --form "token=<authentication_token>"

応答:

状態説明
200認証情報が有効です
403認証情報が無効です

レスポンス例:

{
    "id": 12345,
    "token": "glrt-6337ff461c94fd3fa32ba3b1ff4125",
    "token_expires_at": "2021-09-27T21:05:03.203Z"
}

インスタンスのRunner登録トークンをリセットする

Runner登録トークンを渡すオプションと、特定の設定引数のサポートは、GitLab 15.6で非推奨となっており、GitLab 20.0で削除される予定です。Runner作成ワークフローを使用して、Runnerを登録するための認証トークンを生成します。このプロセスは、Runnerの所有権の完全なトレーサビリティを提供し、Runnerフリートのセキュリティを強化します。

詳細については、新しいRunner登録ワークフローに移行するを参照してください。

GitLabインスタンスのRunner登録トークンをリセットします。

POST /runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/runners/reset_registration_token"

プロジェクトのRunner登録トークンをリセットする

Runner登録トークンを渡すオプションと、特定の設定引数のサポートは、GitLab 15.6で非推奨となっており、GitLab 20.0で削除される予定です。Runner作成ワークフローを使用して、Runnerを登録するための認証トークンを生成します。このプロセスは、Runnerの所有権の完全なトレーサビリティを提供し、Runnerフリートのセキュリティを強化します。詳細については、新しいRunner登録ワークフローに移行するを参照してください。

プロジェクトのRunner登録トークンをリセットします。

POST /projects/:id/runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects/9/runners/reset_registration_token"

グループのRunner登録トークンをリセットする

Runner登録トークンを渡すオプションと、特定の設定引数のサポートは、GitLab 15.6で非推奨となっており、GitLab 20.0で削除される予定です。Runner作成ワークフローを使用して、Runnerを登録するための認証トークンを生成します。このプロセスは、Runnerの所有権の完全なトレーサビリティを提供し、Runnerフリートのセキュリティを強化します。詳細については、新しいRunner登録ワークフローに移行するを参照してください。

グループのRunner登録トークンをリセットします。

POST /groups/:id/runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/9/runners/reset_registration_token"

Runner IDを使用してRunnerの認証トークンをリセットする

Runner IDを使用して、Runnerの認証トークンをリセットします。

前提要件:

  • ユーザーアクセス: 次のいずれかが必要です:

    • インスタンスRunnerの場合: GitLabインスタンスへの管理者アクセス。
    • グループRunnerの場合: オーナーのネームスペースにおけるオーナーロール。
    • プロジェクトRunnerの場合: Runnerに割り当てられたプロジェクトで、メンテナーロール以上。
    • 関連するグループまたはプロジェクトで、admin_runners権限を持つカスタムロール。
  • manage_runnerスコープと適切なロールを持つアクセストークン。

POST /runners/:id/reset_authentication_token
属性必須説明
id整数はいRunnerのID
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/runners/1/reset_authentication_token"

レスポンス例:

{
    "token": "6337ff461c94fd3fa32ba3b1ff4125",
    "token_expires_at": "2021-09-27T21:05:03.203Z"
}

現在のトークンを使用してRunnerの認証トークンをリセットする

現在のトークンの値をインプットとして使用して、Runnerの認証トークンをリセットします。

POST /runners/reset_authentication_token
属性必須説明
token文字列はいRunnerの認証トークン
curl --request POST --form "token=<current token>" \
     "https://gitlab.example.com/api/v4/runners/reset_authentication_token"

レスポンス例:

{
    "token": "6337ff461c94fd3fa32ba3b1ff4125",
    "token_expires_at": "2021-09-27T21:05:03.203Z"
}