ほとんどの開発チームにとって、開発プロセスの最後のステップはプルリクエストであり、CodeStreamを使用するとそのワークフローをIDE内に保持できます。CodeStreamペインの[PullRequests]セクションには、関連するすべての開いているプルリクエストが一覧表示されます。
重要
プルリクエストの作成は、GitHub、GitHub Enterprise、GitLab、GitLab Self-Managed、Bitbucket、およびBitbucketServerで利用できます。プルリクエストのレビューは、GitHub、GitHub Enterprise、GitLab、およびGitLabSelf-Managedでのみ利用できます。
プルリクエストセクションでは、レビュー待ちのPR、自分に割り当てられたPR、自分が作成したPR、最新のPRで分けられています。
リスト内のプルリクエストをクリックして、コードを編集、確認、さらにはマージします。プルリクエストの詳細と、変更されたすべてのファイルへのアクセスを提供するツリービューで、プルリクエストが展開されるのがわかります。あなたが最も頻繁に行うこと…コメントの追加と表示…は簡単にアクセスできます。任意のファイルをクリックして差分を開き、変更の確認を開始するだけです。
IDEに組み込まれているdiffナビゲーションを使用して、ファイル内の変更間を移動できます。コメントを追加するコードのブロックを選択します。CodeStreamを使用すると、チェンジセットの一部ではないコード行にコメントを付けることができます。これらのコメントは、プルリクエストに単一のコメント(GitLabの用語では「今すぐコメント」)として追加され、進行中のレビューの一部ではありません。
VS Codeでは、CodeStreamペインにコメントボタンが表示されます。
JetBrains IDEでは、コメントボタンが差分ガターに表示され、それをクリックすると、エディターで直接コメントできるようになります。
コメントを追加すると、ツリービューの適切なファイルの下にネストされて表示されるため、コメントを簡単に取得できます。
コメントをクリックすると、ディスカッションが開き、差分内の対応するコードブロックまでスクロールします。
要求された変更を行う必要がありますか?「ローカルファイルを開く」をクリックするだけで、作業が必要な場所に直接移動できます。または、左側にある[差分でコメントを表示]をクリックして、現在のファイル内の他のコメントの場所にジャンプします。
プルリクエストでファイルを処理しながら、円をクリックしてファイルを表示済みとしてマークします。完了したら、緑色の[レビュー]ボタンをクリックしてレビューを送信します。
ツリーのPRDetailsエントリをクリックして、プルリクエストを管理します。GitHub(以下に示す)やGitLabで見慣れているものと同じようなインターフェースが表示されるため、プルリクエストのレビュー担当者、担当者、ラベルを変更するメカニズムは非常によく知られているはずです。
プルリクエストのリストの管理
デフォルトでは、プルリクエストは以下のセクションに分割されて表示されます。
- Waiting on My Review: 自分がレビュアー、またはリクエストされたレビュアーになっているプルリクエストを開きます。
- Assigned to Me: 自分に割り当てられたプルリクエストを開く。
- Created by Me: 自分で作成したプルリクエストを公開します。
- Recent: ステータスに関係なく、あなたが作成した最新のプルリクエスト5件。
プルリクエストの行にカーソルを合わせると、コードホスティングサービスでプルリクエストを表示し、プルリクエストのURLをコピーし、ブランチをチェックアウトし、プルリクエストを更新して、表示しているものが正しいことを確認するオプションが表示されます。最新の。
セクションの見出しにカーソルを合わせると、そのセクションのリストプルリクエストを更新したり、セクションのクエリを編集したり、セクションを削除したりできます。
リストにないプルリクエストを表示または確認する場合は、URLを取得し、[URLからPRをロード]セクションをクリックします。URLを貼り付けると、CodeStream内でプルリクエストを表示できます。
Pull Requestsセクションの見出しにカーソルを合わせると、右側にアイコンが表示されます。
オプションに含まれるもの
- すべてのセクション(またはクエリ)を一度に更新します。
- 新しいプルリクエストを作成します。
- カスタムクエリに基づいて新しいセクションを作成します。なお、 GitHub および GitHub Enterprise または GitLab および GitLab Self-Managed のカスタムクエリを作成する際には、いくつかの特別なガイドラインがあります。
- 歯車のアイコンをクリックすると、IDEで開いているリポジトリに関連付けられているものだけでなく、すべてのリポジトリからのプルリクエストを表示する機能や、リストにラベルを含める機能など、その他のオプションが表示されます。GitLab組織が複数のレビュー担当者と担当者をサポートしている場合は、これを有効にするオプションもあります。
プルリクエストの作成
プルリクエストをいつでも開くには、CodeStreamペインの上部にある[ + ]ボタン、または[プルリクエスト]セクションのヘッダーにある[ + ]ボタンをクリックします。キーボードショートカットを使用することもできます(Macの場合はctlr+shift+/
p
、 ctrl+/
p
、GitLabユーザーの場合はm
)。 CodeStreamには、プルリクエストを開く前に変更を確認するためのツリービュー、リストビュー、および差分ビューのオプションが用意されています。
ワンクリックで、最後のコミットメッセージ、ブランチ名、またはチケットを選択して作業を開始した場合はチケットタイトルに基づいてプルリクエストの名前を付けることができます。チケットを選択して作業を開始した場合は、チケットのタイトルをプルリクエストの名前にすることができます。また、チケットを選択している場合は、そのチケットとプルリクエストを明示的に結びつけることができます。プルリクエストを提出する前に、フォームの下に表示されているファイルをクリックして、変更内容を確認してください。
作業中の機能ブランチにリモート追跡用ブランチがない場合は、プルリクエストを作成する際にリモート追跡用ブランチを設定することができます。
プルリクエストを作成するための以下のオプションもご覧ください。
CodeStreamは、フォークで作業していることを自動的に検出し、ベースリポジトリとヘッドリポジトリの両方を設定することが可能です。
また、CodeStreamのフィードバックリクエストの中からプルリクエストを作成することができます。フィードバックリクエストが承認されると、上部にプルリクエストを開くためのオプションが表示されます。プルリクエストを作成する前に、フィードバックリクエストに含まれる変更をコミットしてプッシュしていることを確認してください。
フィードバックリクエストからプルリクエストを作成すると、CodeStreamはフィードバックリクエストの中にプルリクエストへのリンクを追加することで、2つの点を結びつけます。
プルリクエストの説明文に、誰がいつレビューを行ったかという情報とともに、フィードバックリクエストへのリンクを追加します。
GitHubのカスタムクエリ
デフォルトでは、GitHub の検索 API は GitHub 全体を対象としたグローバル検索を行います。そのため、検索結果が適切に制限されるようにするには、クエリに次のような修飾子を少なくともひとつ含める必要があります。
user:USERNAME
org:ORGNAME
repo:USERNAME/REPOSITORY
author:USERNAME
assignee:USERNAME
mentions:USERNAME
team:ORGNAME/TEAMNAME
commenter:USERNAME
involves:USERNAME
reviewed-by:USERNAME
review-requested:USERNAME
team-review-requested:TEAMNAME
project:PROJECT_BOARD
GitHubの検索構文についての詳細は、こちら をご覧ください。
すべての検索は、各パラメーターの間に&
を含むattribute=value
形式を使用して行われます。スペースを含むパラメーターの場合は、そのままにして、パラメーターに引用符を入れないでください (たとえば、 labels=foo,help wanted
)。@me
を使用してユーザー ID とユーザー名を指定できます。それ以外の場合は、GitLab で見つけることができます。デフォルトでは、すべてのフィルターにパラメーターscope=all
があります ( 最小修飾子を参照してください)。 これを上書きするには、 scope=X
を使用します。以下の例を参照してください。
state=opened&author_id=@me
state=closed&assignee_username=@me&labels=help wanted
assignee_id=5&scope=created_by_me
labels=foo,help wanted&scope=created_by_me
iids[]=1,2&milestone=1.0.0&my_reaction_emoji=star&scope=assigned_to_me
project_id=23&state=opened&reviewer_id=@me
scope=assigned_to_me¬[labels]=duplicate¬[milestone]=review
属性 | タイプ | 説明 |
---|
state | ストリング | all の問題、またはopened または closed |
order_by | ストリング | created_at またはupdated_at フィールドで並べ替えられたリクエストを返します。デフォルトはcreated_at です。 |
sort | ストリング | asc またはdesc の順序でソートされたリクエストを返します。デフォルトはdesc です。 |
milestone | ストリング | 特定のマイルストーンのマージ要求を返します。 None は、マイルストーンのないマージ要求を返します。 Any は、マイルストーンが割り当てられているマージ要求を返します。 |
view | ストリング | simple の場合、マージリクエストのiid 、URL、タイトル、説明、および基本的な状態を返します。 |
labels | ストリング | ラベルのコンマ区切りリストに一致するマージ要求を返します。 None には、ラベルのないすべてのマージリクエストが一覧表示されます。 Any には、少なくとも1つのラベルが付いたすべてのマージ要求が一覧表示されます。 No+Label (非推奨)は、ラベルのないすべてのマージ要求をリストします。事前定義された名前では大文字と小文字は区別されません。 |
with_labels_details | ブール値 | true の場合、応答はラベルフィールドの各ラベルの詳細を返します: :name 、 :color 、 :description 、 :description_html 、 :text_color 。デフォルトはfalse です。 |
with_merge_status_recheck | ブール値 | true の場合、このプロジェクションは、merge_statusフィールドが非同期で再計算されることを要求します(ただし、保証はしません)。デフォルトはfalse です。 |
created_after | データタイム | 指定された時間以降に作成されたマージ要求を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
created_before | データタイム | 指定された時間以前に作成されたマージ要求を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
updated_after | データタイム | 指定された時間以降に更新されたマージ要求を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
updated_before | データタイム | 指定された時間またはそれ以前に更新されたマージ要求を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
scope | ストリング | 指定されたスコープのマージリクエストを返します: created_by_me 、 assigned_to_me またはall 。デフォルトは created_by_me |
author_id | 整数 | 指定されたユーザーid によって作成されたマージ要求を返します。 author_username と相互に排他的です。 scope=all またはscope=assigned_to_me と組み合わせます。 |
author_username | ストリング | 指定されたusername によって作成されたマージリクエストを返します。 author_id と相互に排他的です。 |
assignee_id | 整数 | 指定されたユーザーid に割り当てられたマージ要求を返します。 None は、割り当てられていないマージ要求を返します。 Any は、担当者とのマージ要求を返します。 |
reviewer_id | 整数 | 指定されたユーザーid のレビュー担当者としてのユーザーを持つマージリクエストを返します。 None は、レビュー担当者なしでマージリクエストを返します。 Any はレビューアとのマージリクエストを返します。 reviewer_username と相互に排他的です。 |
reviewer_username | ストリング | 指定されたusername のレビュー担当者としてユーザーがいるマージリクエストを返します。 None は、レビュー担当者なしでマージリクエストを返します。 Any はレビューアとのマージリクエストを返します。 reviewer_id と相互に排他的です。 |
my_reaction_emoji | ストリング | 指定されたemoji によって認証されたユーザーによって反応されたマージ要求を返します。 None は、反応がない問題を返します。 Any は、少なくとも1つの反応があれば問題を返します。 |
source_branch | ストリング | 指定されたソースブランチのマージ要求を返します。 |
target_branch | ストリング | 指定された対象ブランチのマージ要求を返します。 |
search | ストリング | title とdescription に対してマージリクエストを検索します。 |
in | ストリング | search 属性のスコープを変更します。 title 、 description 、またはそれらをコンマで結合する文字列。デフォルトはtitle,description です。 |
wip | ストリング | マージリクエストをwip ステータスでフィルタリングします。 yes はドラフトマージリクエストのみを返し、 no は非ドラフトマージリクエストを返します。 |
not | ハッシュ | 指定されたパラメーターと一致しないマージ要求を返します。受け入れます: labels 、 milestone 、 author_id 、 author_username 、 assignee_id 、 assignee_username 、 reviewer_id 、 reviewer_username 、 my_reaction_emoji 。 not をhash タイプとしてフォーマットする方法については、上記の例を参照してください。 |
environment | ストリング | 指定された環境にデプロイされたマージ要求を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
deployed_before | データタイム | 指定された日時より前にデプロイされたマージリクエストを返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
deployed_after | データタイム | 指定された日時の後にデプロイされたマージリクエストを返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
project_id | 整数 | 指定されたプロジェクトのマージ要求を返します。 |
group_id | 整数 | 指定されたグループのマージ要求を返します。 |
state=opened&author_id=@me
state=closed&assignee_username=@me&labels=help wanted
assignee_id=5&scope=created_by_me
labels=foo,help wanted&scope=created_by_me
iids[]=1,2&milestone=1.0.0&my_reaction_emoji=star&scope=assigned_to_me
project_id=23&state=opened&assignee_id=@me
属性 | タイプ | 説明 |
---|
assignee_id | 整数 | 指定されたユーザーid に割り当てられた問題を返します。 assignee_username と相互に排他的です。 None は未割り当ての問題を返します。 Any は担当者との問題を返します。 |
assignee_username | 文字列配列 | 指定されたusername に割り当てられた問題を返します。 assignee_id に似ており、 assignee_id と相互に排他的です。 GitLab CEでは、 assignee_username 配列には単一の値のみを含める必要があります。それ以外の場合は、無効なパラメータエラーが返されます。 |
author_id | 整数 | 指定されたユーザーid によって作成された問題を返します。 author_username と相互に排他的です。 scope=all またはscope=assigned_to_me と組み合わせます。 |
author_username | ストリング | 指定されたusername によって作成された問題を返します。 author_id に似ており、 author_id と相互に排他的です。 |
confidential | ブール値 | 機密事項や公的な問題をフィルタリングする。 |
created_after | データタイム | 指定された時間以降に作成された問題を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
created_before | データタイム | 指定された時間以前に作成された問題を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
due_date | ストリング | 期日がない、延滞している、または期日が今週、今月、または2週間前から翌月の間にある返品発行。受け入れます: 0 (期日なし)、 overdue 、 week 、 month 、 next_month_and_previous_two_weeks 。 |
iids[] | 整数配列 | 指定された問題のみを返します iid |
in | ストリング | search 属性のスコープを変更します。 title 、 description 、またはそれらをコンマで結合する文字列。デフォルトはtitle 、description |
issue_type | ストリング | 指定されたタイプのissue にフィルタリングします。 issue 、 incident 、またはtest_case のいずれか。 |
iteration_id | 整数 | 指定された反復IDに割り当てられた問題を返します。 None は、イテレーションに属していない問題を返します。 Any は、反復に属する問題を返します。 iteration_title と相互に排他的です。 |
iteration_title | ストリング | 指定されたタイトルでイテレーションに割り当てられた問題を返します。 iteration_id に似ており、 iteration_id }と相互に排他的です。 |
labels | ストリング | ラベル名のコンマ区切りリスト。課題には、返されるすべてのラベルが必要です。 None には、ラベルのないすべての問題が一覧表示されます。 Any には、少なくとも1つのラベルが付いたすべての問題が一覧表示されます。事前定義された名前では大文字と小文字は区別されません。 |
milestone | ストリング | マイルストーンタイトル。 None には、マイルストーンのないすべての問題が一覧表示されます。 Any には、マイルストーンが割り当てられているすべての問題が一覧表示されます。 |
my_reaction_emoji | ストリング | 指定されたemoji によって認証されたユーザーが反応したリターンの問題。 None は、反応がない問題を返します。 Any は、少なくとも1つの反応があれば問題を返します。 |
non_archived | ブール値 | アーカイブされていないプロジェクトからのみ問題を返します。 false の場合、応答はアーカイブされたプロジェクトとアーカイブされていないプロジェクトの両方からの問題を返します。デフォルトはtrue です。 |
not | ハッシュ | 指定されたパラメーターと一致しない問題を返します。受け入れます: assignee_id 、 assignee_username 、 author_id 、 author_username 、 iids 、 iteration_id 、 iteration_title 、 labels 、 milestone 、およびweight 。 |
order_by | ストリング | created_at 、 updated_at 、 priority 、 due_date 、 relative_position 、 label_priority 、 milestone_due 、 popularity 、 weight フィールドで並べ替えられた問題を返します。デフォルトはcreated_at です。 |
scope | ストリング | 指定されたスコープの問題を返します: created_by_me 、 assigned_to_me またはall 。デフォルトはcreated_by_me です。 |
search | ストリング | title とdescription に対して問題を検索します。 |
sort | ストリング | asc またはdesc の順序でソートされた問題を返します。デフォルトはdesc です。 |
state | ストリング | all の問題、またはopened または closed |
updated_after | データタイム | 指定された時間以降に更新された問題を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
updated_before | データタイム | 指定された時間またはそれ以前に更新された問題を返します。 ISO 8601形式で期待される( 2019-03-15T08:00:00Z ) |
weight | 整数 | 指定されたweight の問題を返します。 None は、重みが割り当てられていない問題を返します。 Any は、重みが割り当てられた問題を返します。 |
project_id | 整数 | 指定されたプロジェクトの課題を返します。 |
group_id | 整数 | 指定されたグループの課題を返します。 |
特定のプロジェクトを検索するには、パラメータproject_id=X
を使用します。プロジェクトIDは、GitLabでプロジェクトを表示するときに一覧表示されます。プロジェクトを検索すると、デフォルトでscope=all
が使用され、指定されたプロジェクトのすべてのマージ要求または問題が返されます。一度にリストできるproject_id
は1つだけです。
project_id=23&state=opened&assignee_id=@me
iids[]=1&project_id=473&labels=bug
特定のグループを検索するには、パラメータgroup_id=X
を使用します。 GitLabでグループを表示すると、グループIDが一覧表示されます。グループを検索すると、デフォルトでscope=all
が使用され、指定されたグループのすべてのマージ要求または問題が返されます。一度にリストできるgroup_id
は1つだけです。
group_id=23&state=opened&assignee_id=@me
iids[]=1&group_id=473&labels=bug
デフォルトでは、カスタムフィルターはscope=all
を使用してGitLab全体を検索します。 GitLabにリストされているすべてのマージリクエストまたは問題をプルしないようにするには、次の修飾子の少なくとも1つを使用してこの検索を絞り込む必要があります。
scope=assigned\_to\_me
scope=created\_by\_me
project_id
group_id
author_id
author_username
assignee_id
assignee_username
my\_reaction\_emoji
検索構文は、GitLab のカスタム検索 API に由来します。 マージリクエスト検索 または 課題検索 の詳細については、GitLab のドキュメントを参照してください。