Exemple #1
0
        public async Task <SDETask> UpdateTask(SDETaskProto task)
        {
            var issue = await FindIssue(task);

            // If the issue is found, update it
            if (issue != null)
            {
                var update = issue.ToUpdate();

                update.Body = task.Description;

                if (task.Status.Equals("Complete"))
                {
                    update.State = ItemState.Closed;
                }
                else
                {
                    update.State = ItemState.Open;
                }

                var updatedIssue = await githubClient.Issue.Update(githubUser, GetRepoName(task.Project), issue.Number, update);

                return(NewSDETask(updatedIssue));
            }

            // if no issue is found, create the issue
            return(await CreateTask(task));
        }
Exemple #2
0
        public async Task <SDETask> RemoveTask(SDETaskProto task)
        {
            var issue = await FindIssue(task);

            // If the issue is found, close it
            if (issue != null)
            {
                var update = issue.ToUpdate();
                update.State = ItemState.Closed;
                var updatedIssue = await githubClient.Issue.Update(githubUser, GetRepoName(task.Project), issue.Number, update);

                return(NewSDETask(updatedIssue));
            }

            // else return null
            return(null);
        }
Exemple #3
0
        public async Task <SDETask> CreateTask(SDETaskProto task)
        {
            var existingIssue = await FindIssue(task);

            // If the issue is found, update it instead of creating
            if (existingIssue != null)
            {
                return(await UpdateTask(task));
            }
            else
            {
                var createIssue = new NewIssue(title: task.Title);
                createIssue.Body = task.Description;
                createIssue.Labels.Add(task.Project);

                var issue = await githubClient.Issue.Create(
                    owner : githubUser,
                    name : GetRepoName(task.Project),
                    newIssue : createIssue);

                return(NewSDETask(issue));
            }
        }
Exemple #4
0
 private async Task <Issue> FindIssue(SDETaskProto task)
 {
     return(await FindIssue(task.Project, task.Title));
 }