Skip to content

Fix Commit Status inconsistencies #864

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions NGitLab.Mock/Clients/CommitStatusClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public CommitStatusClient(ClientContext context, ProjectId projectId)
_projectId = Server.AllProjects.FindProject(projectId.ValueAsString()).Id;
}

CommitStatusCreate ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
Models.CommitStatus ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
{
using (Context.BeginOperationScope())
{
Expand All @@ -32,10 +32,10 @@ CommitStatusCreate ICommitStatusClient.AddOrUpdate(CommitStatusCreate status)
commitStatus.Coverage = status.Coverage;
commitStatus.Ref = status.Ref;
commitStatus.Sha = status.CommitSha;
commitStatus.Status = status.Status;
commitStatus.Status = status.State;
commitStatus.TargetUrl = status.TargetUrl;

return commitStatus.ToClientCommitStatusCreate();
return commitStatus.ToClientCommitStatus();
}

static bool Equals(CommitStatus a, CommitStatusCreate b)
Expand Down
19 changes: 1 addition & 18 deletions NGitLab.Mock/CommitStatus.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
using NGitLab.Models;

namespace NGitLab.Mock;
namespace NGitLab.Mock;

public sealed class CommitStatus : GitLabObject
{
Expand All @@ -20,21 +18,6 @@ public sealed class CommitStatus : GitLabObject

public int? Coverage { get; set; }

public CommitStatusCreate ToClientCommitStatusCreate()
{
return new CommitStatusCreate
{
Name = Name,
TargetUrl = TargetUrl,
Status = Status,
Ref = Ref,
CommitSha = Sha,
Description = Description,
State = Status,
Coverage = Coverage,
};
}

public Models.CommitStatus ToClientCommitStatus()
{
return new Models.CommitStatus
Expand Down
1 change: 0 additions & 1 deletion NGitLab.Mock/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ NGitLab.Mock.CommitStatus.Status.set -> void
NGitLab.Mock.CommitStatus.TargetUrl.get -> string
NGitLab.Mock.CommitStatus.TargetUrl.set -> void
NGitLab.Mock.CommitStatus.ToClientCommitStatus() -> NGitLab.Models.CommitStatus
NGitLab.Mock.CommitStatus.ToClientCommitStatusCreate() -> NGitLab.Models.CommitStatusCreate
NGitLab.Mock.CommitStatusCollection
NGitLab.Mock.CommitStatusCollection.CommitStatusCollection(NGitLab.Mock.GitLabObject parent) -> void
NGitLab.Mock.Config.GitLabCollection<TItem, TParent>
Expand Down
4 changes: 2 additions & 2 deletions NGitLab.Tests/CommitStatusTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public async Task Test_AddingCommitStatusesWithDifferentNamesOnSameCommit_Succee
var commitStatus2 = context.CommitStatusClient.AddOrUpdate(commitStatusCreate);

// Assert
var properties = typeof(CommitStatusCreate).GetProperties();
var properties = typeof(CommitStatus).GetProperties();

// All properties should be the same except 'Name' & 'Id'
foreach (var property in properties)
Expand Down Expand Up @@ -205,7 +205,7 @@ public static async Task<CommitStatusTestContext> Create()
return new CommitStatusTestContext(context, project, commit, client);
}

public CommitStatusCreate AddOrUpdateCommitStatus(string state = "success", int? coverage = null)
public CommitStatus AddOrUpdateCommitStatus(string state = "success", int? coverage = null)
{
var commitStatusCreate = SetUpCommitStatusCreate(state, coverage: coverage);

Expand Down
2 changes: 1 addition & 1 deletion NGitLab/ICommitStatusClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ public interface ICommitStatusClient
/// <remarks>
/// 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>
/// </remarks>
CommitStatusCreate AddOrUpdate(CommitStatusCreate status);
CommitStatus AddOrUpdate(CommitStatusCreate status);
}
2 changes: 1 addition & 1 deletion NGitLab/Impl/CommitStatusClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public GitLabCollectionResponse<CommitStatus> GetAsync(string commitSha, CommitS
return _api.Get().GetAllAsync<CommitStatus>(url);
}

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

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

Expand Down
7 changes: 2 additions & 5 deletions NGitLab/Models/CommitStatusCreate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@ namespace NGitLab.Models;
/// </summary>
public class CommitStatusCreate
{
[JsonPropertyName("sha")]
[JsonIgnore]
public string CommitSha { get; set; }

[JsonPropertyName("state")]
public string State { get; set; }

[JsonPropertyName("status")]
public string Status { get; set; }
public required string State { get; set; }

[JsonPropertyName("ref")]
public string Ref { get; set; }
Expand Down
6 changes: 2 additions & 4 deletions NGitLab/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ NGitLab.ICommitClient.GetJobStatus(string branchName) -> NGitLab.JobStatus
NGitLab.ICommitClient.GetRelatedMergeRequestsAsync(NGitLab.Models.RelatedMergeRequestsQuery query) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.MergeRequest>
NGitLab.ICommitClient.Revert(NGitLab.Models.CommitRevert revert) -> NGitLab.Models.Commit
NGitLab.ICommitStatusClient
NGitLab.ICommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatusCreate
NGitLab.ICommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatus
NGitLab.ICommitStatusClient.AllBySha(string commitSha) -> System.Collections.Generic.IEnumerable<NGitLab.Models.CommitStatus>
NGitLab.ICommitStatusClient.GetAsync(string commitSha, NGitLab.Models.CommitStatusQuery query = null) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.CommitStatus>
NGitLab.IContributorClient
Expand Down Expand Up @@ -490,7 +490,7 @@ NGitLab.Impl.CommitClient.GetJobStatus(string branchName) -> NGitLab.JobStatus
NGitLab.Impl.CommitClient.GetRelatedMergeRequestsAsync(NGitLab.Models.RelatedMergeRequestsQuery query) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.MergeRequest>
NGitLab.Impl.CommitClient.Revert(NGitLab.Models.CommitRevert revert) -> NGitLab.Models.Commit
NGitLab.Impl.CommitStatusClient
NGitLab.Impl.CommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatusCreate
NGitLab.Impl.CommitStatusClient.AddOrUpdate(NGitLab.Models.CommitStatusCreate status) -> NGitLab.Models.CommitStatus
NGitLab.Impl.CommitStatusClient.AllBySha(string commitSha) -> System.Collections.Generic.IEnumerable<NGitLab.Models.CommitStatus>
NGitLab.Impl.CommitStatusClient.CommitStatusClient(NGitLab.Impl.API api, NGitLab.Models.ProjectId projectId) -> void
NGitLab.Impl.CommitStatusClient.GetAsync(string commitSha, NGitLab.Models.CommitStatusQuery query = null) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.CommitStatus>
Expand Down Expand Up @@ -1633,8 +1633,6 @@ NGitLab.Models.CommitStatusCreate.Ref.get -> string
NGitLab.Models.CommitStatusCreate.Ref.set -> void
NGitLab.Models.CommitStatusCreate.State.get -> string
NGitLab.Models.CommitStatusCreate.State.set -> void
NGitLab.Models.CommitStatusCreate.Status.get -> string
NGitLab.Models.CommitStatusCreate.Status.set -> void
NGitLab.Models.CommitStatusCreate.TargetUrl.get -> string
NGitLab.Models.CommitStatusCreate.TargetUrl.set -> void
NGitLab.Models.CommitStatusQuery
Expand Down