機能フラグAPI

このAPIは、GitLabの開発で使われるFlipperベースの機能フラグを管理するためのものです。

どの方法も管理者の承認が必要です。

現在のところ、APIはブール値とパーセンテージオブタイムゲート値しかサポートしていないことに注意してください。

すべての機能を表示

永続化されたすべてのフィーチャとそのゲート値のリストを取得します。

GET /features
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/features"

回答例

[
  {
    "name": "experimental_feature",
    "state": "off",
    "gates": [
      {
        "key": "boolean",
        "value": false
      }
    ]
  },
  {
    "name": "my_user_feature",
    "state": "on",
    "gates": [
      {
        "key": "percentage_of_actors",
        "value": 34
      }
    ]
  },
  {
    "name": "new_library",
    "state": "on",
    "gates": [
      {
        "key": "boolean",
        "value": true
      }
    ]
  }
]

機能の設定または作成

フィーチャのゲート値を設定します。 与えられた名前のフィーチャがまだ存在しない場合は、それが作成されます。 値はブール値か、時間のパーセンテージを示す整数値です。

POST /features/:name
属性 タイプ 必須 説明
name はい 作成または更新する機能の名前
value 整数/文字列 はい true またはfalse で有効/無効を、整数で時間のパーセンテージを指定します。
key いいえ percentage_of_actors またはpercentage_of_time (デフォルト)
feature_group いいえ A フィーチャーグループ名
user いいえ GitLab ユーザー名
group いいえ GitLabグループのパスは、例えば次のようになります。gitlab-org
project いいえ プロジェクト・パスは、例えば次のようになります。gitlab-org/gitlab-foss

feature_groupusergroupproject の機能を1回のAPIコールで有効または無効にできることに注意してください。

curl --data "value=30" --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/features/new_library"

回答例

{
  "name": "new_library",
  "state": "conditional",
  "gates": [
    {
      "key": "boolean",
      "value": false
    },
    {
      "key": "percentage_of_time",
      "value": 30
    }
  ]
}

俳優のロールアウトのパーセンテージを設定

俳優の割合への展開。

POST https://gitlab.example.com/api/v4/features/my_user_feature?private_token=<your_access_token>
Content-Type: application/x-www-form-urlencoded
value=42&key=percentage_of_actors&

回答例

{
  "name": "my_user_feature",
  "state": "conditional",
  "gates": [
    {
      "key": "boolean",
      "value": false
    },
    {
      "key": "percentage_of_actors",
      "value": 42
    }
  ]
}

my_user_feature 、俳優の42%

機能の削除

レスポンスは、ゲートが存在する場合と存在しない場合に等しくなります。

DELETE /features/:name