feat: add authorization header for webhooks (#69)

Co-authored-by: Jörg Markert <venc0r@live.com>
Reviewed-on: https://gitea.com/gitea/terraform-provider-gitea/pulls/69
Reviewed-by: techknowlogick <techknowlogick@noreply.gitea.com>
Co-authored-by: venc0r <venc0r@noreply.gitea.com>
Co-committed-by: venc0r <venc0r@noreply.gitea.com>
This commit is contained in:
venc0r 2024-07-16 14:36:46 +00:00 committed by techknowlogick
parent fb56ad7c76
commit 4b114faecf
3 changed files with 36 additions and 21 deletions

View File

@ -28,6 +28,7 @@ This resource allows you to create and manage webhooks for repositories.
### Optional
- `authorization_header` (String) Webhook authorization header
- `secret` (String) Webhook secret
### Read-Only

View File

@ -43,7 +43,7 @@ resource "gitea_team_members" "example_members" {
### Required
- `members` (List of String) The user names of the members of the team.
- `members` (Set of String) The user names of the members of the team.
- `team_id` (Number) The ID of the team.
### Read-Only

View File

@ -1,9 +1,10 @@
package gitea
import (
"strconv"
"code.gitea.io/sdk/gitea"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"strconv"
)
const (
@ -13,6 +14,7 @@ const (
repoWebhookUrl string = "url"
repoWebhookContentType string = "content_type"
repoWebhookSecret string = "secret"
repoWebhookAuthorizationHeader string = "authorization_header"
repoWebhookEvents string = "events"
repoWebhookBranchFilter string = "branch_filter"
repoWebhookActive string = "active"
@ -72,6 +74,7 @@ func resourceRepositoryWebhookCreate(d *schema.ResourceData, meta interface{}) (
Events: events,
BranchFilter: d.Get(repoWebhookBranchFilter).(string),
Active: d.Get(repoWebhookActive).(bool),
AuthorizationHeader: d.Get(repoWebhookAuthorizationHeader).(string),
}
hook, _, err := client.CreateRepoHook(user, repo, hookOption)
@ -116,6 +119,7 @@ func resourceRepositoryWebhookUpdate(d *schema.ResourceData, meta interface{}) (
Events: events,
BranchFilter: d.Get(repoWebhookBranchFilter).(string),
Active: &active,
AuthorizationHeader: d.Get(repoWebhookAuthorizationHeader).(string),
}
_, err = client.EditRepoHook(user, repo, id, hookOption)
@ -170,6 +174,11 @@ func setRepositoryWebhookData(hook *gitea.Hook, d *schema.ResourceData) (err err
d.Set(repoWebhookActive, d.Get(repoWebhookActive).(bool))
d.Set(repoWebhookCreatedAt, hook.Created)
authorizationHeader := d.Get(repoWebhookAuthorizationHeader).(string)
if authorizationHeader != "" {
d.Set(repoWebhookAuthorizationHeader, authorizationHeader)
}
return
}
@ -212,6 +221,11 @@ func resourceGiteaRepositoryWebhook() *schema.Resource {
Optional: true,
Description: "Webhook secret",
},
"authorization_header": {
Type: schema.TypeString,
Optional: true,
Description: "Webhook authorization header",
},
"events": {
Type: schema.TypeList,
Elem: &schema.Schema{