diff --git a/bitbucket/data_application_properties_test.go b/bitbucket/data_application_properties_test.go index 9bf3cdc..0bdb5bd 100644 --- a/bitbucket/data_application_properties_test.go +++ b/bitbucket/data_application_properties_test.go @@ -18,9 +18,9 @@ func TestAccBitbucketDataApplicationProperties(t *testing.T) { { Config: config, Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "version", "8.5.4"), - resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "build_number", "8005004"), - resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "build_date", "1681201969213"), + resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "version", "9.4.2"), + resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "build_number", "9004002"), + resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "build_date", "1736803793767"), resource.TestCheckResourceAttr("data.bitbucketserver_application_properties.main", "display_name", "Bitbucket"), ), }, diff --git a/bitbucket/data_project_hooks_test.go b/bitbucket/data_project_hooks_test.go index 07f2bf0..87317be 100644 --- a/bitbucket/data_project_hooks_test.go +++ b/bitbucket/data_project_hooks_test.go @@ -34,7 +34,7 @@ func TestAccBitbucketDataProjectHooks_simple(t *testing.T) { resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.name", "All reviewers approve"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.type", "PRE_PULL_REQUEST_MERGE"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.description", "Require all reviewers to approve the pull request."), - resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.version", "8.5.4"), + resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.version", "9.4.2"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.#", "2"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.0", "PROJECT"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.1", "REPOSITORY"), @@ -74,7 +74,7 @@ func TestAccBitbucketDataProjectHooks_type(t *testing.T) { resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.name", "Reject Force Push"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.type", "PRE_RECEIVE"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.description", "Reject all force pushes (git push --force) to this repository"), - resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.version", "8.5.4"), + resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.version", "9.4.2"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.#", "2"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.0", "PROJECT"), resource.TestCheckResourceAttr("data.bitbucketserver_project_hooks.test", "hooks.0.scope_types.1", "REPOSITORY"), diff --git a/bitbucket/data_repository_hooks_test.go b/bitbucket/data_repository_hooks_test.go index 31337d6..5a498cd 100644 --- a/bitbucket/data_repository_hooks_test.go +++ b/bitbucket/data_repository_hooks_test.go @@ -40,7 +40,7 @@ func TestAccBitbucketDataRepositoryHooks_simple(t *testing.T) { resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.name", "All reviewers approve"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.type", "PRE_PULL_REQUEST_MERGE"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.description", "Require all reviewers to approve the pull request."), - resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.version", "8.5.4"), + resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.version", "9.4.2"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.#", "2"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.0", "PROJECT"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.1", "REPOSITORY"), @@ -86,7 +86,7 @@ func TestAccBitbucketDataRepositoryHooks_type(t *testing.T) { resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.name", "Reject Force Push"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.type", "PRE_RECEIVE"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.description", "Reject all force pushes (git push --force) to this repository"), - resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.version", "8.5.4"), + resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.version", "9.4.2"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.#", "2"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.0", "PROJECT"), resource.TestCheckResourceAttr("data.bitbucketserver_repository_hooks.test", "hooks.0.scope_types.1", "REPOSITORY"), diff --git a/bitbucket/resource_plugin_test.go b/bitbucket/resource_plugin_test.go index 5aba27e..764f495 100644 --- a/bitbucket/resource_plugin_test.go +++ b/bitbucket/resource_plugin_test.go @@ -10,7 +10,7 @@ func TestAccBitbucketPlugin_install(t *testing.T) { config := ` resource "bitbucketserver_plugin" "test" { key = "com.plugin.commitgraph.commitgraph" - version = "5.3.3" + version = "6.0.0" license = "AAABCA0ODAoPeNpdj01PwkAURffzKyZxZ1IyUzARkllQ24gRaQMtGnaP8VEmtjPNfFT59yJVFyzfubkn796Ux0Bz6SmbUM5nbDzj97RISxozHpMUnbSq88poUaLztFEStUN6MJZ2TaiVpu/YY2M6tI6sQrtHmx8qd74EZ+TBIvyUU/AoYs7jiE0jzknWQxMuifA2IBlUbnQ7AulVjwN9AaU9atASs69O2dNFU4wXJLc1aOUGw9w34JwCTTZoe7RPqUgep2X0Vm0n0fNut4gSxl/Jcnj9nFb6Q5tP/Ueu3L+0PHW4ghZFmm2zZV5k6/95CbR7Y9bYGo/zGrV3Ir4jRbDyCA6vt34DO8p3SDAsAhQnJjLD5k9Fr3uaIzkXKf83o5vDdQIUe4XequNCC3D+9ht9ZYhNZFKmnhc=X02dh" } ` @@ -24,16 +24,16 @@ func TestAccBitbucketPlugin_install(t *testing.T) { Check: resource.ComposeTestCheckFunc( resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "key", "com.plugin.commitgraph.commitgraph"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "enabled", "true"), - resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "version", "5.3.3"), + resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "version", "6.0.0"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "license", "AAABCA0ODAoPeNpdj01PwkAURffzKyZxZ1IyUzARkllQ24gRaQMtGnaP8VEmtjPNfFT59yJVFyzfubkn796Ux0Bz6SmbUM5nbDzj97RISxozHpMUnbSq88poUaLztFEStUN6MJZ2TaiVpu/YY2M6tI6sQrtHmx8qd74EZ+TBIvyUU/AoYs7jiE0jzknWQxMuifA2IBlUbnQ7AulVjwN9AaU9atASs69O2dNFU4wXJLc1aOUGw9w34JwCTTZoe7RPqUgep2X0Vm0n0fNut4gSxl/Jcnj9nFb6Q5tP/Ueu3L+0PHW4ghZFmm2zZV5k6/95CbR7Y9bYGo/zGrV3Ir4jRbDyCA6vt34DO8p3SDAsAhQnJjLD5k9Fr3uaIzkXKf83o5vDdQIUe4XequNCC3D+9ht9ZYhNZFKmnhc=X02dh"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "enabled_by_default", "true"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "name", "Charts and Graphs for Bitbucket Server"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "description", "Gain insight into Bitbucket with charts and graphs that help you visualize user contributions, commits, and team activity."), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "user_installed", "true"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "optional", "true"), - resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.name", "Mohami"), - resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.link", "https://mohami.io"), - resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.marketplace_link", "https://mohami.io"), + resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.name", "Appfire"), + resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.link", "https://apps.appf.re/landing"), + resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "vendor.marketplace_link", "https://apps.appf.re/landing"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "applied_license.0.valid", "true"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "applied_license.0.evaluation", "true"), resource.TestCheckResourceAttr("bitbucketserver_plugin.test", "applied_license.0.nearly_expired", "true"), diff --git a/bitbucket/resource_repository_deploy_key.go b/bitbucket/resource_repository_deploy_key.go index 6eb7c9c..b300342 100644 --- a/bitbucket/resource_repository_deploy_key.go +++ b/bitbucket/resource_repository_deploy_key.go @@ -15,14 +15,10 @@ import ( ) type SSHKey struct { - ID int `json:"id,omitempty"` - Name string `json:"name,omitempty"` - CreatedDate jsonTime `json:"createdDate,omitempty"` - UpdatedDate jsonTime `json:"updatedDate,omitempty"` - URL string `json:"url,omitempty"` - Active bool `json:"active"` - Events []interface{} `json:"events"` - Configuration WebhookConfiguration `json:"configuration"` + ID int `json:"id,omitempty"` + Name string `json:"name,omitempty"` + CreatedDate jsonTime `json:"createdDate,omitempty"` + UpdatedDate jsonTime `json:"updatedDate,omitempty"` } func resourceRepositoryDeployKey() *schema.Resource { @@ -57,13 +53,19 @@ func resourceRepositoryDeployKey() *schema.Resource { ForceNew: true, ValidateFunc: validation.StringInSlice([]string{"REPO_READ", "REPO_WRITE", "REPO_ADMIN"}, false), }, + "expiry_days": { + Type: schema.TypeInt, + Optional: true, + ForceNew: true, + }, }, } } type KeyRequestKey struct { - Label string `json:"label"` - Text string `json:"text"` + Label string `json:"label"` + Text string `json:"text"` + ExpiryDays int `json:"expiryDays,omitempty"` } type KeyRequest struct { @@ -73,85 +75,18 @@ type KeyRequest struct { type KeyResponse struct { Key struct { - Id int `json:"id"` - ExpiryDays int `json:"expiryDays"` - BitLength int `json:"bitLength"` - AlgorithmType string `json:"algorithmType"` - CreatedDate string `json:"createdDate"` - Fingerprint string `json:"fingerprint"` - LastAuthenticated string `json:"lastAuthenticated"` - Label string `json:"label"` - Text string `json:"text"` + Id int `json:"id"` + ExpiryDays int `json:"expiryDays"` + CreatedDate int `json:"createdDate"` + Label string `json:"label"` + Text string `json:"text"` } `json:"key"` Permission string `json:"permission"` - Project struct { - Name string `json:"name"` - Key string `json:"key"` - Id int `json:"id"` - Type string `json:"type"` - Public bool `json:"public"` - Avatar string `json:"avatar"` - Description string `json:"description"` - Namespace string `json:"namespace"` - Scope string `json:"scope"` - } `json:"project"` Repository struct { - Name string `json:"name"` - Id int `json:"id"` - State string `json:"state"` - Public bool `json:"public"` - DefaultBranch string `json:"defaultBranch"` - HierarchyId string `json:"hierarchyId"` - StatusMessage string `json:"statusMessage"` - Archived bool `json:"archived"` - Forkable bool `json:"forkable"` - RelatedLinks struct { - } `json:"relatedLinks"` - Partition int `json:"partition"` - Origin struct { - Name string `json:"name"` - Id int `json:"id"` - State string `json:"state"` - Public bool `json:"public"` - DefaultBranch string `json:"defaultBranch"` - HierarchyId string `json:"hierarchyId"` - StatusMessage string `json:"statusMessage"` - Archived bool `json:"archived"` - Forkable bool `json:"forkable"` - RelatedLinks struct { - } `json:"relatedLinks"` - Partition int `json:"partition"` - Description string `json:"description"` - Project struct { - Name string `json:"name"` - Key string `json:"key"` - Id int `json:"id"` - Type string `json:"type"` - Public bool `json:"public"` - Avatar string `json:"avatar"` - Description string `json:"description"` - Namespace string `json:"namespace"` - Scope string `json:"scope"` - } `json:"project"` - Scope string `json:"scope"` - ScmId string `json:"scmId"` - Slug string `json:"slug"` - } `json:"origin"` - Description string `json:"description"` - Project struct { - Name string `json:"name"` - Key string `json:"key"` - Id int `json:"id"` - Type string `json:"type"` - Public bool `json:"public"` - Avatar string `json:"avatar"` - Description string `json:"description"` - Namespace string `json:"namespace"` - Scope string `json:"scope"` + Slug string `json:"slug"` + Project struct { + Key string `json:"key"` } `json:"project"` - Scope string `json:"scope"` - ScmId string `json:"scmId"` - Slug string `json:"slug"` } `json:"repository"` } @@ -164,6 +99,11 @@ func resourceRepositoryDeployKeyCreate(d *schema.ResourceData, m interface{}) er Permission: d.Get("permission").(string), } + expiryDays := d.Get("expiry_days") + if expiryDays != nil && expiryDays.(int) != 0 { + keyRequest.Key.ExpiryDays = expiryDays.(int) + } + request, err := json.Marshal(keyRequest) client := m.(*bitbucketTypes.BitbucketServerProvider).BitbucketClient @@ -220,6 +160,8 @@ func storeResponse(d *schema.ResourceData, resp *http.Response) error { keyError := store(d, keyResponse, keyResponse.Key.Text, "key") projectError := store(d, keyResponse, keyResponse.Repository.Project.Key, "project") repositoryError := store(d, keyResponse, keyResponse.Repository.Slug, "repository") + days := keyResponse.Key.ExpiryDays + d.Set("expiry_days", days) return errors.Join(labelError, permissionError, keyError, projectError, repositoryError) } diff --git a/bitbucket/resource_repository_deploy_key_test.go b/bitbucket/resource_repository_deploy_key_test.go index a4cf4d1..01bb151 100644 --- a/bitbucket/resource_repository_deploy_key_test.go +++ b/bitbucket/resource_repository_deploy_key_test.go @@ -30,6 +30,15 @@ func TestAccBitbucketResourceRepositoryDeployKey(t *testing.T) { key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD1F2KTOi8ptpqkXdcARgYy27uWRCav1isJUB3Hz59MDM6CSAXa+HCgUNDV+6gXQ1eR24nr1Efb7AkEM8LmvMkNlQqpAsPEPxVlndA0KSRLXb3mWruJzkZtrJo1HhVDffuKnevPLFkB75wyBX3jn1FNtc2qfc2i80mu8TfviZnOPYnrRa8B2S9Q8IlUtXAyihQ1G3fn5r5nxrw3QQGrD3cckB9nCZpzAPn6hlDHVk6n5efoWAUxM5AhKln0OLsA1HwjGJN7/dbDPu1nSLuiJSAISSSg4E4SNdfnr3FOhTA79AKNzsor2/EXdbG+f+S4op3s3wtt05zwkHLXRSqKYoT31RFiV9d1XIav+dGTvXCgc6DNG6rbogE6ZbugDZXdcHOAoNs7IUDFbtI/HGKS7CStxAUEchoxM8HDYXmhYt1kUEpmP3g2ckILHGoGPEkOCYGPqx5HbDvAXAJVk3DdSOibCckR2FK2qEoCbMgnPUX84CqNJPHBZ24AaE8htE6TKr0= user@somewhere" permission = "REPO_READ" } + + resource "bitbucketserver_repository_deploy_key" "test_with_expiration" { + project = bitbucketserver_project.test.key + repository = bitbucketserver_repository.test.slug + label = "newLabelForTest" + expiry_days = 90 + key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD1F2KTOi8ptpqkXdcARgYy27uWRCav1isJUB3Hz59MDM6CSAXa+HCgUNDV+6gXQ1eR24nr1Efb7AkEM8LmvMkNlQqpAsPEPxVlndA0KSRLXb3mWruJzkZtrJo1HhVDffuKnevPLFkB75wyBX3jn1FNtc2qfc2i80mu8TfviZnOPYnrRa8B2S9Q8IlUtXAyihQ1G3fn5r5nxrw3QQGrD3cckB9nCZpzAPn6hlDHVk6n5efoWAUxM5AhKln0OLsA1HwjGJN7/dbDPu1nSLuiJSAISSSg4E4SNdfnr3FOhTA79AKNzsor2/EXdbG+f+S4op3s3wtt05zwkHLXRSqKYoT31RFiV9d1XIav+dGTvXCgc6DNG6rbogE6ZbugDZXdcHOAoNs7IUDFbtI/HGKS7CStxAUEchoxM8HDYXmhYt1kUEpmP3g2ckILHGoGPEkOCYGPqx5HbDvAXAJVk3DdSOibCckR2FK2qEoCbMgnPUX84CqNJPHBZ24AaE8htE6TKr0= user@somewhere" + permission = "REPO_READ" + } `, projectKey, projectKey) resource.Test(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -43,6 +52,18 @@ func TestAccBitbucketResourceRepositoryDeployKey(t *testing.T) { resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test", "repository", "repo"), resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test", "key", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD1F2KTOi8ptpqkXdcARgYy27uWRCav1isJUB3Hz59MDM6CSAXa+HCgUNDV+6gXQ1eR24nr1Efb7AkEM8LmvMkNlQqpAsPEPxVlndA0KSRLXb3mWruJzkZtrJo1HhVDffuKnevPLFkB75wyBX3jn1FNtc2qfc2i80mu8TfviZnOPYnrRa8B2S9Q8IlUtXAyihQ1G3fn5r5nxrw3QQGrD3cckB9nCZpzAPn6hlDHVk6n5efoWAUxM5AhKln0OLsA1HwjGJN7/dbDPu1nSLuiJSAISSSg4E4SNdfnr3FOhTA79AKNzsor2/EXdbG+f+S4op3s3wtt05zwkHLXRSqKYoT31RFiV9d1XIav+dGTvXCgc6DNG6rbogE6ZbugDZXdcHOAoNs7IUDFbtI/HGKS7CStxAUEchoxM8HDYXmhYt1kUEpmP3g2ckILHGoGPEkOCYGPqx5HbDvAXAJVk3DdSOibCckR2FK2qEoCbMgnPUX84CqNJPHBZ24AaE8htE6TKr0= user@somewhere"), resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test", "label", "newLabelForTest"), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test", "expiry_days", "0"), + ), + }, + { + Config: config, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("bitbucketserver_repository_deploy_key.test_with_expiration", "id"), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test_with_expiration", "project", projectKey), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test_with_expiration", "repository", "repo"), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test_with_expiration", "key", "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD1F2KTOi8ptpqkXdcARgYy27uWRCav1isJUB3Hz59MDM6CSAXa+HCgUNDV+6gXQ1eR24nr1Efb7AkEM8LmvMkNlQqpAsPEPxVlndA0KSRLXb3mWruJzkZtrJo1HhVDffuKnevPLFkB75wyBX3jn1FNtc2qfc2i80mu8TfviZnOPYnrRa8B2S9Q8IlUtXAyihQ1G3fn5r5nxrw3QQGrD3cckB9nCZpzAPn6hlDHVk6n5efoWAUxM5AhKln0OLsA1HwjGJN7/dbDPu1nSLuiJSAISSSg4E4SNdfnr3FOhTA79AKNzsor2/EXdbG+f+S4op3s3wtt05zwkHLXRSqKYoT31RFiV9d1XIav+dGTvXCgc6DNG6rbogE6ZbugDZXdcHOAoNs7IUDFbtI/HGKS7CStxAUEchoxM8HDYXmhYt1kUEpmP3g2ckILHGoGPEkOCYGPqx5HbDvAXAJVk3DdSOibCckR2FK2qEoCbMgnPUX84CqNJPHBZ24AaE8htE6TKr0= user@somewhere"), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test_with_expiration", "label", "newLabelForTest"), + resource.TestCheckResourceAttr("bitbucketserver_repository_deploy_key.test_with_expiration", "expiry_days", "90"), ), }, }, diff --git a/docs/data-sources/bitbucketserver_project_hooks.md b/docs/data-sources/bitbucketserver_project_hooks.md index 0638123..97f1162 100644 --- a/docs/data-sources/bitbucketserver_project_hooks.md +++ b/docs/data-sources/bitbucketserver_project_hooks.md @@ -14,7 +14,7 @@ data "bitbucketserver_project_hooks" "main" { # "name" = "Reject Force Push", # "type" = "PRE_RECEIVE", # "description" = "Reject all force pushes (git push --force) to this repository", -# "version" = "8.5.4", +# "version" = "9.4.2", # "scope_types" = ["PROJECT", "REPOSITORY"], # "enabled" = "false", # "configured" = "false", @@ -46,7 +46,7 @@ data "bitbucketserver_project_hooks" "main" { * `name` - Name of the hook e.g. `Reject Force Push` * `type` - Type of the hook e.g. `PRE_RECEIVE` * `description` - Detailed description e.g. `Reject all force pushes (git push --force) to this repository` - * `version` - Version of the hook, for system hooks this is the bitbucket version e.g. `8.5.4` + * `version` - Version of the hook, for system hooks this is the bitbucket version e.g. `9.4.2` * `scope_types` - List of strings containing the scopes available for this hook, e.g. `["PROJECT", "REPOSITORY"]` * `enabled` - Set if this hook is enabled for this project * `configured` - Set if the hook is configured for this project diff --git a/docs/data-sources/bitbucketserver_repository_hooks.md b/docs/data-sources/bitbucketserver_repository_hooks.md index b63f02b..f787f91 100644 --- a/docs/data-sources/bitbucketserver_repository_hooks.md +++ b/docs/data-sources/bitbucketserver_repository_hooks.md @@ -15,7 +15,7 @@ data "bitbucketserver_repository_hooks" "main" { # "name" = "Reject Force Push", # "type" = "PRE_RECEIVE", # "description" = "Reject all force pushes (git push --force) to this repository", -# "version" = "8.5.4", +# "version" = "9.4.2", # "scope_types" = ["PROJECT", "REPOSITORY"], # "enabled" = "false", # "configured" = "false", @@ -49,7 +49,7 @@ data "bitbucketserver_project_hooks" "main" { * `name` - Name of the hook e.g. `Reject Force Push` * `type` - Type of the hook e.g. `PRE_RECEIVE` * `description` - Detailed description e.g. `Reject all force pushes (git push --force) to this repository` - * `version` - Version of the hook, for system hooks this is the bitbucket version e.g. `8.5.4` + * `version` - Version of the hook, for system hooks this is the bitbucket version e.g. `9.4.2` * `scope_types` - List of strings containing the scopes available for this hook, e.g. `["PROJECT", "REPOSITORY"]` * `enabled` - Set if this hook is enabled for this project * `configured` - Set if the hook is configured for this project diff --git a/docs/resources/bitbucketserver_repository_access_token.md b/docs/resources/bitbucketserver_repository_access_token.md new file mode 100644 index 0000000..5fc32b8 --- /dev/null +++ b/docs/resources/bitbucketserver_repository_access_token.md @@ -0,0 +1,32 @@ +# Resource: bitbucketserver_user_access_token + +Repository access tokens can be used to authenticate using the Bitbucket Server REST API over Token auth. + +## Example Usage + +```hcl +resource "bitbucketserver_repository_access_token" "test" { + project = bitbucketserver_project.test.key + repository = bitbucketserver_repository.test.slug + name = "newLabelForTest" + permissions = ["REPO_READ"] +} +``` + +## Argument Reference + +* `project` - Required. Project for the repository. +* `repository` - Required. Slug for the repository. +* `name` - Required. Name of the access token. +* `permissions` - Required. List of permissions to grant the access token. + * `REPO_READ` + * `REPO_WRITE` + * `REPO_ADMIN` + +## Attribute Reference + +* `token` - The generated access token. Only available if token was generated on Terraform resource creation, not import/update. + +## Import + +Currently not supported \ No newline at end of file diff --git a/docs/resources/bitbucketserver_repository_deploy_key.md b/docs/resources/bitbucketserver_repository_deploy_key.md new file mode 100644 index 0000000..d12a2e2 --- /dev/null +++ b/docs/resources/bitbucketserver_repository_deploy_key.md @@ -0,0 +1,33 @@ +# Resource: bitbucketserver_user_access_token + +Repository access tokens can be used to authenticate using the Bitbucket Server REST API over Token auth. + +## Example Usage + +```hcl +resource "bitbucketserver_repository_deploy_key" "test" { + project = bitbucketserver_project.test.key + repository = bitbucketserver_repository.test.slug + label = "newLabelForTest" + key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD1F2KTOi8ptpqkXdcARgYy27uWRCav1isJUB3Hz59MDM6CSAXa+HCgUNDV+6gXQ1eR24nr1Efb7AkEM8LmvMkNlQqpAsPEPxVlndA0KSRLXb3mWruJzkZtrJo1HhVDffuKnevPLFkB75wyBX3jn1FNtc2qfc2i80mu8TfviZnOPYnrRa8B2S9Q8IlUtXAyihQ1G3fn5r5nxrw3QQGrD3cckB9nCZpzAPn6hlDHVk6n5efoWAUxM5AhKln0OLsA1HwjGJN7/dbDPu1nSLuiJSAISSSg4E4SNdfnr3FOhTA79AKNzsor2/EXdbG+f+S4op3s3wtt05zwkHLXRSqKYoT31RFiV9d1XIav+dGTvXCgc6DNG6rbogE6ZbugDZXdcHOAoNs7IUDFbtI/HGKS7CStxAUEchoxM8HDYXmhYt1kUEpmP3g2ckILHGoGPEkOCYGPqx5HbDvAXAJVk3DdSOibCckR2FK2qEoCbMgnPUX84CqNJPHBZ24AaE8htE6TKr0= user@somewhere" + permission = "REPO_READ" +} +``` + +## Argument Reference + +* `project` - Required. Project for the repository. +* `repository` - Required. Slug for the repository. +* `label` - Required. Name of the deploy key token. +* `key` - Required. The public key to grant access to +* `permissions` - Required. List of permissions to grant the access token. + * `REPO_READ` + * `REPO_WRITE` + * `REPO_ADMIN` +* expiry_days - Optional. Set if the key should expire. 0 means "does not expire" and is the default + +## Attribute Reference + +## Import + +Currently not supported \ No newline at end of file diff --git a/scripts/docker-compose.yaml b/scripts/docker-compose.yaml index e111c9d..c68705b 100644 --- a/scripts/docker-compose.yaml +++ b/scripts/docker-compose.yaml @@ -2,7 +2,7 @@ version: '2' services: bitbucket: - image: atlassian/bitbucket-server:8.5-ubuntu-jdk11 + image: atlassian/bitbucket:9.4.2-jdk21 restart: always networks: - bridge diff --git a/scripts/start-docker-compose.sh b/scripts/start-docker-compose.sh index 37bc136..8562d44 100755 --- a/scripts/start-docker-compose.sh +++ b/scripts/start-docker-compose.sh @@ -6,7 +6,7 @@ cd ${DIR} if [ ! -f ${DIR}/docker-compose ]; then echo "--> Downloading docker-compose" - curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` > ${DIR}/docker-compose + curl -L https://github.com/docker/compose/releases/download/v2.34.0/docker-compose-`uname -s`-`uname -m` > ${DIR}/docker-compose chmod +x ${DIR}/docker-compose fi