Comments (4)
Hi @ghtmtt,
Thanks for your interest in Bulldozer! In general we try to make sure our bots do one thing, and to do it well. Thus, Bulldozer respects any required blocking status checks before merging.
We wrote https://github.com/palantir/policy-bot, which allows for more flexible and complicated approval/dissapproval workflows. The bots don't actually know about each other, but they work very well when using required status checks to prevent auto-merging until the "right" set of people or teams have given their +1.
Let us know on the policy-bot repo if any of the existing README is unclear, and we'd be happy to fix it up.
from bulldozer.
Thanks for the answer. So I can use both App to set the workflow, right?
- if the author of the PR belongs to a team add mark the PR as approved (policy-bot)
- after a specific time interval enforce the tag of above (e.g. add a label), again policy-bot
- if the PR has the approved status and the time interval is good, then merge the PR (bulldozer)
Does it make sense as workflow?
from bulldozer.
Policy-bot currently does not enforce that certain labels are set, but otherwise that workflow makes sense.
from bulldozer.
After discussing this more internally, I don't think policy-bot
covers all of the same use cases as this feature. As you highlighted in the workflow, you still need to add the whitelisted label/comment if you don't want Bulldozer to operate on every pull request.
I think whitelisting/blacklisting based on user (and potentially group, although this gets more complicated and I'd want to think carefully about it) is a reasonable request. But in combination with #86, I think we'll want to have a plan for how these settings will interact before implementing them.
Right now, if a PR meets any whitelist condition, it is placed on the whitelist. As we add more possible options for whitelisting, the next request will probably be a way to combine conditions. For example, the PR is by a specific author and has a specific label. I'm not sure that complexity is something we want to support (and it would likely mean changing the configuration format) so I'd want to collect multiple uses that require that before implementing it.
For your purposes, is the current behavior (logical OR of all conditions) fine if there was a username condition?
from bulldozer.
Related Issues (20)
- Sporadic 403 "You have exceeded a secondary rate limitβ errors HOT 16
- New trigger idea: auto_merge HOT 1
- Support GitHub Merge Queue HOT 3
- Bot fails to interpret .bulldozer.yml HOT 2
- Verify author of a PR status HOT 3
- Can bulldozer wait until non-required checks are finished before merging? HOT 8
- Option to add update trigger after required statuses pass for the first time HOT 2
- Bulldozer doesn't trigger when use the shared configuration from `.github` repository HOT 1
- Bulldozer cause the Jenkins build to trigger twice HOT 1
- Add special "merge action" which comments instead of merging HOT 1
- Conditionally change commit title/body?
- Options can't be configured as ENV var HOT 2
- PRs left open when GitHub is too busy HOT 4
- pushing commits to master
- could not refresh installation id ####'s token: received non 2xx response status \"302 Found\" when fetching HOT 3
- Bulldozer is not auto merging my PRs HOT 6
- Could not refresh token error HOT 2
- Unable to merge due to branch protection rules HOT 1
- +1 year without release :disappointed: HOT 4
- Bulldozer causing Github Action workflows set to run on merge to be skipped HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bulldozer.