JetBrains Space ヘルプ

課題のインポート

現在、Space は、外部の課題トラッカーから課題を Space プロジェクトにインポートするための次のソリューションを提供しています。

  • YouTrack から課題をインポートするには、すぐに実行できるスクリプトを使用します。

  • 他のソース (JIRA、GitHub など) からインポートするには、専用の HTTP API エンドポイントを使用して独自のスクリプトまたはアプリケーションを作成できます。

YouTrack から課題をインポートする

このスクリプトを使用すると、YouTrack インスタンス (スタンドアロンまたは inCloud) から Space プロジェクトに課題をインポートできます。

課題ごとに、次のものをインポートできます。

  • 要約

  • 説明

  • 状況

  • 担当者

このスクリプトは、YouTrack ユーザー名が一致しない場合に、YouTrack ユーザー名を Space ユーザー名に変換することもでき、送信されたステータスまたは担当者が Space で認識されない場合にどうするかを選択できます。

このスクリプトは Docker コンテナーとして公開されており、ターミナルから直接いくつかの引数を指定して実行できます。

準備

スクリプトを実行する前に行う必要があることがいくつかあります。

プロジェクト。両方のトラッカーでプロジェクトを確認してください。ステータスの種類は一致していますか ? Space プロジェクトに存在しない YouTrack ユーザーはいますか ? 可能であれば、事前に調整を行っておくと、置換またはスキップされるデータが少なくなります。不一致のユーザー名に対してできることはあまりありませんが (インポート中のマッピングと置換以外に)、たとえば、YouTrack には存在するが Space には存在しないステータスを追加することはできます。

権限。スクリプトがユーザーに代わって両方のプロジェクトにアクセスするため、両方のプロジェクトに対して十分な権限があることを確認してください。Space プロジェクトでは、プロジェクト管理者であるか、このロールに含まれる課題のインポート権限を持っている必要があります。YouTrack では、インポートするすべての課題に対する読み取り権限が必要です。通常、課題とそのフィールド、特に StatusAssignee が表示されれば、それをインポートできます。

認証。Space と YouTrack の両方からの認証トークンが必要です。スクリプトを実行するときに、引数値として指定します。YouTrack トークンをスキップできますが、課題が一般公開されており、どのゲストアカウントでも表示できる場合に限ります。

Space からトークンを取得するには:

  1. 左上でアバターをクリックし、設定→ 個人トークンを選択します。

  2. 新しい個人トークンをクリックします。

  3. このトークンに固有の名前を付けて、フルアクセスを確認します。制限付きアクセスを選択した場合は、ImportIssues 権限を暗黙的に付与する必要があります。

  4. トークンをコピーして、便利な場所に保存します。

YouTrack からトークンを取得するには:

  1. プロファイルを開きます。

  2. 「個人情報の更新とログインの管理」と書かれた Hub アカウントリンクをクリックします。

  3. 認証」タブに移動し、「新規トークン」ボタンをクリックします。

  4. このトークンに名前を付け、スコープフィールドに YouTrack を追加します。

  5. トークンをコピーして、便利な場所に保存します。

Docker。Docker インスタンスがマシンにインストールされ、実行されている必要があります。お持ちでない場合は、インストールガイド(英語)を参照してください。

スクリプトを実行する

スクリプトは、public.registry.jetbrains.space のパブリックレジストリに Docker イメージとして保存されます。

ターミナルで docker run コマンドを実行して、イメージを実行します。例:

$ docker run public.registry.jetbrains.space/p/space/containers/space-issues-import:latest --youtrackServer https://youtrack.jetbrains.com --spaceServer https://mycompany.jetbrains.space --spaceToken SPACETOKEN --spaceProject key::MY-PROG --youtrackQuery "project:ABC #Unresolved" --youtrackToken YOUTRACKTOKEN --assignee "Bob Sanders::Robert.Sanders" --status "in-progress::In Progress" --updateExistingIssues --replaceMissingStatus --replaceMissingAssignee

すべてが計画どおりに動作するかどうかを確認するには、まず --dryRun 引数を渡してテストモードでスクリプトを実行します。Space では課題は作成されませんが、調査できるレポートが得られます。

引数

引数

説明

必須

--youtrackServer

ソース YouTrack インスタンスの URL。

必須

--spaceServer

ターゲットの Space インスタンスの URL。

必須

--spaceToken

Space で作成した個人トークン

必須

--spaceProject

ターゲットの Space プロジェクトのキー。プロジェクトキーは、プロジェクト設定ページの情報タブで取得できます。

必須

--youtrackQuery

インポートする YouTrack 課題を選択する YouTrack 形式のクエリ。この例では、プロジェクト ABC から未解決の課題のみをインポートしています。

必須

--youtrackToken

YouTrack からの個人トークン。

オプション

--assignee

YouTrack の担当者を Space のメンバーにマップします。

オプション

--status

YouTrack の課題ステータスを Space の課題ステータスにマッピングします。

オプション

--updateExistingIssues

インポートされる課題が外部 ID と一致する場合、以前にインポートされた課題を更新するように Space に指示します。代替品は --skipExistingIssues です

オプション

--replaceMissingAssignee

担当者が Space で認識されない場合に課題を処理する方法を Space に指示します。--replaceMissingAssignee は、担当者フィールドを Unassigned に設定します。--skipMissingAssignee はそのような課題をインポートしません。

オプション

--batchSize

リクエストごとに Space に送信される課題を含むバッチのサイズ。デフォルト: 50。

オプション

--dryRun

実際に課題を発生させずに、テストモードでスクリプトを実行します。

オプション

--help

引数のリストを表示して終了します

オプション

このスクリプトをテンプレートとして使用し、特定のタスクに合わせてカスタマイズできます。コードは、GitHub (https://github.com/JetBrains/space-issues-import(英語)) で誰でも利用できます。

インポート課題 API

Space HTTP API には、外部ソースから課題をインポートするために使用できる特別なエンドポイントがあります。

インポートタスク用のスクリプトまたはアプリケーションを作成するには、一連のライブラリと Space API クライアントが含まれる Space SDK を使用できます。

Space API Playground課題のインポートエンドポイントを研究および実験できます。

エンドポイント

POST /api/http/projects/{project}/planning/issues/import

ここで、{project} は、課題をインポートする Space プロジェクトの識別子です。プロジェクト ID またはプロジェクトキーのいずれかを使用できます。

key:MY-PROJECT-KEY

または

id:my-project-id

プロジェクトキーは、プロジェクト設定ページの情報タブで取得できます。または、API Playground を使用して正しい値を見つけます。

エンドポイントは、最も重要な課題フィールドに対応する多数のパラメーターを受け入れます。各課題について、概要 (課題のタイトル)、ステータス、課題 ID、担当者と説明をインポートできます。

リクエスト

外部ソースからフェッチされた課題データは、ネストされたキーと値のペアを持つ JSON オブジェクトとしてリクエスト本文で送信されます。

importIssuesPlayground.png

metadataimportSource では、インポートした課題の出所 (JIRA など) を指定するため、後で Space プロジェクトで課題を特定して管理できます。

issues 要素にはオブジェクトの配列が含まれており、各オブジェクトにはインポートされた各課題のパラメーターが含まれています。

  • summary: 課題の見出しまたはタイトル。

  • description: 課題の説明。

  • status: 課題のステータス (「オープン」「進行中」など)。

  • assignee: 課題を担当する担当者。ユーザー名 (john.doe) または姓名を渡すことができます ( ジョンドウ )

  • externalId: 外部ソースの課題の ID。

  • externalName: 外部 ID の代わりに Space に課題を表示するために、課題に指定するエイリアス。

  • externalURL: 元のトラッカーの課題の完全な URL。課題の外部 ID を Space 内のリンクに変換します。

簡単なリクエストの例を次に示します。

curl 'https://mycompany.jetbrains.space/api/http/projects/key:ACME-PROJECT/planning/issues/import' -d '{ "metadata": { "importSource": "Jira" }, "issues": [ { "summary": "This thing is broken", "status": "Open", "assignee": "travis.wickett", "externalId": "ABC-124" } ], "dryRun": false }' -H 'Authorization: Bearer eyJhbGciOiJSUzUxMiJ9.eyJz' -H 'Accept: application/json' -H 'Content-Type: application/json' -X POST

Space プロジェクトにインポートされたすべての課題には、一意の externalId が必要です。たとえば、2 つの異なる GitHub プロジェクトから課題をインポートし、それらの課題が同じ ID を共有している場合、Space に送信する前に、ソースの 1 つでこれらの ID を置き換える必要があります。元の ID を依然として Space に表示したい場合は、前述の externalName 値として渡すことができます。

以前にインポートした課題に加えて、同じ外部 ID を持つ課題をインポートするとどうなりますか ? それらはスキップされます。これはデフォルトの動作ですが、以前にインポートした課題を実際に更新するように簡単に変更できます。

インポートされた課題を更新する

インポートされた課題を更新するときは、onExistsPolicy を定義する必要があります。値 update を渡すと、以前にインポートされた課題が、ID に一致する課題で段階的に更新されます。この機能は、2 つの異なるトラッカー間で課題を管理し、同期を保つ必要がある場合に便利です。

ステータスの種類と担当者が欠落しているか不一致です

元の (ソース) 課題のステータスが、ターゲットの Space プロジェクトでは見つからないという状況に直面する可能性があります。または、ユーザー名が一致しない、または存在しないため、課題を提出した担当者を Space が認識できません。このような場合に対処するには、assigneeMissingPolicy および statusMissingPolicy を渡すことができます。

ステータスが欠落している場合のオプションは次のとおりです。

  • statusMissingPolicy:replace-with-default を指定すると、認識されないステータス値が、Space プロジェクトに設定されている未解決タイプの最初のステータス値に置き換えられます。(例: 開く )

  • statusMissingPolicy:skip を指定するか、この引数をまったく渡さない場合、認識されないステータスの課題はインポート中にスキップされます。

不在の担当者に対しても同様のオプションがあります。

  • assigneeMissingPolicy:replace-with-default は、認識できない担当者の値を「未割り当て」に置き換えます。

  • 認識できない担当者がいる場合、assigneeMissingPolicy:skip は課題をインポートしません。

実際に課題を Space にインポートする前に、引数 dryRun:true を渡してテスト実行を実行することをお勧めします。Space は、潜在的な課題を特定して解決するのに役立つ詳細なレポートを送り返します。

レスポンス

デフォルトでは、Space はサーバーメッセージとインポートされた課題の 3 つのリストを返します。

  • created

  • updated

  • skipped

各エンティティの詳細を示します。

リクエストにクエリパラメーターを追加することで、レスポンスをフィルタリングできます。

次に例を示します

/api/http/projects/{project}/planning/issues/import?$fields=message

次のようなサーバーメッセージのみを返します

"message": "Created 15 Updated 0 Skipped 1"

許可

インポートを正常に実行するには、ImportIssues 権限が必要です。詳細情報と手順については、Space での認証を参照してください。

インポートされた課題の表示と管理

Space では、インポートされた課題を残りの課題と簡単に区別できます。

importedIssue.png

インポートトランザクションの履歴を表示するには:

  1. プロジェクトを開き、サイドバーから課題を選択します。

  2. 課題ページで、設定ボタンをクリックしてください。

  3. 設定ページで、インポート履歴ボタンを選択します。

importedIssuesHistory.png

トランザクション行をクリックすると、このトランザクション中にインポートされた課題のリストが表示されます。課題が発生した場合は、トランザクションを元に戻すことができます。delete.png をクリックすると、このトランザクションの課題がすべて削除されます。

関連ページ:

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

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

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 HTTP API

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

Space での認証

Space のセキュリティは、アクセストークン、つまり API リクエストの認証に使用されるシークレットに基づいています。Space と通信するには、アプリケーションはまずアクセストークンを取得する必要があります。その後、このトークンを使用してリクエストを Space に送信できます。例:GET https://mycompany.jetbrains.space/api/http/absences Authorization: Bearer <here-goes-access-token&...

課題タグの管理

参加者はタグを課題に添付して追加情報を提供し、課題の分類と検索に役立てることができます。事前に新しいタグを作成したり、既存のタグを編集したり、使用されなくなったタグを削除したりできます。課題ページで、設定ボタンをクリックします。課題設定ページで、課題フィールドタブに移動し、タグフィールドを見つけます。タグフィールドのをクリックします。既存のタグはここにリストされます。既存のタグを編集するには、その横にあるをクリックします。タグを削除するには、をクリックします。

発行ボード

Space の課題ボードは、開発およびバグ修正プロセスを視覚化し、チームのワークフローを整理および最適化するように設計されたプロジェクト計画および管理ツールです。かんばん、スクラム、チームが従うあらゆるハイブリッドシステムに適応させることができます。課題ボードは、プロジェクトの課題トラッカーと統合および同期されているため、Space 課題追跡機能の拡張機能と考えることができます。プロジェクトには 1 つまたは複数のボードを含めることができ、それぞれが特定の機能またはチームに属します。既存の課題を...