Skip to content

hadenlabs/terraform-github-iam

Repository files navigation

Latest Release Lint CI Test pre-commit Conventional Commits KeepAChangelog

terraform-github-iam

Terraform module to provision an github iam.

Requirements

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

Usage

  module "main" {
    source = "hadenlabs/iam/github"
    version = "0.2.1"

    providers = {
      github = github
    }

    team        = {
      "name" = "name-team"
      "description = "team description"
      "privacy" = "closed"
    }
    maintainers = ["user-github"]
    members     = ["user-github"]
  }

Full working examples can be found in examples folder.

Examples

common

  module "main" {
      source = "hadenlabs/iam/github"
      version = "0.2.1"

      providers = {
        github = github
      }

      team        = {
        "name" = "name-team"
        "description = "team description"
        "privacy" = "closed"
      }
      maintainers = ["user-github"]
      members     = ["user-github"]
  }

implement members, teams and permissions

  module "main" {
      source = "hadenlabs/iam/github"
      version = "0.2.1"

      providers = {
        github = github
      }

      team        = {
        "name" = "name-team"
        "description = "team description"
        "privacy" = "closed"
      }
      permissions = [
        {
          repository = "name repository",
          permission = "pull",
        },
      ]
      maintainers = ["user-github"]
      members     = ["user-github"]
  }

Requirements

Name Version
terraform >= 0.13
github >=4.5.0

Providers

Name Version
github >=4.5.0

Modules

No modules.

Resources

Name Type
github_team.this resource
github_team_membership.maintainers resource
github_team_membership.members resource
github_team_repository.this resource

Inputs

Name Description Type Default Required
maintainers This members role maintainers list(string) [] no
members This members role member list(string) [] no
permissions Add permissions of repository for team
list(object({
repository = string
permission = string
}))
[] no
team This team to create
object({
name = string
description = string
privacy = string
})
n/a yes

Outputs

Name Description
maintainers instance of maintainers of team github
members instance of members of team github
team instance of team
team_members instance of members for team github

Help

Got a question?

File a GitHub issue.

Contributing

Bug Reports & Feature Requests

Please use the issue tracker to report any bugs or file feature requests.

Development

In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub

  2. Clone the project to your own machine

  3. Commit changes to your own branch

  4. Push your work back up to your fork

  5. Submit a Pull Request so that we can review your changes

NOTE: Be sure to rebase the latest changes from "upstream" before making a pull request!

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-2021 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-iam

Your feedback is appreciated