![]() |
|
|
Issue Type:
|
Improvement
|
Assignee:
|
Sam Kottler
|
Components:
|
github-oauth |
Created:
|
31/Jul/14 8:17 PM
|
Description:
|
Github pull request #27
On jenkins instances with a large number of jobs the previous implementation got very slow because it made a github api call per job & did not do a great job of caching. This pull reduces the chatter with the github api by asking which repos the user has access to and caching the results.
There are 2 big changes in this pull
1. The algorithm now builds and caches a list of "my repositories"
It makes these api calls to github:
1. Get list of the non-organization repos user has access to /api/v3/user/repos
2. Get list of organizations with repos user has access to /api/v3/user/orgs. For each organization
Get a list of repos in that org user has access to /api/v3/orgs/XXX/repos
Because of pagination it sometimes makes several calls to get the full list of repos.
2. Cache list of public repositories for read-only access.
For this it still makes an api call per repository but caches the results for all users.
On my jenkins instance with ~400 projects this has improved performance from unusable (minutes to load the home page) to pretty fast (~4 seconds as it builds the cache and faster after that).
|
Project:
|
Jenkins
|
Labels:
|
plugin
|
Priority:
|
Major
|
Reporter:
|
alex rothenberg
|
|
|
|
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
|
--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit
https://groups.google.com/d/optout.