This repository contains modules for deploying and managing GitHub repositories.
| Name | Version |
|---|---|
| terraform | >= 0.12.26 |
| github | >= 5.12.0 |
| Name | Version |
|---|---|
| github | >= 5.12.0 |
| Name | Source | Version |
|---|---|---|
| admin_teams | team-repository | n/a |
| admin_users | repository-collaborator | n/a |
| pull_teams | team-repository | n/a |
| pull_users | repository-collaborator | n/a |
| push_teams | team-repository | n/a |
| push_users | repository-collaborator | n/a |
| Name | Type |
|---|---|
| github_branch_default.default | resource |
| github_issue_label.labels | resource |
| github_repository.repo | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| admin_teams | A set of team IDs allowed to administer this repository. | set(string) |
[] |
no |
| admin_users | A set of GitHub users' IDs allowed to admin this repository. | set(string) |
[] |
no |
| advanced_security_enabled | Whether or not advanced security features are enabled on the repository. | bool |
true |
no |
| 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 |
| allow_update_branch | Set to true to always suggest updating pull request branches. |
bool |
true |
no |
| archive_on_destroy | Set to true to archive the repository instead of deleting on destroy. |
bool |
true |
no |
| archived | Specifies if the repository should be archived. | bool |
false |
no |
| auto_init | Set to true to produce an initial commit in the repository. This is required in order to set the default branch on a new repository, but may be set to false on imported repositories. |
bool |
true |
no |
| default_branch | The name of the default branch for the repository. | string |
"main" |
no |
| delete_branch_on_merge | Automatically delete head branch after a pull request is merged. | bool |
true |
no |
| description | A description of the repository. | string |
n/a | yes |
| has_downloads | Set to true to enable the (deprecated) downloads features on the repository. |
bool |
false |
no |
| has_issues | Set to true to enable the GitHub Issues features on the repository. |
bool |
false |
no |
| has_projects | Set to true to enable the GitHub Projects features on the repository. |
bool |
false |
no |
| has_wiki | Set to true to enable the GitHub Wiki features on the repository. |
bool |
false |
no |
| homepage_url | URL of a page describing the project. | string |
"" |
no |
| ignore_vulnerability_alerts_during_read | Set to true to omit calling the vulnerability alerts endpoint so the resource can also be used without admin permissions during read. |
bool |
true |
no |
| is_template | Whether or not this repository is a template repository. | bool |
false |
no |
| labels | A set of labels to configure for the repository. | set(object({ |
[] |
no |
| merge_commit_message | The default merge commit message. One of PR_BODY, PR_TITLE, or BLANK. |
string |
"PR_TITLE" |
no |
| merge_commit_title | The default merge commit title. One of PR_TITLE or MERGE_MESSAGE. |
string |
"PR_TITLE" |
no |
| name | The name of the repository. | string |
n/a | yes |
| pages_branch | The repository branch used to publish the site's source files. | string |
null |
no |
| pages_cname | The custom domain for the repository. This can only be set after the repository has been created. | string |
null |
no |
| pages_path | The path from which the site publishes GitHub pages. | string |
null |
no |
| pull_users | A set of GitHub users' IDs allowed to read this repository. | set(string) |
[] |
no |
| push_users | A set of GitHub users' IDs allowed to write to this repository. | set(string) |
[] |
no |
| read_teams | A set of teams allowed to pull this repository. | set(string) |
[] |
no |
| secret_scanning_enabled | Whether or not secret scanning is enabled on the repository. | bool |
true |
no |
| secret_scanning_push_protection_enabled | Whether or not secret scanning push protection is enabled on the repository. | bool |
true |
no |
| squash_merge_commit_message | The default squash merge commit message. One of PR_BODY, COMMIT_MESSAGES, or BLANK. |
string |
"COMMIT_MESSAGES" |
no |
| squash_merge_commit_title | The default squash merge commit title. One of PR_TITLE or COMMIT_OR_PR_TITLE. |
string |
"COMMIT_OR_PR_TITLE" |
no |
| template_owner | The owner of the template repository. | string |
null |
no |
| template_repository | The name of the template repository. | string |
null |
no |
| topics | A list of topics for the repository. | set(string) |
[] |
no |
| visibility | Determines the visibility of the repository. One of private, public, or internal. Note that internal is only available for GitHub Enterprise tiers. |
string |
"private" |
no |
| vulnerability_alerts | Whether or not security alerts for vulnerable dependencies are enabled on the repository. | bool |
true |
no |
| write_teams | A set of team IDs allowed to push to this repository. | set(string) |
[] |
no |
| Name | Description |
|---|---|
| full_name | The full name of the repository in the form org-name/repo-name. |
| git_clone_url | The URL that can be provided to git clone to clone the repository anonymously via the git protocol. |
| http_clone_url | The URL that can be provided to git clone to clone the repository via HTTPS. |
| id | The ID of the repository. |
| node_id | The Node ID of the repository. |
| ssh_clone_url | The URL that can be provided to git clone to clone the repository via SSH. |
| svn_url | The URL that can be provided to svn checkout to check out the repository via GitHub's Subversion protocol emulation. |