Protected branches system #19

Closed
opened 2025-11-02 03:04:12 -06:00 by GiteaMirror · 17 comments
Owner

Originally created by @DblK on GitHub (Nov 3, 2016).

One missing feature from gogs is a way to protect branches like Github does.
After the completion of the API implementation, we could easily add application like Drone to check the PR.

The UI need to be changed to add options to protect branches like this:
image

I suggest to add some columns in table (don't know how many yet) to store those options.
The "Merge" button from a PR should be activated is the conditions are not matched.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Originally created by @DblK on GitHub (Nov 3, 2016). One missing feature from gogs is a way to protect branches like Github does. After the completion of the API implementation, we could easily add application like Drone to check the PR. The UI need to be changed to add options to protect branches like this: ![image](https://cloud.githubusercontent.com/assets/832617/19982051/c16c721c-a204-11e6-8965-e187c2ef3377.png) I suggest to add some columns in table (don't know how many yet) to store those options. The "Merge" button from a PR should be activated is the conditions are not matched. <bountysource-plugin> --- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/38914868-protected-branches-system?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F47456670&utm_medium=issues&utm_source=github). </bountysource-plugin>
GiteaMirror added the type/featuretype/proposal labels 2025-11-02 03:04:12 -06:00
Author
Owner

@tboerger commented on GitHub (Nov 3, 2016):

Please don't prefix the issue with [Feature], that should be done via labels. This is an important feature for an lgtm.co integration, so a big 👍 for that.

@tboerger commented on GitHub (Nov 3, 2016): Please don't prefix the issue with `[Feature]`, that should be done via labels. This is an important feature for an lgtm.co integration, so a big :+1: for that.
Author
Owner

@lunny commented on GitHub (Nov 3, 2016):

I think this need a proposal to describe it.

@lunny commented on GitHub (Nov 3, 2016): I think this need a proposal to describe it.
Author
Owner

@bkcsoft commented on GitHub (Nov 4, 2016):

@lunny Agreed. I've looked into this issue before, and it requires a rewrite of how GitHooks are currently Exposed.

Reference: https://github.com/gogits/gogs/issues/776#issuecomment-238779355

@bkcsoft commented on GitHub (Nov 4, 2016): @lunny Agreed. I've looked into this issue before, and it requires a rewrite of how GitHooks are currently Exposed. Reference: https://github.com/gogits/gogs/issues/776#issuecomment-238779355
Author
Owner

@strk commented on GitHub (Nov 5, 2016):

@DblK "proposal" proposed process is here https://github.com/go-gitea/proposals/pull/1

@strk commented on GitHub (Nov 5, 2016): @DblK "proposal" proposed process is here https://github.com/go-gitea/proposals/pull/1
Author
Owner

@thibaultmeyer commented on GitHub (Nov 5, 2016):

+1 without protected branches system, Gitea will be not ready for a corporate environment where is not acceptable to ask at each developers to use the "fork and pull request" flow.

@thibaultmeyer commented on GitHub (Nov 5, 2016): +1 without protected branches system, Gitea will be not ready for a corporate environment where is not acceptable to ask at each developers to use the "fork and pull request" flow.
Author
Owner

@lunny commented on GitHub (Nov 5, 2016):

Before we can start protected branch, we have to finish the dependent features first:

  • code review, this is based comment on code, but add a flag to disable merge button until the comment author close it.
  • status check system, this is based webhook. and it's a specific webhook. We could define it like github.
  • rebase the PR.

Implement every one feature will not result many commits, so we can do it step by step.
Welcome to improve it.

@lunny commented on GitHub (Nov 5, 2016): Before we can start protected branch, we have to finish the dependent features first: - [ ] code review, this is based comment on code, but add a flag to disable merge button until the comment author close it. - [ ] status check system, this is based webhook. and it's a specific webhook. We could define it like github. - [ ] rebase the PR. Implement every one feature will not result many commits, so we can do it step by step. Welcome to improve it.
Author
Owner

@Ritbit commented on GitHub (Nov 9, 2016):

+1 desperately in need for this.

@Ritbit commented on GitHub (Nov 9, 2016): +1 desperately in need for this.
Author
Owner

@bkcsoft commented on GitHub (Nov 9, 2016):

@lunny no need for all that, just a simple branch X can't be pushed to would suffice to start with 🙂

As for status check, that would be fairly simple to implement really (if one does as GitHub API does)

@bkcsoft commented on GitHub (Nov 9, 2016): @lunny no need for all that, just a simple `branch X can't be pushed to` would suffice to start with :slightly_smiling_face: As for status check, that would be fairly simple to implement really (if one does as GitHub API does)
Author
Owner

@lunny commented on GitHub (Feb 22, 2017):

#339 is the first part merged for this issue, so let's move it to v1.2.

@lunny commented on GitHub (Feb 22, 2017): #339 is the first part merged for this issue, so let's move it to v1.2.
Author
Owner

@ghost commented on GitHub (Jun 2, 2017):

Only thing stopping us moving to gitea now.
We have a company 1k dev strong.
Please, I urge the community to focus on this.

@ghost commented on GitHub (Jun 2, 2017): Only thing stopping us moving to gitea now. We have a company 1k dev strong. Please, I urge the community to focus on this.
Author
Owner

@ptman commented on GitHub (Jun 2, 2017):

@exp10r3r Do you have any golang devs that could help?

@ptman commented on GitHub (Jun 2, 2017): @exp10r3r Do you have any golang devs that could help?
Author
Owner

@lunny commented on GitHub (Jun 2, 2017):

@exp10r3r We have #339 merged a simple protected branch system. Of course we need more features.

@lunny commented on GitHub (Jun 2, 2017): @exp10r3r We have #339 merged a simple protected branch system. Of course we need more features.
Author
Owner

@ghost commented on GitHub (Jun 2, 2017):

@ptman Unfortunately, no. More than 50% from NodeJS, 10% php and the rest html/css.

@lunny I know, and I have been following development since you guys forked and personally using it since last 15 days.
The issue arose from the fact that I had given the rest of my team write access to the repo and marked master branch as protected.
I only want them to be able to push to the feature branch, after which a PR is made and only the person with push rights to master can merge this PR.
Imagine my surprise when a dev was merging his own PRs.
Obviously it was an oversight on my end, I should have tested this first hand.
I'm glad though that force pushes are not allowed, that would have been a nightmare.

Anyways, a good branch protection scheme will go a long way in increasing gitea's value proposition.

@ghost commented on GitHub (Jun 2, 2017): @ptman Unfortunately, no. More than 50% from NodeJS, 10% php and the rest html/css. @lunny I know, and I have been following development since you guys forked and personally using it since last 15 days. The issue arose from the fact that I had given the rest of my team write access to the repo and marked master branch as protected. I only want them to be able to push to the feature branch, after which a PR is made and only the person with push rights to master can merge this PR. Imagine my surprise when a dev was merging his own PRs. Obviously it was an oversight on my end, I should have tested this first hand. I'm glad though that force pushes are not allowed, that would have been a nightmare. Anyways, a good branch protection scheme will go a long way in increasing gitea's value proposition.
Author
Owner

@ghost commented on GitHub (Jun 17, 2017):

Even implementing this would go along a long way.

@ghost commented on GitHub (Jun 17, 2017): Even implementing [this](https://github.com/gogits/gogs/issues/4376) would go along a long way.
Author
Owner

@svarlamov commented on GitHub (Dec 7, 2017):

Now that we have protected branches and whitelisting, what would it take to add status checks similar to: https://help.github.com/articles/enabling-required-status-checks/

@svarlamov commented on GitHub (Dec 7, 2017): Now that we have protected branches and whitelisting, what would it take to add status checks similar to: https://help.github.com/articles/enabling-required-status-checks/
Author
Owner

@lunny commented on GitHub (Dec 7, 2017):

@svarlamov yes, we need only 1 PR to show the status check on PR UI since all data have been ready.

@lunny commented on GitHub (Dec 7, 2017): @svarlamov yes, we need only 1 PR to show the status check on PR UI since all data have been ready.
Author
Owner

@lunny commented on GitHub (May 17, 2018):

I think this issue has been resolved.

@lunny commented on GitHub (May 17, 2018): I think this issue has been resolved.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#19