push method
Implementation
@override
Future<void> push() async {
final commitsToPush = await _hasCommitsToPush();
final tagsToPush = await _hasTagsToPush();
if (!commitsToPush && !tagsToPush) {
logger.info('Nothing to push: no new commits or tags.');
return;
}
// Push commits and tags separately to avoid pushing tags when commits fail.
if (commitsToPush) {
final result = await _runGitOrThrow(['push'], failureMessage: 'Failed to push commits.');
logger.info(result.stdout.toString());
}
if (tagsToPush) {
final result =
await _runGitOrThrow(['push', '--tags'], failureMessage: 'Failed to push tags.');
logger.info(result.stdout.toString());
}
logger.info('Push completed.');
}