# GitHub repository module

Terraform module which creates repository resource on GitHub.

## Usage

```hcl
module "repository" {
  source = "path/to/github/repository"
  
  name        = "my-repo"
  description = "Managed by Terraform."
}
``` 

## Providers

| Name | Version |
|------|---------|
| github | = v2.4.0 |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:-----:|
| allow\_merge\_commit | Set to false to disable merge commits on the repository. | `bool` | `true` | no |
| allow\_rebase\_merge | Set to false to disable rebase merges on the repository. | `bool` | `true` | no |
| allow\_squash\_merge | Set to false to disable squash merges on the repository. | `bool` | `true` | no |
| auto\_init | Set to true to produce an initial commit in the repository. | `bool` | `false` | no |
| default\_branch | The name of the default branch of the repository. | `string` | n/a | yes |
| description | A description of the repository. | `string` | `"Managed by Terraform"` | no |
| gitignore\_template | Use the name of the template without the extension. For example, 'Haskell'. | `string` | n/a | yes |
| has\_downloads | Set to true to enable the (deprecated) downloads features on the repository. | `bool` | `true` | no |
| has\_issues | Set to true to enable the GitHub Issues features on the repository. | `bool` | `true` | no |
| has\_projects | Set to true to enable the GitHub Projects features on the repository. | `bool` | `true` | no |
| has\_wiki | Set to true to enable the GitHub Wiki features on the repository. | `bool` | `true` | no |
| homepage\_url | URL of a page describing the project. | `string` | n/a | yes |
| license\_template | Use the name of the template without the extension. For example, 'mit' or 'mpl-2.0'. | `string` | n/a | yes |
| name | The name of the repository. | `string` | n/a | yes |
| permissions | The list of permissions. If empty only owner has access. | `list(object({ team\_id = string, permission = string }))` | `[]` | no |
| private | Set to true to create a private repository. Repositories are created as public (e.g. open source) by default. | `bool` | `true` | no |
| topics | The list of topics of the repository. | `list(string)` | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| full\_name | A string of the form 'orgname/reponame'. |
| git\_clone\_url | URL that can be provided to git clone to clone the repository anonymously via the git protocol. |
| html\_url | URL to the repository on the web. |
| http\_clone\_url | URL that can be provided to git clone to clone the repository via HTTPS. |
| ssh\_clone\_url | URL that can be provided to git clone to clone the repository via SSH. |

