From 46c89458024beb703f5b3471d5ca053c76848cf5 Mon Sep 17 00:00:00 2001 From: Nicolaj Bjerregaard Christensen Date: Wed, 14 Sep 2022 14:53:36 +0200 Subject: [PATCH 1/3] Added the 'Source' element to pipelines. Both in the request and the detailed response. --- .../Models/Pipelines/PipelineSource.cs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/GitLabApiClient/Models/Pipelines/PipelineSource.cs diff --git a/src/GitLabApiClient/Models/Pipelines/PipelineSource.cs b/src/GitLabApiClient/Models/Pipelines/PipelineSource.cs new file mode 100644 index 00000000..36d876ee --- /dev/null +++ b/src/GitLabApiClient/Models/Pipelines/PipelineSource.cs @@ -0,0 +1,36 @@ +using System.Runtime.Serialization; + +namespace GitLabApiClient.Models.Pipelines +{ + public enum PipelineSource + { + [EnumMember(Value = "push")] + Push, + [EnumMember(Value = "web")] + Web, + [EnumMember(Value = "trigger")] + Trigger, + [EnumMember(Value = "schedule")] + Schedule, + [EnumMember(Value = "api")] + Api, + [EnumMember(Value = "external")] + External, + [EnumMember(Value = "pipeline")] + Pipeline, + [EnumMember(Value = "chat")] + Chat, + [EnumMember(Value = "webide")] + Webide, + [EnumMember(Value = "merge_request_event")] + MergeRequestEvent, + [EnumMember(Value = "external_pull_request_event")] + ExternalPullRequestEvent, + [EnumMember(Value = "parent_pipeline")] + ParentPipeline, + [EnumMember(Value = "ondemand_dast_scan")] + OndemandDastScan, + [EnumMember(Value = "ondemand_dast_validation")] + OndemandDastValidation + } +} From 1ed708a4f43ad69a21cc27a6ee94b0834cc59bb6 Mon Sep 17 00:00:00 2001 From: Nicolaj Bjerregaard Christensen Date: Wed, 14 Sep 2022 14:54:32 +0200 Subject: [PATCH 2/3] Changed the type of the Id field on the Job type from int to string (id's are above the int limit now) --- src/GitLabApiClient/GitLabApiClient.csproj | 2 +- .../Internal/Queries/PipelineQueryBuilder.cs | 5 +++++ src/GitLabApiClient/Models/Job/Responses/Job.cs | 2 +- .../Models/Pipelines/Requests/PipelineQueryOptions.cs | 5 +++++ .../Models/Pipelines/Responses/PipelineDetail.cs | 3 +++ .../Internal/Queries/PipelineQueryBuilderTest.cs | 7 +++++-- 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/GitLabApiClient/GitLabApiClient.csproj b/src/GitLabApiClient/GitLabApiClient.csproj index 374b1209..ae3b6e98 100644 --- a/src/GitLabApiClient/GitLabApiClient.csproj +++ b/src/GitLabApiClient/GitLabApiClient.csproj @@ -19,7 +19,7 @@ - true + true true diff --git a/src/GitLabApiClient/Internal/Queries/PipelineQueryBuilder.cs b/src/GitLabApiClient/Internal/Queries/PipelineQueryBuilder.cs index 309d178d..e9d9d549 100644 --- a/src/GitLabApiClient/Internal/Queries/PipelineQueryBuilder.cs +++ b/src/GitLabApiClient/Internal/Queries/PipelineQueryBuilder.cs @@ -62,6 +62,11 @@ protected override void BuildCore(Query query, PipelineQueryOptions options) { query.Add("username", options.TriggeredBy); } + + if (options.Source.HasValue) + { + query.Add("source", options.Source.ToLowerCaseString()); + } } #endregion diff --git a/src/GitLabApiClient/Models/Job/Responses/Job.cs b/src/GitLabApiClient/Models/Job/Responses/Job.cs index db7dbd77..b058a110 100644 --- a/src/GitLabApiClient/Models/Job/Responses/Job.cs +++ b/src/GitLabApiClient/Models/Job/Responses/Job.cs @@ -28,7 +28,7 @@ public sealed class Job public DateTime? FinishedAt { get; set; } [JsonProperty("id")] - public int Id { get; set; } + public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } diff --git a/src/GitLabApiClient/Models/Pipelines/Requests/PipelineQueryOptions.cs b/src/GitLabApiClient/Models/Pipelines/Requests/PipelineQueryOptions.cs index 15e71ae8..1d2a6e9b 100644 --- a/src/GitLabApiClient/Models/Pipelines/Requests/PipelineQueryOptions.cs +++ b/src/GitLabApiClient/Models/Pipelines/Requests/PipelineQueryOptions.cs @@ -55,5 +55,10 @@ internal PipelineQueryOptions() { } /// The username of the user who triggered pipelines /// public string TriggeredBy { get; set; } + + /// + /// How the pipeline was triggered + /// + public PipelineSource? Source { get; set; } } } diff --git a/src/GitLabApiClient/Models/Pipelines/Responses/PipelineDetail.cs b/src/GitLabApiClient/Models/Pipelines/Responses/PipelineDetail.cs index f759c42f..d039a709 100644 --- a/src/GitLabApiClient/Models/Pipelines/Responses/PipelineDetail.cs +++ b/src/GitLabApiClient/Models/Pipelines/Responses/PipelineDetail.cs @@ -52,5 +52,8 @@ public class PipelineDetail [JsonProperty("coverage")] public string Coverage { get; set; } + + [JsonProperty("source")] + public PipelineSource? Source { get; set; } } } diff --git a/test/GitLabApiClient.Test/Internal/Queries/PipelineQueryBuilderTest.cs b/test/GitLabApiClient.Test/Internal/Queries/PipelineQueryBuilderTest.cs index 2cf8a168..d7e3e557 100644 --- a/test/GitLabApiClient.Test/Internal/Queries/PipelineQueryBuilderTest.cs +++ b/test/GitLabApiClient.Test/Internal/Queries/PipelineQueryBuilderTest.cs @@ -24,7 +24,8 @@ public void NonDefaultQueryBuilt() Status = PipelineStatus.Failed, Scope = PipelineScope.Pending, Order = PipelineOrder.UserId, - SortOrder = SortOrder.Ascending + SortOrder = SortOrder.Ascending, + Source = PipelineSource.MergeRequestEvent }); query.Should().Be("https://https://gitlab.com/api/v4/pipelines?" + @@ -34,7 +35,9 @@ public void NonDefaultQueryBuilt() "&status=failed" + "&scope=pending" + "&order_by=user_id" + - "&sort=asc"); + "&sort=asc" + + "&source=merge_request_event" + ); } } } From 35c3f0dc91eab2e7d044d607e7df7944f994e0da Mon Sep 17 00:00:00 2001 From: Nicolaj Bjerregaard Christensen Date: Wed, 14 Sep 2022 14:55:03 +0200 Subject: [PATCH 3/3] Added the 'tag_list' field to the Job response --- src/GitLabApiClient/Models/Job/Responses/Job.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/GitLabApiClient/Models/Job/Responses/Job.cs b/src/GitLabApiClient/Models/Job/Responses/Job.cs index b058a110..c190c87c 100644 --- a/src/GitLabApiClient/Models/Job/Responses/Job.cs +++ b/src/GitLabApiClient/Models/Job/Responses/Job.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using GitLabApiClient.Models.Commits.Responses; using GitLabApiClient.Models.Pipelines.Responses; using GitLabApiClient.Models.Runners.Responses; @@ -56,5 +57,8 @@ public sealed class Job [JsonProperty("web_url")] public string WebUrl { get; set; } + + [JsonProperty("tag_list")] + public IList TagList { get; set; } } }