# org.tangled.repo.manifest

> Published by [tangled.org](https://lexicon.garden/identity/did:plc:wshs7t2adsemcrrd4snkeqli)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:wshs7t2adsemcrrd4snkeqli/org.tangled.repo.manifest)
- [Documentation](https://lexicon.garden/lexicon/did:plc:wshs7t2adsemcrrd4snkeqli/org.tangled.repo.manifest/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:wshs7t2adsemcrrd4snkeqli/org.tangled.repo.manifest/examples)

## Definitions

### `org.tangled.repo.manifest#declaration`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` (record-key) | Yes | repository name; the slug (rkey of org.tangled.repo.declaration) is lowercase(name) |
| `owner` | `string` (did) | Yes |  |

### `org.tangled.repo.manifest`

**Type**: `record`

Git repository manifest record. This record is used for git repository discovery like how `org.tangled.actor.profile` is used to find users.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `contributionPolicy` | `string` | No | Who may open tickets and patches on this repo. anyone = any DID, members = the knot's member roll, collaborators = the owner plus repo collaborators. Absent means the knot-wide default. |
| `createdAt` | `string` (datetime) | Yes |  |
| `declaration` | `ref` → `#declaration` | Yes |  |
| `description` | `string` | No |  |
| `source` | `union` | No | source of the repo |
| `spindle` | `string` (did) | No |  |
| `topics` | `array` | No | Topics related to the repo |
| `website` | `string` (uri) | No | Any URI related to the repo |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "declaration": {
      "properties": {
        "name": {
          "description": "repository name; the slug (rkey of org.tangled.repo.declaration) is lowercase(name)",
          "format": "record-key",
          "type": "string"
        },
        "owner": {
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "owner",
        "name"
      ],
      "type": "object"
    },
    "main": {
      "description": "Git repository manifest record. This record is used for git repository discovery like how `org.tangled.actor.profile` is used to find users.",
      "key": "literal:self",
      "record": {
        "properties": {
          "contributionPolicy": {
            "description": "Who may open tickets and patches on this repo. anyone = any DID, members = the knot's member roll, collaborators = the owner plus repo collaborators. Absent means the knot-wide default.",
            "knownValues": [
              "anyone",
              "members",
              "collaborators"
            ],
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "declaration": {
            "ref": "#declaration",
            "type": "ref"
          },
          "description": {
            "maxGraphemes": 140,
            "minGraphemes": 1,
            "type": "string"
          },
          "source": {
            "description": "source of the repo",
            "refs": [
              "org.tangled.repo.defs#sourceTangled",
              "org.tangled.repo.defs#sourceExternal"
            ],
            "type": "union"
          },
          "spindle": {
            "format": "did",
            "type": "string"
          },
          "topics": {
            "description": "Topics related to the repo",
            "items": {
              "maxLength": 50,
              "type": "string"
            },
            "maxLength": 50,
            "type": "array"
          },
          "website": {
            "description": "Any URI related to the repo",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "declaration",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "org.tangled.repo.manifest",
  "lexicon": 1
}
```
