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

fix(gitea): use endpoint for pr cache pagination #34022

Merged
merged 2 commits into from
Feb 4, 2025

Conversation

viceice
Copy link
Member

@viceice viceice commented Feb 4, 2025

Changes

Use configured endpoint in pr cache. The cache uses own pagination.

Context

Documentation (please check one with an [x])

  • I have updated the documentation, or
  • No documentation update is required

How I've tested my work (please select one)

I have verified these changes via:

  • Code inspection only, or
  • Newly added/modified unit tests, or
  • No unit tests but ran on a real repository, or
  • Both unit tests + ran on a real repository

@viceice viceice requested review from rarkins and secustor February 4, 2025 08:53
@viceice
Copy link
Member Author

viceice commented Feb 4, 2025

@zharinov i think we should create / update the http class to return an async iterator when paginate is true, so we can iterate and cancel fetching. That way we don't need another pagination just for pr cache. WDYT?

Copy link
Collaborator

@rarkins rarkins left a comment

Choose a reason for hiding this comment

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

So will this always rewrite, and ignore the host in the link header?

@viceice
Copy link
Member Author

viceice commented Feb 4, 2025

So will this always rewrite, and ignore the host in the link header?

yes, same behavior as we already do in GiteaHttp

const resolvedUrl = resolveUrl(path, options?.baseUrl ?? baseUrl);
const opts = {
baseUrl,
...options,
};
const res = await super.request<T>(resolvedUrl, opts);
const pc = getPaginationContainer<T>(res.body);
if (opts.paginate && pc) {
const total = parseInt(res.headers['x-total-count'] as string, 10);
let nextPage = parseInt(resolvedUrl.searchParams.get('page') ?? '1', 10);
while (total && pc.length < total) {
nextPage += 1;
resolvedUrl.searchParams.set('page', nextPage.toString());
const nextRes = await super.request<T>(resolvedUrl.toString(), opts);
const nextPc = getPaginationContainer<T>(nextRes.body);
if (nextPc === null) {
break;
}
pc.push(...nextPc);
}
}

@viceice
Copy link
Member Author

viceice commented Feb 4, 2025

i can also change it to simple pagination, like we do in GiteaHttp and Github pr cache 🤷‍♂️

@viceice viceice added this pull request to the merge queue Feb 4, 2025
Merged via the queue into main with commit f7dcb3c Feb 4, 2025
39 checks passed
@viceice viceice deleted the fix/gitea/use-endpoint-for-pr-cache-pagination branch February 4, 2025 20:39
@renovate-release
Copy link
Collaborator

🎉 This PR is included in version 39.160.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

SuperSandro2000 added a commit to SuperSandro2000/renovate that referenced this pull request Feb 5, 2025
* upstream/main: (27 commits)
  chore(deps): update python:3.13 docker digest to 7be9b75 (renovatebot#34045)
  chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v13.7.7 (renovatebot#34043)
  docs(gitea): fix `gitUrl` support (renovatebot#34038)
  feat(npm): Support for new option `replacementApproach` (renovatebot#34018)
  chore(deps): lock file maintenance (renovatebot#33998)
  chore(deps): update sigstore/cosign-installer action to v3.8.0 (renovatebot#34034)
  docs(managers/pip-compile): update list of source files and managers (renovatebot#34030)
  chore(deps): update linters to v8.22.0 (renovatebot#33880)
  fix(gitea): use endpoint for pr cache pagination (renovatebot#34022)
  chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.119.0 (renovatebot#34032)
  feat(gradle): add support for gradle repository content descriptors (renovatebot#33692)
  feat(manager): add elixir as a mise core tooling (renovatebot#34025)
  chore(deps): update python:3.13 docker digest to d59d263 (renovatebot#34026)
  chore(deps): update ghcr.io/containerbase/devcontainer docker tag to v13.7.6 (renovatebot#34021)
  fix(gitea): allow overriding platform version (renovatebot#34019)
  chore(deps): update dependency @types/lodash to v4.17.15 (renovatebot#34020)
  fix(manager/terragrunt): Update terragrunt packageName (renovatebot#33810)
  feat(pip-compile): support `uv pip compile` (renovatebot#33952)
  fix(deps): update dependency mkdocs-material to v9.6.2 (renovatebot#34010)
  chore(label-actions): improve logs, pr closing (renovatebot#33995)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants