add islocked filter to SeachIssuesRequest (#2623)

* add islocker filter to SeachIssuesRequest

* update docs

* Update docs/search.md with review suggestions

Co-authored-by: Keegan Campbell <me@kfcampbell.com>

Co-authored-by: notauserx <notauserx@users.noreply.github.com>
Co-authored-by: Keegan Campbell <me@kfcampbell.com>
This commit is contained in:
notauserx
2022-12-01 05:20:19 +06:00
committed by GitHub
parent 6c11c1edff
commit 46b5077b16
4 changed files with 46 additions and 1 deletions

View File

@@ -281,6 +281,28 @@ public class SearchClientTests
Assert.NotEmpty(openedIssues);
}
[IntegrationTest]
public async Task SearchForLockedUnlockedIssues()
{
var lockedIssuesRequest = new SearchIssuesRequest();
lockedIssuesRequest.Repos.Add("octokit", "octokit.net");
lockedIssuesRequest.Is = new List<IssueIsQualifier> { IssueIsQualifier.Issue, IssueIsQualifier.Locked };
var lockedIssues = await _gitHubClient.Search.SearchIssues(lockedIssuesRequest);
var unlockedIssuesRequest = new SearchIssuesRequest();
unlockedIssuesRequest.Repos.Add("octokit", "octokit.net");
unlockedIssuesRequest.Is = new List<IssueIsQualifier> { IssueIsQualifier.Issue, IssueIsQualifier.Unlocked };
var unlockedIssues = await _gitHubClient.Search.SearchIssues(unlockedIssuesRequest);
Assert.All(lockedIssues.Items, i => Assert.True(i.Locked));
Assert.All(unlockedIssues.Items, i => Assert.False(i.Locked));
}
[IntegrationTest]
public async Task SearchForMergedPullRequests()
{

View File

@@ -170,6 +170,17 @@ public class SearchIssuesRequestTests
Assert.Contains("is:pr", request.MergedQualifiers());
}
[Fact]
public void HandlesIsLockedUnlockedAttributeCorrectly()
{
var request = new SearchIssuesRequest("test");
Assert.DoesNotContain(request.MergedQualifiers(), x => x.Contains("is:"));
request.Is = new List<IssueIsQualifier> { IssueIsQualifier.Locked, IssueIsQualifier.Unlocked };
Assert.Contains("is:locked", request.MergedQualifiers());
Assert.Contains("is:unlocked", request.MergedQualifiers());
}
[Fact]
public void HandlesStatusAttributeCorrectly()
{

View File

@@ -489,7 +489,11 @@ namespace Octokit
[Parameter(Value = "private")]
Private,
[Parameter(Value = "public")]
Public
Public,
[Parameter(Value = "locked")]
Locked,
[Parameter(Value = "unlocked")]
Unlocked
}
public enum IssueNoMetadataQualifier

View File

@@ -61,6 +61,14 @@ request.Involves = "terrajobst";
request.State = ItemState.All;
// or to just search closed issues
request.State = ItemState.Closed;
// you can filter by the "Is" qualifier
// the enum IssueIsQualifier contains the supported values
// you can filter for locked issues like this:
request.Is = new List<IssueIsQualifier> {
IssueIsQualifier.Issue,
IssueIsQualifier.Locked
};
```
There's other options available to control how the results are returned: