private static void Main(string[] args) { using var cancellation = new ConsoleCancellation(); var argumentIndex = 0; var username = ConsoleHelpers.GetOrReadArgument(argumentIndex++, "Username", args); var token = ConsoleHelpers.GetOrReadArgument(argumentIndex++, "Token", args); var appName = ConsoleHelpers.GetOrReadArgument(argumentIndex++, "App Name", args); var databaseFileName = ConsoleHelpers.GetOrReadArgument(argumentIndex++, "Database file name", args); var fileSetName = ConsoleHelpers.GetOrReadArgument(argumentIndex++, "File set name", args); var minimumInteractionIntervalStringInputInSeconds = ConsoleHelpers.GetOrReadArgument(argumentIndex, "Minimum interaction interval in seconds", args); var minimumInteractionInterval = TimeSpan.FromSeconds(Int32.Parse(minimumInteractionIntervalStringInputInSeconds)); var dbContext = new FileStorage(databaseFileName); Console.WriteLine($"Bot has been started. {Environment.NewLine}Press CTRL+C to close"); try { while (true) { var api = new GitHubStorage(username, token, appName); new IssueTracker(new List <ITrigger <Issue> > { new HelloWorldTrigger(api, dbContext, fileSetName), new OrganizationLastMonthActivityTrigger(api), new LastCommitActivityTrigger(api), new ProtectMainBranchTrigger(api), }, api).Start(cancellation.Token); new PullRequestTracker(new List <ITrigger <PullRequest> > { new MergeDependabotBumpsTrigger(api) }, api).Start(cancellation.Token); Thread.Sleep(minimumInteractionInterval); } } catch (Exception ex) { Console.WriteLine(ex.ToStringWithAllInnerExceptions()); } }
public MergeDependabotBumpsTrigger(GitHubStorage storage) { _storage = storage; }
/// <summary> /// <para> /// Initializes a new <see cref="IssueTracker"/> instance. /// </para> /// <para></para> /// </summary> /// <param name="triggers"> /// <para>A triggers.</para> /// <para></para> /// </param> /// <param name="storage"> /// <para>A git hub api.</para> /// <para></para> /// </param> public PullRequestTracker(List <ITrigger <TContext> > triggers, GitHubStorage storage) { Storage = storage; Triggers = triggers; }
/// <summary> /// <para> /// Initializes a new <see cref="IssueTracker"/> instance. /// </para> /// <para></para> /// </summary> /// <param name="triggers"> /// <para>A triggers.</para> /// <para></para> /// </param> /// <param name="gitHubApi"> /// <para>A git hub api.</para> /// <para></para> /// </param> public IssueTracker(List <ITrigger <Issue> > triggers, GitHubStorage gitHubApi) { Storage = gitHubApi; Triggers = triggers; }
/// <summary> /// <para> /// Initializes a new <see cref="HelloWorldTrigger"/> instance. /// </para> /// <para></para> /// </summary> /// <param name="storage"> /// <para>A git hub api.</para> /// <para></para> /// </param> /// <param name="fileStorage"> /// <para>A file storage.</para> /// <para></para> /// </param> /// <param name="fileSetName"> /// <para>A file set name.</para> /// <para></para> /// </param> public HelloWorldTrigger(GitHubStorage storage, FileStorage fileStorage, string fileSetName) { this._storage = storage; this._fileStorage = fileStorage; this._fileSetName = fileSetName; }
public ProtectMainBranchTrigger(GitHubStorage storage) => _storage = storage;