ほとんどの開発チームにとって、開発プロセスの最後のステップはプルリクエストであり、CodeStreamを使用するとそのワークフローをIDE内に保持できます。CodeStreamペインの[PullRequests]セクションには、関連するすべての開いているプルリクエスト が一覧表示されます。
重要 プル リクエストの統合は、GitHub、GitHub Enterprise、GitLab、GitLab Self-Managed、Bitbucket、および Bitbucket Server で利用できます。ただし、Bitbucket Server ではプル リクエストのレビューを利用できないことに注意してください。
プルリクエストセクションでは、レビュー待ちのPR、自分に割り当てられたPR、自分が作成したPR、最新のPRで分けられています。
リスト内のプルリクエストをクリックして、コードを編集、確認、さらにはマージします。プルリクエストの詳細と、変更されたすべてのファイルへのアクセスを提供するツリービューで、プルリクエストが展開されるのがわかります。あなたが最も頻繁に行うこと…コメントの追加と表示…は簡単にアクセスできます。任意のファイルをクリックして差分を開き、変更の確認を開始するだけです。
IDEに組み込まれているdiffナビゲーションを使用して、ファイル内の変更間を移動できます。コメントを追加するコードのブロックを選択します。CodeStreamを使用すると、チェンジセットの一部ではないコード行にコメントを付けることができます。これらのコメントは、プルリクエストに単一のコメント(GitLabの用語では「今すぐコメント」)として追加され、進行中のレビューの一部ではありません。
VS Codeでは、CodeStreamペインにコメントボタンが表示されます。
JetBrains IDEでは、コメントボタンが差分ガターに表示され、それをクリックすると、エディターで直接コメントできるようになります。
コメントを追加すると、ツリービューの適切なファイルの下にネストされて表示されるため、コメントを簡単に取得できます。
コメントをクリックすると、ディスカッションが開き、差分内の対応するコードブロックまでスクロールします。
要求された変更を行う必要がありますか?「ローカルファイルを開く」をクリックするだけで、作業が必要な場所に直接移動できます。または、左側にある[差分でコメントを表示]をクリックして、現在のファイル内の他のコメントの場所にジャンプします。
プルリクエストでファイルを処理しながら、円をクリックしてファイルを表示済みとしてマークします。完了したら、緑色の[レビュー]ボタンをクリックしてレビューを送信します。
プル リクエストを管理するには、ツリー内の PR 詳細エントリをクリックします。プル リクエストのレビュー担当者、担当者、ラベルを変更するか、コード コメントではないコメントをプル リクエストに追加します。
プルリクエストのリストの管理 デフォルトでは、プルリクエストは以下のセクションに分割されて表示されます。
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 のカスタム クエリを作成する場合は、特別なガイドラインがいくつかあることに注意してください。カスタム クエリは Bitbucket では使用できません。 歯車のアイコンをクリックすると、IDEで開いているリポジトリに関連付けられているものだけでなく、すべてのリポジトリからのプルリクエストを表示する機能や、リストにラベルを含める機能など、その他のオプションが表示されます。GitLab組織が複数のレビュー担当者と担当者をサポートしている場合は、これを有効にするオプションもあります。 プルリクエストの作成 プルリクエストをいつでも開くには、CodeStreamペインの上部にある[ + ]ボタン、または[プルリクエスト]セクションのヘッダーにある[ + ]ボタンをクリックします。キーボードショートカットを使用することもできます(Macの場合はctlr+shift+/
p
、 ctrl+/
p
、GitLabユーザーの場合はm
)。 CodeStreamには、プルリクエストを開く前に変更を確認するためのツリービュー、リストビュー、および差分ビューのオプションが用意されています。
ワンクリックで、最後のコミットメッセージ、ブランチ名、またはチケットを選択して作業を開始した場合はチケットタイトルに基づいてプルリクエストの名前を付けることができます。チケットを選択して作業を開始した場合は、チケットのタイトルをプルリクエストの名前にすることができます。また、チケットを選択している場合は、そのチケットとプルリクエストを明示的に結びつけることができます。プルリクエストを提出する前に、フォームの下に表示されているファイルをクリックして、変更内容を確認してください。
作業中の機能ブランチにリモート追跡用ブランチがない場合は、プルリクエストを作成する際にリモート追跡用ブランチを設定することができます。
プルリクエストを作成するための以下のオプションもご覧ください。
フォークを越えてPRを作る CodeStreamは、フォークで作業していることを自動的に検出し、ベースリポジトリとヘッドリポジトリの両方を設定することが可能です。
フィードバックリクエストからのPR作成 また、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 のドキュメントを参照してください。