aboutsummaryrefslogtreecommitdiffstats
path: root/bridge
diff options
context:
space:
mode:
Diffstat (limited to 'bridge')
-rw-r--r--bridge/core/config.go2
-rw-r--r--bridge/github/config.go2
-rw-r--r--bridge/github/export.go11
-rw-r--r--bridge/github/export_test.go7
-rw-r--r--bridge/github/import.go5
-rw-r--r--bridge/github/import_integration_test.go11
-rw-r--r--bridge/github/import_test.go9
-rw-r--r--bridge/gitlab/config.go2
-rw-r--r--bridge/gitlab/export.go11
-rw-r--r--bridge/gitlab/export_test.go7
-rw-r--r--bridge/gitlab/import.go15
-rw-r--r--bridge/gitlab/import_test.go9
-rw-r--r--bridge/jira/client.go2
-rw-r--r--bridge/jira/config.go2
-rw-r--r--bridge/jira/export.go4
-rw-r--r--bridge/jira/import.go16
-rw-r--r--bridge/jira/jira.go2
-rw-r--r--bridge/launchpad/config.go2
-rw-r--r--bridge/launchpad/import.go2
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"
)