Skip to content

Olivr/terraform-github-repo

Repository files navigation

Requirements

Name Version
terraform ~> 1.0
github ~> 4.0

Providers

Name Version
github 4.12.2

Modules

No modules.

Resources

Name Type
github_actions_secret.secret resource
github_branch_protection.branch resource
github_issue_label.labels resource
github_repository.repo resource
github_repository_deploy_key.deploy_keys resource
github_repository_file.dotfiles resource
github_repository_file.dotfiles_strict resource
github_repository_file.files resource
github_repository_file.files_strict resource
github_team_repository.permissions resource
github_repository.repo data source

Inputs

Name Description Type Default Required
name The name of the repository. string n/a yes
allow_merge_commit Allow merge commits. bool true no
allow_rebase_merge Allow rebase merge. bool true no
allow_squash_merge Allow squash merge. bool true no
archive_on_destroy Set to true to archive the repository instead of deleting on destroy. bool false no
auto_init Set to true to produce an initial commit in the repository. bool false no
branch_delete_on_merge Automatically delete branch after a pull request is merged. bool false no
branch_protection Enable branch protection.
For private repos, it is only available on the paid plan.
bool false no
branch_protection_enforce_admins Enforce admins on branch protection. bool true no
branch_review_count Number of required reviews before merging pull requests. number 0 no
branch_status_checks List of status checks required before merging pull requests. list(string) [] no
deploy_keys Map of repository deploy keys. You can pass sensitive values by setting the ssh_key value to sensitive::key where key refers to a value in sensitive_inputs.
map(object({
title = string
ssh_key = string
read_only = optional(bool)
}))
{} no
description A description of the repository. string null no
dotfiles_first If .* (.github) files at the root of the repo should be added first. bool false no
files Files to add to the repository's default branch. These files can be modified outside of Terraform. map(string) {} no
files_strict Files to add to the repository's default branch. These files are tracked by Terraform to make sure their content always matches the configuration. map(string) {} 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 null no
homepage_url URL of a page describing the project. string null no
is_template Repository is a template repository. bool false no
issue_labels Map of labels and their colors to add to the repository.
In the format { "label" = "FFFFFF" }
map(string) {} no
private Set to true to create a private repository. bool true no
repo_exists Set to true if the repository already exists. bool false no
secrets Secrets to be added to the repo. You can pass sensitive values by setting the secret value to sensitive::key where key refers to a value in sensitive_inputs. map(string) {} no
sensitive_inputs Values that should be marked as sensitive. Supported by secrets, deploy_keys. map(string) {} no
team_permissions Teams access levels.
object({
pull = optional(list(string))
triage = optional(list(string))
push = optional(list(string))
maintain = optional(list(string))
admin = optional(list(string))
})
{} no
teams Map of GitHub teams.
map(object({
id = string
node_id = string
}))
{} no
template Template to use when creating repository. string null no
topics The list of topics of the repository. set(string) [] no
vulnerability_alerts Set to true to enable security alerts for vulnerable dependencies. Enabling requires alerts to be enabled on the owner level. bool null no

Outputs

Name Description
default_branch Default branch.
full_name Repository full name (with owner in path).
name Repository name.
ui_url URL to the repository on the web.