JetBrains Space ヘルプ

他の Space モジュールと対話する

kotlinScript ブロックは、チャット、課題、ドキュメントなどの他の Space モジュールを操作できる space() API を提供します。

例: これは、ジョブからチャネルにメッセージを送信する方法です。

job("Build and publish") { container(displayName = "Build and notify", image = "gradle:7.1-jre11") { kotlinScript { api -> try { api.gradle("build") } catch (ex: Exception) { val channel = ChannelIdentifier.Channel(ChatChannel.FromName("CI-channel")) val content = ChatMessage.Text("Build failed") api.space().chats.messages.sendMessage(channel = channel, content = content) } } } }

space() API は、HTTP リクエストを Space に送信することで機能する Space HTTP API クライアントです。

API クライアントが Space で認証する方法

Space で認証するには、space() API クライアントはオートメーションサービスアカウントを使用します。プロジェクトを作成すると、Space は自動化サービスロールに基づいてこのアカウントを作成します。

サービスアカウントはプロジェクトスコープ内にのみ存在し、グローバル権限を持ちません。これは、space() クライアントが、現在のプロジェクト内の Space モジュール (課題、ドキュメント、チェックリストなど) または権限をチェックしない Space モジュール (チャットなど) でのみ動作できることを意味します。

Automation サービスアカウントのアクセス許可を変更するには

  1. 必要なプロジェクトを開き、設定を開きます。

  2. アクセスタブで、自動化サービスロールを見つけて権限を変更します。

API クライアントでの作業を簡単にする方法

space() API クライアントは Space HTTP API を使用するため、特定のコードスニペットを探すのに最適な場所は Space API Playground です。ここで、必要な API リクエストを見つけ、必要な権限を確認し、Kotlin コードスニペットを取得できます (コードスニペットパネルを Kotlin SDK に切り替えます)。

API Playground

クライアントでの作業を容易にするもう 1 つの方法は、インストールされた Space プラグイン (英語) (IntelliJ IDEA 2021.1 以降、プラグインは IDE にバンドルされています) を使用して IntelliJ IDEA.space.kts ファイルを編集することです。このプラグインは、オートメーション DSL および space() クライアント API にコード補完を提供します。

サンプル: 課題を作成する

次のジョブは Gradle プロジェクトをビルドしますが、ビルドが失敗すると課題が発生します。このジョブが機能するには、プロジェクトの自動化サービスロールに課題の作成権限が必要です。この権限は、プロジェクト設定→ アクセス でこのロールに対して有効にできます

job("Build") { container(displayName = "Create issue on build fail", image = "gradle") { kotlinScript { api -> try { api.gradle("build") } catch (ex: Exception) { // get project Id val id = api.projectId() // get current build run number val runNumber = api.executionNumber() //get all issue statuses val statuses = api.space().projects.planning.issues.statuses. getAllIssueStatuses(project = ProjectIdentifier.Id(id)) //get id of 'Open' issue status val openStatusId = statuses.find { it.name == "Open" }?.id ?: throw kotlin.Exception("The 'Open' state doesn't exist in the project") // create issue with 'Open' status api.space().projects.planning.issues.createIssue( project = ProjectIdentifier.Id(id), // generate name based on build run number title = "Job 'Build and publish' #$runNumber failed", description = "${ex.message}", status = openStatusId ) } } } }

関連ページ:

Space SDK

Space SDK は、JetBrains Space HTTP API を操作できるようにし、Space アプリケーションの開発を簡素化するライブラリです。クイックスタート:1. プロジェクト内の Space SDK を参照する次の依存関係をプロジェクトの / ファイルに追加します。// the example is given for build.gradle.kts repositories { // here go other project repos ... maven("https:...

ロールと権限

Space のユーザー権限は次のカテゴリに分類されます。組織全体の権限 — 組織全体で有効です。チーム固有の権限 — 特定のチーム内で有効です。プロジェクト固有の権限 — 特定のプロジェクト内で有効です。ユーザーに個別の権限を発行することはできません。代わりに、事前定義された一連の権限を持つロールをユーザーに割り当てることができます。Space にはデフォルトのロールの番号が付属します (以下の表に記載)。初期登録時に、ユーザーには特定の基本的なロールが自動的に割り当てられます。ユーザーが通常のメンバー...

Space HTTP API

Space HTTP API を使用すると、チャット、チームディレクトリ、プロジェクト、ドキュメント、パッケージなどの任意の Space モジュールにプログラムでアクセスできます。特定の API リクエストの実行の詳細については、API 参照を参照するか、API Playground(下記を参照) を使用してください。HTTP API をすぐに使い始めるには、Space SDK を使用します。API Playground:API Playground を使用すると、次のことが可能になります。Spac...

プロジェクトへのアクセスを管理する

プロジェクトを作成すると、プロジェクトの管理者になり、誰がどのレベルでそのプロジェクトにアクセスできるかはあなた次第です。プロジェクトへのアクセスは、プロジェクトにユーザーを追加し、事前定義された一連の権限を持つロールを割り当てることにより、メンバーシップベースで提供されます。各プロジェクトには、次の事前定義されたロールが付属しています。プロジェクト管理者 — アクセスの管理とプロジェクトモジュールの構成、およびプロジェクトへの貢献を許可する必要があるプロジェクト参加者を対象としています。プロジェ...