Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(API): add secret deletion functionality for repository #26808

Merged
merged 3 commits into from
Sep 1, 2023

Conversation

appleboy
Copy link
Member

  • Modify the CreateOrUpdateSecret function in api.go to include a Delete operation for the secret
  • Modify the DeleteOrgSecret function in action.go to include a DeleteSecret operation for the organization
  • Modify the DeleteSecret function in action.go to include a DeleteSecret operation for the repository
  • Modify the v1_json.tmpl template file to update the operationId and summary for the deleteSecret operation in both the organization and repository sections

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Aug 30, 2023
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 30, 2023
@appleboy appleboy added modifies/api This PR adds API routes or modifies them and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Aug 30, 2023
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Aug 30, 2023
- Modify the `CreateOrUpdateSecret` function in `api.go` to include a `Delete` operation for the secret
- Modify the `DeleteOrgSecret` function in `action.go` to include a `DeleteSecret` operation for the organization
- Modify the `DeleteSecret` function in `action.go` to include a `DeleteSecret` operation for the repository
- Modify the `v1_json.tmpl` template file to update the `operationId` and `summary` for the `deleteSecret` operation in both the organization and repository sections

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
- Change the swagger operation ID from `deleteSecret` to `deleteOrgSecret` in `routers/api/v1/org/action.go`
- Change the swagger operation ID from `deleteSecret` to `deleteRepoSecret` in `routers/api/v1/repo/action.go`
- Change the swagger operation ID from `deleteSecret` to `deleteOrgSecret` in `templates/swagger/v1_json.tmpl`
- Change the swagger operation ID from `deleteSecret` to `deleteRepoSecret` in `templates/swagger/v1_json.tmpl`

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
@pull-request-size pull-request-size bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 30, 2023
@@ -151,6 +151,10 @@ func DeleteOrgSecret(ctx *context.APIContext) {
// "403":
// "$ref": "#/responses/forbidden"
secretName := ctx.Params(":secretname")
if err := actions.NameRegexMatch(secretName); err != nil {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need that check when deleting a secret? If the name is invalid, the secret should not exists, so the not found error will be returned.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's check the input type before executing the model layer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with KN4CK3R , since the result is the same, this check is a no-op.

I can't understand what's the meaning of "Let's check the input type before executing the model layer."

Do you mean "this is right and I don't want to change", or do you mean "I will make some other changes"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the intent is to not bother the database if there could be no result.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I personally believe that all parameter validation should be done within the API layer, rather than validating parameters at the DB layer.

Copy link
Contributor

@wxiaoguang wxiaoguang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still prefer to extract the shared code into a shared router function.

The code in two DeleteSecret functions just duplicates.

And, the "secret" related API functions really need tests.

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Sep 1, 2023
@KN4CK3R KN4CK3R enabled auto-merge (squash) September 1, 2023 12:22
@KN4CK3R
Copy link
Member

KN4CK3R commented Sep 1, 2023

I will extract shared methods like I did for the web routes. Noticed the split when there were no audit events using the api.

@KN4CK3R KN4CK3R merged commit 9eb4a9e into go-gitea:main Sep 1, 2023
24 checks passed
@GiteaBot GiteaBot added this to the 1.21.0 milestone Sep 1, 2023
zjjhot added a commit to zjjhot/gitea that referenced this pull request Sep 1, 2023
* giteaoffical/main: (22 commits)
  Use case-insensitive regex for all webpack assets (go-gitea#26867)
  restrict certificate type for builtin SSH server (go-gitea#26789)
  feat(API): add secret deletion functionality for repository (go-gitea#26808)
  Avoid double-unescaping of form value (go-gitea#26853)
  Move web/api context related testing function into a separate package (go-gitea#26859)
  Remove some unused CSS styles (go-gitea#26852)
  [skip ci] Updated translations via Crowdin
  Minor dashboard tweaks, fix flex-list margins (go-gitea#26829)
  Update team invitation email link (go-gitea#26550)
  Redirect from `{repo}/issues/new` to `{repo}/issues/new/choose` when blank issues are disabled (go-gitea#26813)
  Remove "TODO" tasks from CSS file (go-gitea#26835)
  User details page (go-gitea#26713)
  Render code blocks in repo description (go-gitea#26830)
  Remove joinPaths function (go-gitea#26833)
  Remove polluted `.ui.right` (go-gitea#26825)
  Sync tags when adopting repos (go-gitea#26816)
  rm comment about hugo (go-gitea#26832)
  Fix filename for .spectral.yaml (go-gitea#26828)
  [skip ci] Updated translations via Crowdin
  Check blocklist for emails when adding them to account (go-gitea#26812)
  ...
@KN4CK3R
Copy link
Member

KN4CK3R commented Sep 2, 2023

Routes for user secrets are missing.

@appleboy
Copy link
Member Author

appleboy commented Sep 3, 2023

@KN4CK3R Yes. move to new PR for user secrets.

@go-gitea go-gitea locked as resolved and limited conversation to collaborators Nov 30, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/api This PR adds API routes or modifies them size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants