Skip to content

Create bulldozer.yml - #2

Merged
phuongfi91 merged 1 commit into
mainfrom
feat/phuongfi91/bulldozer-config
Aug 25, 2026
Merged

phuongfi91 merged 1 commit into
mainfrom
feat/phuongfi91/bulldozer-config

Conversation

@phuongfi91

Copy link
Copy Markdown
Contributor

No description provided.

Signed-off-by: Phuong Nguyen <7949163+phuongfi91@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 25, 2026 13:06
@phuongfi91
phuongfi91 merged commit 4ec7895 into main Aug 25, 2026
1 check passed
@phuongfi91
phuongfi91 deleted the feat/phuongfi91/bulldozer-config branch August 25, 2026 13:06
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Configure Bulldozer pull request automation

⚙️ Configuration changes ✨ Enhancement 🕐 10-20 Minutes

Grey Divider

AI Description

• Configures label, comment, branch, and auto-merge triggers for pull request automation.
• Squashes development branches while preserving merge commits on primary branches.
• Guards branch updates, blocks unchecked merges, and deletes branches after merging.
Diagram

graph TD
  A["Pull Request"] --> B{"Trigger Match"} -->|merge candidate| C{"Ignore Match"} -->|allowed| D["Method Selection"] --> E["Merge Pull Request"]
  B -->|update label| F{"Draft Allowed"} --> G["Update Branch"]
Loading
High-Level Assessment

A declarative Bulldozer configuration is the appropriate approach for label-, comment-, branch-, and auto-merge-driven automation. Native auto-merge alone would not provide the same trigger and branch-update flexibility.

Files changed (1) +139 / -0

Other (1) +139 / -0
bulldozer.ymlDefine automated merge and branch-update policies +139/-0

Define automated merge and branch-update policies

• Adds Bulldozer triggers and exclusions based on labels, comments, body markers, branches, and auto-merge state. Configures branch-specific merge methods, squash commit formatting, safety checks, source-branch deletion, and controlled pull request branch updates.

profile/bulldozer.yml

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Branch target bypasses opt-in 🐞 Bug ≡ Correctness
Description
Because merge trigger criteria use ANY-match semantics, `branches: ["dev", "main", "develop",
"master"]` makes every pull request to those branches eligible for Bulldozer, even without the merge
label, command, body marker, or GitHub auto-merge enabled. Once checks pass, ordinary PRs can
therefore be merged automatically rather than only explicitly opted-in PRs.
Code

profile/bulldozer.yml[28]

+    branches: ["dev", "main", "develop", "master"]
Evidence
The configuration says merge.trigger defines the considered pull requests and explicitly documents
that ANY trigger criterion matches. The added branch criterion covers all common target branches,
while the configured merge method and branch deletion demonstrate that matched PRs proceed through
an automated merge flow.

profile/bulldozer.yml[7-9]
profile/bulldozer.yml[27-34]
profile/bulldozer.yml[58-63]
profile/bulldozer.yml[109-115]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The merge trigger uses ANY-match semantics, so listing the primary branches causes all pull requests targeting them to enter Bulldozer's merge flow without an explicit merge signal.

## Issue Context
Keep the label, comment/body marker, or auto-merge triggers as the opt-in mechanism. Branch-specific merge methods can remain under `merge_method`, where they select a method after a PR has been triggered.

## Fix Focus Areas
- profile/bulldozer.yml[27-28]
- profile/bulldozer.yml[58-81]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can hide the parts of a finding you never read, like the evidence or the agent prompt

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread profile/bulldozer.yml
pr_body_substrings: ["==MERGE_WHEN_READY=="]

# Pull requests targeting any of these branches are added to the trigger.
branches: ["dev", "main", "develop", "master"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Branch target bypasses opt-in 🐞 Bug ≡ Correctness

Because merge trigger criteria use ANY-match semantics, `branches: ["dev", "main", "develop",
"master"]` makes every pull request to those branches eligible for Bulldozer, even without the merge
label, command, body marker, or GitHub auto-merge enabled. Once checks pass, ordinary PRs can
therefore be merged automatically rather than only explicitly opted-in PRs.
Agent Prompt
## Issue description
The merge trigger uses ANY-match semantics, so listing the primary branches causes all pull requests targeting them to enter Bulldozer's merge flow without an explicit merge signal.

## Issue Context
Keep the label, comment/body marker, or auto-merge triggers as the opt-in mechanism. Branch-specific merge methods can remain under `merge_method`, where they select a method after a PR has been triggered.

## Fix Focus Areas
- profile/bulldozer.yml[27-28]
- profile/bulldozer.yml[58-81]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a Bulldozer configuration file intended to control automated merging and branch updating behavior for pull requests.

Changes:

  • Introduces a bulldozer.yml config with merge triggers/ignores and merge-method overrides by target branch.
  • Configures optional PR branch update triggers/ignores (label-based) and draft-handling behavior.
Suppressed comments (2)

profile/bulldozer.yml:63

  • Remove trailing whitespace at the end of these comment lines to avoid whitespace-only diffs / lint failures.
  # be used. Otherwise, the method specified previously in "merge.method" will 
  # be used.
  # - ALL trigger criteria must match, unlike merge/trigger where ANY match 
  # will trigger bulldozer.

profile/bulldozer.yml:79

  • This blank line contains whitespace; prefer an actually empty line to avoid trailing-whitespace checks failing.
        # Pull requests which a number of commits less than or equal to this value are added to the trigger.
        # max_commits: 3
        
    - method: merge

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread profile/bulldozer.yml
Comment on lines +1 to +6
# "version" is the configuration version, currently "1".
version: 1

# "merge" defines how and when pull requests are merged. If the section is
# missing, bulldozer will consider all pull requests and use default settings.
merge:
Comment thread profile/bulldozer.yml
# Pull requests with auto merge enabled are added to the trigger.
auto_merge: true

# "ignore" defines the set of pull request ignored by bulldozer. If the
Comment thread profile/bulldozer.yml
method: squash

##### branch_method has been DEPRECATED in favor of merge_method #####
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants