Skip to main content

ACR Do Not Merge Until Feature

The Atlas Code Review (ACR) "Do Not Merge Until" feature allows developers to prevent pull requests from being merged before a specified date. This is particularly useful for coordinating releases, aligning with marketing campaigns, or ensuring dependencies are met before deployment.

How It Works

When you add a merge restriction pattern to your PR title or description, the ACR bot will:

  1. Block merging by creating a failing check
  2. Add a label with the do-not-merge-until tag
  3. Post a comment showing the countdown to the merge date
  4. Update daily at 2 AM Eastern Time with the remaining time

Quick Setup

Add one of these patterns to your PR title or description:

DO NOT MERGE UNTIL June 25, 2025
Hold until July 4, 2025
Don't merge before next Monday

Important: The merge restriction must be in the PR title or description when the PR is created or edited. Comments on the PR are not processed.

Supported Date Formats

Natural Language

  • tomorrow
  • next Monday
  • next week
  • in 3 days
  • in 2 weeks

Standard Dates

  • June 25, 2025
  • 25 June 2025
  • 2025-06-25
  • 06/25/2025 (US format)
  • 25/06/2025 (UK format)

With Time Zones

  • June 25, 2025 EST
  • July 4, 2025 PST
  • August 1, 2025 GMT

Implementation Examples

PR Title Examples

✅ "Feature XYZ - DO NOT MERGE UNTIL July 1, 2025"
✅ "Hotfix: Security update :: don't merge until June 30, 2025"
✅ "[HOLD UNTIL 2025-07-15] Database migration"
✅ "JIRA-1234: API update | DO NOT MERGE UNTIL August 1 | Breaking change"

PR Description Examples

This PR implements the new payment gateway integration.

<!-- do-not-merge-until: 2025-07-01 -->

The changes depend on the vendor's API going live on July 1st.

Or using visible text:

Please DO NOT MERGE UNTIL June 30, 2025 when the marketing campaign launches.

#merge-after-2025-06-30

Business Day Adjustments

The system automatically adjusts dates that fall on weekends or US federal holidays:

  • Weekends: Saturday/Sunday dates are moved to the following Monday
  • Holidays: US federal holidays are moved to the next business day

Recognized Holidays

  • New Year's Day (January 1)
  • Martin Luther King Jr. Day (3rd Monday in January)
  • Presidents Day (3rd Monday in February)
  • Memorial Day (Last Monday in May)
  • Juneteenth (June 19)
  • Independence Day (July 4)
  • Labor Day (1st Monday in September)
  • Columbus Day (2nd Monday in October)
  • Veterans Day (November 11)
  • Thanksgiving (4th Thursday in November)
  • Christmas Day (December 25)

Common Use Cases

Release Coordination

Title: "Feature: New dashboard - DO NOT MERGE UNTIL September 1, 2025"
Description: This feature is part of the Q3 release package.

External Dependencies

Title: "Integration: Payment gateway update"
Description:
<!-- merge-after: 2025-07-15 -->
Vendor API goes live on July 15th. Do not deploy before then.

Marketing Campaign Alignment

Title: "Landing page updates :: don't merge until August 1, 2025 :: campaign launch"

Bot Behavior

Initial Detection

When a merge restriction is detected, the bot posts:

🚫 DO NOT MERGE until July 1, 2025

📅 Date Detected: `July 1, 2025` from PR title
⏳ Time Remaining: 15 days

This PR is scheduled for future merge and cannot be merged until the specified date.

Daily Updates

The countdown updates automatically:

  • 15 days14 days → ... → 1 dayless than 1 day

When Date is Reached

  • Check run passes ✅
  • Label is removed
  • PR can be merged normally

Dashboard Integration

Team leads can view all scheduled merges in the ACR Dashboard:

  1. Navigate to the dashboard home page
  2. View the "Scheduled Merge Restrictions" widget
  3. Filter by All, Overdue, or This Week
  4. Click PR numbers to go directly to GitHub

Best Practices

  1. Use clear date formats to avoid ambiguity
  2. Add context explaining why the merge is delayed
  3. Account for weekends and holidays when setting dates
  4. Communicate with your team about scheduled merges
  5. Monitor the dashboard for upcoming merges

Troubleshooting

Pattern Not Detected

  • Ensure the date is in a supported format
  • Check that the pattern includes a future date
  • Verify spelling of keywords (e.g., "UNTIL" not "UNTILL")

Wrong Date Detected

  • Be specific with date formats to avoid ambiguity
  • Use ISO format (YYYY-MM-DD) for clarity
  • Add timezone if needed

Removing Restrictions

To remove a merge restriction:

  1. Edit the PR title or description
  2. Remove the date pattern
  3. Push a new commit to trigger re-evaluation

Important Notes

  • Override: Merge restrictions cannot be overridden - they must expire naturally or be removed
  • Multiple dates: The system uses the first valid date found (title first, then description)
  • Draft PRs: Restrictions apply to both draft and ready PRs
  • Time zones: Dates without times are interpreted as Eastern Time (ET) by default

Support

If you encounter issues:

  1. Check the PR's Atlas Code Review status for error messages
  2. Verify your date pattern matches the examples above
  3. Contact the Atlas Development Team for assistance

The ACR "Do Not Merge Until" feature provides a robust way to coordinate releases and ensure code is deployed at the right time. By following these guidelines, you can effectively use this feature to manage your development workflow.