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

Finer grained permission for writing commit status #32625

Open
ascandella opened this issue Nov 23, 2024 · 5 comments
Open

Finer grained permission for writing commit status #32625

ascandella opened this issue Nov 23, 2024 · 5 comments
Labels
type/proposal The new feature has not been accepted yet but needs to be discussed first.

Comments

@ascandella
Copy link

ascandella commented Nov 23, 2024

Feature Description

Currently, to generate a token that can create commit statuses via the API, it must have write:repository. This is less than ideal from a security perspective, where I'd like to give a token to some automation tools that can write commit statuses but not write to the repository.

An example of this is a deployment system. I use ArgoCD with my Gitea instance and I have the notifications controller set up to send commit statuses when applications are synced successfully or with an error. In this context I don't want to have a token anywhere that can write to my repository.

Proposal: create a new permissions for commit statuses (read, and read+write) and update the API to only require commit statuses privileges to read/write commit status. Additionally, for backwards compatibility and sanity leave the repository permission as sufficient for commit statuses as well.

If this idea is acceptable, I'd be happy to implement it myself.

Screenshots

No response

@ascandella ascandella added the type/proposal The new feature has not been accepted yet but needs to be discussed first. label Nov 23, 2024
@wxiaoguang
Copy link
Contributor

Do you mean something like

  • write:repository: allow writing commit status (as before, for backwards compatibility)
  • write:commit_status: also allow writing commit status (but not others)

?

@ascandella
Copy link
Author

Do you mean something like

  • write:repository: allow writing commit status (as before, for backwards compatibility)

  • write:commit_status: also allow writing commit status (but not others)

?

Exactly. And probably a read:commit_status although I don't know of a great use for that without read:repository access (which would still be sufficient for reading commit statuses)... thoughts?

@wxiaoguang
Copy link
Contributor

Yup, the "read" permission for a commit status seems quite strange, no idea whether it should really be introduced (while it is also strange not introducing it .....)


Overall I think your idea is pretty good (acceptable to me). The real challenge is that how to implement it (the token scope system is complex 🤣 )

@ascandella
Copy link
Author

Ok cool, I'll start digging into the code in the next few weeks and see what I can come up with. Thanks!

@ascandella
Copy link
Author

ascandella commented Nov 27, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/proposal The new feature has not been accepted yet but needs to be discussed first.
Projects
None yet
Development

No branches or pull requests

2 participants