---
sidebar_label: GitHub repository and access
doc_id: c06592d6-d72d-451c-85bb-0e60f0f43e86
description: >-
  Configure GitHub repository setup, organization details, collaborator
  permissions, and access settings.
keywords:
  - github
  - repository
  - configuration
  - collaborators
  - permissions
---

# GitHub repository and access

Defines the setup, repository configuration, and access settings for a GitHub repository, including organization details, collaborator permissions, and topics.

**Type**: `github-configuration`

**Properties**

|Name|Type|Description|Required|
|----|----|-----------|--------|
|[**setup**](#setup)|`object`|Initial setup details for the repository, including organization and installation ID.<br/>|yes|
|[**access**](#access)<br/>(Default Collaborators)|`object`|Defines the default access levels for collaborators within the repository.<br/>|no|
|[**repository**](#repository)<br/>(Repository Settings)|`object`|Repository configuration details, including topics.<br/>|no|

**Additional Properties:** not allowed  
**Example**

```json
{
    "setup": {
        "organization": "my-org",
        "installation_id": "12345678"
    },
    "access": {
        "collaborators": [
            {
                "id": "johndoe",
                "role": "push",
                "type": "user"
            }
        ]
    },
    "repository": {}
}
```

<a name="setup"></a>
## setup: Setup

Initial setup details for the repository, including organization and installation ID.

**Properties**

|Name|Type|Description|Required|
|----|----|-----------|--------|
|**organization**|`string`|The name of the organization that owns the repository.<br/>Minimal Length: `1`<br/>Pattern: `^[a-zA-Z0-9](?:[a-zA-Z0-9]\|-(?=[a-zA-Z0-9])){0,38}$`<br/>|yes|
|**installation\_id**|`string`|The unique identifier for the GitHub App installation within the organization.<br/>Pattern: `^[0-9]+$`<br/>|yes|

**Additional Properties:** not allowed  
**Example**

```json
{
    "organization": "my-org",
    "installation_id": "12345678"
}
```

<a name="access"></a>
## access: Default Collaborators

Defines the default access levels for collaborators within the repository.

**Properties**

|Name|Type|Description|Required|
|----|----|-----------|--------|
|[**collaborators**](#accesscollaborators)|`object[]`|List of collaborators with their corresponding access levels.<br/>|no|

**Example**

```json
{
    "collaborators": [
        {
            "id": "johndoe",
            "role": "push",
            "type": "user"
        }
    ]
}
```

<a name="accesscollaborators"></a>
### access\.collaborators\[\]: Collaborators

List of collaborators with their corresponding access levels.

**Items**

**Item Properties**

|Name|Type|Description|Required|
|----|----|-----------|--------|
|**id**<br/>(Name)|`string`|GitHub username or team slug<br/>Minimal Length: `1`<br/>Pattern: `^[a-zA-Z0-9](?:[a-zA-Z0-9]\|-(?=[a-zA-Z0-9])){0,38}$`<br/>|yes|
|**role**<br/>(Permission Level)|`string`|Permission level for the collaborator<br/>Enum: `"pull"`, `"triage"`, `"push"`, `"maintain"`, `"admin"`<br/>|yes|
|**type**<br/>(Collaborator Type)|`string`|Type of collaborator (GitHub user or team).<br/>Enum: `"user"`, `"team"`<br/>|yes|

**Item Additional Properties:** not allowed  
**Example**

```json
[
    {
        "id": "johndoe",
        "role": "push",
        "type": "user"
    }
]
```

<a name="repository"></a>
## repository: Repository Settings

Repository configuration details, including topics.

**Properties**

|Name|Type|Description|Required|
|----|----|-----------|--------|
|[**topics**](#repositorytopics)|`string[]`|GitHub topics for this repository, used for categorization and discovery.<br/>|no|

**Additional Properties:** not allowed  
<a name="repositorytopics"></a>
### repository\.topics\[\]: Topics

GitHub topics for this repository, used for categorization and discovery.

**Items**


A topic for categorizing the repository, lowercase letters, numbers, and hyphens only.

**Item Type:** `string`  
**Item Pattern:** `^[a-z0-9]+(-[a-z0-9]+)*$`  
