# dev.gitosphere.repository.pullRequestThreadDecision

> A verdict on a blocking Pull Request thread, bound to the round it was given in. Comment records are immutable, so verdicts accumulate as separate records. Whether a verdict decides the thread or only proposes is derived from its author's role when it is read: the thread's author and repository admins decide; the Pull Request author can only propose addressed or noLongerApplies.

- Kind: record
- Record key: any
- Authority: repository.gitosphere.dev
- Lexicon: 1
- Published by [gitosphere-lex.bsky.social](https://lexicon.garden/identity/did:plc:iz47txlteeb2ojtp5ygiqet6), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:iz47txlteeb2ojtp5ygiqet6/dev.gitosphere.repository.pullRequestThreadDecision)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:iz47txlteeb2ojtp5ygiqet6/dev.gitosphere.repository.pullRequestThreadDecision/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:iz47txlteeb2ojtp5ygiqet6/dev.gitosphere.repository.pullRequestThreadDecision/analytics)

## Record (`dev.gitosphere.repository.pullRequestThreadDecision`)

Type: record · key any

### Properties

- `acceptedBy` (string · did, required)
- `author` (string · did, required)
- `baseCommit` (string, required)
  - Constraints: minLength: 40, maxLength: 64
- `createdAt` (string · datetime, required)
- `headCommit` (string, required)
  - Constraints: minLength: 40, maxLength: 64
- `keyId` (string, required)
  - Constraints: minLength: 1, maxLength: 128
- `line` (integer)
  - Constraints: minimum: 1, maximum: 2147483647
- `number` (integer, required)
  - Constraints: minimum: 1, maximum: 9007199254740991
- `path` (string): With stillApplies, the location of the thread in this round.
  - Constraints: minLength: 1, maxLength: 4096
- `pullRequestId` (string, required)
  - Constraints: minLength: 36, maxLength: 36
- `reason` (string, required)
  - Constraints: minLength: 1, maxLength: 20000, maxGraphemes: 2000
- `receipt` (string, required)
  - Constraints: minLength: 1, maxLength: 512
- `repositoryId` (ref, required)
  - Reference: `dev.gitosphere.defs#repositoryId`
- `round` (integer, required)
  - Constraints: minimum: 0, maximum: 9007199254740991
- `side` (string)
  - Constraints: enum: base | head
- `startLine` (integer)
  - Constraints: minimum: 1, maximum: 2147483647
- `thread` (string · at-uri, required): The top-level blocking comment that starts the thread.
- `threadCid` (string · cid, required): The CID of that comment when the verdict was given.
- `verdict` (string, required): stillApplies keeps the thread unresolved in this round, optionally at a new location; addressed and noLongerApplies resolve it.
  - Constraints: knownValues: stillApplies | addressed | noLongerApplies

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "any",
      "record": {
        "properties": {
          "acceptedBy": {
            "format": "did",
            "type": "string"
          },
          "author": {
            "format": "did",
            "type": "string"
          },
          "baseCommit": {
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "headCommit": {
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "keyId": {
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "line": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "number": {
            "maximum": 9007199254740991,
            "minimum": 1,
            "type": "integer"
          },
          "path": {
            "description": "With stillApplies, the location of the thread in this round.",
            "maxLength": 4096,
            "minLength": 1,
            "type": "string"
          },
          "pullRequestId": {
            "maxLength": 36,
            "minLength": 36,
            "type": "string"
          },
          "reason": {
            "maxGraphemes": 2000,
            "maxLength": 20000,
            "minLength": 1,
            "type": "string"
          },
          "receipt": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "repositoryId": {
            "ref": "dev.gitosphere.defs#repositoryId",
            "type": "ref"
          },
          "round": {
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          },
          "side": {
            "enum": [
              "base",
              "head"
            ],
            "type": "string"
          },
          "startLine": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer"
          },
          "thread": {
            "description": "The top-level blocking comment that starts the thread.",
            "format": "at-uri",
            "type": "string"
          },
          "threadCid": {
            "description": "The CID of that comment when the verdict was given.",
            "format": "cid",
            "type": "string"
          },
          "verdict": {
            "description": "stillApplies keeps the thread unresolved in this round, optionally at a new location; addressed and noLongerApplies resolve it.",
            "knownValues": [
              "stillApplies",
              "addressed",
              "noLongerApplies"
            ],
            "type": "string"
          }
        },
        "required": [
          "repositoryId",
          "pullRequestId",
          "number",
          "thread",
          "threadCid",
          "round",
          "baseCommit",
          "headCommit",
          "author",
          "verdict",
          "reason",
          "createdAt",
          "acceptedBy",
          "keyId",
          "receipt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A verdict on a blocking Pull Request thread, bound to the round it was given in. Comment records are immutable, so verdicts accumulate as separate records. Whether a verdict decides the thread or only proposes is derived from its author's role when it is read: the thread's author and repository admins decide; the Pull Request author can only propose addressed or noLongerApplies.",
  "id": "dev.gitosphere.repository.pullRequestThreadDecision",
  "lexicon": 1
}
```
