# dev.knotless.createPull

> Published by [lexicons.knotless.dev](https://lexicon.garden/identity/did:plc:yqsg7znbbhfmj3a2nrpnaerk)

✓ This is the authoritative definition for this NSID.

## Description

Opens a pull on a repository, as the account logged in to this appview's pages.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.createPull)
- [Documentation](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.createPull/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:yqsg7znbbhfmj3a2nrpnaerk/dev.knotless.createPull/examples)

## Definitions

### `dev.knotless.createPull`

**Type**: `procedure`

Writes a dev.knotless.pull record in the account logged in to this appview's web pages, as `knotless pull` does: asking to merge a branch of this repository or a fork into one of its branches, both of which must exist. Refused, with the template, when the repository has one at the base (see dev.knotless.getTemplate) and the body follows none of it. Requires the session cookie the pages' login sets.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `base` | `string` | Yes | The branch to merge into. |
| `body` | `string` | No | What it does and why, in Markdown. |
| `branch` | `string` | Yes | The branch to bring in. |
| `draft` | `boolean` | No | Open it as a draft, not ready to merge or queue. Not, when absent. |
| `head` | `string` (at-uri) | Yes | The repository the branch is on: this one, or a fork. |
| `images` | `array` | No | Pictures uploaded with dev.knotless.uploadImage; those the body links to are attached. |
| `repo` | `string` (at-uri) | Yes | The repository to merge into: its dev.knotless.repo record, as dev.knotless.getRepo takes it. |
| `title` | `string` | Yes |  |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `uri` | `string` (at-uri) | Yes | The dev.knotless.pull record written. |

#### Errors

- **NotFound**: No such repository.
- **AuthenticationRequired**: No account is logged in to the pages, or its session has ended.

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Writes a dev.knotless.pull record in the account logged in to this appview's web pages, as `knotless pull` does: asking to merge a branch of this repository or a fork into one of its branches, both of which must exist. Refused, with the template, when the repository has one at the base (see dev.knotless.getTemplate) and the body follows none of it. Requires the session cookie the pages' login sets.",
      "errors": [
        {
          "description": "No such repository.",
          "name": "NotFound"
        },
        {
          "description": "No account is logged in to the pages, or its session has ended.",
          "name": "AuthenticationRequired"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "base": {
              "description": "The branch to merge into.",
              "maxLength": 1024,
              "type": "string"
            },
            "body": {
              "description": "What it does and why, in Markdown.",
              "maxLength": 20000,
              "type": "string"
            },
            "branch": {
              "description": "The branch to bring in.",
              "maxLength": 1024,
              "type": "string"
            },
            "draft": {
              "description": "Open it as a draft, not ready to merge or queue. Not, when absent.",
              "type": "boolean"
            },
            "head": {
              "description": "The repository the branch is on: this one, or a fork.",
              "format": "at-uri",
              "type": "string"
            },
            "images": {
              "description": "Pictures uploaded with dev.knotless.uploadImage; those the body links to are attached.",
              "items": {
                "ref": "dev.knotless.defs#image",
                "type": "ref"
              },
              "maxLength": 32,
              "type": "array"
            },
            "repo": {
              "description": "The repository to merge into: its dev.knotless.repo record, as dev.knotless.getRepo takes it.",
              "format": "at-uri",
              "type": "string"
            },
            "title": {
              "maxGraphemes": 300,
              "maxLength": 3000,
              "type": "string"
            }
          },
          "required": [
            "repo",
            "base",
            "head",
            "branch",
            "title"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "uri": {
              "description": "The dev.knotless.pull record written.",
              "format": "at-uri",
              "type": "string"
            }
          },
          "required": [
            "uri"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Opens a pull on a repository, as the account logged in to this appview's pages.",
  "id": "dev.knotless.createPull",
  "lexicon": 1
}
```
