diff --git a/bridge/github/import.go b/bridge/github/import.go index d2e5d659..619c1c1e 100644 --- a/bridge/github/import.go +++ b/bridge/github/import.go @@ -62,11 +62,12 @@ func (gi *githubImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, // We need the current event and one look ahead event. currEvent = nextEvent if currEvent == nil { - currEvent = gi.mediator.NextImportEvent() + currEvent = gi.getEventHandleMsgs() } if currEvent == nil { break } + nextEvent = gi.getEventHandleMsgs() switch event := currEvent.(type) { case MessageEvent: @@ -78,7 +79,6 @@ func (gi *githubImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, return } // second: create new issue - nextEvent = gi.mediator.NextImportEvent() switch next := nextEvent.(type) { case IssueEditEvent: // consuming and using next event @@ -100,7 +100,6 @@ func (gi *githubImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, return } case TimelineEvent: - nextEvent = gi.mediator.NextImportEvent() if next, ok := nextEvent.(CommentEditEvent); ok && event.Typename == "IssueComment" { // consuming and using next event nextEvent = nil @@ -136,6 +135,19 @@ func (gi *githubImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, return out, nil } +func (gi *githubImporter) getEventHandleMsgs() ImportEvent { + for { + // read event from import mediator + event := gi.mediator.NextImportEvent() + // consume (and use) all message events + if e, ok := event.(MessageEvent); ok { + fmt.Println(e.msg) + continue + } + return event + } +} + func (gi *githubImporter) commit(b *cache.BugCache, out chan<- core.ImportResult) error { if b == nil { return nil