diff --git a/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommand.cs b/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommand.cs index 028dd43..9386840 100644 --- a/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommand.cs +++ b/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommand.cs @@ -234,7 +234,7 @@ await AnsiConsole.Progress() { "@projectTags", projectItem.fields.SystemTags }, { "@RunName", config.RunName } }; - var query = await targetApi.CreateProjectQuery(config.targetQueryTitle, config.targetQuery, queryParameters); + var query = await targetApi.CreateProjectQuery(config.targetQueryTitle, config.targetQueryFolder, config.targetQuery, queryParameters); task7.Increment(1); task7.StopTask(); diff --git a/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommandSettings.cs b/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommandSettings.cs index 4c8b07e..1bc5a06 100644 --- a/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommandSettings.cs +++ b/AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommandSettings.cs @@ -46,17 +46,14 @@ internal class WorkItemCloneCommandSettings : BaseCommandSettings [Description("The WIQL Query to use. You can use @projectID, @projectTitle, @projectTags to replace data from the project!")] [CommandOption("--targetQuery")] - [DefaultValue("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AreaPath],[System.AssignedTo],[System.State] FROM workitems WHERE [System.Parent] = @projectID")] public string? targetQuery { get; set; } [Description("The title to use for the query. You can use @projectID, @projectTitle, @projectTags, @RunName to replace data from the project!")] [CommandOption("--targetQueryTitle")] - [DefaultValue("Project-@RunName - @projectTitle")] public string? targetQueryTitle { get; set; } [Description("Must already Exist and be in the form 'Shared Queries/Folder1/Folder2'!")] [CommandOption("--targetQueryFolder")] - [DefaultValue("Shared Queries")] public string? targetQueryFolder { get; set; } //------------------------------------------------ diff --git a/AzureDevOps.WorkItemClone/AzureDevOpsApi.cs b/AzureDevOps.WorkItemClone/AzureDevOpsApi.cs index 26826d5..04b863d 100644 --- a/AzureDevOps.WorkItemClone/AzureDevOpsApi.cs +++ b/AzureDevOps.WorkItemClone/AzureDevOpsApi.cs @@ -247,7 +247,7 @@ public ValueTask DisposeAsync() return new(Task.Delay(TimeSpan.FromSeconds(1))); } - public async Task CreateProjectQuery(string queryName, string wiqlQuery, Dictionary parameters) + public async Task CreateProjectQuery(string queryName, string folder, string wiqlQuery, Dictionary parameters) { ///POST https://dev.azure.com/{organization}/{project}/_apis/wit/queries/{query}?api-version=7.1-preview.2 wiqlQuery = GetQueryString(wiqlQuery, parameters); @@ -256,10 +256,10 @@ public async Task CreateProjectQuery(string queryName, string wiqlQuery, { isFolder = false, name = queryName, - path = $"Shared Queries/{queryName}", + path = $"{folder}/{queryName}", wiql = wiqlQuery }); - string apiCallUrl = $"https://dev.azure.com/{_account}/{_project}/_apis/wit/queries/Shared Queries/?api-version=7.2-preview.2"; + string apiCallUrl = $"https://dev.azure.com/{_account}/{_project}/_apis/wit/queries/{folder}/?api-version=7.2-preview.2"; var result = await GetObjectResult(apiCallUrl, post); return result.result; }