Create comment (by PullRequest ID)

Request

POST

https://api.sourcecraft.tech/pulls/id:{pull_request_id}/comments

Path parameters

Name

Description

pull_request_id

Type: string

Example: ``

Query parameters

Name

Description

pull_request_slug

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
{
  "path": "example",
  "position": {
    "from": 0,
    "to": 0,
    "side": "target",
    "outdated": true
  }
}

body

Type: string

Example: example

iteration

Type: string

Example: example

need_resolution

Type: boolean

parent_id

Type: string

Example: 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: target, source

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: example

position

Type: DiffPos

Example
{
  "from": 0,
  "to": 0,
  "side": "target",
  "outdated": true
}
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
{
  "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"
  }
}

author

Type: UserEmbedded

Example
{
  "id": "example",
  "slug": "example"
}

body

Type: string

Example: example

created_at

Type: string<date-time>

Example: 2025-01-01T00:00:00Z

id

Type: string

Example: 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: example

need_resolution

Type: boolean

Deprecated: use resolution_state instead.

parent_id

Type: string

Example: example

reactions

Type: object

[additional]

Type: ReactionCount

Example
{
  "count": 0,
  "self_react": true
}
Example
{}

resolution_state

Type: 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.

Enum: no_resolution_needed, awaiting_resolution, resolved

type

Type: PullRequestComment.Type

Enum: default, appsec

updated_at

Type: string<date-time>

Example: 2025-01-01T00:00:00Z

updated_by

Type: UserEmbedded

Example
{
  "id": "example",
  "slug": "example"
}

UserEmbedded

Name

Description

id

Type: string

Example: example

slug

Type: string

Example: 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: 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
{
  "from_start": 0,
  "from_count": 0,
  "to_start": 0,
  "to_count": 0,
  "patch": "example"
}

path

Type: string

Example: example

position

Type: DiffPos

Example
{
  "from": 0,
  "to": 0,
  "side": "target",
  "outdated": true
}
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

[additional]

Type: string

Example: example

Example
{}

error_code

Type: string

Example: example

message

Type: string

Example: example

request_id

Type: string

Example: example

Предыдущая
Следующая