https://github.com/antmelekhin/terraform-gitlab-project
A Terraform module to manage GitLab Projects.
https://github.com/antmelekhin/terraform-gitlab-project
gitlab gitlab-project iac terraform terraform-module
Last synced: 5 days ago
JSON representation
A Terraform module to manage GitLab Projects.
- Host: GitHub
- URL: https://github.com/antmelekhin/terraform-gitlab-project
- Owner: antmelekhin
- License: apache-2.0
- Created: 2023-11-02T18:34:27.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-23T16:26:25.000Z (2 months ago)
- Last Synced: 2025-04-23T17:38:23.774Z (2 months ago)
- Topics: gitlab, gitlab-project, iac, terraform, terraform-module
- Language: HCL
- Homepage: https://registry.terraform.io/modules/antmelekhin/project/gitlab
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# GitLab project module
This module manages GitLab projects.
## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 0.13 |
| [gitlab](#requirement\_gitlab) | >= 17.5.0 |## Providers
| Name | Version |
|------|---------|
| [gitlab](#provider\_gitlab) | >= 17.5.0 |## Modules
No modules.
## Resources
| Name | Type |
|------|------|
| [gitlab_project.this](https://registry.terraform.io/providers/gitlabhq/gitlab/latest/docs/resources/project) | resource |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [name](#input\_name) | The name of the project. | `string` | n/a | yes |
| [allow\_merge\_on\_skipped\_pipeline](#input\_allow\_merge\_on\_skipped\_pipeline) | Set to `true` if you want to treat skipped pipelines as if they finished with success. | `bool` | `false` | no |
| [archive\_on\_destroy](#input\_archive\_on\_destroy) | Set to `true` to archive the project instead of deleting on destroy. | `bool` | `false` | no |
| [archived](#input\_archived) | Whether the project is in read-only mode (archived). | `bool` | `false` | no |
| [description](#input\_description) | A description of the project. | `string` | `null` | no |
| [merge\_method](#input\_merge\_method) | Set the merge method. Valid values are `merge`, `rebase_merge`, `ff`. | `string` | `"merge"` | no |
| [merge\_pipelines\_enabled](#input\_merge\_pipelines\_enabled) | Enable or disable merge pipelines. | `bool` | `false` | no |
| [merge\_requests\_access\_level](#input\_merge\_requests\_access\_level) | Set the merge requests access level. Valid values are `disabled`, `private`, `enabled`. | `string` | `"enabled"` | no |
| [merge\_requests\_enabled](#input\_merge\_requests\_enabled) | Enable merge requests for the project. | `bool` | `true` | no |
| [merge\_trains\_enabled](#input\_merge\_trains\_enabled) | Enable or disable merge trains. Requires `merge_pipelines_enabled` to be set to `true` to take effect. | `bool` | `false` | no |
| [namespace\_id](#input\_namespace\_id) | The namespace (group or user) of the project. Defaults to your user. | `number` | `null` | no |
| [only\_allow\_merge\_if\_all\_discussions\_are\_resolved](#input\_only\_allow\_merge\_if\_all\_discussions\_are\_resolved) | Set to `true` if you want allow merges only if all discussions are resolved. | `bool` | `false` | no |
| [only\_allow\_merge\_if\_pipeline\_succeeds](#input\_only\_allow\_merge\_if\_pipeline\_succeeds) | Set to `true` if you want allow merges only if a pipeline succeeds. | `bool` | `false` | no |
| [path](#input\_path) | The path of the repository. | `string` | `null` | no |
| [remove\_source\_branch\_after\_merge](#input\_remove\_source\_branch\_after\_merge) | Enable `Delete source branch` option by default for all new merge requests. | `bool` | `false` | no |
| [topics](#input\_topics) | The list of topics for the project. | `set(string)` | `[]` | no |
| [visibility\_level](#input\_visibility\_level) | Set to `public` to create a public project. Valid values are `private`, `internal`, `public`. | `string` | `"private"` | no |## Outputs
| Name | Description |
|------|-------------|
| [http\_url\_to\_repo](#output\_http\_url\_to\_repo) | URL that can be provided to `git clone` to clone the repository via HTTPS. |
| [id](#output\_id) | The ID of this resource. |
| [name](#output\_name) | The name of the project. |
| [path\_with\_namespace](#output\_path\_with\_namespace) | The path of the repository with namespace. |
| [ssh\_url\_to\_repo](#output\_ssh\_url\_to\_repo) | URL that can be provided to `git clone` to clone the repository via SSH. |
| [web\_url](#output\_web\_url) | URL that can be used to find the project in a browser. |