@@ -15,7 +15,7 @@ A Terraform provider for managing GitHub repository rulesets with enhanced suppo
15
15
## Requirements
16
16
17
17
- [ Terraform] ( https://www.terraform.io/downloads.html ) >= 1.0
18
- - [ Go] ( https://golang.org/doc/install ) >= 1.23 (for development)
18
+ - [ Go] ( https://golang.org/doc/install ) >= 1.23.0 (for development)
19
19
- GitHub Personal Access Token with appropriate permissions
20
20
21
21
## Installation
@@ -27,9 +27,9 @@ To use this provider in your Terraform configuration:
27
27
``` hcl
28
28
terraform {
29
29
required_providers {
30
- kw_github = {
31
- source = "knowledge-work/kw-github "
32
- version = "~> 1.0 "
30
+ kwgithub = {
31
+ source = "knowledge-work/kwgithub "
32
+ version = "~> 0.0.2 "
33
33
}
34
34
}
35
35
}
@@ -61,7 +61,7 @@ Or use the development override in your `~/.terraformrc`:
61
61
``` hcl
62
62
provider_installation {
63
63
dev_overrides {
64
- "knowledge-work/kw-github " = "/path/to/your/terraform-provider-kw-github"
64
+ "knowledge-work/kwgithub " = "/path/to/your/terraform-provider-kw-github"
65
65
}
66
66
direct {}
67
67
}
@@ -74,14 +74,14 @@ provider_installation {
74
74
``` hcl
75
75
terraform {
76
76
required_providers {
77
- kw_github = {
78
- source = "knowledge-work/kw_github "
79
- version = "1. 0.0"
77
+ kwgithub = {
78
+ source = "knowledge-work/kwgithub "
79
+ version = "~> 0.0.2 "
80
80
}
81
81
}
82
82
}
83
83
84
- provider "kw_github " {
84
+ provider "kwgithub " {
85
85
# GitHub token (optional, can also use GITHUB_TOKEN environment variable)
86
86
token = var.github_token
87
87
@@ -97,7 +97,7 @@ The provider supports two authentication methods:
97
97
1 . ** Provider Configuration** (Recommended):
98
98
99
99
``` hcl
100
- provider "kw_github " {
100
+ provider "kwgithub " {
101
101
token = var.github_token
102
102
}
103
103
```
@@ -112,14 +112,14 @@ The provider will use the `token` attribute if provided, otherwise it will fall
112
112
113
113
## Resources
114
114
115
- ### ` kw_github_ruleset_allowed_merge_methods `
115
+ ### ` kwgithub_ruleset_allowed_merge_methods `
116
116
117
117
Manages allowed merge methods for a GitHub repository ruleset.
118
118
119
119
#### Example Usage
120
120
121
121
``` hcl
122
- resource "kw_github_ruleset_allowed_merge_methods " "example" {
122
+ resource "kwgithub_ruleset_allowed_merge_methods " "example" {
123
123
repository = "owner/repo"
124
124
ruleset_id = "123456"
125
125
allowed_merge_methods = ["merge", "squash"]
@@ -129,7 +129,7 @@ resource "kw_github_ruleset_allowed_merge_methods" "example" {
129
129
130
130
# Ensure this runs after other ruleset changes
131
131
depends_on = [
132
- kw_github_other_ruleset_resource .example
132
+ kwgithub_other_ruleset_resource .example
133
133
]
134
134
}
135
135
```
@@ -148,7 +148,7 @@ resource "kw_github_ruleset_allowed_merge_methods" "example" {
148
148
#### Import
149
149
150
150
``` bash
151
- terraform import kw_github_ruleset_allowed_merge_methods .example owner/repo:123456
151
+ terraform import kwgithub_ruleset_allowed_merge_methods .example owner/repo:123456
152
152
```
153
153
154
154
## Why This Provider?
@@ -166,7 +166,7 @@ While the official GitHub Terraform provider (`integrations/github`) supports re
166
166
167
167
## Use Cases
168
168
169
- 1 . ** Complement Official Provider** : Use ` github_repository_ruleset ` for main ruleset configuration and ` kw_github_ruleset_allowed_merge_methods ` for reliable merge method management
169
+ 1 . ** Complement Official Provider** : Use ` github_repository_ruleset ` for main ruleset configuration and ` kwgithub_ruleset_allowed_merge_methods ` for reliable merge method management
170
170
2 . ** Existing Rulesets** : Manage merge methods for rulesets created outside of Terraform
171
171
3 . ** Complex Dependencies** : Handle scenarios where ruleset updates from other sources affect merge methods
172
172
@@ -179,9 +179,9 @@ terraform {
179
179
source = "integrations/github"
180
180
version = "~> 6.0"
181
181
}
182
- kw_github = {
183
- source = "knowledge-work/kw_github "
184
- version = "1. 0.0"
182
+ kwgithub = {
183
+ source = "knowledge-work/kwgithub "
184
+ version = "~> 0.0.2 "
185
185
}
186
186
}
187
187
}
@@ -190,7 +190,7 @@ provider "github" {
190
190
token = var.github_token
191
191
}
192
192
193
- provider "kw_github " {
193
+ provider "kwgithub " {
194
194
token = var.github_token
195
195
}
196
196
@@ -223,7 +223,7 @@ resource "github_repository_ruleset" "main" {
223
223
}
224
224
225
225
# Manage merge methods with our specialized provider
226
- resource "kw_github_ruleset_allowed_merge_methods " "main" {
226
+ resource "kwgithub_ruleset_allowed_merge_methods " "main" {
227
227
repository = "myorg/myrepo"
228
228
ruleset_id = github_repository_ruleset.main.id
229
229
allowed_merge_methods = ["merge", "squash"]
@@ -250,30 +250,31 @@ resource "kw_github_ruleset_allowed_merge_methods" "main" {
250
250
### Building from Source
251
251
252
252
``` bash
253
+ make build
254
+ # Or manually:
253
255
go build -o terraform-provider-kw-github ./cmd/terraform-provider-kwgithub
254
256
```
255
257
256
258
### Running Tests
257
259
258
260
``` bash
259
261
# Unit tests
260
- go test ./...
262
+ make test
261
263
262
264
# Acceptance tests (requires GITHUB_TOKEN)
263
- TF_ACC=1 go test ./... -v
265
+ make test-acc
264
266
```
265
267
266
268
### Code Quality
267
269
268
270
``` bash
269
- # Format code
270
- go fmt ./...
271
+ # Format and lint code
272
+ make lint
271
273
272
- # Run linter
273
- go vet ./...
274
-
275
- # Tidy dependencies
276
- go mod tidy
274
+ # Or run individual commands:
275
+ make fmt # Format code
276
+ make vet # Run go vet
277
+ make tidy # Tidy dependencies
277
278
```
278
279
279
280
## Contributing
0 commit comments