課題のインポート
現在、Space は、外部の課題トラッカーから課題を Space プロジェクトにインポートするための次のソリューションを提供しています。
YouTrack から課題をインポートするには、すぐに実行できるスクリプトを使用します。
他のソース (JIRA、GitHub など) からインポートするには、専用の HTTP API エンドポイントを使用して独自のスクリプトまたはアプリケーションを作成できます。
YouTrack から課題をインポートする
このスクリプトを使用すると、YouTrack インスタンス (スタンドアロンまたは inCloud) から Space プロジェクトに課題をインポートできます。
課題ごとに、次のものをインポートできます。
要約
説明
状況
担当者
このスクリプトは、YouTrack ユーザー名が一致しない場合に、YouTrack ユーザー名を Space ユーザー名に変換することもでき、送信されたステータスまたは担当者が Space で認識されない場合にどうするかを選択できます。
このスクリプトは Docker コンテナーとして公開されており、ターミナルから直接いくつかの引数を指定して実行できます。
準備
スクリプトを実行する前に行う必要があることがいくつかあります。
プロジェクト。両方のトラッカーでプロジェクトを確認してください。ステータスの種類は一致していますか ? Space プロジェクトに存在しない YouTrack ユーザーはいますか ? 可能であれば、事前に調整を行っておくと、置換またはスキップされるデータが少なくなります。不一致のユーザー名に対してできることはあまりありませんが (インポート中のマッピングと置換以外に)、たとえば、YouTrack には存在するが Space には存在しないステータスを追加することはできます。
権限。スクリプトがユーザーに代わって両方のプロジェクトにアクセスするため、両方のプロジェクトに対して十分な権限があることを確認してください。Space プロジェクトでは、プロジェクト管理者であるか、このロールに含まれる課題のインポート権限を持っている必要があります。YouTrack では、インポートするすべての課題に対する読み取り権限が必要です。通常、課題とそのフィールド、特に Status と Assignee が表示されれば、それをインポートできます。
認証。Space と YouTrack の両方からの認証トークンが必要です。スクリプトを実行するときに、引数値として指定します。YouTrack トークンをスキップできますが、課題が一般公開されており、どのゲストアカウントでも表示できる場合に限ります。
Space からトークンを取得するには:
左上でアバターをクリックし、
を選択します。新しい個人トークンをクリックします。
このトークンに固有の名前を付けて、フルアクセスを確認します。制限付きアクセスを選択した場合は、ImportIssues 権限を暗黙的に付与する必要があります。
トークンをコピーして、便利な場所に保存します。
YouTrack からトークンを取得するには:
プロファイルを開きます。
「個人情報の更新とログインの管理」と書かれた Hub アカウントリンクをクリックします。
「認証」タブに移動し、「新規トークン」ボタンをクリックします。
このトークンに名前を付け、スコープフィールドに YouTrack を追加します。
トークンをコピーして、便利な場所に保存します。
Docker。Docker インスタンスがマシンにインストールされ、実行されている必要があります。お持ちでない場合は、インストールガイド(英語)を参照してください。
スクリプトを実行する
スクリプトは、public.registry.jetbrains.space のパブリックレジストリに Docker イメージとして保存されます。
ターミナルで docker run
コマンドを実行して、イメージを実行します。例:
すべてが計画どおりに動作するかどうかを確認するには、まず --dryRun
引数を渡してテストモードでスクリプトを実行します。Space では課題は作成されませんが、調査できるレポートが得られます。
引数
引数 | 説明 | 必須 |
---|---|---|
| ソース YouTrack インスタンスの URL。 | 必須 |
| ターゲットの Space インスタンスの URL。 | 必須 |
| Space で作成した個人トークン | 必須 |
| ターゲットの Space プロジェクトのキー。プロジェクトキーは、プロジェクト設定ページの情報タブで取得できます。 | 必須 |
| インポートする YouTrack 課題を選択する YouTrack 形式のクエリ。この例では、プロジェクト ABC から未解決の課題のみをインポートしています。 | 必須 |
| YouTrack からの個人トークン。 | オプション |
| YouTrack の担当者を Space のメンバーにマップします。 | オプション |
| YouTrack の課題ステータスを Space の課題ステータスにマッピングします。 | オプション |
| インポートされる課題が外部 ID と一致する場合、以前にインポートされた課題を更新するように Space に指示します。代替品は | オプション |
| 担当者が Space で認識されない場合に課題を処理する方法を Space に指示します。 | オプション |
| リクエストごとに Space に送信される課題を含むバッチのサイズ。デフォルト: 50。 | オプション |
| 実際に課題を発生させずに、テストモードでスクリプトを実行します。 | オプション |
| 引数のリストを表示して終了します | オプション |
このスクリプトをテンプレートとして使用し、特定のタスクに合わせてカスタマイズできます。コードは、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 importIssuesPlayground.png](https://resources.jetbrains.com/help/img/space/importIssuesPlayground.png)
metadata
と importSource
では、インポートした課題の出所 (JIRA など) を指定するため、後で Space プロジェクトで課題を特定して管理できます。
issues
要素にはオブジェクトの配列が含まれており、各オブジェクトにはインポートされた各課題のパラメーターが含まれています。
summary:
課題の見出しまたはタイトル。description:
課題の説明。status:
課題のステータス (「オープン」、「進行中」など)。assignee:
課題を担当する担当者。ユーザー名 (john.doe) または姓名を渡すことができます ( ジョンドウ )externalId:
外部ソースの課題の ID。externalName:
外部 ID の代わりに Space に課題を表示するために、課題に指定するエイリアス。externalURL:
元のトラッカーの課題の完全な URL。課題の外部 ID を Space 内のリンクに変換します。
簡単なリクエストの例を次に示します。
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 importedIssue.png](https://resources.jetbrains.com/help/img/space/importedIssue.png)
インポートトランザクションの履歴を表示するには:
プロジェクトを開き、サイドバーから課題を選択します。
課題ページで、設定ボタンをクリックしてください。
設定ページで、インポート履歴ボタンを選択します。
![importedIssuesHistory.png importedIssuesHistory.png](https://resources.jetbrains.com/help/img/space/importedIssuesHistory.png)
トランザクション行をクリックすると、このトランザクション中にインポートされた課題のリストが表示されます。課題が発生した場合は、トランザクションを元に戻すことができます。 をクリックすると、このトランザクションの課題がすべて削除されます。
関連ページ:
![](https://resources.jetbrains.com/help/img/space/addParticipantToProject.png)
プロジェクトへのアクセスを管理する
プロジェクトを作成すると、プロジェクトの管理者になり、誰がどのレベルでそのプロジェクトにアクセスできるかはあなた次第です。プロジェクトへのアクセスは、プロジェクトにユーザーを追加し、事前定義された一連の権限を持つロールを割り当てることにより、メンバーシップベースで提供されます。各プロジェクトには、次の事前定義されたロールが付属しています。プロジェクト管理者 — アクセスの管理とプロジェクトモジュールの構成、およびプロジェクトへの貢献を許可する必要があるプロジェクト参加者を対象としています。プロジェ...
![](https://resources.jetbrains.com/help/img/space/sdk.client.structure.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:...
![](https://resources.jetbrains.com/help/img/space/httpapiplayground.png)
Space HTTP API
Space HTTP API を使用すると、チャット、チームディレクトリ、プロジェクト、ドキュメント、パッケージなどの任意の Space モジュールにプログラムでアクセスできます。特定の API リクエストの実行の詳細については、API 参照を参照するか、API Playground(下記を参照) を使用してください。HTTP API をすぐに使い始めるには、Space SDK を使用します。API Playground:API Playground を使用すると、次のことが可能になります。Spac...
![](https://resources.jetbrains.com/help/img/space/authPlayground.png)
Space での認証
Space のセキュリティは、アクセストークン、つまり API リクエストの認証に使用されるシークレットに基づいています。Space と通信するには、アプリケーションはまずアクセストークンを取得する必要があります。その後、このトークンを使用してリクエストを Space に送信できます。例:GET https://mycompany.jetbrains.space/api/http/absences Authorization: Bearer <here-goes-access-token&...
![](https://resources.jetbrains.com/help/img/space/chooseIssueSettings.png)
課題タグの管理
参加者はタグを課題に添付して追加情報を提供し、課題の分類と検索に役立てることができます。事前に新しいタグを作成したり、既存のタグを編集したり、使用されなくなったタグを削除したりできます。課題ページで、設定ボタンをクリックします。課題設定ページで、課題フィールドタブに移動し、タグフィールドを見つけます。タグフィールドのをクリックします。既存のタグはここにリストされます。既存のタグを編集するには、その横にあるをクリックします。タグを削除するには、をクリックします。
![](https://resources.jetbrains.com/help/img/space/issueBoardOverview.png)
発行ボード
Space の課題ボードは、開発およびバグ修正プロセスを視覚化し、チームのワークフローを整理および最適化するように設計されたプロジェクト計画および管理ツールです。かんばん、スクラム、チームが従うあらゆるハイブリッドシステムに適応させることができます。課題ボードは、プロジェクトの課題トラッカーと統合および同期されているため、Space 課題追跡機能の拡張機能と考えることができます。プロジェクトには 1 つまたは複数のボードを含めることができ、それぞれが特定の機能またはチームに属します。既存の課題を...