Skip to content

Commit 22611c9

Browse files
authored
feat: add discussion_locked on issue (#843)
1 parent c2b9223 commit 22611c9

File tree

7 files changed

+42
-1
lines changed

7 files changed

+42
-1
lines changed

NGitLab.Mock/Clients/IssueClient.cs

+5
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,11 @@ public Models.Issue Edit(IssueEdit issueEdit)
118118
issueToModify.State = (IssueState)requestedState;
119119
}
120120

121+
if (issueEdit.DiscussionLocked.HasValue)
122+
{
123+
issueToModify.DiscussionLocked = issueEdit.DiscussionLocked.Value;
124+
}
125+
121126
return issueToModify.ToClientIssue();
122127
}
123128
}

NGitLab.Mock/Issue.cs

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public UserRef Assignee
4141

4242
public bool Confidential { get; set; }
4343

44+
public bool DiscussionLocked { get; set; }
45+
4446
public IList<ProjectIssueNote> Notes { get; set; } = new List<ProjectIssueNote>();
4547

4648
public string WebUrl => Server.MakeUrl($"{Project.PathWithNamespace}/-/issues/{Iid.ToString(CultureInfo.InvariantCulture)}");
@@ -93,6 +95,7 @@ public Models.Issue ToClientIssue()
9395
UpdatedAt = UpdatedAt.UtcDateTime,
9496
WebUrl = WebUrl,
9597
Confidential = Confidential,
98+
DiscussionLocked = DiscussionLocked,
9699
};
97100
}
98101

NGitLab.Mock/PublicAPI.Unshipped.txt

+2
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,8 @@ NGitLab.Mock.Issue.CreatedAt.get -> System.DateTimeOffset
530530
NGitLab.Mock.Issue.CreatedAt.set -> void
531531
NGitLab.Mock.Issue.Description.get -> string
532532
NGitLab.Mock.Issue.Description.set -> void
533+
NGitLab.Mock.Issue.DiscussionLocked.get -> bool
534+
NGitLab.Mock.Issue.DiscussionLocked.set -> void
533535
NGitLab.Mock.Issue.Id.get -> long
534536
NGitLab.Mock.Issue.Id.set -> void
535537
NGitLab.Mock.Issue.Iid.get -> long

NGitLab.Tests/IssueTests.cs

+21
Original file line numberDiff line numberDiff line change
@@ -325,4 +325,25 @@ public async Task Test_getparticipants_issue()
325325

326326
Assert.That(participant.Count, Is.EqualTo(1));
327327
}
328+
329+
[Test]
330+
[NGitLabRetry]
331+
public async Task Test_lock_discussion()
332+
{
333+
using var context = await GitLabTestContext.CreateAsync();
334+
var project = context.CreateProject();
335+
var issuesClient = context.Client.Issues;
336+
var issue = await issuesClient.CreateAsync(new IssueCreate { ProjectId = project.Id, Title = "title1" });
337+
338+
Assert.That(issue.DiscussionLocked, Is.False);
339+
340+
var editedIssue = await issuesClient.EditAsync(new IssueEdit
341+
{
342+
ProjectId = issue.ProjectId,
343+
IssueId = issue.IssueId,
344+
DiscussionLocked = true,
345+
});
346+
347+
Assert.That(editedIssue.DiscussionLocked, Is.True);
348+
}
328349
}

NGitLab/Models/Issue.cs

+3
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,7 @@ public class Issue
7979

8080
[JsonPropertyName("user_notes_count")]
8181
public int UserNotesCount { get; set; }
82+
83+
[JsonPropertyName("discussion_locked")]
84+
public bool DiscussionLocked { get; set; }
8285
}

NGitLab/Models/IssueEdit.cs

+3
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@ public class IssueEdit
4444

4545
[JsonPropertyName("weight")]
4646
public int? Weight { get; set; }
47+
48+
[JsonPropertyName("discussion_locked")]
49+
public bool? DiscussionLocked { get; set; }
4750
}

NGitLab/PublicAPI.Unshipped.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -2250,6 +2250,8 @@ NGitLab.Models.Issue.CreatedAt.get -> System.DateTime
22502250
NGitLab.Models.Issue.CreatedAt.set -> void
22512251
NGitLab.Models.Issue.Description.get -> string
22522252
NGitLab.Models.Issue.Description.set -> void
2253+
NGitLab.Models.Issue.DiscussionLocked.get -> bool
2254+
NGitLab.Models.Issue.DiscussionLocked.set -> void
22532255
NGitLab.Models.Issue.DueDate.get -> System.DateTime?
22542256
NGitLab.Models.Issue.DueDate.set -> void
22552257
NGitLab.Models.Issue.Epic.get -> NGitLab.Models.IssueEpic
@@ -2322,6 +2324,8 @@ NGitLab.Models.IssueEdit.AssigneeIds.get -> long[]
23222324
NGitLab.Models.IssueEdit.AssigneeIds.set -> void
23232325
NGitLab.Models.IssueEdit.Description.get -> string
23242326
NGitLab.Models.IssueEdit.Description.set -> void
2327+
NGitLab.Models.IssueEdit.DiscussionLocked.get -> bool?
2328+
NGitLab.Models.IssueEdit.DiscussionLocked.set -> void
23252329
NGitLab.Models.IssueEdit.DueDate.get -> System.DateTime?
23262330
NGitLab.Models.IssueEdit.DueDate.set -> void
23272331
NGitLab.Models.IssueEdit.EpicId.get -> long?
@@ -4914,4 +4918,4 @@ virtual NGitLab.Impl.HttpRequestor.To<T>(string tailAPIUrl) -> T
49144918
virtual NGitLab.Impl.HttpRequestor.ToAsync<T>(string tailAPIUrl, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<T>
49154919
virtual NGitLab.RequestOptions.GetResponse(System.Net.HttpWebRequest request) -> System.Net.WebResponse
49164920
virtual NGitLab.RequestOptions.GetResponseAsync(System.Net.HttpWebRequest request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<System.Net.WebResponse>
4917-
virtual NGitLab.RequestOptions.ShouldRetry(System.Exception ex, int retryNumber) -> bool
4921+
virtual NGitLab.RequestOptions.ShouldRetry(System.Exception ex, int retryNumber) -> bool

0 commit comments

Comments
 (0)