Skip to main content

Create a review comment for a pull request

Creates a review comment in the pull request diff. To add a regular comment to a pull request timeline, see "[Create an issue comment](https://docs.github.com/[email protected]/rest/reference/issues#create-an-issue-comment)." We recommend creating a review comment using `line`, `side`, and optionally `start_line` and `start_side` if your comment applies to more than one line in the pull request diff. You can still create a review comment using the `position` parameter. When you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. For more information, see the [`comfort-fade` preview notice](https://docs.github.com/[email protected]/rest/reference/pulls#create-a-review-comment-for-a-pull-request-preview-notices). **Note:** The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file. This endpoint triggers [notifications](https://docs.github.com/en/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. See "[Secondary rate limits](https://docs.github.com/[email protected]/rest/overview/resources-in-the-rest-api#secondary-rate-limits)" and "[Dealing with secondary rate limits](https://docs.github.com/[email protected]/rest/guides/best-practices-for-integrators#dealing-with-secondary-rate-limits)" for details.

POST/repos/{owner}/{repo}/pulls/{pull_number}/comments
Source
github-v3-rest.json
Revision
f5f067c1e6f6
Active snapshot
85e53e3d0d65

Request

Path Parameters
owner string
required
repo string
required
pull_number integer
required
Body Params
required
application/jsonobject
body string
required

The text of the review comment.

commit_id string
optional

The SHA of the commit needing a comment. Not using the latest commit SHA may render your comment outdated if a subsequent commit modifies the line you specify as the `position`.

in_reply_to integer
optional

The ID of the review comment to reply to. To find the ID of a review comment with ["List review comments on a pull request"](#list-review-comments-on-a-pull-request). When specified, all parameters other than `body` in the request body are ignored.

Example: 2

line integer
optional

**Required with `comfort-fade` preview**. The line of the blob in the pull request diff that the comment applies to. For a multi-line comment, the last line of the range that your comment applies to.

path string
optional

The relative path to the file that necessitates a comment.

position integer
optional

**Required without `comfort-fade` preview**. The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note above.

side string
optional

**Required with `comfort-fade` preview**. In a split diff view, the side of the diff that the pull request's changes appear on. Can be `LEFT` or `RIGHT`. Use `LEFT` for deletions that appear in red. Use `RIGHT` for additions that appear in green or unchanged lines that appear in white and are shown for context. For a multi-line comment, side represents whether the last line of the comment range is a deletion or addition. For more information, see "[Diff view options](https://docs.github.com/en/articles/about-comparing-branches-in-pull-requests#diff-view-options)" in the GitHub Help documentation.

start_line integer
optional

**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_line` is the first line in the pull request diff that your multi-line comment applies to. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation.

start_side string
optional

**Required when using multi-line comments**. To create multi-line comments, you must use the `comfort-fade` preview header. The `start_side` is the starting side of the diff that the comment applies to. Can be `LEFT` or `RIGHT`. To learn more about multi-line comments, see "[Commenting on a pull request](https://docs.github.com/en/articles/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)" in the GitHub Help documentation. See `side` in this table for additional context.

Responses

application/json Pull Request Review Comment object

Response

Headers
Location string

Example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1

_links object
required
html object
required
href string<uri>
required

Example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1

pull_request object
required
href string<uri>
required

Example: https://api.github.com/repos/octocat/Hello-World/pulls/1

self object
required
href string<uri>
required

Example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1

author_association
string< author_association >
required

How the author is associated with the repository.

Example: OWNER

body string
required

The text of the comment.

Example: We should probably include a check for null values here.

body_html string
optional

Example: "<p>comment body</p>"

body_text string
optional

Example: "comment body"

commit_id string
required

The SHA of the commit to which the comment applies.

Example: 6dcb09b5b57875f334f61aebed695e2e4193db5e

created_at string<date-time>
required

Example: 2011-04-14T16:00:49Z

diff_hunk string
required

The diff of the line that the comment refers to.

Example: @@ -16,33 +16,40 @@ public class Connection : IConnection...

html_url string<uri>
required

HTML URL for the pull request review comment.

Example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1

id integer
required

The ID of the pull request review comment.

Example: 1

in_reply_to_id integer
optional

The comment ID to reply to.

Example: 8

line integer
optional

The line of the blob to which the comment applies. The last line of the range for a multi-line comment

Example: 2

node_id string
required

The node ID of the pull request review comment.

Example: MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw

original_commit_id string
required

The SHA of the original commit to which the comment applies.

Example: 9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840

original_line integer
optional

The line of the blob to which the comment applies. The last line of the range for a multi-line comment

Example: 2

original_position integer
required

The index of the original line in the diff to which the comment applies.

Example: 4

original_start_line integer
optionalnullable

The first line of the range for a multi-line comment.

Example: 2

path string
required

The relative path of the file to which the comment applies.

Example: config/database.yaml

position integer
required

The line index in the diff to which the comment applies.

Example: 1

pull_request_review_id integer
requirednullable

The ID of the pull request review to which the comment belongs.

Example: 42

pull_request_url string<uri>
required

URL for the pull request that the review comment belongs to.

Example: https://api.github.com/repos/octocat/Hello-World/pulls/1

reactions Reaction Rollup object
optional
+1 integer
required
-1 integer
required
confused integer
required
eyes integer
required
heart integer
required
hooray integer
required
laugh integer
required
rocket integer
required
total_count integer
required
url string<uri>
required
side string
optional

The side of the diff to which the comment applies. The side of the last line of the range for a multi-line comment

start_line integer
optionalnullable

The first line of the range for a multi-line comment.

Example: 2

start_side string
optionalnullable

The side of the first line of the range for a multi-line comment.

updated_at string<date-time>
required

Example: 2011-04-14T16:00:49Z

url string
required

URL for the pull request review comment

Example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1

user Simple User object
required

Simple User

avatar_url string<uri>
required

Example: https://github.com/images/error/octocat_happy.gif

email string
optionalnullable
events_url string
required

Example: https://api.github.com/users/octocat/events{/privacy}

followers_url string<uri>
required

Example: https://api.github.com/users/octocat/followers

following_url string
required

Example: https://api.github.com/users/octocat/following{/other_user}

gists_url string
required

Example: https://api.github.com/users/octocat/gists{/gist_id}

gravatar_id string
requirednullable

Example: 41d064eb2195891e12d0413f63227ea7

html_url string<uri>
required

Example: https://github.com/octocat

id integer
required

Example: 1

login string
required

Example: octocat

name string
optionalnullable
node_id string
required

Example: MDQ6VXNlcjE=

organizations_url string<uri>
required

Example: https://api.github.com/users/octocat/orgs

received_events_url string<uri>
required

Example: https://api.github.com/users/octocat/received_events

repos_url string<uri>
required

Example: https://api.github.com/users/octocat/repos

site_admin boolean
required
starred_at string
optional

Example: "2020-07-09T00:17:55Z"

starred_url string
required

Example: https://api.github.com/users/octocat/starred{/owner}{/repo}

subscriptions_url string<uri>
required

Example: https://api.github.com/users/octocat/subscriptions

type string
required

Example: User

url string<uri>
required

Example: https://api.github.com/users/octocat

application/json Basic Error object

Forbidden

documentation_url string
optional
message string
optional
status string
optional
url string
optional
application/json Validation Error object

Validation failed

documentation_url string
required
errors array[object]
optional
items object
code string
required
field string
optional
index integer
optional
message string
optional
resource string
optional
value
optional
message string
required