Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hadenlabs/terraform-github-repository

github repository for terraform
https://github.com/hadenlabs/terraform-github-repository

github hadenlabs peru repository terraform terraform-modules

Last synced: 28 days ago
JSON representation

github repository for terraform

Awesome Lists containing this project

README

        

[![Latest Release](https://img.shields.io/github/release/hadenlabs/terraform-github-repository)](https://github.com/hadenlabs/terraform-github-repository/releases) [![Lint](https://img.shields.io/github/workflow/status/hadenlabs/terraform-github-repository/lint-code)](https://github.com/hadenlabs/terraform-github-repository/actions?workflow=lint-code) [![CI](https://img.shields.io/github/workflow/status/hadenlabs/terraform-github-repository/ci)](https://github.com/hadenlabs/terraform-github-repository/actions?workflow=ci) [![Test](https://img.shields.io/github/workflow/status/hadenlabs/terraform-github-repository/test)](https://github.com/hadenlabs/terraform-github-repository/actions?workflow=test) [![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow)](https://conventionalcommits.org) [![KeepAChangelog](https://img.shields.io/badge/changelog-Keep%20a%20Changelog%20v1.0.0-orange)](https://keepachangelog.com) [![Terraform Version](https://img.shields.io/badge/terraform-1.x%20|%200.15%20|%200.14%20|%200.13%20|%200.12.20+-623CE4.svg?logo=terraform)](https://github.com/hashicorp/terraform/releases)

# 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:

- [gomplate](https://github.com/hairyhenderson/gomplate)
- [terraform](https://github.com/hashicorp/terraform)
- [taskfile](https://github.com/go-task/task)

## Requirements

| Name | Version |
| ------------------------------------------------------------------------ | ----------------- |
| [terraform](#requirement_terraform) | >= 0.12.20, < 2.0 |
| [github](#requirement_github) | >=4.5.0 |
| [local](#requirement_local) | >=1.3.0 |

## Providers

| Name | Version |
| --------------------------------------------------------- | ------- |
| [github](#provider_github) | >=4.5.0 |

## Modules

No modules.

## Resources

| Name | Type |
| --- | --- |
| [github_actions_secret.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/actions_secret) | resource |
| [github_branch.develop](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch) | resource |
| [github_branch.gh_pages](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch) | resource |
| [github_branch_default.develop_default](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch_default) | resource |
| [github_branch_protection.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/branch_protection) | resource |
| [github_issue_label.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/issue_label) | resource |
| [github_repository.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository) | resource |
| [github_repository_collaborator.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository_collaborator) | resource |
| [github_repository_deploy_key.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository_deploy_key) | resource |
| [github_repository_file.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository_file) | resource |
| [github_repository_project.this](https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository_project) | resource |

## Inputs

| Name | Description | Type | Default | Required |
| --- | --- | --- | --- | :-: |
| [add_labels_default](#input_add_labels_default) | add labels default | `bool` | `true` | no |
| [branch_protection](#input_branch_protection) | branch protections | `map(any)` | `{}` | no |
| [collaborators](#input_collaborators) | List of Collaborator Objects |

list(object({
username = string
permission = string
}))
| `[]` | no |
| [default_branch](#input_default_branch) | Name of the Default Branch of the Repository | `string` | `"develop"` | no |
| [deploy_keys](#input_deploy_keys) | The name of repositories. |
list(object({
title = string
key = string
read_only = bool
}))
| `[]` | no |
| [description](#input_description) | The description of the repository. | `string` | n/a | yes |
| [files](#input_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](#input_is_git_flow) | Git Flow - Github Flow | `bool` | `false` | no |
| [name](#input_name) | The name of the repository. | `string` | n/a | yes |
| [pages](#input_pages) | Configuration block for GitHub Pages | `map(any)` | `{}` | no |
| [secrets](#input_secrets) | secrets for repository | `map(any)` | `{}` | no |
| [settings](#input_settings) | Create and manage settings. | `any` | `{}` | no |
| [topics](#input_topics) | topics of project. | `list(string)` | `[]` | no |
| [types](#input_types) | types of project. | `list(string)` | `[]` | no |
| [visibility](#input_visibility) | The visibility of the repository private or public. | `string` | `"private"` | no |

## Outputs

| Name | Description |
| ----------------------------------------------------------------- | -------------------------------------- |
| [deploy_key](#output_deploy_key) | output instance deploy_key |
| [files](#output_files) | output instance github files |
| [instance](#output_instance) | output instance repository |
| [labels](#output_labels) | output topics github repository |
| [name](#output_name) | output name repository |
| [secrets](#output_secrets) | output instance github actions secrets |
| [topics](#output_topics) | output topics github repository |

## Help

**Got a question?**

File a GitHub [issue](https://github.com/hadenlabs/terraform-github-repository/issues).

## Contributing

See [Contributing](./docs/contributing.md).

## Module Versioning

This Module follows the principles of [Semantic Versioning (SemVer)](https://semver.org/).

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

1. Use the `MAJOR` version for incompatible changes.
1. Use the `MINOR` version when adding functionality in a backwards compatible manner.
1. 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](https://hadenlabs.com)

## 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.](LICENSE).

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

[Your feedback is appreciated](https://github.com/hadenlabs/terraform-github-repository/issues)