Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Include disabled repos in the cache #18740

Closed
jamietanna opened this issue Nov 3, 2022 · 5 comments
Closed

Include disabled repos in the cache #18740

jamietanna opened this issue Nov 3, 2022 · 5 comments
Labels
status:requirements Full requirements are not yet known, so implementation should not be started type:feature Feature (new functionality)

Comments

@jamietanna
Copy link
Contributor

What would you like Renovate to be able to do?

When performing an --autodiscover on a particularly large organisation, with ~2000 repos, caching is being used to improve the performance.

However, this leads to a cache miss for these repos consistently, leading to a lot of wasted downloads.

If you have any ideas on how this should be implemented, please tell us here.

Store the disabled repos' .git folder (#18739) or the full repository, so repeated git clones can be replaced with a git fetch.

Is this a feature you are interested in implementing yourself?

Maybe

@jamietanna jamietanna added priority-5-triage status:requirements Full requirements are not yet known, so implementation should not be started type:feature Feature (new functionality) labels Nov 3, 2022
@rarkins
Copy link
Collaborator

rarkins commented Nov 3, 2022

There is no "the cache" - Renovate has multiple. Also, what type of disabling do you mean, e.g. disable in config, or disabled due to being archived, etc?

@jamietanna
Copy link
Contributor Author

Sorry, by "the cache", I am referring to persistRepoData.

By "disabled", I mean a repo that is not onboarded. I agree that archived repos should be excluded.

@rarkins
Copy link
Collaborator

rarkins commented Nov 3, 2022

We don't usually use "cache" to describe the persistRepoData feature.

Regarding this feature, are you sure it saves you a lot of time? In the hosted app we saw the average repo take ~3 seconds for cloning, and the issues with persisting repo data and copying it back and forth didn't seem worth it.

Also a repo which is not onboarded isn't considered "disabled" in Renovate terminology. You're referring to repos which have a "Configure Renovate" PR open, not yet merged?

@jamietanna
Copy link
Contributor Author

Ah that's fair. We were hoping that it would make things a little bit quicker, but if you've also not had great success with it, maybe we'll leave it off. It was aiming to improve speed to counteract renovatebot/github-action#648 (also see renovatebot/github-action#646)

I mentioned "disabled", as I saw it in this output:

 INFO: Repository started (repository={org}/{repo})
       "renovateVersion": "34.2.0"
 INFO: Repository is disabled - skipping (repository={org}/{repo})

This is based on the following in our config.js:

  requireConfig: "required",
  onboarding: false,

And the repos that show this message do not have an onboarding PR, nor are onboarded.

@rarkins
Copy link
Collaborator

rarkins commented Nov 3, 2022

If you have requireConfig=required then yes I'd also consider that "disabled".

I think if you're interested in optimizations then you should take a look at what we're doing with repositoryCache. It's still classified as experimental but we try not to make breaking changes. In the hosted app now 80% of the time we don't even clone a repo. However it's not optimized for disabled as you have it, and could be a little tricky to know if a config file has been added.

@renovatebot renovatebot locked and limited conversation to collaborators Oct 1, 2023
@rarkins rarkins converted this issue into discussion #24857 Oct 1, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
status:requirements Full requirements are not yet known, so implementation should not be started type:feature Feature (new functionality)
Projects
None yet
Development

No branches or pull requests

2 participants