fix(provider): fix repository actions secret resource update
This commit is contained in:
parent
1c70b5d949
commit
eb53b28b00
3 changed files with 18 additions and 13 deletions
|
@ -15,7 +15,7 @@ Use this resource to create and manage a repository actions secret.
|
||||||
```terraform
|
```terraform
|
||||||
resource "forgejo_repository_actions_secret" {
|
resource "forgejo_repository_actions_secret" {
|
||||||
data = "secret"
|
data = "secret"
|
||||||
name = "test"
|
name = "TEST"
|
||||||
owner = "adyxax"
|
owner = "adyxax"
|
||||||
repository = "example"
|
repository = "example"
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ resource "forgejo_repository_actions_secret" {
|
||||||
### Required
|
### Required
|
||||||
|
|
||||||
- `data` (String, Sensitive) The secret's data.
|
- `data` (String, Sensitive) The secret's data.
|
||||||
- `name` (String) The secret's name.
|
- `name` (String) The secret's name. It must be uppercase or the plan will not be idempotent.
|
||||||
- `owner` (String) The secret's owner.
|
- `owner` (String) The secret's owner.
|
||||||
- `repository` (String) The secret's repository.
|
- `repository` (String) The secret's repository.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
resource "forgejo_repository_actions_secret" {
|
resource "forgejo_repository_actions_secret" {
|
||||||
data = "secret"
|
data = "secret"
|
||||||
name = "test"
|
name = "TEST"
|
||||||
owner = "adyxax"
|
owner = "adyxax"
|
||||||
repository = "example"
|
repository = "example"
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ func (d *RepositoryActionsSecretResource) Schema(ctx context.Context, req resour
|
||||||
Sensitive: true,
|
Sensitive: true,
|
||||||
},
|
},
|
||||||
"name": schema.StringAttribute{
|
"name": schema.StringAttribute{
|
||||||
MarkdownDescription: "The secret's name.",
|
MarkdownDescription: "The secret's name. It must be uppercase or the plan will not be idempotent.",
|
||||||
PlanModifiers: []planmodifier.String{
|
PlanModifiers: []planmodifier.String{
|
||||||
stringplanmodifier.RequiresReplace(),
|
stringplanmodifier.RequiresReplace(),
|
||||||
},
|
},
|
||||||
|
@ -94,12 +94,12 @@ func (d *RepositoryActionsSecretResource) Create(ctx context.Context, req resour
|
||||||
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", fmt.Sprintf("failed to create or update repository actions secret: %s", err))
|
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", fmt.Sprintf("failed to create or update repository actions secret: %s", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
created, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
secret, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", err.Error())
|
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data.CreatedAt = *created
|
data.CreatedAt = secret.CreatedAt
|
||||||
resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
|
resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ func (d *RepositoryActionsSecretResource) getRepositoryActionsSecret(
|
||||||
owner types.String,
|
owner types.String,
|
||||||
repository types.String,
|
repository types.String,
|
||||||
name types.String,
|
name types.String,
|
||||||
) (*timetypes.RFC3339, error) {
|
) (*RepositoryActionsSecretResourceModel, error) {
|
||||||
secrets, err := d.client.RepositoryActionsSecretsList(
|
secrets, err := d.client.RepositoryActionsSecretsList(
|
||||||
ctx,
|
ctx,
|
||||||
owner.ValueString(),
|
owner.ValueString(),
|
||||||
|
@ -137,7 +137,10 @@ func (d *RepositoryActionsSecretResource) getRepositoryActionsSecret(
|
||||||
for _, secret := range secrets {
|
for _, secret := range secrets {
|
||||||
if secret.Name == nameStr {
|
if secret.Name == nameStr {
|
||||||
created := timetypes.NewRFC3339TimeValue(secret.CreatedAt)
|
created := timetypes.NewRFC3339TimeValue(secret.CreatedAt)
|
||||||
return &created, nil
|
return &RepositoryActionsSecretResourceModel{
|
||||||
|
CreatedAt: created,
|
||||||
|
Name: types.StringValue(secret.Name),
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("failed to find repository actions secret")
|
return nil, fmt.Errorf("failed to find repository actions secret")
|
||||||
|
@ -149,18 +152,19 @@ func (d *RepositoryActionsSecretResource) Read(ctx context.Context, req resource
|
||||||
if resp.Diagnostics.HasError() {
|
if resp.Diagnostics.HasError() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
created, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
secret, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", err.Error())
|
resp.Diagnostics.AddError("CreateRepositoryActionsSecret", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data.CreatedAt = *created
|
data.CreatedAt = secret.CreatedAt
|
||||||
|
data.Name = secret.Name
|
||||||
resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
|
resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *RepositoryActionsSecretResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {
|
func (d *RepositoryActionsSecretResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {
|
||||||
var data RepositoryActionsSecretResourceModel
|
var data RepositoryActionsSecretResourceModel
|
||||||
resp.Diagnostics.Append(req.State.Get(ctx, &data)...)
|
resp.Diagnostics.Append(req.Plan.Get(ctx, &data)...)
|
||||||
if resp.Diagnostics.HasError() {
|
if resp.Diagnostics.HasError() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -174,10 +178,11 @@ func (d *RepositoryActionsSecretResource) Update(ctx context.Context, req resour
|
||||||
resp.Diagnostics.AddError("UpdateRepositoryActionsSecret", fmt.Sprintf("failed to create or update repository actions secret: %s", err))
|
resp.Diagnostics.AddError("UpdateRepositoryActionsSecret", fmt.Sprintf("failed to create or update repository actions secret: %s", err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
created, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
secret, err := d.getRepositoryActionsSecret(ctx, data.Owner, data.Repository, data.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
resp.Diagnostics.AddError("UpdateRepositoryActionsSecret", err.Error())
|
resp.Diagnostics.AddError("UpdateRepositoryActionsSecret", err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
data.CreatedAt = *created
|
data.CreatedAt = secret.CreatedAt
|
||||||
|
resp.Diagnostics.Append(resp.State.Set(ctx, &data)...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue