diff options
Diffstat (limited to 'bridge')
-rw-r--r-- | bridge/core/config.go | 2 | ||||
-rw-r--r-- | bridge/github/config.go | 2 | ||||
-rw-r--r-- | bridge/github/export.go | 11 | ||||
-rw-r--r-- | bridge/github/export_test.go | 7 | ||||
-rw-r--r-- | bridge/github/import.go | 5 | ||||
-rw-r--r-- | bridge/github/import_integration_test.go | 11 | ||||
-rw-r--r-- | bridge/github/import_test.go | 9 | ||||
-rw-r--r-- | bridge/gitlab/config.go | 2 | ||||
-rw-r--r-- | bridge/gitlab/export.go | 11 | ||||
-rw-r--r-- | bridge/gitlab/export_test.go | 7 | ||||
-rw-r--r-- | bridge/gitlab/import.go | 15 | ||||
-rw-r--r-- | bridge/gitlab/import_test.go | 9 | ||||
-rw-r--r-- | bridge/jira/client.go | 2 | ||||
-rw-r--r-- | bridge/jira/config.go | 2 | ||||
-rw-r--r-- | bridge/jira/export.go | 4 | ||||
-rw-r--r-- | bridge/jira/import.go | 16 | ||||
-rw-r--r-- | bridge/jira/jira.go | 2 | ||||
-rw-r--r-- | bridge/launchpad/config.go | 2 | ||||
-rw-r--r-- | bridge/launchpad/import.go | 2 |
19 files changed, 66 insertions, 55 deletions
diff --git a/bridge/core/config.go b/bridge/core/config.go index 7f8d7e13..45f1afa4 100644 --- a/bridge/core/config.go +++ b/bridge/core/config.go @@ -4,7 +4,7 @@ import ( "fmt" "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/identity" + "github.com/MichaelMure/git-bug/entities/identity" ) func FinishConfig(repo *cache.RepoCache, metaKey string, login string) error { diff --git a/bridge/github/config.go b/bridge/github/config.go index 3dfbd14b..6b847394 100644 --- a/bridge/github/config.go +++ b/bridge/github/config.go @@ -19,7 +19,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/input" + "github.com/MichaelMure/git-bug/commands/input" "github.com/MichaelMure/git-bug/repository" ) diff --git a/bridge/github/export.go b/bridge/github/export.go index 5164fcab..447e4342 100644 --- a/bridge/github/export.go +++ b/bridge/github/export.go @@ -17,11 +17,12 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/common" + "github.com/MichaelMure/git-bug/entities/identity" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" - "github.com/MichaelMure/git-bug/identity" ) var ( @@ -688,16 +689,16 @@ func (ge *githubExporter) editCommentGithubIssue(ctx context.Context, gc *rateLi return commentID, m.UpdateIssueComment.IssueComment.URL, nil } -func (ge *githubExporter) updateGithubIssueStatus(ctx context.Context, gc *rateLimitHandlerClient, id string, status bug.Status) error { +func (ge *githubExporter) updateGithubIssueStatus(ctx context.Context, gc *rateLimitHandlerClient, id string, status common.Status) error { m := &updateIssueMutation{} // set state var state githubv4.IssueState switch status { - case bug.OpenStatus: + case common.OpenStatus: state = githubv4.IssueStateOpen - case bug.ClosedStatus: + case common.ClosedStatus: state = githubv4.IssueStateClosed default: panic("unknown bug state") diff --git a/bridge/github/export_test.go b/bridge/github/export_test.go index 93cc47c0..de2d3f34 100644 --- a/bridge/github/export_test.go +++ b/bridge/github/export_test.go @@ -16,6 +16,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" "github.com/MichaelMure/git-bug/repository" "github.com/MichaelMure/git-bug/util/interrupt" @@ -66,13 +67,15 @@ func testCases(t *testing.T, repo *cache.RepoCache) []*testCase { bugWithCommentEditions, createOp, err := repo.NewBug("bug with comments editions", "new bug") require.NoError(t, err) - _, err = bugWithCommentEditions.EditComment(createOp.Id(), "first comment edited") + _, err = bugWithCommentEditions.EditComment( + entity.CombineIds(bugWithCommentEditions.Id(), createOp.Id()), "first comment edited") require.NoError(t, err) commentOp, err := bugWithCommentEditions.AddComment("first comment") require.NoError(t, err) - _, err = bugWithCommentEditions.EditComment(commentOp.Id(), "first comment edited") + _, err = bugWithCommentEditions.EditComment( + entity.CombineIds(bugWithCommentEditions.Id(), commentOp.Id()), "first comment edited") require.NoError(t, err) // bug status changed diff --git a/bridge/github/import.go b/bridge/github/import.go index 1db67469..5b2bf54b 100644 --- a/bridge/github/import.go +++ b/bridge/github/import.go @@ -9,8 +9,8 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/util/text" ) @@ -405,6 +405,7 @@ func (gi *githubImporter) ensureCommentEdit(ctx context.Context, repo *cache.Rep if err != nil { return err } + // check if the comment edition already exist _, err = b.ResolveOperationWithMetadata(metaKeyGithubId, parseId(edit.Id)) if err == nil { return nil @@ -428,7 +429,7 @@ func (gi *githubImporter) ensureCommentEdit(ctx context.Context, repo *cache.Rep op, err := b.EditCommentRaw( editor, edit.CreatedAt.Unix(), - target, + entity.CombineIds(b.Id(), target), text.Cleanup(string(*edit.Diff)), map[string]string{ metaKeyGithubId: parseId(edit.Id), diff --git a/bridge/github/import_integration_test.go b/bridge/github/import_integration_test.go index b969f6bd..50cbd5c8 100644 --- a/bridge/github/import_integration_test.go +++ b/bridge/github/import_integration_test.go @@ -6,15 +6,16 @@ import ( "testing" "time" - "github.com/MichaelMure/git-bug/bridge/github/mocks" - "github.com/MichaelMure/git-bug/bug" - "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/repository" - "github.com/MichaelMure/git-bug/util/interrupt" "github.com/pkg/errors" "github.com/shurcooL/githubv4" m "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + + "github.com/MichaelMure/git-bug/bridge/github/mocks" + "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/repository" + "github.com/MichaelMure/git-bug/util/interrupt" ) // using testify/mock and mockery diff --git a/bridge/github/import_test.go b/bridge/github/import_test.go index f1c863ac..5575de98 100644 --- a/bridge/github/import_test.go +++ b/bridge/github/import_test.go @@ -11,10 +11,11 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/common" + "github.com/MichaelMure/git-bug/entities/identity" "github.com/MichaelMure/git-bug/entity/dag" - "github.com/MichaelMure/git-bug/identity" "github.com/MichaelMure/git-bug/repository" "github.com/MichaelMure/git-bug/util/interrupt" ) @@ -73,8 +74,8 @@ func TestGithubImporter(t *testing.T) { bug.NewAddCommentOp(author, 0, "### header\n\n**bold**\n\n_italic_\n\n> with quote\n\n`inline code`\n\n```\nmultiline code\n```\n\n- bulleted\n- list\n\n1. numbered\n1. list\n\n- [ ] task\n- [x] list\n\n@MichaelMure mention\n\n#2 reference issue\n#3 auto-reference issue\n\n![image](https://user-images.githubusercontent.com/294669/56870222-811faf80-6a0c-11e9-8f2c-f0beb686303f.png)", nil), bug.NewSetTitleOp(author, 0, "complex issue edited", "complex issue"), bug.NewSetTitleOp(author, 0, "complex issue", "complex issue edited"), - bug.NewSetStatusOp(author, 0, bug.ClosedStatus), - bug.NewSetStatusOp(author, 0, bug.OpenStatus), + bug.NewSetStatusOp(author, 0, common.ClosedStatus), + bug.NewSetStatusOp(author, 0, common.OpenStatus), }, }, }, diff --git a/bridge/gitlab/config.go b/bridge/gitlab/config.go index c9d95adb..9411ba2e 100644 --- a/bridge/gitlab/config.go +++ b/bridge/gitlab/config.go @@ -13,7 +13,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/input" + "github.com/MichaelMure/git-bug/commands/input" "github.com/MichaelMure/git-bug/repository" ) diff --git a/bridge/gitlab/export.go b/bridge/gitlab/export.go index bb83662e..04972455 100644 --- a/bridge/gitlab/export.go +++ b/bridge/gitlab/export.go @@ -12,11 +12,12 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/common" + "github.com/MichaelMure/git-bug/entities/identity" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" - "github.com/MichaelMure/git-bug/identity" ) var ( @@ -469,13 +470,13 @@ func editCommentGitlabIssue(ctx context.Context, gc *gitlab.Client, repositoryID return err } -func updateGitlabIssueStatus(ctx context.Context, gc *gitlab.Client, repositoryID string, issueID int, status bug.Status) error { +func updateGitlabIssueStatus(ctx context.Context, gc *gitlab.Client, repositoryID string, issueID int, status common.Status) error { var state string switch status { - case bug.OpenStatus: + case common.OpenStatus: state = "reopen" - case bug.ClosedStatus: + case common.ClosedStatus: state = "close" default: panic("unknown bug state") diff --git a/bridge/gitlab/export_test.go b/bridge/gitlab/export_test.go index b48254e6..e9f3ae75 100644 --- a/bridge/gitlab/export_test.go +++ b/bridge/gitlab/export_test.go @@ -11,6 +11,7 @@ import ( "github.com/xanzy/go-gitlab" + "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" "github.com/stretchr/testify/require" @@ -63,13 +64,15 @@ func testCases(t *testing.T, repo *cache.RepoCache) []*testCase { bugWithCommentEditions, createOp, err := repo.NewBug("bug with comments editions", "new bug") require.NoError(t, err) - _, err = bugWithCommentEditions.EditComment(createOp.Id(), "first comment edited") + _, err = bugWithCommentEditions.EditComment( + entity.CombineIds(bugWithCommentEditions.Id(), createOp.Id()), "first comment edited") require.NoError(t, err) commentOp, err := bugWithCommentEditions.AddComment("first comment") require.NoError(t, err) - _, err = bugWithCommentEditions.EditComment(commentOp.Id(), "first comment edited") + _, err = bugWithCommentEditions.EditComment( + entity.CombineIds(bugWithCommentEditions.Id(), commentOp.Id()), "first comment edited") require.NoError(t, err) // bug status changed diff --git a/bridge/gitlab/import.go b/bridge/gitlab/import.go index 879ef102..cf6b5ca6 100644 --- a/bridge/gitlab/import.go +++ b/bridge/gitlab/import.go @@ -10,8 +10,8 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/util/text" ) @@ -55,7 +55,6 @@ func (gi *gitlabImporter) Init(_ context.Context, repo *cache.RepoCache, conf co // ImportAll iterate over all the configured repository issues (notes) and ensure the creation // of the missing issues / comments / label events / title changes ... func (gi *gitlabImporter) ImportAll(ctx context.Context, repo *cache.RepoCache, since time.Time) (<-chan core.ImportResult, error) { - out := make(chan core.ImportResult) gi.out = out @@ -150,7 +149,6 @@ func (gi *gitlabImporter) ensureIssue(repo *cache.RepoCache, issue *gitlab.Issue } func (gi *gitlabImporter) ensureIssueEvent(repo *cache.RepoCache, b *cache.BugCache, issue *gitlab.Issue, event Event) error { - id, errResolve := b.ResolveOperationWithMetadata(metaKeyGitlabId, event.ID()) if errResolve != nil && errResolve != cache.ErrNoMatchingOp { return errResolve @@ -205,13 +203,14 @@ func (gi *gitlabImporter) ensureIssueEvent(repo *cache.RepoCache, b *cache.BugCa // since gitlab doesn't provide the issue history // we should check for "changed the description" notes and compare issue texts // TODO: Check only one time and ignore next 'description change' within one issue - if errResolve == cache.ErrNoMatchingOp && issue.Description != firstComment.Message { + cleanedDesc := text.Cleanup(issue.Description) + if errResolve == cache.ErrNoMatchingOp && cleanedDesc != firstComment.Message { // comment edition op, err := b.EditCommentRaw( author, event.(NoteEvent).UpdatedAt.Unix(), - firstComment.Id(), - text.Cleanup(issue.Description), + firstComment.CombinedId(), + cleanedDesc, map[string]string{ metaKeyGitlabId: event.ID(), }, @@ -249,7 +248,7 @@ func (gi *gitlabImporter) ensureIssueEvent(repo *cache.RepoCache, b *cache.BugCa // if comment was already exported // search for last comment update - comment, err := b.Snapshot().SearchComment(id) + comment, err := b.Snapshot().SearchCommentByOpId(id) if err != nil { return err } @@ -260,7 +259,7 @@ func (gi *gitlabImporter) ensureIssueEvent(repo *cache.RepoCache, b *cache.BugCa op, err := b.EditCommentRaw( author, event.(NoteEvent).UpdatedAt.Unix(), - comment.Id(), + comment.CombinedId(), cleanText, nil, ) diff --git a/bridge/gitlab/import_test.go b/bridge/gitlab/import_test.go index a4a9ce15..d98da4ef 100644 --- a/bridge/gitlab/import_test.go +++ b/bridge/gitlab/import_test.go @@ -11,10 +11,11 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/common" + "github.com/MichaelMure/git-bug/entities/identity" "github.com/MichaelMure/git-bug/entity/dag" - "github.com/MichaelMure/git-bug/identity" "github.com/MichaelMure/git-bug/repository" "github.com/MichaelMure/git-bug/util/interrupt" ) @@ -75,8 +76,8 @@ func TestGitlabImport(t *testing.T) { bug.NewAddCommentOp(author, 0, "### header\n\n**bold**\n\n_italic_\n\n> with quote\n\n`inline code`\n\n```\nmultiline code\n```\n\n- bulleted\n- list\n\n1. numbered\n1. list\n\n- [ ] task\n- [x] list\n\n@MichaelMure mention\n\n#2 reference issue\n#3 auto-reference issue", nil), bug.NewSetTitleOp(author, 0, "complex issue edited", "complex issue"), bug.NewSetTitleOp(author, 0, "complex issue", "complex issue edited"), - bug.NewSetStatusOp(author, 0, bug.ClosedStatus), - bug.NewSetStatusOp(author, 0, bug.OpenStatus), + bug.NewSetStatusOp(author, 0, common.ClosedStatus), + bug.NewSetStatusOp(author, 0, common.OpenStatus), bug.NewLabelChangeOperation(author, 0, []bug.Label{"bug"}, []bug.Label{}), bug.NewLabelChangeOperation(author, 0, []bug.Label{"critical"}, []bug.Label{}), bug.NewLabelChangeOperation(author, 0, []bug.Label{}, []bug.Label{"critical"}), diff --git a/bridge/jira/client.go b/bridge/jira/client.go index 5e1db26f..c5fd1776 100644 --- a/bridge/jira/client.go +++ b/bridge/jira/client.go @@ -16,7 +16,7 @@ import ( "github.com/pkg/errors" - "github.com/MichaelMure/git-bug/bug" + "github.com/MichaelMure/git-bug/entities/bug" ) var errDone = errors.New("Iteration Done") diff --git a/bridge/jira/config.go b/bridge/jira/config.go index 3ce6ad9a..4fb267db 100644 --- a/bridge/jira/config.go +++ b/bridge/jira/config.go @@ -7,7 +7,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/input" + "github.com/MichaelMure/git-bug/commands/input" "github.com/MichaelMure/git-bug/repository" ) diff --git a/bridge/jira/export.go b/bridge/jira/export.go index 0cadf754..763d6a1c 100644 --- a/bridge/jira/export.go +++ b/bridge/jira/export.go @@ -12,11 +12,11 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/identity" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" - "github.com/MichaelMure/git-bug/identity" ) var ( diff --git a/bridge/jira/import.go b/bridge/jira/import.go index 572c393e..8043acf4 100644 --- a/bridge/jira/import.go +++ b/bridge/jira/import.go @@ -11,8 +11,9 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" + "github.com/MichaelMure/git-bug/entities/common" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/entity/dag" "github.com/MichaelMure/git-bug/util/text" @@ -269,8 +270,7 @@ func (ji *jiraImporter) ensureComment(repo *cache.RepoCache, b *cache.BugCache, return err } - targetOpID, err := b.ResolveOperationWithMetadata( - metaKeyJiraId, item.ID) + targetOpID, err := b.ResolveOperationWithMetadata(metaKeyJiraId, item.ID) if err != nil && err != cache.ErrNoMatchingOp { return err } @@ -333,7 +333,7 @@ func (ji *jiraImporter) ensureComment(repo *cache.RepoCache, b *cache.BugCache, op, err := b.EditCommentRaw( editor, item.Updated.Unix(), - targetOpID, + entity.CombineIds(b.Id(), targetOpID), text.Cleanup(item.Body), map[string]string{ metaKeyJiraId: derivedID, @@ -516,7 +516,7 @@ func (ji *jiraImporter) ensureChange(repo *cache.RepoCache, b *cache.BugCache, e statusStr, hasMap := statusMap[item.To] if hasMap { switch statusStr { - case bug.OpenStatus.String(): + case common.OpenStatus.String(): op, err := b.OpenRaw( author, entry.Created.Unix(), @@ -530,7 +530,7 @@ func (ji *jiraImporter) ensureChange(repo *cache.RepoCache, b *cache.BugCache, e } ji.out <- core.NewImportStatusChange(op.Id()) - case bug.ClosedStatus.String(): + case common.ClosedStatus.String(): op, err := b.CloseRaw( author, entry.Created.Unix(), @@ -608,8 +608,8 @@ func getStatusMap(conf core.Configuration) (map[string]string, error) { mapStr, hasConf := conf[confKeyIDMap] if !hasConf { return map[string]string{ - bug.OpenStatus.String(): "1", - bug.ClosedStatus.String(): "6", + common.OpenStatus.String(): "1", + common.ClosedStatus.String(): "6", }, nil } diff --git a/bridge/jira/jira.go b/bridge/jira/jira.go index 6423843c..024bf9a2 100644 --- a/bridge/jira/jira.go +++ b/bridge/jira/jira.go @@ -9,7 +9,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bridge/core/auth" - "github.com/MichaelMure/git-bug/input" + "github.com/MichaelMure/git-bug/commands/input" ) const ( diff --git a/bridge/launchpad/config.go b/bridge/launchpad/config.go index f97714bd..669d36bf 100644 --- a/bridge/launchpad/config.go +++ b/bridge/launchpad/config.go @@ -8,7 +8,7 @@ import ( "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/cache" - "github.com/MichaelMure/git-bug/input" + "github.com/MichaelMure/git-bug/commands/input" ) var ErrBadProjectURL = errors.New("bad Launchpad project URL") diff --git a/bridge/launchpad/import.go b/bridge/launchpad/import.go index 01f6e53b..598ef80b 100644 --- a/bridge/launchpad/import.go +++ b/bridge/launchpad/import.go @@ -6,8 +6,8 @@ import ( "time" "github.com/MichaelMure/git-bug/bridge/core" - "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" + "github.com/MichaelMure/git-bug/entities/bug" "github.com/MichaelMure/git-bug/entity" "github.com/MichaelMure/git-bug/util/text" ) |