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

トピックAPI

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: ベータ版

プロジェクトトピックを操作するためにこのAPIを使用します。詳細については、プロジェクトトピックを参照してください。

すべてのトピックを一覧表示

GitLabインスタンス内のプロジェクトトピックのリストを、関連するプロジェクトの数でソートして返します。

GET /topics

サポートされている属性は以下のとおりです:

属性必須説明
page整数いいえ取得するページ。1がデフォルトです。
per_page整数いいえページごとに返すレコード数。20がデフォルトです。
search文字列いいえnameに対してトピックを検索します。
without_projectsブール値いいえ結果を、割り当てられたプロジェクトがないトピックに制限します。

リクエスト例:

curl --request GET \
  --url "https://gitlab.example.com/api/v4/topics?search=git"

レスポンス例:

[
  {
    "id": 1,
    "name": "gitlab",
    "title": "GitLab",
    "description": "GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more.",
    "total_projects_count": 1000,
    "organization_id": 1,
    "avatar_url": "http://www.gravatar.com/avatar/a0d477b3ea21970ce6ffcbb817b0b435?s=80&d=identicon"
  },
  {
    "id": 3,
    "name": "git",
    "title": "Git",
    "description": "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.",
    "total_projects_count": 900,
    "organization_id": 1,
    "avatar_url": "http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon"
  },
  {
    "id": 2,
    "name": "git-lfs",
    "title": "Git LFS",
    "description": null,
    "total_projects_count": 300,
    "organization_id": 1,
    "avatar_url": null
  }
]

トピックを取得する

IDでプロジェクトトピックを取得します。

GET /topics/:id

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいプロジェクトトピックのID

リクエスト例:

curl --request GET \
  --url "https://gitlab.example.com/api/v4/topics/1"

レスポンス例:

{
  "id": 1,
  "name": "gitlab",
  "title": "GitLab",
  "description": "GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more.",
  "total_projects_count": 1000,
  "organization_id": 1,
  "avatar_url": "http://www.gravatar.com/avatar/a0d477b3ea21970ce6ffcbb817b0b435?s=80&d=identicon"
}

トピックに割り当てられたすべてのプロジェクトを一覧表示

Projects APIを使用して、特定のトピックに割り当てられたすべてのプロジェクトを一覧表示します。

GET /projects?topic=<topic_name>

プロジェクトトピックを作成

新しいプロジェクトトピックを作成します。管理者のみが利用可能です。

POST /topics

サポートされている属性は以下のとおりです:

属性必須説明
name文字列はいSlug (名前)
title文字列はいTitle
avatarファイルいいえアバター
description文字列いいえ説明
organization_id整数いいえトピックの組織ID。警告: この属性は実験的なものであり、将来変更される可能性があります。組織に関する詳細については、Organizations APIを参照してください。

リクエスト例:

curl --request POST \
    --data "name=topic1&title=Topic 1" \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics"

レスポンス例:

{
  "id": 1,
  "name": "topic1",
  "title": "Topic 1",
  "description": null,
  "total_projects_count": 0,
  "organization_id": 1,
  "avatar_url": null
}

プロジェクトトピックを更新

プロジェクトトピックを更新します。管理者のみが利用可能です。

PUT /topics/:id

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいプロジェクトトピックのID
avatarファイルいいえアバター
description文字列いいえ説明
name文字列いいえSlug (名前)
title文字列いいえTitle

リクエスト例:

curl --request PUT \
    --data "name=topic1" \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics/1"

レスポンス例:

{
  "id": 1,
  "name": "topic1",
  "title": "Topic 1",
  "description": null,
  "total_projects_count": 0,
  "organization_id": 1,
  "avatar_url": null
}

トピックのアバターをアップロード

ファイルシステムからアバターファイルをアップロードするには、--form引数を使用します。この引数により、cURLはヘッダーContent-Type: multipart/form-dataを使用してデータを投稿します。file=パラメータは、ファイルシステムのファイルを指しており、先頭に@を付ける必要があります。例:

curl --request PUT \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics/1" \
    --form "avatar=@/tmp/example.png"

トピックのアバターを削除

トピックのアバターを削除するには、avatar属性に空白の値を指定します。

リクエスト例:

curl --request PUT \
    --data "avatar=" \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics/1"

プロジェクトトピックを削除

プロジェクトトピックを削除するには、管理者である必要があります。プロジェクトトピックを削除すると、プロジェクトのトピックの割り当ても削除されます。

DELETE /topics/:id

サポートされている属性は以下のとおりです:

属性必須説明
id整数はいプロジェクトトピックのID

リクエスト例:

curl --request DELETE \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics/1"

トピックをマージする

ソーストピックをターゲットトピックにマージするには、管理者である必要があります。トピックをマージすると、ソーストピックは削除され、割り当てられているすべてのプロジェクトがターゲットトピックに移動します。

POST /topics/merge

サポートされている属性は以下のとおりです:

属性必須説明
source_topic_id整数はいソースプロジェクトトピックのID
target_topic_id整数はいターゲットプロジェクトトピックのID

source_topic_idtarget_topic_idは同じ組織に属している必要があります。

リクエスト例:

curl --request POST \
    --data "source_topic_id=2&target_topic_id=1" \
    --header "PRIVATE-TOKEN: <your_access_token>" \
    --url "https://gitlab.example.com/api/v4/topics/merge"

レスポンス例:

{
  "id": 1,
  "name": "topic1",
  "title": "Topic 1",
  "description": null,
  "total_projects_count": 0,
  "organization_id": 1,
  "avatar_url": null
}