- 有効なアクセスレベル
- グループやプロジェクトへのメンバーの追加
- グループまたはプロジェクトで保留中のすべての招待をリストアップします。
- グループまたはプロジェクトへの招待の更新
- グループやプロジェクトへの招待の削除
招待API
グループやプロジェクトにユーザーを招待したり追加したり、保留中の招待を一覧表示するには、Invitations API を使用します。
有効なアクセスレベル
招待状を送信するには、メールを送信するプロジェクトまたはグループへのアクセス権が必要です。有効なアクセスレベルはGitlab::Access モジュールで定義されています。現在、以下のレベルが有効です:
- アクセス不可 (0)
- 最小アクセス (5) (GitLab 13.5 で導入)
- ゲスト (10)
- レポーター (20)
- 開発者 (30)
- メンテナー (40)
- オーナー (50).GitLab 14.9 以降のプロジェクトで有効です。
GitLab 14.9以降では、プロジェクトの最大ロールはOwnerです。GitLab 14.8以前の既知のイシューのため、プロジェクトの最大ロールはメンテナーです。
グループやプロジェクトへのメンバーの追加
新しいメンバーを追加します。ユーザーIDを指定したり、メールでユーザーを招待することができます。
POST /groups/:id/invitations
POST /projects/:id/invitations
| 属性 | 種類 | 必須 | 説明 | 
|---|---|---|---|
| id | 整数/文字列 | yes | 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス | 
| email | 文字列です。 | yes ( user_idが提供されない場合) | 新メンバーのEメール、またはカンマで区切られた複数のEメール。 | 
| user_id | 整数/文字列 | yes ( emailが提供されない場合) | 新しいメンバーのID、またはカンマで区切られた複数のID。GitLab 14.10 で導入。 | 
| access_level | 整数。 | yes | 有効なアクセスレベル | 
| expires_at | 文字列です。 | いいえ | YEAR-MONTH-DAY形式の日付文字列。 | 
| invite_source | 文字列です。 | いいえ | メンバ作成プロセスを開始する招待のソース。このイシューを参照してください。 | 
| tasks_to_be_done | 文字列の配列。 | いいえ | 招待者がメンバーに注目してほしいタスク。タスクは指定されたプロジェクトのイシューとして追加されます。指定できる値は次のとおりです: cicodeとissuesが指定された場合、tasks_project_idが必要です。GitLab 14.6 で導入されました。 | 
| tasks_project_id | 整数。 | いいえ | タスク・イシューを作成するプロジェクトID。指定された場合、 tasks_to_be_doneが必要です。GitLab 14.6 で導入されました。 | 
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "email=test@example.com&user_id=1&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/invitations"
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "email=test@example.com&user_id=1&access_level=30" "https://gitlab.example.com/api/v4/projects/:id/invitations"
レスポンスの例
すべてのメールが正常に送信された場合
{  "status":  "success"  }
送信エラーが発生した場合
{
  "status": "error",
  "message": {
               "test@example.com": "Invite email has already been taken",
               "test2@example.com": "User already exists in source",
               "test_username": "Access level is not included in the list"
             }
}
グループまたはプロジェクトで保留中のすべての招待をリストアップします。
認証ユーザーが表示可能な、招待されたグループまたはプロジェクトのメンバーのリストを取得します。直接のメンバーへの招待のみを返し、継承された先祖のグループへの招待は返しません。
この関数は、ページ分割パラメータpage とper_page を受け取り、メンバーのリストを制限します。
GET /groups/:id/invitations
GET /projects/:id/invitations
| 属性 | 種類 | 必須 | 説明 | 
|---|---|---|---|
| id | 整数/文字列 | yes | 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス | 
| page | 整数。 | いいえ | 検索ページ | 
| per_page | 整数。 | いいえ | 1ページに返信する会員招待の数 | 
| query | 文字列です。 | いいえ | 招待メールで招待メンバーを検索するためのクエリ文字列。クエリテキストはメールアドレスと正確に一致する必要があります。空の場合、すべての招待を返します。 | 
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/invitations?query=member@example.org"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/invitations?query=member@example.org"
応答例
 [
   {
     "id": 1,
     "invite_email": "member@example.org",
     "created_at": "2020-10-22T14:13:35Z",
     "access_level": 30,
     "expires_at": "2020-11-22T14:13:35Z",
     "user_name": "Raymond Smith",
     "created_by_name": "Administrator"
   },
]
グループまたはプロジェクトへの招待の更新
保留中の招待状のアクセスレベルまたはアクセス有効期限を更新します。
PUT /groups/:id/invitations/:email
PUT /projects/:id/invitations/:email
| 属性 | 種類 | 必須 | 説明 | 
|---|---|---|---|
| id | 整数/文字列 | yes | 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス。 | 
| email | 文字列です。 | yes | 招待状が以前に送信されたEメールアドレス。 | 
| access_level | 整数。 | いいえ | 有効なアクセス・レベル (デフォルト: 30、開発者ロール)。 | 
| expires_at | 文字列です。 | いいえ | ISO 8601 形式 ( YYYY-MM-DDTHH:MM:SSZ) の日付文字列。 | 
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/55/invitations/email@example.org?access_level=40"
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/55/invitations/email@example.org?access_level=40"
応答例
{
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
}
グループやプロジェクトへの招待の削除
保留中の招待状をアドレス別に削除します。
DELETE /groups/:id/invitations/:email
DELETE /projects/:id/invitations/:email
| 属性 | 種類 | 必須 | 説明 | 
|---|---|---|---|
| id | 整数/文字列 | yes | 認証されたユーザーが所有するプロジェクトまたはグループのIDまたはURLエンコードされたパス | 
| email | 文字列です。 | yes | 以前に招待状が送信されたメールアドレス | 
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/55/invitations/email@example.org"
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/55/invitations/email@example.org"
- 成功した場合は204を返し、内容は返されません。
- 招待の削除が許可されていない場合は403forbidden を返します。
- 作成者が許可しており、そのメールアドレスに招待状が見つからない場合は404not found を返します。
- リクエストが有効であったが招待を削除できなかった場合は409を返します。
