Skip to content

Commit

Permalink
Add TimeStatsAsync to MergeRequestClient (#543)
Browse files Browse the repository at this point in the history
* Add TimeStatsAsync to MergeRequestClient

* Remove projectId parameter from MergeRequestClient TimeStatsAsync method and use _projectPath

* fix comment
  • Loading branch information
DelphinRP authored Oct 25, 2023
1 parent dee78df commit 1ba8140
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 0 deletions.
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

0 comments on commit 1ba8140

Please sign in to comment.