get method
Runs can-merge, then runs merge-git if allowed
Implementation
@override
Future<bool> get({
required Directory directory,
required GgLog ggLog,
bool? automerge,
bool? local,
String? message,
}) async {
automerge ??= _automergeOption;
local ??= _localOption;
message ??= _messageOption;
if (local && automerge) {
throw Exception('Automerge not supported for local merges.');
}
if (!local && message != null) {
ggLog('Warning: --message is ignored for remote merges.');
}
final ok = await _canMerge.get(
directory: directory,
ggLog: ggLog,
);
if (!ok) {
throw Exception('Not allowed to merge.');
}
if (local) {
await _localMerge.get(
directory: directory,
ggLog: ggLog,
message: message,
);
ggLog('✅ Local merge operation successfully completed.');
} else {
await _mergeGit.get(
directory: directory,
ggLog: ggLog,
automerge: automerge,
);
ggLog('✅ Merge operation successfully started.');
}
return true;
}