@@ -60,7 +60,7 @@ func (repo *Repository) updateIndexerStatus(sha string) error {
6060}
6161
6262type repoIndexerOperation struct {
63- repo * Repository
63+ repoID int64
6464 deleted bool
6565 watchers []chan <- error
6666}
@@ -145,7 +145,7 @@ func populateRepoIndexer(maxRepoID int64) {
145145 }
146146 for _ , repo := range repos {
147147 repoIndexerOperationQueue <- repoIndexerOperation {
148- repo : repo ,
148+ repoID : repo . ID ,
149149 deleted : false ,
150150 }
151151 maxRepoID = repo .ID - 1
@@ -154,7 +154,12 @@ func populateRepoIndexer(maxRepoID int64) {
154154 log .Info ("Done populating the repo indexer with existing repositories" )
155155}
156156
157- func updateRepoIndexer (repo * Repository ) error {
157+ func updateRepoIndexer (repoID int64 ) error {
158+ repo , err := getRepositoryByID (x , repoID )
159+ if err != nil {
160+ return err
161+ }
162+
158163 sha , err := getDefaultBranchSha (repo )
159164 if err != nil {
160165 return err
@@ -362,11 +367,11 @@ func processRepoIndexerOperationQueue() {
362367 op := <- repoIndexerOperationQueue
363368 var err error
364369 if op .deleted {
365- if err = indexer .DeleteRepoFromIndexer (op .repo . ID ); err != nil {
370+ if err = indexer .DeleteRepoFromIndexer (op .repoID ); err != nil {
366371 log .Error ("DeleteRepoFromIndexer: %v" , err )
367372 }
368373 } else {
369- if err = updateRepoIndexer (op .repo ); err != nil {
374+ if err = updateRepoIndexer (op .repoID ); err != nil {
370375 log .Error ("updateRepoIndexer: %v" , err )
371376 }
372377 }
@@ -378,12 +383,12 @@ func processRepoIndexerOperationQueue() {
378383
379384// DeleteRepoFromIndexer remove all of a repository's entries from the indexer
380385func DeleteRepoFromIndexer (repo * Repository , watchers ... chan <- error ) {
381- addOperationToQueue (repoIndexerOperation {repo : repo , deleted : true , watchers : watchers })
386+ addOperationToQueue (repoIndexerOperation {repoID : repo . ID , deleted : true , watchers : watchers })
382387}
383388
384389// UpdateRepoIndexer update a repository's entries in the indexer
385390func UpdateRepoIndexer (repo * Repository , watchers ... chan <- error ) {
386- addOperationToQueue (repoIndexerOperation {repo : repo , deleted : false , watchers : watchers })
391+ addOperationToQueue (repoIndexerOperation {repoID : repo . ID , deleted : false , watchers : watchers })
387392}
388393
389394func addOperationToQueue (op repoIndexerOperation ) {
0 commit comments