Skip to content

hadenlabs/terraform-github-repository

Latest Release Lint CI Test pre-commit Conventional Commits KeepAChangelog Terraform Version

terraform-github-repository

Terraform module to provision an github repository.

Requirements

This is a list of plugins that need to be installed previously to enjoy all the goodies of this configuration:

Requirements

Name Version
terraform >= 0.12.20, < 2.0
github >=4.5.0
local >=1.3.0

Providers

Name Version
github >=4.5.0

Modules

No modules.

Resources

Name Type
github_actions_secret.this resource
github_branch.develop resource
github_branch.gh_pages resource
github_branch_default.develop_default resource
github_branch_protection.this resource
github_issue_label.this resource
github_repository.this resource
github_repository_collaborator.this resource
github_repository_deploy_key.this resource
github_repository_file.this resource
github_repository_project.this resource

Inputs

Name Description Type Default Required
add_labels_default add labels default bool true no
branch_protection branch protections map(any) {} no
collaborators List of Collaborator Objects
list(object({
username = string
permission = string
}))
[] no
default_branch Name of the Default Branch of the Repository string "develop" no
deploy_keys The name of repositories.
list(object({
title = string
key = string
read_only = bool
}))
[] no
description The description of the repository. string n/a yes
files list files for repository
list(object({
branch = string
file = string
content = string
commit_message = string
commit_author = string
commit_email = string
overwrite_on_create = bool
}))
[] no
is_git_flow Git Flow - Github Flow bool false no
name The name of the repository. string n/a yes
pages Configuration block for GitHub Pages map(any) {} no
secrets secrets for repository map(any) {} no
settings Create and manage settings. any {} no
topics topics of project. list(string) [] no
types types of project. list(string) [] no
visibility The visibility of the repository private or public. string "private" no

Outputs

Name Description
deploy_key output instance deploy_key
files output instance github files
instance output instance repository
labels output topics github repository
name output name repository
secrets output instance github actions secrets
topics output topics github repository

Help

Got a question?

File a GitHub issue.

Contributing

See Contributing.

Module Versioning

This Module follows the principles of Semantic Versioning (SemVer).

Using the given version number of MAJOR.MINOR.PATCH, we apply the following constructs:

  1. Use the MAJOR version for incompatible changes.
  2. Use the MINOR version when adding functionality in a backwards compatible manner.
  3. Use the PATCH version when introducing backwards compatible bug fixes.

Backwards compatibility in 0.0.z and 0.y.z version

  • In the context of initial development, backwards compatibility in versions 0.0.z is not guaranteed when z is increased. (Initial development)
  • In the context of pre-release, backwards compatibility in versions 0.y.z is not guaranteed when y is increased. (Pre-release)

Copyright

Copyright Β© 2018-2022 Hadenlabs

Trademarks

All other trademarks referenced herein are the property of their respective owners.

License

The code and styles are licensed under the LGPL-3.0 license See project license..

Don't forget to 🌟 Star 🌟 the repo if you like terraform-github-repository

Your feedback is appreciated