Merge pull request 'fix(cron): retrieve all GitRepo's instead of first 25' (#198) from Chewing_Bever/vieter:cron-25-bug into dev
	
		
			
	
		
	
	
		
			
				
	
				ci/woodpecker/push/lint Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/docs Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/arch Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/build Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/test Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/docker Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/deploy Pipeline was successful
				
					Details
				
			
		
	
				
					
				
			
				
	
				ci/woodpecker/push/lint Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/docs Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/arch Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/build Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/test Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/docker Pipeline was successful
				
					Details
				
			
		
			
				
	
				ci/woodpecker/push/deploy Pipeline was successful
				
					Details
				
			
		
	Reviewed-on: vieter/vieter#198pull/201/head
						commit
						c0b739035b
					
				| 
						 | 
				
			
			@ -4,7 +4,7 @@ import models { GitRepo, GitRepoFilter }
 | 
			
		|||
import net.http { Method }
 | 
			
		||||
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 {
 | 
			
		||||
	params := models.params_from(filter)
 | 
			
		||||
	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
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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.
 | 
			
		||||
pub fn (c &Client) get_git_repo(id int) ?GitRepo {
 | 
			
		||||
	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() {
 | 
			
		||||
	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.api_update_timestamp = time.now().add_seconds(daemon.api_update_retry_timeout)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue