Refactor some parts of github.go

Add additional qa tasks to Makefile
Add vendor to gitignore
remotes/1713600444513338988/master
Jonas Franz 5 years ago
parent 000ed0ee7e
commit f758e29097
  1. 2
      .gitignore
  2. 9
      Makefile
  3. 46
      migrations/github.go
  4. 4
      migrations/github_test.go

2
.gitignore vendored

@ -16,3 +16,5 @@
.glide/
data/
vendor/

@ -74,12 +74,19 @@ lint:
fi
golint -set_exit_status $(go list ./...)
.PHONY: ineffassign
ineffassign:
@hash ineffassign > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
$(GO) get -u github.com/gordonklaus/ineffassign; \
fi
ineffassign .
.PHONY: vet
vet:
go vet ./...
.PHONY: test
test: lint vet
test: lint vet ineffassign
go test -tags web -cover ./...
.PHONY: coverage

@ -53,6 +53,26 @@ func (fm *FetchMigratory) MigrateFromGitHub() error {
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Info("git repository migrated")
if fm.Options.Issues || fm.Options.PullRequests {
if err := fm.MigrateIssuesFromGitHub(); err != nil {
return err
}
}
if fm.Status.FatalError != nil {
fm.Status.Stage = Failed
fm.Logger.WithFields(logrus.Fields{
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Errorf("migration failed: %v", fm.Status.FatalError)
return nil
}
fm.Status.Stage = Finished
fm.Logger.WithFields(logrus.Fields{
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Info("migration successful")
return nil
}
// MigrateIssuesFromGitHub migrates all issues from GitHub to Gitea
func (fm *FetchMigratory) MigrateIssuesFromGitHub() error {
var commentsChan chan *[]*github.IssueComment
if fm.Options.Comments {
commentsChan = fm.fetchCommentsAsync()
@ -91,17 +111,23 @@ func (fm *FetchMigratory) MigrateFromGitHub() error {
}
}
if fm.Options.Comments {
return fm.MigrateCommentsFromGitHub()
}
return nil
}
func (fm *FetchMigratory) MigrateCommentsFromGitHub() error {
var comments []*github.IssueComment
if cmts := <-commentsChan; cmts == nil {
var cmts *[]*github.IssueComment
if cmts = <-commentsChan; cmts == nil {
fm.Status.Stage = Failed
err := fmt.Errorf("error while fetching issue comments")
fm.Logger.WithFields(logrus.Fields{
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Errorf("migration failed: %v", fm.Status.FatalError)
return err
} else {
comments = *cmts
}
comments = *cmts
if err != nil {
fm.Status.Stage = Failed
fm.Status.FatalError = err
@ -157,20 +183,6 @@ func (fm *FetchMigratory) MigrateFromGitHub() error {
}(issue, comms)
}
wg.Wait()
}
}
if fm.Status.FatalError != nil {
fm.Status.Stage = Failed
fm.Logger.WithFields(logrus.Fields{
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Errorf("migration failed: %v", fm.Status.FatalError)
return nil
}
fm.Status.Stage = Finished
fm.Logger.WithFields(logrus.Fields{
"repo": fmt.Sprintf("%s/%s", fm.RepoOwner, fm.RepoName),
}).Info("migration successful")
return nil
}
var issueIndexRegex = regexp.MustCompile(`/(issues|pull)/([0-9]+)#`)

@ -17,7 +17,7 @@ func TestGetIssueIndexFromHTMLURLAlt(t *testing.T) {
res, err := getIssueIndexFromHTMLURLAlt("https://github.com/octocat/Hello-World/issues/1347#issuecomment-1")
assert.NoError(t, err)
assert.Equal(t, 1347, res)
res, err = getIssueIndexFromHTMLURLAlt("https://github.com/oment-1")
_, err = getIssueIndexFromHTMLURLAlt("https://github.com/oment-1")
assert.Error(t, err)
}
@ -31,7 +31,7 @@ func TestGetIssueIndexFromHTMLURL(t *testing.T) {
res, err := getIssueIndexFromHTMLURL("https://github.com/octocat/Hello-World/issues/1347#issuecomment-1")
assert.NoError(t, err)
assert.Equal(t, 1347, res)
res, err = getIssueIndexFromHTMLURL("https://github.com/oment-1")
_, err = getIssueIndexFromHTMLURL("https://github.com/oment-1")
assert.Error(t, err)
}

Loading…
Cancel
Save