Replies: 2 comments 3 replies
-
Bumping this topic as we are struggling with performance. Our org has 9000 repositories and we have recently rolled out the first org setting (dependabot alerts). The cron job is running currently every hour but we already hit the rate limit of the GitHub App. What I am observing now is that once the dependabot alerts are configured, any other request (e.g. setting topics) is just queued and waits until all 9k repos are traversed and the setting is applied. In order to scale better I believe that the probot app should be separated into multiple ones, each of them being responsible for doing one thing, e.g., configuring branch protection rules, configuring security alerts, configuring general repository settings, etc. The rate limit could be fixed by having multiple GitHub Apps, one for each category (branch protection, security alerts, etc.) EDIT: |
Beta Was this translation helpful? Give feedback.
-
What I did so far is:
Advantage is that I have two rate limits for each container and I can guarantee that at least all events triggered from the GitHub App will be picked up by safe-settings. In front of these two containers I am running traefik with some router rules configured to forward the requests to the appropriate probot instance. |
Beta Was this translation helpful? Give feedback.
-
Imagine you have thousands of repositories in your organization and would like to manage all the repos with safe-settings. Would it be possible to run multiple safe-settings containers in parallel (assuming with a load-balancer, e.g. traefik, in front of) and coping with the huge amount of check-run, check-suite, repository.edited, etc. events?
A change in the org settings file would not get any benefit out of it since the request would be called from one of the containers. But at least the handling of all the received events could be nicely spread among multiple containers.
Or would a different approach be better, something like adding a queuing system?
Beta Was this translation helpful? Give feedback.
All reactions