using System; using System.Collections.Generic; using JetBrains.Annotations; using UnityModule.Settings; namespace UnityModule.Command.VCS { [PublicAPI] public class ObservableHub : Hub> { } [PublicAPI] public class Hub : Hub { } [PublicAPI] public abstract class Hub where TResult : class { private enum SubCommandType { PullRequest, } private static readonly Dictionary SubCommandMap = new Dictionary() { {SubCommandType.PullRequest, "pull-request"}, }; public static TResult PullRequest(string message, string baseBranchName = "", List argumentList = null) { argumentList = new SafeList(argumentList); if (!string.IsNullOrEmpty(baseBranchName)) { argumentList.Add($"-b {baseBranchName}"); } argumentList.Add($"-m {message.Quot()}"); return Run(SubCommandType.PullRequest, argumentList); } private static TResult Run(SubCommandType subCommandType, List argumentList = null) { return Runner.Run(GitSetting.GetOrDefault().CommandHub, SubCommandMap[subCommandType], argumentList); } } }