Skip to content
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

Add TimeStatsAsync to MergeRequestClient #543

Merged
merged 4 commits into from
Oct 25, 2023
Merged
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
5 changes: 5 additions & 0 deletions NGitLab.Mock/Clients/MergeRequestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,11 @@ public GitLabCollectionResponse<MergeRequestVersion> GetVersionsAsync(int mergeR
throw new NotImplementedException();
}

public Task<TimeStats> TimeStatsAsync(int mergeRequestIid, CancellationToken cancellationToken = default)
{
throw new NotImplementedException();
}

public IMergeRequestDiscussionClient Discussions(int mergeRequestIid)
{
AssertProjectId();
Expand Down
7 changes: 7 additions & 0 deletions NGitLab/IMergeRequestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ public interface IMergeRequestClient

IEnumerable<Issue> ClosesIssues(int mergeRequestIid);

/// <summary>
/// Get time tracking statistics
/// </summary>
/// <param name="mergeRequestIid">The id of the merge request in the project's scope.</param>
/// <returns>The time tracking statistics of the merge request.</returns>
Task<TimeStats> TimeStatsAsync(int mergeRequestIid, CancellationToken cancellationToken = default);

/// <summary>
/// Gets the resource label events.
///
Expand Down
5 changes: 5 additions & 0 deletions NGitLab/Impl/MergeRequestClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,11 @@ public GitLabCollectionResponse<MergeRequestVersion> GetVersionsAsync(int mergeR
return _api.Get().GetAllAsync<MergeRequestVersion>(_projectPath + "/merge_requests/" + mergeRequestIid.ToString(CultureInfo.InvariantCulture) + "/versions");
}

public Task<TimeStats> TimeStatsAsync(int mergeRequestIid, CancellationToken cancellationToken = default)
{
return _api.Get().ToAsync<TimeStats>(_projectPath + "/merge_requests/" + mergeRequestIid.ToString(CultureInfo.InvariantCulture) + "/time_stats", cancellationToken);
}

public IMergeRequestCommentClient Comments(int mergeRequestIid) => new MergeRequestCommentClient(_api, _projectPath, mergeRequestIid);

public IMergeRequestDiscussionClient Discussions(int mergeRequestIid) => new MergeRequestDiscussionClient(_api, _projectPath, mergeRequestIid);
Expand Down
2 changes: 2 additions & 0 deletions NGitLab/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@ NGitLab.IMergeRequestClient.ResourceLabelEventsAsync(int projectId, int mergeReq
NGitLab.IMergeRequestClient.ResourceMilestoneEventsAsync(int projectId, int mergeRequestIid) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.ResourceMilestoneEvent>
NGitLab.IMergeRequestClient.ResourceStateEventsAsync(int projectId, int mergeRequestIid) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.ResourceStateEvent>
NGitLab.IMergeRequestClient.this[int iid].get -> NGitLab.Models.MergeRequest
NGitLab.IMergeRequestClient.TimeStatsAsync(int mergeRequestIid, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task<NGitLab.Models.TimeStats>
NGitLab.IMergeRequestClient.Update(int mergeRequestIid, NGitLab.Models.MergeRequestUpdate mergeRequest) -> NGitLab.Models.MergeRequest
NGitLab.IMergeRequestCommentClient
NGitLab.IMergeRequestCommentClient.Add(NGitLab.Models.MergeRequestComment comment) -> NGitLab.Models.MergeRequestComment
Expand Down Expand Up @@ -621,6 +622,7 @@ NGitLab.Impl.MergeRequestClient.ResourceLabelEventsAsync(int projectId, int merg
NGitLab.Impl.MergeRequestClient.ResourceMilestoneEventsAsync(int projectId, int mergeRequestIid) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.ResourceMilestoneEvent>
NGitLab.Impl.MergeRequestClient.ResourceStateEventsAsync(int projectId, int mergeRequestIid) -> NGitLab.GitLabCollectionResponse<NGitLab.Models.ResourceStateEvent>
NGitLab.Impl.MergeRequestClient.this[int iid].get -> NGitLab.Models.MergeRequest
NGitLab.Impl.MergeRequestClient.TimeStatsAsync(int mergeRequestIid, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task<NGitLab.Models.TimeStats>
NGitLab.Impl.MergeRequestClient.Update(int mergeRequestIid, NGitLab.Models.MergeRequestUpdate mergeRequest) -> NGitLab.Models.MergeRequest
NGitLab.Impl.MergeRequestCommentClient
NGitLab.Impl.MergeRequestCommentClient.Add(NGitLab.Models.MergeRequestComment comment) -> NGitLab.Models.MergeRequestComment
Expand Down