Exemplo n.º 1
0
        public static bool IsNotBug(RoachIssue issue)
        {
            if (!issue.IsOpen)
            {
                return(true);
            }

            return
                (issue.Labels.Contains("Documentation") ||
                 issue.Labels.Contains("Question") ||
                 issue.Labels.Contains("Area-Infrastructure"));
        }
Exemplo n.º 2
0
        public RoachIssueEntity(RoachIssue issue)
        {
            PartitionKey = GetPartitionKey(issue.RepoId);
            RowKey       = GetRowKey(issue.Id);

            Number            = issue.Number;
            Assignee          = issue.Assignee;
            MilestoneNumber   = issue.MilestoneId.Number;
            Title             = issue.Title;
            IsOpen            = issue.IsOpen;
            LabelsRaw         = string.Join("#", issue.Labels);
            UpdatedAtDateTime = (issue.UpdatedAt ?? default(DateTimeOffset)).UtcDateTime;
        }
Exemplo n.º 3
0
        /// <summary>
        /// Populates the issues tables to reflect changes that occured since the see cref="since"/> parameter.
        /// </summary>
        public async Task PopulateIssuesSince(RoachRepoId repoId, DateTimeOffset since, CancellationToken cancellationtoken = default(CancellationToken))
        {
            var changedIssues = await _githubQueryUtil.GetIssuesChangedSince(repoId, since);

            var issueList = new List <RoachIssueEntity>(capacity: changedIssues.Count);

            foreach (var changedIssue in changedIssues)
            {
                var issue = new RoachIssue(repoId, changedIssue);
                issueList.Add(new RoachIssueEntity(issue));
            }

            // TODO: Need to thread through the CancellationToken here.
            await AzureUtil.InsertBatchUnordered(_issueTable, issueList);
        }
Exemplo n.º 4
0
            public static bool AssignedToTeam(RoachIssue issue)
            {
                switch (issue.Assignee.ToLower())
                {
                case "jaredpar":
                case "jcouv":
                case "agocke":
                case "alekseyts":
                case "cston":
                case "gafter":
                case "tyoverby":
                case "vsadov":
                    return(true);

                default:
                    return(false);
                }
            }
Exemplo n.º 5
0
            public static bool IsIssue(RoachIssue issue)
            {
                if (IsNotBug(issue))
                {
                    return(false);
                }

                if (AssignedToTeam(issue))
                {
                    return(true);
                }

                if (AssignedToArea(issue) && issue.Assignee == TheBugsConstants.UnassignedName)
                {
                    return(true);
                }

                return(false);
            }
Exemplo n.º 6
0
        public static async Task GitHubIssueChanged(
            [QueueTrigger(QueueNames.IssueChanged)] string rawMessage,
            [Table(TableNames.RoachIssueTable)] CloudTable table,
            CancellationToken cancellationToken)
        {
            var issueMessage = JsonConvert.DeserializeObject <IssueMessage>(rawMessage);

            var repoId      = RoachRepoId.ParseFullName(issueMessage.RepoFullName);
            var issueId     = new RoachIssueId(repoId, issueMessage.Number);
            var milestoneId = new RoachMilestoneId(repoId, issueMessage.MilestoneNumber);
            var isOpen      = issueMessage.State == "open";
            var updatedAt   = issueMessage.UpdatedAt != null
                ? DateTimeOffset.Parse(issueMessage.UpdatedAt)
                : (DateTimeOffset?)null;

            var roachIssue  = new RoachIssue(issueId, issueMessage.Assignee ?? TheBugsConstants.UnassignedName, milestoneId, issueMessage.Title, isOpen, issueMessage.Labels, updatedAt);
            var issueEntity = new RoachIssueEntity(roachIssue);
            var operation   = TableOperation.InsertOrReplace(issueEntity);
            await table.ExecuteAsync(TableOperation.InsertOrReplace(issueEntity), cancellationToken);
        }
Exemplo n.º 7
0
            public static bool AssignedToTeam(RoachIssue issue)
            {
                switch (issue.Assignee.ToLower())
                {
                case "pilchie":
                case "balajikris":
                case "brettfo":
                case "cyrusnajmabadi":
                case "dpoeschl":
                case "dustincampbell":
                case "jasonmalinowski":
                case "jmarolf":
                case "rchande":
                case "tmeschter":
                    return(true);

                default:
                    return(false);
                }
            }
Exemplo n.º 8
0
            public static bool AssignedToTeam(RoachIssue issue)
            {
                switch (issue.Assignee.ToLower())
                {
                case "pilchie":
                case "brettfo":
                case "cbo425":
                case "cyrusnajmabadi":
                case "dpoeschl":
                case "jasonmalinowski":
                case "kevinransom":
                case "rchande":
                case "sharwell":
                case "dustincampbell":
                case "kuhlenh":
                    return(true);

                default:
                    return(false);
                }
            }
Exemplo n.º 9
0
 public static bool AssignedToArea(RoachIssue issue)
 {
     return(issue.Labels.Contains("Area-Ide"));
 }