Skip to content

Commit 5163408

Browse files
committed
Fix Commit Status inconsistencies
1 parent c8e3455 commit 5163408

8 files changed

+21
-45
lines changed

NGitLab.Mock/Clients/CommitStatusClient.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public CommitStatusClient(ClientContext context, ProjectId projectId)
1515
_projectId = Server.AllProjects.FindProject(projectId.ValueAsString()).Id;
1616
}
1717

18-
CommitStatusCreate ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
18+
Models.CommitStatus ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
1919
{
2020
using (Context.BeginOperationScope())
2121
{
@@ -32,10 +32,9 @@ CommitStatusCreate ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
3232
commitStatus.Coverage = status.Coverage;
3333
commitStatus.Ref = status.Ref;
3434
commitStatus.Sha = status.CommitSha;
35-
commitStatus.Status = status.Status;
3635
commitStatus.TargetUrl = status.TargetUrl;
3736

38-
return commitStatus.ToClientCommitStatusCreate();
37+
return commitStatus.ToClientCommitStatus();
3938
}
4039

4140
static bool Equals(CommitStatus a, CommitStatusCreate b)

NGitLab.Mock/CommitStatus.cs

+1-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using NGitLab.Models;
2-
3-
namespace NGitLab.Mock;
1+
namespace NGitLab.Mock;
42

53
public sealed class CommitStatus : GitLabObject
64
{
@@ -20,21 +18,6 @@ public sealed class CommitStatus : GitLabObject
2018

2119
public int? Coverage { get; set; }
2220

23-
public CommitStatusCreate ToClientCommitStatusCreate()
24-
{
25-
return new CommitStatusCreate
26-
{
27-
Name = Name,
28-
TargetUrl = TargetUrl,
29-
Status = Status,
30-
Ref = Ref,
31-
CommitSha = Sha,
32-
Description = Description,
33-
State = Status,
34-
Coverage = Coverage,
35-
};
36-
}
37-
3821
public Models.CommitStatus ToClientCommitStatus()
3922
{
4023
return new Models.CommitStatus

NGitLab.Mock/PublicAPI.Unshipped.txt

-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ NGitLab.Mock.CommitStatus.Status.set -> void
8484
NGitLab.Mock.CommitStatus.TargetUrl.get -> string
8585
NGitLab.Mock.CommitStatus.TargetUrl.set -> void
8686
NGitLab.Mock.CommitStatus.ToClientCommitStatus() -> NGitLab.Models.CommitStatus
87-
NGitLab.Mock.CommitStatus.ToClientCommitStatusCreate() -> NGitLab.Models.CommitStatusCreate
8887
NGitLab.Mock.CommitStatusCollection
8988
NGitLab.Mock.CommitStatusCollection.CommitStatusCollection(NGitLab.Mock.GitLabObject parent) -> void
9089
NGitLab.Mock.Config.GitLabCollection<TItem, TParent>

NGitLab.Tests/CommitStatusTests.cs

+12-12
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public async Task Test_AddingCommitStatusesWithDifferentNamesOnSameCommit_Succee
6060
var commitStatus2 = context.CommitStatusClient.AddOrUpdate(commitStatusCreate);
6161

6262
// Assert
63-
var properties = typeof(CommitStatusCreate).GetProperties();
63+
var properties = typeof(CommitStatus).GetProperties();
6464

6565
// All properties should be the same except 'Name' & 'Id'
6666
foreach (var property in properties)
@@ -141,7 +141,7 @@ public async Task Test_QueryByName(string nameToLookUp, bool expectToFind)
141141
string commitStatusName = null;
142142
for (var i = 0; i < 10; i++)
143143
{
144-
commitStatusName = $"Commit Status {Guid.NewGuid().ToString("N")}";
144+
commitStatusName = $"Commit Status {Guid.NewGuid():N}";
145145
var commitStatusCreate = context.SetUpCommitStatusCreate("running", commitStatusName);
146146
_ = context.CommitStatusClient.AddOrUpdate(commitStatusCreate);
147147
}
@@ -200,21 +200,21 @@ public static async Task<CommitStatusTestContext> Create()
200200
return new CommitStatusTestContext(context, project, commit, client);
201201
}
202202

203-
public CommitStatusCreate AddOrUpdateCommitStatus(string state = "success", int? coverage = null)
203+
public CommitStatus AddOrUpdateCommitStatus(string state = "success", int? coverage = null)
204204
{
205205
var commitStatusCreate = SetUpCommitStatusCreate(state, coverage: coverage);
206206

207-
var createdCommitStatus = CommitStatusClient.AddOrUpdate(commitStatusCreate);
207+
var commitStatus = CommitStatusClient.AddOrUpdate(commitStatusCreate);
208208

209-
Assert.That(createdCommitStatus.Ref, Is.EqualTo(commitStatusCreate.Ref));
210-
Assert.That(createdCommitStatus.Coverage, Is.EqualTo(commitStatusCreate.Coverage));
211-
Assert.That(createdCommitStatus.Description, Is.EqualTo(commitStatusCreate.Description));
212-
Assert.That(createdCommitStatus.Status, Is.EqualTo(commitStatusCreate.State));
213-
Assert.That(createdCommitStatus.Name, Is.EqualTo(commitStatusCreate.Name));
214-
Assert.That(createdCommitStatus.TargetUrl, Is.EqualTo(commitStatusCreate.TargetUrl));
215-
Assert.That(createdCommitStatus.CommitSha, Is.EqualTo(commitStatusCreate.CommitSha).IgnoreCase);
209+
Assert.That(commitStatus.Ref, Is.EqualTo(commitStatusCreate.Ref));
210+
Assert.That(commitStatus.Coverage, Is.EqualTo(commitStatusCreate.Coverage));
211+
Assert.That(commitStatus.Description, Is.EqualTo(commitStatusCreate.Description));
212+
Assert.That(commitStatus.Status, Is.EqualTo(commitStatusCreate.State));
213+
Assert.That(commitStatus.Name, Is.EqualTo(commitStatusCreate.Name));
214+
Assert.That(commitStatus.TargetUrl, Is.EqualTo(commitStatusCreate.TargetUrl));
215+
Assert.That(commitStatus.CommitSha, Is.EqualTo(commitStatusCreate.CommitSha).IgnoreCase);
216216

217-
return createdCommitStatus;
217+
return commitStatus;
218218
}
219219

220220
public CommitStatusCreate SetUpCommitStatusCreate(string state, string name = null, int? coverage = 100)

NGitLab/ICommitStatusClient.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ public interface ICommitStatusClient
1515
/// <remarks>
1616
/// Refer to <see href="https://docs.gitlab.com/ee/api/commits.html#set-the-pipeline-status-of-a-commit">"Set the pipeline status of a commit" GitLab doc</see>
1717
/// </remarks>
18-
CommitStatusCreate AddOrUpdate(CommitStatusCreate status);
18+
CommitStatus AddOrUpdate(CommitStatusCreate status);
1919
}

NGitLab/Impl/CommitStatusClient.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public GitLabCollectionResponse<CommitStatus> GetAsync(string commitSha, CommitS
2525
return _api.Get().GetAllAsync<CommitStatus>(url);
2626
}
2727

28-
public CommitStatusCreate AddOrUpdate(CommitStatusCreate status) => _api.Post().With(status).To<CommitStatusCreate>($"{_statusCreatePath}/{status.CommitSha}");
28+
public CommitStatus AddOrUpdate(CommitStatusCreate status) => _api.Post().With(status).To<CommitStatus>($"{_statusCreatePath}/{status.CommitSha}");
2929

3030
private string GetCommitStatusesPath(string commitSha) => $"{_projectPath}/repository/commits/{commitSha.ToLowerInvariant()}/statuses";
3131

NGitLab/Models/CommitStatusCreate.cs

+2-5
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@ namespace NGitLab.Models;
99
/// </summary>
1010
public class CommitStatusCreate
1111
{
12-
[JsonPropertyName("sha")]
12+
[JsonIgnore]
1313
public string CommitSha { get; set; }
1414

1515
[JsonPropertyName("state")]
16-
public string State { get; set; }
17-
18-
[JsonPropertyName("status")]
19-
public string Status { get; set; }
16+
public required string State { get; set; }
2017

2118
[JsonPropertyName("ref")]
2219
public string Ref { get; set; }

NGitLab/PublicAPI.Unshipped.txt

+2-4
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ NGitLab.ICommitClient.GetJobStatus(string branchName) -> NGitLab.JobStatus
136136
NGitLab.ICommitClient.GetRelatedMergeRequestsAsync(NGitLab.Models.RelatedMergeRequestsQuery query) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.MergeRequest>
137137
NGitLab.ICommitClient.Revert(NGitLab.Models.CommitRevert revert) -> NGitLab.Models.Commit
138138
NGitLab.ICommitStatusClient
139-
NGitLab.ICommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatusCreate
139+
NGitLab.ICommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatus
140140
NGitLab.ICommitStatusClient.AllBySha(string commitSha) -> System.Collections.Generic.IEnumerable<NGitLab.Models.CommitStatus>
141141
NGitLab.ICommitStatusClient.GetAsync(string commitSha, NGitLab.Models.CommitStatusQuery query = null) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.CommitStatus>
142142
NGitLab.IContributorClient
@@ -488,7 +488,7 @@ NGitLab.Impl.CommitClient.GetJobStatus(string branchName) -> NGitLab.JobStatus
488488
NGitLab.Impl.CommitClient.GetRelatedMergeRequestsAsync(NGitLab.Models.RelatedMergeRequestsQuery query) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.MergeRequest>
489489
NGitLab.Impl.CommitClient.Revert(NGitLab.Models.CommitRevert revert) -> NGitLab.Models.Commit
490490
NGitLab.Impl.CommitStatusClient
491-
NGitLab.Impl.CommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatusCreate
491+
NGitLab.Impl.CommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatus
492492
NGitLab.Impl.CommitStatusClient.AllBySha(string commitSha) -> System.Collections.Generic.IEnumerable<NGitLab.Models.CommitStatus>
493493
NGitLab.Impl.CommitStatusClient.CommitStatusClient(NGitLab.Impl.API api, NGitLab.Models.ProjectId projectId) -> void
494494
NGitLab.Impl.CommitStatusClient.GetAsync(string commitSha, NGitLab.Models.CommitStatusQuery query = null) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.CommitStatus>
@@ -1607,8 +1607,6 @@ NGitLab.Models.CommitStatusCreate.Ref.get -> string
16071607
NGitLab.Models.CommitStatusCreate.Ref.set -> void
16081608
NGitLab.Models.CommitStatusCreate.State.get -> string
16091609
NGitLab.Models.CommitStatusCreate.State.set -> void
1610-
NGitLab.Models.CommitStatusCreate.Status.get -> string
1611-
NGitLab.Models.CommitStatusCreate.Status.set -> void
16121610
NGitLab.Models.CommitStatusCreate.TargetUrl.get -> string
16131611
NGitLab.Models.CommitStatusCreate.TargetUrl.set -> void
16141612
NGitLab.Models.CommitStatusQuery

0 commit comments

Comments
 (0)