GitHubリポジトリのリポジトリスキャンに時間がかかる
GitHubリポジトリに対してScan Repository Now
を実行すると以下ログが表示されてスキャンが終わらない問題に遭遇した。
ログ内容としてはGitHubAPIのレート制限に引っかかっているかららしい
15:55:22 Connecting to https://api.github.com with no credentials, anonymous access
15:55:23 Jenkins-Imposed API Limiter: Current quota for Github API usage has 52 remaining (1 over budget). Next quota of 60 in 59 分. Sleeping for 5 分 12 秒.
15:55:23 Jenkins is attempting to evenly distribute GitHub API requests. To configure a different rate limiting strategy, such as having Jenkins restrict GitHub API requests only when near or above the GitHub rate limit, go to "GitHub API usage" under "Configure System" in the Jenkins settings.
15:58:24 Jenkins-Imposed API Limiter: Still sleeping, now only 2 分 10 秒 remaining.
16:00:36 Jenkins-Imposed API Limiter: Current quota for Github API usage has 49 remaining (1 over budget). Next quota of 60 in 54 分. Sleeping for 4 分 36 秒.
16:00:36 Jenkins is attempting to evenly distribute GitHub API requests. To configure a different rate limiting strategy, such as having Jenkins restrict GitHub API requests only when near or above the GitHub rate limit, go to "GitHub API usage" under "Configure System" in the Jenkins settings.
解決方法
JenkinsにGitHubのPersonal access tokens
を登録して、GitHubの認証を通す。
- GitHubの
Personal access tokens
を作成する - 作成した
Personal access tokens
をJenkinsに認証情報を登録する。- 登録画面の場所
ダッシュボード→Jenkinsの管理→認証情報→(global)→Add Credentials - 以下情報を登録画面に入力する。
- 種類 ユーザー名とパスワード
- ユーザー名 GitHubのユーザー名
- パスワード 作成した
Personal access tokens
- ID 登録情報を識別できる好きな名前にする。
- 登録画面の場所
- ジョブに認証情報を使うように設定する。
- 設定画面の場所
ダッシュボード→My-Pipeline→Configuration
- 設定画面の場所
Credentials
項目で認証情報を登録したGitHubのユーザー名を選択する(例: username/*****
)