void HandlePullRequest(PullRequest pr)
        {
            if (Usernames.Length > 0 && !Usernames.Contains(pr.User.Login))
            {
                return;
            }

            if (pr.State == ItemState.Open)
            {
                if (PullRequests.ContainsKey(pr))
                {
                    return;
                }

                PullRequests.Add(pr, new OpenUrlAction {
                    Url = pr.HtmlUrl.OriginalString,
                    ShortDescription = $"Review {pr.Title}",
                    Tooltip          = $"Review pull request in {Repository.Owner}/{Repository.Name}, created by {pr.User.Login}"
                });
            }
            else
            {
                if (!PullRequests.Remove(pr))
                {
                    return;
                }
            }

            Actions = PullRequests.Values.ToArray();
        }
예제 #2
0
        private DatabasePullRequest FindOrCreatePullRequestState(int number)
        {
            DatabasePullRequest pr;

            if (!PullRequests.ContainsKey(number))
            {
                pr                   = new DatabasePullRequest();
                pr.Number            = number;
                PullRequests[number] = pr;
            }
            return(PullRequests[number]);
        }