fix(cron): retrieve all GitRepo's instead of first 25 #198
|
@ -4,7 +4,7 @@ import models { GitRepo, GitRepoFilter }
|
||||||
import net.http { Method }
|
import net.http { Method }
|
||||||
import response { Response }
|
import response { Response }
|
||||||
|
|
||||||
// get_git_repos returns the current list of repos.
|
// get_git_repos returns a list of GitRepo's, given a filter object.
|
||||||
pub fn (c &Client) get_git_repos(filter GitRepoFilter) ?[]GitRepo {
|
pub fn (c &Client) get_git_repos(filter GitRepoFilter) ?[]GitRepo {
|
||||||
params := models.params_from(filter)
|
params := models.params_from(filter)
|
||||||
data := c.send_request<[]GitRepo>(Method.get, '/api/repos', params)?
|
data := c.send_request<[]GitRepo>(Method.get, '/api/repos', params)?
|
||||||
|
@ -12,6 +12,27 @@ pub fn (c &Client) get_git_repos(filter GitRepoFilter) ?[]GitRepo {
|
||||||
return data.data
|
return data.data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get_all_git_repos retrieves *all* GitRepo's from the API using the default
|
||||||
|
// limit.
|
||||||
|
pub fn (c &Client) get_all_git_repos() ?[]GitRepo {
|
||||||
|
mut repos := []GitRepo{}
|
||||||
|
mut offset := u64(0)
|
||||||
|
|
||||||
|
for {
|
||||||
|
sub_repos := c.get_git_repos(offset: offset)?
|
||||||
|
|
||||||
|
if sub_repos.len == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
repos << sub_repos
|
||||||
|
|
||||||
|
offset += u64(sub_repos.len)
|
||||||
|
}
|
||||||
|
|
||||||
|
return repos
|
||||||
|
}
|
||||||
|
|
||||||
// get_git_repo returns the repo for a specific ID.
|
// get_git_repo returns the repo for a specific ID.
|
||||||
pub fn (c &Client) get_git_repo(id int) ?GitRepo {
|
pub fn (c &Client) get_git_repo(id int) ?GitRepo {
|
||||||
data := c.send_request<GitRepo>(Method.get, '/api/repos/$id', {})?
|
data := c.send_request<GitRepo>(Method.get, '/api/repos/$id', {})?
|
||||||
|
|
|
@ -178,7 +178,7 @@ fn (mut d Daemon) schedule_build(repo GitRepo) {
|
||||||
fn (mut d Daemon) renew_repos() {
|
fn (mut d Daemon) renew_repos() {
|
||||||
d.linfo('Renewing repos...')
|
d.linfo('Renewing repos...')
|
||||||
|
|
||||||
mut new_repos := d.client.get_git_repos() or {
|
mut new_repos := d.client.get_all_git_repos() or {
|
||||||
d.lerror('Failed to renew repos. Retrying in ${daemon.api_update_retry_timeout}s...')
|
d.lerror('Failed to renew repos. Retrying in ${daemon.api_update_retry_timeout}s...')
|
||||||
d.api_update_timestamp = time.now().add_seconds(daemon.api_update_retry_timeout)
|
d.api_update_timestamp = time.now().add_seconds(daemon.api_update_retry_timeout)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue