|
1 | 1 | namespace Cake.AzureDevOps
|
2 | 2 | {
|
3 | 3 | using System.Collections.Generic;
|
| 4 | + using Cake.AzureDevOps.Boards.WorkItemTracking; |
4 | 5 | using Cake.AzureDevOps.Pipelines;
|
5 | 6 | using Cake.Core;
|
6 | 7 | using Cake.Core.Annotations;
|
@@ -47,7 +48,7 @@ public static AzureDevOpsBuild AzureDevOpsBuild(
|
47 | 48 | context.NotNull(nameof(context));
|
48 | 49 | settings.NotNull(nameof(settings));
|
49 | 50 |
|
50 |
| - var build = new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()); |
| 51 | + var build = new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()); |
51 | 52 |
|
52 | 53 | if (build.HasBuildLoaded)
|
53 | 54 | {
|
@@ -279,7 +280,7 @@ public static bool AzureDevOpsBuildIsFailing(
|
279 | 280 | settings.NotNull(nameof(settings));
|
280 | 281 |
|
281 | 282 | return
|
282 |
| - new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()) |
| 283 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
283 | 284 | .IsBuildFailing();
|
284 | 285 | }
|
285 | 286 |
|
@@ -327,10 +328,106 @@ public static IEnumerable<AzureDevOpsChange> AzureDevOpsBuildChanges(
|
327 | 328 | settings.NotNull(nameof(settings));
|
328 | 329 |
|
329 | 330 | return
|
330 |
| - new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()) |
| 331 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
331 | 332 | .GetChanges();
|
332 | 333 | }
|
333 | 334 |
|
| 335 | + /// <summary> |
| 336 | + /// Gets the work item ids associated with an Azure Pipelines build. |
| 337 | + /// </summary> |
| 338 | + /// <param name="context">The context.</param> |
| 339 | + /// <param name="settings">Settings for getting the build.</param> |
| 340 | + /// <example> |
| 341 | + /// <para>Get work item ids associated with an Azure Pipelines build:</para> |
| 342 | + /// <code> |
| 343 | + /// <![CDATA[ |
| 344 | + /// var buildSettings = |
| 345 | + /// new AzureDevOpsBuildSettings( |
| 346 | + /// new Uri("http://myserver:8080/defaultcollection"), |
| 347 | + /// "MyProject", |
| 348 | + /// 42, |
| 349 | + /// AzureDevOpsAuthenticationNtlm()); |
| 350 | + /// |
| 351 | + /// var workItemIds = |
| 352 | + /// AzureDevOpsBuildWorkItemIds( |
| 353 | + /// buildSettings); |
| 354 | + /// |
| 355 | + /// Information("Work item ids:"); |
| 356 | + /// foreach (var id in workItemIds) |
| 357 | + /// { |
| 358 | + /// Information(" {0}", id); |
| 359 | + /// } |
| 360 | + /// ]]> |
| 361 | + /// </code> |
| 362 | + /// </example> |
| 363 | + /// <returns>The work item ids associated with the build. |
| 364 | + /// Returns an empty list if build could not be found and |
| 365 | + /// <see cref="AzureDevOpsBuildSettings.ThrowExceptionIfBuildCouldNotBeFound"/> is set to <c>false</c>.</returns> |
| 366 | + /// <exception cref="AzureDevOpsBuildNotFoundException">If build could not be found and |
| 367 | + /// <see cref="AzureDevOpsBuildSettings.ThrowExceptionIfBuildCouldNotBeFound"/> is set to <c>true</c>.</exception> |
| 368 | + [CakeMethodAlias] |
| 369 | + [CakeAliasCategory("Azure Pipelines")] |
| 370 | + [CakeNamespaceImport("Cake.AzureDevOps.Pipelines")] |
| 371 | + public static IEnumerable<int> AzureDevOpsBuildWorkItemIds( |
| 372 | + this ICakeContext context, |
| 373 | + AzureDevOpsBuildSettings settings) |
| 374 | + { |
| 375 | + context.NotNull(nameof(context)); |
| 376 | + settings.NotNull(nameof(settings)); |
| 377 | + |
| 378 | + return |
| 379 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
| 380 | + .GetWorkItemIds(); |
| 381 | + } |
| 382 | + |
| 383 | + /// <summary> |
| 384 | + /// Gets the work items associated with an Azure Pipelines build. |
| 385 | + /// </summary> |
| 386 | + /// <param name="context">The context.</param> |
| 387 | + /// <param name="settings">Settings for getting the build.</param> |
| 388 | + /// <example> |
| 389 | + /// <para>Get work items associated with an Azure Pipelines build:</para> |
| 390 | + /// <code> |
| 391 | + /// <![CDATA[ |
| 392 | + /// var buildSettings = |
| 393 | + /// new AzureDevOpsBuildSettings( |
| 394 | + /// new Uri("http://myserver:8080/defaultcollection"), |
| 395 | + /// "MyProject", |
| 396 | + /// 42, |
| 397 | + /// AzureDevOpsAuthenticationNtlm()); |
| 398 | + /// |
| 399 | + /// var workItems = |
| 400 | + /// AzureDevOpsBuildWorkItems( |
| 401 | + /// buildSettings); |
| 402 | + /// |
| 403 | + /// Information("Work item:"); |
| 404 | + /// foreach (var workItem in workItems) |
| 405 | + /// { |
| 406 | + /// Information(" {0}: {1}", workItem.Id, workItem.Title); |
| 407 | + /// } |
| 408 | + /// ]]> |
| 409 | + /// </code> |
| 410 | + /// </example> |
| 411 | + /// <returns>The work items associated with the build. |
| 412 | + /// Returns an empty list if build could not be found and |
| 413 | + /// <see cref="AzureDevOpsBuildSettings.ThrowExceptionIfBuildCouldNotBeFound"/> is set to <c>false</c>.</returns> |
| 414 | + /// <exception cref="AzureDevOpsBuildNotFoundException">If build could not be found and |
| 415 | + /// <see cref="AzureDevOpsBuildSettings.ThrowExceptionIfBuildCouldNotBeFound"/> is set to <c>true</c>.</exception> |
| 416 | + [CakeMethodAlias] |
| 417 | + [CakeAliasCategory("Azure Pipelines")] |
| 418 | + [CakeNamespaceImport("Cake.AzureDevOps.Pipelines")] |
| 419 | + public static IEnumerable<AzureDevOpsWorkItem> AzureDevOpsBuildWorkItems( |
| 420 | + this ICakeContext context, |
| 421 | + AzureDevOpsBuildSettings settings) |
| 422 | + { |
| 423 | + context.NotNull(nameof(context)); |
| 424 | + settings.NotNull(nameof(settings)); |
| 425 | + |
| 426 | + return |
| 427 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
| 428 | + .GetWorkItems(); |
| 429 | + } |
| 430 | + |
334 | 431 | /// <summary>
|
335 | 432 | /// Gets the timeline entries for an Azure Pipelines build.
|
336 | 433 | /// </summary>
|
@@ -375,7 +472,7 @@ public static IEnumerable<AzureDevOpsTimelineRecord> AzureDevOpsBuildTimelineRec
|
375 | 472 | settings.NotNull(nameof(settings));
|
376 | 473 |
|
377 | 474 | return
|
378 |
| - new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()) |
| 475 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
379 | 476 | .GetTimelineRecords();
|
380 | 477 | }
|
381 | 478 |
|
@@ -423,7 +520,7 @@ public static IEnumerable<AzureDevOpsBuildArtifact> AzureDevOpsBuildArtifacts(
|
423 | 520 | settings.NotNull(nameof(settings));
|
424 | 521 |
|
425 | 522 | return
|
426 |
| - new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()) |
| 523 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
427 | 524 | .GetArtifacts();
|
428 | 525 | }
|
429 | 526 |
|
@@ -471,7 +568,7 @@ public static IEnumerable<AzureDevOpsTestRun> AzureDevOpsBuildTestRuns(
|
471 | 568 | settings.NotNull(nameof(settings));
|
472 | 569 |
|
473 | 570 | return
|
474 |
| - new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory()) |
| 571 | + new AzureDevOpsBuild(context.Log, settings, new BuildClientFactory(), new TestManagementClientFactory(), new WorkItemTrackingClientFactory()) |
475 | 572 | .GetTestRuns();
|
476 | 573 | }
|
477 | 574 |
|
|
0 commit comments