Ejemplo n.º 1
0
        /// <summary>
        /// Create a new milestone in GitLab from the given parameters
        /// </summary>
        /// <returns>
        /// The new GitLab Milestone
        /// </returns>
        public static GitLabMilestone createMilestone(string externalProject, RemoteRelease remoteRelease, List <GitLabMilestone> milestones, DataSync sync)
        {
            //create a new milestone in GitLab
            NewGitLabMilestone newMilestone = new NewGitLabMilestone();

            newMilestone.title       = remoteRelease.Name;
            newMilestone.description = remoteRelease.Description;
            newMilestone.dueDate     = remoteRelease.EndDate.ToUniversalTime().ToString("yyyy-MM-ddTHH:MM:ssZ");
            //turn the new milestone into JSON
            string toPost = JsonConvert.SerializeObject(newMilestone);
            //post the new milestone
            //TODO: Milestone, project ID
            string          response = httpPOST(sync.apiUrl + "/projects/" + sync.connectionString + "%2F" + externalProject + "/milestones", sync.externalPassword, toPost);
            GitLabMilestone m        = JsonConvert.DeserializeObject <GitLabMilestone>(response);

            //add the new milestone to our list
            milestones.Add(m);

            return(m);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>
        /// The new GitLab Issue
        /// </returns>
        public static GitLabIssue createIssue(string externalProject, DataSync sync, string externalAssignee, string externalDescription, string externalName, GitLabMilestone milestone)
        {
            NewGitLabIssue newIssue = new NewGitLabIssue();

            newIssue.Assignees = new List <String>(1);
            newIssue.Assignees.Add(externalAssignee);

            newIssue.Description = CommonMark.CommonMarkConverter.Convert(externalDescription);
            newIssue.Title       = externalName;

            if (milestone != null)
            {
                newIssue.Milestone = milestone.milestoneId;
            }
            //TODO: Handle Issue Labels
            string toPost = JsonConvert.SerializeObject(newIssue);
            //post the new issue
            string response = httpPOST(sync.apiUrl + "/projects/" + sync.connectionString + "%2F" + externalProject + "/issues", sync.externalPassword, toPost);

            return(JsonConvert.DeserializeObject <GitLabIssue>(response));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Set the milestone of the issue in GitLab
        /// </summary>
        /// <param name="sync"></param>
        /// <param name="issue"></param>
        /// <param name="milestone"></param>
        public static void setGitLabIssueMilestone(string externalProject, DataSync sync, GitLabIssue issue, GitLabMilestone milestone)
        {
            string url = sync.apiUrl + "/projects/" + sync.connectionString + "%2F" + externalProject + "/issues/" + issue.IId + "?milestone_id=" + milestone.globalId;

            httpPUT(url, sync.externalPassword);
        }