public static async Task Update(this ProjectVersion version, CreateOrUpdateJiraVersionSettings settings) { version.IsReleased = settings.IsReleased; version.Description = settings.Description; version.ReleasedDate = settings.ReleaseDate; await version.SaveChangesAsync(); }
public static async Task CreateOrUpdateJiraVersion(CreateOrUpdateJiraVersionSettings settings, ICakeLog logger) { try { logger.Information($"Creating version {settings.VersionName} on {settings.Project}"); var jira = Atlassian.Jira.Jira.CreateRestClient(settings.Host, settings.User, settings.Password); var versions = await jira.Versions.GetVersionsAsync(settings.Project); var version = versions.SingleOrDefault(v => v.Name == settings.VersionName); if (version == null) { logger.Information($"{settings.VersionName} not found. Creating it..."); logger.Information( $"Creating version with paramenters: {Environment.NewLine}{JsonConvert.SerializeObject(settings)}"); await jira.Versions.CreateVersionAsync( new ProjectVersionCreationInfo(settings.VersionName) { Description = settings.Description, IsReleased = settings.IsReleased, StartDate = DateTime.UtcNow, ProjectKey = settings.Project } ); } else { logger.Information($"{settings.VersionName} already exists. Updating it..."); logger.Information( $"Updating version with paramenters: {Environment.NewLine}{JsonConvert.SerializeObject(settings)}"); await version.Update(settings); } } catch (Exception ex) { logger.Error($"Error creating version: {ex.Message}"); } }
public static async Task CreateOrUpdateJiraVersion(this ICakeContext context, CreateOrUpdateJiraVersionSettings settings) { ValidateJiraSettings(settings); if (string.IsNullOrWhiteSpace(settings.Project)) { throw new ArgumentException("Project must be specified."); } if (string.IsNullOrWhiteSpace(settings.VersionName)) { throw new ArgumentException("Version Number must be specified."); } await JiraClient.CreateOrUpdateJiraVersion(settings, context.Log); }