Skip to content

Commit eb75d99

Browse files
authored
Fix for Query issues in subfolders (#56)
feat(WorkItemCloneCommand.cs): add targetQueryFolder parameter to Create ProjectQuery method for better query organization refactor(WorkItemCloneCommandSettings.cs): remove default values for targetQuery, targetQueryTitle, targetQueryFolder to allow more flexibility refactor(AzureDevOpsApi.cs): modify CreateProjectQuery method to include folder parameter in path and apiCallUrl for better query organization
2 parents 3239615 + aa51077 commit eb75d99

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ await AnsiConsole.Progress()
234234
{ "@projectTags", projectItem.fields.SystemTags },
235235
{ "@RunName", config.RunName }
236236
};
237-
var query = await targetApi.CreateProjectQuery(config.targetQueryTitle, config.targetQuery, queryParameters);
237+
var query = await targetApi.CreateProjectQuery(config.targetQueryTitle, config.targetQueryFolder, config.targetQuery, queryParameters);
238238
task7.Increment(1);
239239
task7.StopTask();
240240

AzureDevOps.WorkItemClone.ConsoleUI/Commands/WorkItemCloneCommandSettings.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,14 @@ internal class WorkItemCloneCommandSettings : BaseCommandSettings
4646

4747
[Description("The WIQL Query to use. You can use @projectID, @projectTitle, @projectTags to replace data from the project!")]
4848
[CommandOption("--targetQuery")]
49-
[DefaultValue("SELECT [System.Id], [System.WorkItemType], [System.Title], [System.AreaPath],[System.AssignedTo],[System.State] FROM workitems WHERE [System.Parent] = @projectID")]
5049
public string? targetQuery { get; set; }
5150

5251
[Description("The title to use for the query. You can use @projectID, @projectTitle, @projectTags, @RunName to replace data from the project!")]
5352
[CommandOption("--targetQueryTitle")]
54-
[DefaultValue("Project-@RunName - @projectTitle")]
5553
public string? targetQueryTitle { get; set; }
5654

5755
[Description("Must already Exist and be in the form 'Shared Queries/Folder1/Folder2'!")]
5856
[CommandOption("--targetQueryFolder")]
59-
[DefaultValue("Shared Queries")]
6057
public string? targetQueryFolder { get; set; }
6158

6259
//------------------------------------------------

AzureDevOps.WorkItemClone/AzureDevOpsApi.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public ValueTask DisposeAsync()
247247
return new(Task.Delay(TimeSpan.FromSeconds(1)));
248248
}
249249

250-
public async Task<Query> CreateProjectQuery(string queryName, string wiqlQuery, Dictionary<string, string> parameters)
250+
public async Task<Query> CreateProjectQuery(string queryName, string folder, string wiqlQuery, Dictionary<string, string> parameters)
251251
{
252252
///POST https://dev.azure.com/{organization}/{project}/_apis/wit/queries/{query}?api-version=7.1-preview.2
253253
wiqlQuery = GetQueryString(wiqlQuery, parameters);
@@ -256,10 +256,10 @@ public async Task<Query> CreateProjectQuery(string queryName, string wiqlQuery,
256256
{
257257
isFolder = false,
258258
name = queryName,
259-
path = $"Shared Queries/{queryName}",
259+
path = $"{folder}/{queryName}",
260260
wiql = wiqlQuery
261261
});
262-
string apiCallUrl = $"https://dev.azure.com/{_account}/{_project}/_apis/wit/queries/Shared Queries/?api-version=7.2-preview.2";
262+
string apiCallUrl = $"https://dev.azure.com/{_account}/{_project}/_apis/wit/queries/{folder}/?api-version=7.2-preview.2";
263263
var result = await GetObjectResult<Query>(apiCallUrl, post);
264264
return result.result;
265265
}

0 commit comments

Comments
 (0)