Exemple #1
0
        public void ParsesPRInRepo()
        {
            var gref = GithubReferenceParser.Parse("fooCorp/fooRepo#123");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual(123, gref.Issue);
        }
Exemple #2
0
        public void ParsesRepoAndBranch()
        {
            var gref = GithubReferenceParser.Parse("fooRepo@bug/SC-1234");

            Assert.Null(gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual("bug/SC-1234", gref.Branch);
        }
Exemple #3
0
        public void ParsesPRByItself()
        {
            var gref = GithubReferenceParser.Parse("#123");

            Assert.Null(gref.User);
            Assert.Null(gref.Repo);
            Assert.AreEqual(123, gref.Issue);
        }
Exemple #4
0
        public void ParsesCommitByItself()
        {
            var gref = GithubReferenceParser.Parse("abc1235");

            Assert.Null(gref.User);
            Assert.Null(gref.Repo);
            Assert.AreEqual("abc1235", gref.Commit);
        }
Exemple #5
0
        public void ParsesBranchByItself()
        {
            var gref = GithubReferenceParser.Parse("bug/SC-1234");

            Assert.Null(gref.User);
            Assert.Null(gref.Repo);
            Assert.AreEqual("bug/SC-1234", gref.Branch);
        }
Exemple #6
0
        public void ParsesFullCommitReference()
        {
            var gref = GithubReferenceParser.Parse("fooCorp/fooRepo@abc1235");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual("abc1235", gref.Commit);
        }
Exemple #7
0
        public void ParsesBranchInUrl()
        {
            var gref = GithubReferenceParser.Parse("https://github.com/fooCorp/fooRepo/tree/labelprinting-extensions");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual("labelprinting-extensions", gref.Branch);
        }
Exemple #8
0
        public void ParsesPRInUrl()
        {
            var gref = GithubReferenceParser.Parse("https://github.com/fooCorp/fooRepo/pull/28");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual(28, gref.Issue);
        }
Exemple #9
0
        public void ParsesExplicitComparisonWithRepo()
        {
            var gref = GithubReferenceParser.Parse("fooCorp/[email protected]/SC-1234");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual("master", gref.BaseBranch);
            Assert.AreEqual("bug/SC-1234", gref.Branch);
        }
Exemple #10
0
        public void ParsesExplicitComparison()
        {
            var gref = GithubReferenceParser.Parse("master...bug/SC-1234");

            Assert.Null(gref.User);
            Assert.Null(gref.Repo);
            Assert.AreEqual("master", gref.BaseBranch);
            Assert.AreEqual("bug/SC-1234", gref.Branch);
        }
Exemple #11
0
        public void ParsesComparisonInUrl()
        {
            var gref = GithubReferenceParser.Parse("https://github.com/fooCorp/fooRepo/compare/master...bug/SC-1234");

            Assert.AreEqual("fooCorp", gref.User);
            Assert.AreEqual("fooRepo", gref.Repo);
            Assert.AreEqual("master", gref.BaseBranch);
            Assert.AreEqual("bug/SC-1234", gref.Branch);
        }
Exemple #12
0
        private MessageResult PrintLabel(Command command, Match args)
        {
            var thingToPrint = args.Group("thingToPrint");
            var githubRef    = GithubReferenceParser.Parse(thingToPrint);

            if (githubRef.Issue > 0 && githubRef.Repo != null)
            {
                return(PrintGithubPullRequest(command, githubRef));
            }
            return(Response.ToMessage(command, "Sorry, I don't know how to print \"" + thingToPrint + "\""));
        }
        public MessageResult ProcessMessage(Message message)
        {
            string toReview;

            if (m_CommandParser.TryGetCommand(message, "review", out toReview))
            {
                var reference = GithubReferenceParser.Parse(toReview);
                if (reference == null)
                {
                    return(MessageResult.Empty);
                }
                var user = reference.User ?? m_DefaultUser;
                var repo = reference.Repo ?? m_DefaultRepo;
                IEnumerable <DiffComment> comments = null;
                if (reference.Commit != null)
                {
                    comments = m_ReviewApi.ReviewForCommit(user, repo, reference.Commit).Result;
                }
                if (reference.BaseBranch != null)
                {
                    comments = m_ReviewApi.ReviewForComparison(user, repo, reference.BaseBranch + "..." + reference.Branch).Result;
                }
                if (reference.Branch == "master")
                {
                    comments = m_ReviewApi.ReviewForComparison(user, repo, "master@{1day}..." + reference.Branch).Result;
                }
                if (reference.Branch != null)
                {
                    comments = m_ReviewApi.ReviewForComparison(user, repo, "master..." + reference.Branch).Result;
                }
                if (reference.Issue > 0)
                {
                    comments = m_ReviewApi.ReviewForPullRequest(user, repo, reference.Issue).Result;
                }

                if (comments != null)
                {
                    return(FormatComments(message, comments));
                }
            }
            return(MessageResult.Empty);
        }
Exemple #14
0
 public void ReturnsNullForNonGithubReference()
 {
     Assert.Null(GithubReferenceParser.Parse("not a reference"));
 }