mirror of
https://github.com/ysoftdevs/terraform-provider-bitbucketserver.git
synced 2026-04-17 22:39:38 +02:00
Fix webhook support
This commit is contained in:
@@ -64,6 +64,7 @@ func Provider() terraform.ResourceProvider {
|
|||||||
"bitbucketserver_repository_hook": resourceRepositoryHook(),
|
"bitbucketserver_repository_hook": resourceRepositoryHook(),
|
||||||
"bitbucketserver_repository_permissions_group": resourceRepositoryPermissionsGroup(),
|
"bitbucketserver_repository_permissions_group": resourceRepositoryPermissionsGroup(),
|
||||||
"bitbucketserver_repository_permissions_user": resourceRepositoryPermissionsUser(),
|
"bitbucketserver_repository_permissions_user": resourceRepositoryPermissionsUser(),
|
||||||
|
"bitbucketserver_repository_webhook": resourceRepositoryWebhook(),
|
||||||
"bitbucketserver_user": resourceUser(),
|
"bitbucketserver_user": resourceUser(),
|
||||||
"bitbucketserver_user_access_token": resourceUserAccessToken(),
|
"bitbucketserver_user_access_token": resourceUserAccessToken(),
|
||||||
"bitbucketserver_user_group": resourceUserGroup(),
|
"bitbucketserver_user_group": resourceUserGroup(),
|
||||||
|
|||||||
@@ -10,13 +10,13 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Webhook struct {
|
type Webhook struct {
|
||||||
ID int `json:"id,omitempty"`
|
ID int `json:"id,omitempty"`
|
||||||
Name string `json:"name,omitempty"`
|
Name string `json:"name,omitempty"`
|
||||||
CreatedDate string `json:"createdDate,omitempty"`
|
CreatedDate jsonTime `json:"createdDate,omitempty"`
|
||||||
UpdatedDate string `json:"updatedDate,omitempty"`
|
UpdatedDate jsonTime `json:"updatedDate,omitempty"`
|
||||||
URL string `json:"url,omitempty"`
|
URL string `json:"url,omitempty"`
|
||||||
Active bool `json:"active,omitempty"`
|
Active bool `json:"active,omitempty"`
|
||||||
Events []string `json:"events"`
|
Events []interface{} `json:"events"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type WebhookListResponse struct {
|
type WebhookListResponse struct {
|
||||||
@@ -31,8 +31,8 @@ func resourceRepositoryWebhook() *schema.Resource {
|
|||||||
return &schema.Resource{
|
return &schema.Resource{
|
||||||
Create: resourceRepositoryWebhookCreate,
|
Create: resourceRepositoryWebhookCreate,
|
||||||
Update: resourceRepositoryWebhookUpdate,
|
Update: resourceRepositoryWebhookUpdate,
|
||||||
Read: resourceRepositoryHookRead,
|
Read: resourceRepositoryWebhookRead,
|
||||||
Delete: resourceRepositoryHookDelete,
|
Delete: resourceRepositoryWebhookDelete,
|
||||||
Importer: &schema.ResourceImporter{
|
Importer: &schema.ResourceImporter{
|
||||||
State: schema.ImportStatePassthrough,
|
State: schema.ImportStatePassthrough,
|
||||||
},
|
},
|
||||||
@@ -62,6 +62,7 @@ func resourceRepositoryWebhook() *schema.Resource {
|
|||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Required: true,
|
Required: true,
|
||||||
ForceNew: false,
|
ForceNew: false,
|
||||||
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
},
|
},
|
||||||
"active": {
|
"active": {
|
||||||
Type: schema.TypeBool,
|
Type: schema.TypeBool,
|
||||||
@@ -169,10 +170,10 @@ func resourceRepositoryWebhookRead(d *schema.ResourceData, m interface{}) error
|
|||||||
|
|
||||||
func resourceRepositoryWebhookDelete(d *schema.ResourceData, m interface{}) error {
|
func resourceRepositoryWebhookDelete(d *schema.ResourceData, m interface{}) error {
|
||||||
client := m.(*BitbucketServerProvider).BitbucketClient
|
client := m.(*BitbucketServerProvider).BitbucketClient
|
||||||
_, err := client.Delete(fmt.Sprintf("/rest/api/1.0/projects/%s/repos/%s/webhooks/%s",
|
_, err := client.Delete(fmt.Sprintf("/rest/api/1.0/projects/%s/repos/%s/webhooks/%d",
|
||||||
d.Get("project").(string),
|
d.Get("project").(string),
|
||||||
d.Get("repository").(string),
|
d.Get("repository").(string),
|
||||||
d.Get("webhook_id").(string)))
|
d.Get("webhook_id").(int)))
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -182,7 +183,7 @@ func newWebhookFromResource(d *schema.ResourceData) (Hook *Webhook) {
|
|||||||
Name: d.Get("name").(string),
|
Name: d.Get("name").(string),
|
||||||
URL: d.Get("webhook_url").(string),
|
URL: d.Get("webhook_url").(string),
|
||||||
Active: d.Get("active").(bool),
|
Active: d.Get("active").(bool),
|
||||||
Events: d.Get("events").([]string),
|
Events: d.Get("events").([]interface{}),
|
||||||
}
|
}
|
||||||
|
|
||||||
return webhook
|
return webhook
|
||||||
@@ -191,11 +192,11 @@ func newWebhookFromResource(d *schema.ResourceData) (Hook *Webhook) {
|
|||||||
func getRepositoryWebhookFromId(d *schema.ResourceData, m interface{}) error {
|
func getRepositoryWebhookFromId(d *schema.ResourceData, m interface{}) error {
|
||||||
project := d.Get("project").(string)
|
project := d.Get("project").(string)
|
||||||
repository := d.Get("repository").(string)
|
repository := d.Get("repository").(string)
|
||||||
id := d.Get("webhook_id").(string)
|
id := d.Get("webhook_id").(int)
|
||||||
|
|
||||||
client := m.(*BitbucketServerProvider).BitbucketClient
|
client := m.(*BitbucketServerProvider).BitbucketClient
|
||||||
|
|
||||||
resp, err := client.Get(fmt.Sprintf("/rest/api/1.0/projects/%s/repos/%s/webhooks/%s",
|
resp, err := client.Get(fmt.Sprintf("/rest/api/1.0/projects/%s/repos/%s/webhooks/%d",
|
||||||
project,
|
project,
|
||||||
repository,
|
repository,
|
||||||
id,
|
id,
|
||||||
|
|||||||
Reference in New Issue
Block a user