Create comment
Request
POST
https://api.sourcecraft.tech/repos/{org_slug}/{repo_slug}/pulls/{pull_request_slug}/comments
Path parameters
|
Name |
Description |
|
org_slug |
Type: string Example: `` |
|
pull_request_slug |
Type: string Example: `` |
|
repo_slug |
Type: string Example: `` |
Query parameters
|
Name |
Description |
|
pull_request_id |
Type: string Example: `` |
|
silent |
Type: boolean do not notify subscribers |
Body
application/json
{
"parent_id": "example",
"body": "example",
"anchor": {
"path": "example",
"position": {
"from": 0,
"to": 0,
"side": "target",
"outdated": true
}
},
"need_resolution": true,
"publish": true,
"iteration": "example"
}
|
Name |
Description |
|
anchor |
Type: ShortAnchor Example
|
|
body |
Type: string Example: |
|
iteration |
Type: string Example: |
|
need_resolution |
Type: boolean |
|
parent_id |
Type: string Example: |
|
publish |
Type: boolean |
Side
Type: string
Enum: target, source
DiffPos
|
Name |
Description |
|
from |
Type: integer Start of commented region, line number (1-based). |
|
outdated |
Type: boolean Indicates whether commented region has changed after initial comment publishing. |
|
side |
Type: Side Enum: |
|
to |
Type: integer End of commented region, line number (1-based). |
Example
{
"from": 0,
"to": 0,
"side": "target",
"outdated": true
}
ShortAnchor
|
Name |
Description |
|
path |
Type: string Example: |
|
position |
Type: DiffPos Example
|
Example
{
"path": "example",
"position": {
"from": 0,
"to": 0,
"side": "target",
"outdated": true
}
}
Responses
201 Created
A successful response.
Body
application/json
{
"id": "example",
"body": "example",
"parent_id": "example",
"author": {
"id": "example",
"slug": "example"
},
"updated_by": null,
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T00:00:00Z",
"is_deleted": true,
"reactions": {},
"anchor": {
"path": "example",
"position": {
"from": 0,
"to": 0,
"side": "target",
"outdated": true
},
"hunk": {
"from_start": 0,
"from_count": 0,
"to_start": 0,
"to_count": 0,
"patch": "example"
}
},
"need_resolution": true,
"is_resolved": true,
"is_published": true,
"is_outdated": true,
"type": "default",
"iteration": "example",
"resolution_state": "no_resolution_needed"
}
|
Name |
Description |
||
|
anchor |
Type: Anchor Example
|
||
|
author |
Type: UserEmbedded Example
|
||
|
body |
Type: string Example: |
||
|
created_at |
Type: string<date-time> Example: |
||
|
id |
Type: string Example: |
||
|
is_deleted |
Type: boolean |
||
|
is_outdated |
Type: boolean |
||
|
is_published |
Type: boolean |
||
|
is_resolved |
Type: boolean Deprecated: use resolution_state instead. |
||
|
iteration |
Type: string<uint64> Example: |
||
|
need_resolution |
Type: boolean Deprecated: use resolution_state instead. |
||
|
parent_id |
Type: string Example: |
||
|
reactions |
Type: object
Example
|
||
|
resolution_state |
Type: ResolutionState Resolution state for pull request comments. Enum: |
||
|
type |
Type: PullRequestComment.Type Enum: |
||
|
updated_at |
Type: string<date-time> Example: |
||
|
updated_by |
Type: UserEmbedded Example
|
UserEmbedded
|
Name |
Description |
|
id |
Type: string Example: |
|
slug |
Type: string Example: |
Example
{
"id": "example",
"slug": "example"
}
ReactionCount
|
Name |
Description |
|
count |
Type: integer |
|
self_react |
Type: boolean |
Example
{
"count": 0,
"self_react": true
}
Hunk
|
Name |
Description |
|
from_count |
Type: integer |
|
from_start |
Type: integer |
|
patch |
Type: string Example: |
|
to_count |
Type: integer |
|
to_start |
Type: integer |
Example
{
"from_start": 0,
"from_count": 0,
"to_start": 0,
"to_count": 0,
"patch": "example"
}
Anchor
|
Name |
Description |
|
hunk |
Type: Hunk Example
|
|
path |
Type: string Example: |
|
position |
Type: DiffPos Example
|
Example
{
"path": "example",
"position": {
"from": 0,
"to": 0,
"side": "target",
"outdated": true
},
"hunk": {
"from_start": 0,
"from_count": 0,
"to_start": 0,
"to_count": 0,
"patch": "example"
}
}
PullRequestComment.Type
Type: string
Enum: default, appsec
ResolutionState
Resolution state for pull request comments.
Transition from no_resolution_needed directly to resolved is not allowed:
set to awaiting_resolution first, then resolve.
Type: string
Enum: no_resolution_needed, awaiting_resolution, resolved
default
Both Client Errors (4xx) and Server Errors (5xx) are serialized into this scheme
Body
application/json
{
"error_code": "example",
"message": "example",
"request_id": "example",
"details": {}
}
|
Name |
Description |
||
|
details |
Type: Optional details. Exact structure depends on error_code
Example
|
||
|
error_code |
Type: string Example: |
||
|
message |
Type: string Example: |
||
|
request_id |
Type: string Example: |