Skip to content

Conversation

jMarkP
Copy link
Contributor

@jMarkP jMarkP commented Jul 9, 2023

Resolves #227


Behavior

Before the change?

  • Using AllPages to query multi-page result sets would only ever query at most 2 pages of results: the first, top level query, and one invocation of each subquery.
  • This is because in a PagedSubquery, the pageInfo structure was never examined to see if there were any more pages to fetch, and so the caller would only ever call it for one page of results.
  • In addition, the PagedSubquery code would only append Results to the parent collection when it had (theoretically) finished paginating. But each invocation of RunPage overwrites the Results variable and so everything but the last page would have been lost.

Pseudocode for the previous RunPage logic for both PagedQuery and PagedSubquery (they share an implementation of this logic):

if (first invocation)
{
  run this query
  examine the results for any _nested_ entities which report as hasNextPage (<-- Note it doesn't check if the top level results set hasNextPage)
  push any such nested entities onto a stack of runners to be processed
}
else
{
  call RunPage on the next Runner in the stack
}

After the change?

  • This PR adds a hasMore field to record if the given Runner has more results it needs to process
  • The RunPage logic given above is extended to check that flag before continuing on to process the stack of Runners
if (first invocation || hasMore)
{
  if (first invocation)
    initialise
  run this query
  examine the results for any _nested_ entities which report as hasNextPage
  push any such nested entities onto a stack of runners to be processed
}
else
{
  call RunPage on the next Runner in the stack
}
  • Every invocation of RunPage on PagedSubquery now appends any new results to the parent collection, and clears it to make sure the next invocation is clean.
  • Additionally fixed a bug where the Variables passed into PagedSubquery.Runner weren't copied to a new Dictionary

Other information

  • This seems to fix the IssueTests integration tests for me

Additional info

Pull request checklist

  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been reviewed and added / updated if needed (for bug fixes / features)
  • Added the appropriate label for the given change

Does this introduce a breaking change?

Please see our docs on breaking changes to help!

  • Yes (Please add the Type: Breaking change label)
  • No

If Yes, what's the impact:

  • N/A

Pull request type

Please add the corresponding label for change this PR introduces:

  • Bugfix: Type: Bug
  • Feature/model/API additions: Type: Feature
  • Updates to docs or samples: Type: Documentation
  • Dependencies/code cleanup: Type: Maintenance

jMarkP added 3 commits July 9, 2023 22:30
Previously instances of PagedSubquery would not check their returned
PageInfo to see if they had any more pages of results to load and so
each subquery would only get run at most once.

It also didn't always call the `addResult` delegate to add a page of results to the
parent collection.
}
else
else if (subqueryRunners.Any())
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the change to add hasMore it's now possible to reach this branch with no subqueryRunners and then Peek throws an exception

@@ -201,7 +201,7 @@ public async Task Can_AutoPage_Issues_Comments_With_Subquery()
{
var query = new Query()
.Repository(owner: "octokit", name: "octokit.net")
.Issues().AllPages(50)
.Issues().AllPages(100)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are over 1000 issues in this repo now, so increase the page size to speed up the tests and reduce load on GitHub


// This is the first run, so run the master page.
subqueryResultSinks = new Dictionary<ISubquery, List<Action<object>>>();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to reinitialize this each time - the indexes of the List<> in each entry needs to match up with the parentIds and pageInfos extracted from the page of results. It's fine though because when we loop through them we enqueue a new subquery runner which captures the sinks

@kfcampbell
Copy link
Member

@jMarkP this is a bit embarrassing, but I've been unable to run these integration tests locally even on the main branch. I keep seeing the following error: The active test discovery was aborted. Reason: Test host process crashed : No usable version of libssl was found. I've re-installed .NET 3.1 and also installed OpenSSL 1.1, but I'm having issues linking them.

I've also tried the mcr.microsoft.com/dotnet/sdk:3.1 Docker image and cloned this project into it. However, when I run dotnet restore and dotnet test, all tests appear to be passing.

Our integration tests aren't running in CI at the moment, so I'd like to validate the test fixes personally before shipping this PR. Do you mind explaining how you're running the integration tests here so I can try to replicate it? Thanks!

@jMarkP
Copy link
Contributor Author

jMarkP commented Jul 15, 2023

@jMarkP this is a bit embarrassing, but I've been unable to run these integration tests locally even on the main branch. I keep seeing the following error: The active test discovery was aborted. Reason: Test host process crashed : No usable version of libssl was found. I've re-installed .NET 3.1 and also installed OpenSSL 1.1, but I'm having issues linking them.

I've also tried the mcr.microsoft.com/dotnet/sdk:3.1 Docker image and cloned this project into it. However, when I run dotnet restore and dotnet test, all tests appear to be passing.

Our integration tests aren't running in CI at the moment, so I'd like to validate the test fixes personally before shipping this PR. Do you mind explaining how you're running the integration tests here so I can try to replicate it? Thanks!

Hi @kfcampbell! I was running the integration tests locally on my Mac (both within Rider and via dotnet test) - both with the OCTOKIT_GQL_GITHUBUSERNAME and OCTOKIT_GQL_OAUTHTOKEN env vars set so it can auth to GitHub as me. Output of my local dotnet --info below:

`dotnet --info`
/Users/mark/dev/octokit.graphql.net/Octokit.GraphQL.IntegrationTests  % dotnet --info
.NET SDK:
 Version:   7.0.202
 Commit:    6c74320bc3

Runtime Environment:
OS Name: Mac OS X
OS Version: 13.4
OS Platform: Darwin
RID: osx.13-x64
Base Path: /usr/local/share/dotnet/sdk/7.0.202/

Host:
Version: 7.0.4
Architecture: x64
Commit: 0a396acafe

.NET SDKs installed:
2.2.207 [/usr/local/share/dotnet/sdk]
3.1.100 [/usr/local/share/dotnet/sdk]
3.1.101 [/usr/local/share/dotnet/sdk]
3.1.102 [/usr/local/share/dotnet/sdk]
3.1.200 [/usr/local/share/dotnet/sdk]
3.1.202 [/usr/local/share/dotnet/sdk]
3.1.302 [/usr/local/share/dotnet/sdk]
3.1.402 [/usr/local/share/dotnet/sdk]
3.1.404 [/usr/local/share/dotnet/sdk]
3.1.405 [/usr/local/share/dotnet/sdk]
5.0.100 [/usr/local/share/dotnet/sdk]
5.0.101 [/usr/local/share/dotnet/sdk]
5.0.102 [/usr/local/share/dotnet/sdk]
5.0.300 [/usr/local/share/dotnet/sdk]
7.0.202 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
Microsoft.AspNetCore.All 2.2.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.8 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.15 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.16 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.18 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.22 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.23 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
None

Environment variables:
Not set

global.json file:
Not found

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download

That no usable version of libssl found error is coincidentally something I've seen on a completely different project I was working on last week where I was trying to install net 2 & 3 on an ubuntu 22 image. In that case I had to curl the deb package for libssl1.1 directly from the net and dkpg install it (this comment). I also ended up running into dotnet/runtime#27792 when dotnet tried to form an SSL connection. This SO answer managed to fix that for us.

I think however that running the tests via dotnet 6 or 7 is probably the easiest thing to try here. It can still build and run older netstandard2.0 targets, and net 3.1 is out of LTS so may be diminishing returns trying to get it to run. I've just run the integration tests in the supplied devcontainer in this repo (which runs .net 7.0.305) and while there are still some failing integration tests (which are failing on main too), this PR looks to have reduced the number of failing tests from 5 to 3 and fixed the IssuesTests which test pagination.

dotnet test Octokit.GraphQL.IntegrationTests

  • On main:
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:12.43]     Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_Comments_With_Subquery [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_Comments_With_Subquery [9 s]
  Error Message:
   Assert.Contains() Failure
Not found: (filter expression)
In value:  List<<>f__AnonymousType8<ID, List<<>f__AnonymousType10<String, List<ID>>>>> [{ Id = MDU6SXNzdWUxMTU1NTk2Nw==, Comments = System.Collections.Generic.List`1[<>f__AnonymousType10`2[System.String,System.Collections.Generic.List`1[Octokit.GraphQL.ID]]] }, { Id = MDU6SXNzdWUyMDI5NzkxMQ==, Comments = System.Collections.Generic.List`1[<>f__AnonymousType10`2[System.String,System.Collections.Generic.List`1[Octokit.GraphQL.ID]]] }, { Id = MDU6SXNzdWUyMDQyODYzNA==, Comments = System.Collections.Generic.List`1[<>f__AnonymousType10`2[System.String,System.Collections.Generic.List`1[Octokit.GraphQL.ID]]] }, { Id = MDU6SXNzdWUyMDQ2ODkwNQ==, Comments = System.Collections.Generic.List`1[<>f__AnonymousType10`2[System.String,System.Collections.Generic.List`1[Octokit.GraphQL.ID]]] }, { Id = MDU6SXNzdWUyMDQ5MTk0OQ==, Comments = System.Collections.Generic.List`1[<>f__AnonymousType10`2[System.String,System.Collections.Generic.List`1[Octokit.GraphQL.ID]]] }, ...]
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_Comments_With_Subquery() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/IssueTests.cs:line 217
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:00:24.01]     Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_With_Subquery [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_With_Subquery [2 s]
  Error Message:
   Assert.True() Failure
Expected: True
Actual:   False
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.IssueTests.Can_AutoPage_Issues_With_Subquery() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/IssueTests.cs:line 234
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:00:45.45]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment [563 ms]
  Error Message:
   Assert.Equal() Failure
                  ↓ (pos 8)
Expected: webhooks-methods.js
Actual:   webhooks.net
                  ↑ (pos 8)
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/RepositoryTests.cs:line 263
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:00:55.89]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment [614 ms]
  Error Message:
   Assert.Equal() Failure
                  ↓ (pos 8)
Expected: webhooks-methods.js
Actual:   webhooks.net
                  ↑ (pos 8)
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/RepositoryTests.cs:line 178
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:00:57.76]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [SKIP]
[xUnit.net 00:00:58.33]     Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [SKIP]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [1 ms]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [1 ms]
[xUnit.net 00:00:59.18]     Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api [583 ms]
  Error Message:
   Assert.Equal() Failure
Expected: (null)
Actual:   
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/ViewerTests.cs:line 58
--- End of stack trace from previous location where exception was thrown ---

Failed!  - Failed:     5, Passed:    44, Skipped:     2, Total:    51, Duration: 1 m 4 s - Octokit.GraphQL.IntegrationTests.dll (netcoreapp3.1)
  • On this branch:
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:03:15.98]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment [601 ms]
  Error Message:
   Assert.Equal() Failure
                  ↓ (pos 8)
Expected: webhooks-methods.js
Actual:   webhooks.net
                  ↑ (pos 8)
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Object_Fragment() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/RepositoryTests.cs:line 263
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:03:25.29]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment [539 ms]
  Error Message:
   Assert.Equal() Failure
                  ↓ (pos 8)
Expected: webhooks-methods.js
Actual:   webhooks.net
                  ↑ (pos 8)
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Query_Organization_Repositories_Select_Simple_Fragment() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/RepositoryTests.cs:line 178
--- End of stack trace from previous location where exception was thrown ---
[xUnit.net 00:03:27.35]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [SKIP]
[xUnit.net 00:03:27.93]     Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [SKIP]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [1 ms]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [1 ms]
[xUnit.net 00:03:28.79]     Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api [FAIL]
  Failed Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api [586 ms]
  Error Message:
   Assert.Equal() Failure
Expected: (null)
Actual:   
  Stack Trace:
     at Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.Viewer_By_GraphyQL_Matches_Api() in /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/Queries/ViewerTests.cs:line 58
--- End of stack trace from previous location where exception was thrown ---

Failed!  - Failed:     3, Passed:    46, Skipped:     2, Total:    51, Duration: 3 m 33 s - Octokit.GraphQL.IntegrationTests.dll (netcoreapp3.1)

@jMarkP
Copy link
Contributor Author

jMarkP commented Jul 15, 2023

Two of the integration tests are failing becauise webhooks-methods.js is no logner the last repo alphabetically in the octokit org, and the last failing one is because the API endpoint returns null for a user's bio while GraphQL returns an empty string.

As both are pretty simple fixes I've included them in this PR and now I get a clean run of the integration tests when running in the supplied devcontainer:

vscode ➜ /workspaces/octokit.graphql.net (paged-fix-2) $ dotnet test Octokit.GraphQL.IntegrationTests/
  Determining projects to restore...
  All projects are up-to-date for restore.
  Octokit.GraphQL.Core -> /workspaces/octokit.graphql.net/Octokit.GraphQL.Core/bin/Debug/netstandard2.0/Octokit.GraphQL.Core.dll
  Octokit.GraphQL -> /workspaces/octokit.graphql.net/Octokit.GraphQL/bin/Debug/netstandard2.0/Octokit.GraphQL.dll
  Octokit.GraphQL.IntegrationTests -> /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/bin/Debug/netcoreapp3.1/Octokit.GraphQL.IntegrationTests.dll
Test run for /workspaces/octokit.graphql.net/Octokit.GraphQL.IntegrationTests/bin/Debug/netcoreapp3.1/Octokit.GraphQL.IntegrationTests.dll (.NETCoreApp,Version=v3.1)
Microsoft (R) Test Execution Command Line Tool Version 17.6.0 (x64)
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
[xUnit.net 00:03:25.69]     Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [SKIP]
[xUnit.net 00:03:26.28]     Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [SKIP]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.RepositoryTests.Should_Query_RepositoryOwner_Repositories [1 ms]
  Skipped Octokit.GraphQL.IntegrationTests.Queries.ViewerTests.DateTime_Filter_Works [1 ms]

Passed!  - Failed:     0, Passed:    49, Skipped:     2, Total:    51, Duration: 3 m 31 s - Octokit.GraphQL.IntegrationTests.dll (netcoreapp3.1)

@jMarkP
Copy link
Contributor Author

jMarkP commented Jul 23, 2023

@kfcampbell - do you think there's any chance to get this (and #299) merged this week? I'm hoping to make use of these fixes in some upcoming work.

@kfcampbell
Copy link
Member

@jMarkP thank you so much for the clear explanations! I missed those required environment variables somehow 🤦.

When exporting valid credentials, I still see one failing test deterministically, but that's a big improvement on the main branch, for which my test output reflects yours.

@kfcampbell kfcampbell merged commit c99858e into octokit:main Jul 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Inner paging doesn't work
2 participants