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:
- Block merging by creating a failing check
- Add a label with the
do-not-merge-until
tag - Post a comment showing the countdown to the merge date
- 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 days
→14 days
→ ... →1 day
→less 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:
- Navigate to the dashboard home page
- View the "Scheduled Merge Restrictions" widget
- Filter by All, Overdue, or This Week
- Click PR numbers to go directly to GitHub
Best Practices
- Use clear date formats to avoid ambiguity
- Add context explaining why the merge is delayed
- Account for weekends and holidays when setting dates
- Communicate with your team about scheduled merges
- 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:
- Edit the PR title or description
- Remove the date pattern
- 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:
- Check the PR's Atlas Code Review status for error messages
- Verify your date pattern matches the examples above
- 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.