Skip to content
Navigation Menu
Sign in
Products
Platform
GitHub
Repository hosting, code review, and collaboration
Copilot
AI coding agent for tasks, projects and automated work
Build & Ship
Actions
CI/CD and automation
Code Quality
Quality analysis, fixes, and enforcement
Codespaces
Cloud development environments
Secure
Code Security
Vulnerability detection and remediation
Secret Protection
Secret scanning and leak prevention
All Features
Developers
Learn
Documentation
Training
Certifications
Build
Build with Copilot
Customize Copilot
Integrations
Explore
Trending repos
GitHub Sponsors
Events
Changelog
Changelog
Your source for the latest features, improvements, and fixes across GitHub products, all in one place.
Businesses
By Stage
Enterprises
Team
Startups
Nonprofits
By Industry
Healthcare
Financial services
Manufacturing
Government
See all industries
Evaluate GitHub
Why GitHub
Customer Stories
Business insights
Trust Center
Add-ons
GitHub Advanced Security
Enterprise-grade code security
Copilot for business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Resources
Learn & Connect
Documentation
Resource center
Blog
Events & webinars
Community Forum
Customer Stories
Integrations
Support
Customer support
Training
GitHub Status
Company
About
Partners
Changelog
GitHub Universe
GitHub Universe
The event for developers, by developers — talks, workshops, and what’s next for GitHub.
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
LeanerCloud
cloud-commitments-cli
Repository navigation
Code
Issues
4
(4)
Pull requests
1
(1)
Actions
Projects
Security and quality
Insights
More
items
feat(api,frontend): 4-eyes approval mode — creator cannot self-approve (closes #1005)
- #1500
#1500
Merged
cristim
merged 7 commits into
main
LeanerCloud/cloud-commitments-cli:main
from
feat/1005-four-eyes-approval
LeanerCloud/cloud-commitments-cli:feat/1005-four-eyes-approval
Copy head branch name to clipboard
Jul 23, 2026
Conversation
Commits
7
(7)
Checks
Files changed
Merged
feat(api,frontend): 4-eyes approval mode — creator cannot self-approve (closes #1005)
#1500
cristim
merged 7 commits into
main
LeanerCloud/cloud-commitments-cli:main
from
feat/1005-four-eyes-approval
LeanerCloud/cloud-commitments-cli:feat/1005-four-eyes-approval
Copy head branch name to clipboard
Commits
Commits on Jul 22, 2026
feat(db/config): add require_different_approver to global_config (issue #1005)
Show description for 4b18973
cristim
committed
4b18973
View commit details
Copy full SHA for 4b18973
Browse repository at this point
feat(api): add requireDifferentApprover helper and wire into approve handlers (issue #1005)
Show description for 692a9fd
cristim
committed
692a9fd
View commit details
Copy full SHA for 692a9fd
Browse repository at this point
test(config/api): update pgxmock fixtures + assertions for require_different_approver
Show description for 852a18c
cristim
committed
852a18c
View commit details
Copy full SHA for 852a18c
Browse repository at this point
fix(api): correct misspelling in requireDifferentApprover comment
Show description for 9f6037c
cristim
committed
9f6037c
View commit details
Copy full SHA for 9f6037c
Browse repository at this point
feat(frontend/sec): wire 4-eyes approval mode toggle + UI gate + badge + banner
Show description for 07585fa
cristim
committed
07585fa
View commit details
Copy full SHA for 07585fa
Browse repository at this point
test(frontend/settings): round-trip coverage for 4-eyes settings toggle (refs #1005)
Show description for 635dea4
cristim
committed
635dea4
View commit details
Copy full SHA for 635dea4
Browse repository at this point
Commits on Jul 23, 2026
fix(purchase): close 4-eyes bypasses via manager-layer enforcement (#1005)
Show description for 97662ec
cristim
committed
97662ec
View commit details
Copy full SHA for 97662ec
Browse repository at this point
You can’t perform that action at this time.