diff --git a/go.sum b/go.sum index 08637f81..7a6c704a 100644 --- a/go.sum +++ b/go.sum @@ -31,6 +31,7 @@ github.com/cayleygraph/cayley v0.7.7 h1:z+7xkAbg6bKiXJOtOkEG3zCm2K084sr/aGwFV7xc github.com/cayleygraph/cayley v0.7.7/go.mod h1:VUd+PInYf94/VY41ePeFtFyP99BAs953kFT4N+6F7Ko= github.com/cayleygraph/quad v1.1.0 h1:w1nXAmn+nz07+qlw89dke9LwWkYpeX+OcvfTvGQRBpM= github.com/cayleygraph/quad v1.1.0/go.mod h1:maWODEekEhrO0mdc9h5n/oP7cH1h/OTgqQ2qWbuI9M4= +github.com/cayleygraph/quad v1.2.0 h1:vqf+71ZINP3eSbtaEzpey0HTr9p4M2xHdmVCda8D7+Q= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= diff --git a/internal/dvcore/run.go b/internal/dvcore/run.go index a4c5d64d..3536b627 100644 --- a/internal/dvcore/run.go +++ b/internal/dvcore/run.go @@ -195,7 +195,9 @@ func pullBatches(targets []multipmuri.Entity, h *cayley.Handle, githubToken stri logger.Warn("failed to get last updated issue", zap.Error(err)) } - ghOpts.Since = &since + if !since.IsZero() && since.Unix() > 0 { + ghOpts.Since = &since + } } githubprovider.FetchRepo(ctx, repo, githubToken, out, ghOpts) diff --git a/internal/dvcore/run_test.go b/internal/dvcore/run_test.go new file mode 100644 index 00000000..716e0e9a --- /dev/null +++ b/internal/dvcore/run_test.go @@ -0,0 +1,111 @@ +package dvcore + +import ( + "bytes" + "context" + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/cayleygraph/cayley/graph" + "github.com/cayleygraph/quad" + "github.com/stretchr/testify/assert" + "moul.io/depviz/internal/dvstore" + "moul.io/depviz/internal/testutil" + "moul.io/multipmuri" +) + +func TestTestingGoldenStore(t *testing.T) { + store, close := TestingGoldenStore(t, "all-depviz-test") + assert.NotNil(t, store) + defer close() + + ctx := context.Background() + it := store.QuadsAllIterator() + count := 0 + for it.Next(ctx) { + count++ + } + // FIXME: check if contain some specific data + assert.Greater(t, count, 0) +} + +func TestPullAndSave(t *testing.T) { + if testing.Short() { + t.Skip("skipping slow test (--short)") + } + githubToken := os.Getenv("GITHUB_TOKEN") + if githubToken == "" { + t.Skip("missing GITHUB_TOKEN") + } + schema := dvstore.Schema() + gitlabToken := "" + logger := testutil.Logger(t) + + tests := []struct { + name string + targets []multipmuri.Entity + }{ + { + "moul-depviz-test", + []multipmuri.Entity{ + multipmuri.NewGitHubRepo("github.com", "moul", "depviz-test"), + }, + }, + { + "moulbot-depviz-test", + []multipmuri.Entity{ + multipmuri.NewGitHubRepo("github.com", "moul-bot", "depviz-test"), + }, + }, + { + "all-depviz-test", + []multipmuri.Entity{ + multipmuri.NewGitHubRepo("github.com", "moul", "depviz-test"), + multipmuri.NewGitHubRepo("github.com", "moul-bot", "depviz-test"), + }, + }, + } + + for _, test := range tests { + store, close := TestingStore(t) + defer close() + changed, err := PullAndSave(test.targets, store, schema, githubToken, gitlabToken, false, logger) + assert.NoError(t, err, test.name) + assert.True(t, changed, test.name) + changed, err = PullAndSave(test.targets, store, schema, githubToken, gitlabToken, false, logger) + assert.NoError(t, err, test.name) + assert.False(t, changed, test.name) + changed, err = PullAndSave(test.targets, store, schema, githubToken, gitlabToken, true, logger) + assert.NoError(t, err, test.name) + assert.True(t, changed, test.name) + + var b bytes.Buffer + qr := graph.NewQuadStoreReader(store.QuadStore) + assert.NotNil(t, qr, test.name) + defer qr.Close() + + format := quad.FormatByName("json-stream") + assert.NotNil(t, format, test.name) + + qw := format.Writer(&b) + assert.NotNil(t, qw, test.name) + defer qw.Close() + + n, err := quad.Copy(qw, qr) + assert.Greater(t, n, 0, test.name) + assert.NoError(t, err, test.name) + + gp := filepath.Join("testdata", test.name+".dump.golden") + if testutil.UpdateGolden() { + t.Logf("update golden file: %s", gp) + err := ioutil.WriteFile(gp, b.Bytes(), 0644) + assert.NoError(t, err, test.name) + } + + g, err := ioutil.ReadFile(gp) + assert.NoError(t, err, test.name) + assert.Equal(t, g, b.Bytes()) + } +} diff --git a/internal/dvcore/testdata/all-depviz-test.dump.golden b/internal/dvcore/testdata/all-depviz-test.dump.golden new file mode 100644 index 00000000..b16f06be --- /dev/null +++ b/internal/dvcore/testdata/all-depviz-test.dump.golden @@ -0,0 +1,273 @@ +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:localId\u003e","object":"@moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:shortName\u003e","object":"moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:fullName\u003e","object":"moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:avatarUrl\u003e","object":"https://avatars1.githubusercontent.com/u/41326314?v=4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:kind\u003e","object":"\"4\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:56:14Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-09-03T09:07:03Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#7"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 7"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4\r\nDepends on https://github.com/moul/depviz-test/milestone/1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:56:04Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:56:04Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#6"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 6"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#5"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 5"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:34Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:34Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:title\u003e","object":"Issue #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #1 \r\nDepends on #2 \r\nDepends on #3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:19Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:19Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:13Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:13Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#2"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 2"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:07Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:07Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:localId\u003e","object":"@moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:shortName\u003e","object":"moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:fullName\u003e","object":"moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:avatarUrl\u003e","object":"https://avatars1.githubusercontent.com/u/94029?v=4"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:kind\u003e","object":"\"4\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-11-04T11:59:52Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-04T12:05:12Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#11"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:title\u003e","object":"test short names"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:description\u003e","object":"https://github.com/moul/depviz-test/issues/2\r\nhttps://github.com/moul/depviz-test/issues/10\r\nhttps://github.com/moul/depviz-test-two-issues/pull/4\r\nhttps://github.com/moul/depviz-test-two-issues/pull/3\r\nhttps://github.com/moul/depviz-test-two-issues/projects/1#card-28544696\r\nhttps://github.com/moul/depviz-test-two-issues/milestone/1\r\nhttps://github.com/moul\r\nhttps://github.com/berty"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-09-03T08:51:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-12-03T17:35:06Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#10"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:title\u003e","object":"New test"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4 \r\nDepends on #6 \r\nBlocks #7 \r\nDepends on https://github.com/moul-bot/depviz-test/issues/5"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisBlocking\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/milestone/1"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"3\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:title\u003e","object":"lorem-ipsum-milestone"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:41:14Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#9"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:title\u003e","object":"Another issue in an isolated group of 2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #8"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:40:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#8"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:title\u003e","object":"An issue in an isolated group of 2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:38:05Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#7"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on an issue that itself depends on multiple ones"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #6 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:37:44Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:37:44Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#6"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on the same issue at different levels"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2 \r\nDepends on #3 \r\nDepends on #5 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:37:21Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-10-29T08:59:38Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#5"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on multiple issues"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4 \r\nDepends on #3 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:completedAt\u003e","object":"\"2019-10-29T08:59:38Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:state\u003e","object":"\"2\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:36:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#4"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that also depends on another"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:45Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:36:45Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#3"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on another"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:09Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-10-29T08:59:41Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue with a milestone, some projects, and some labels"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:completedAt\u003e","object":"\"2019-10-29T08:59:41Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:state\u003e","object":"\"2\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:35:49Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:35:49Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#1"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:title\u003e","object":"I'm a standard issue"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/bug"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:title\u003e","object":"bug"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:color\u003e","object":"#d73a4a"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:description\u003e","object":"Something isn't working"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:title\u003e","object":"documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:color\u003e","object":"#0075ca"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:description\u003e","object":"Improvements or additions to documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/enhancement"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:title\u003e","object":"enhancement"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:color\u003e","object":"#a2eeef"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:description\u003e","object":"New feature or request"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} diff --git a/internal/dvcore/testdata/moul-depviz-test.dump.golden b/internal/dvcore/testdata/moul-depviz-test.dump.golden new file mode 100644 index 00000000..e3899c13 --- /dev/null +++ b/internal/dvcore/testdata/moul-depviz-test.dump.golden @@ -0,0 +1,180 @@ +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:localId\u003e","object":"@moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:shortName\u003e","object":"moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:fullName\u003e","object":"moul"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul\u003e","predicate":"\u003cschema:avatarUrl\u003e","object":"https://avatars1.githubusercontent.com/u/94029?v=4"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:kind\u003e","object":"\"4\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-11-04T11:59:52Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-04T12:05:12Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#11"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:title\u003e","object":"test short names"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:description\u003e","object":"https://github.com/moul/depviz-test/issues/2\r\nhttps://github.com/moul/depviz-test/issues/10\r\nhttps://github.com/moul/depviz-test-two-issues/pull/4\r\nhttps://github.com/moul/depviz-test-two-issues/pull/3\r\nhttps://github.com/moul/depviz-test-two-issues/projects/1#card-28544696\r\nhttps://github.com/moul/depviz-test-two-issues/milestone/1\r\nhttps://github.com/moul\r\nhttps://github.com/berty"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/11\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-09-03T08:51:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-12-03T17:35:06Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#10"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:title\u003e","object":"New test"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4 \r\nDepends on #6 \r\nBlocks #7 \r\nDepends on https://github.com/moul-bot/depviz-test/issues/5"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/10\u003e","predicate":"\u003cisBlocking\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/milestone/1"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"3\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:title\u003e","object":"lorem-ipsum-milestone"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:41:14Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#9"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:title\u003e","object":"Another issue in an isolated group of 2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #8"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/9\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:40:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#8"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:title\u003e","object":"An issue in an isolated group of 2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/8\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:38:05Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-11-19T17:30:28Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#7"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on an issue that itself depends on multiple ones"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #6 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:37:44Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:37:44Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#6"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on the same issue at different levels"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2 \r\nDepends on #3 \r\nDepends on #5 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:37:21Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-10-29T08:59:38Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#5"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on multiple issues"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4 \r\nDepends on #3 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:completedAt\u003e","object":"\"2019-10-29T08:59:38Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cschema:state\u003e","object":"\"2\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:36:58Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#4"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that also depends on another"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:45Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:36:45Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#3"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue that depends on another"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #2 "} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/3\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:36:09Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-10-29T08:59:41Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#2"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:title\u003e","object":"I'm an issue with a milestone, some projects, and some labels"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:completedAt\u003e","object":"\"2019-10-29T08:59:41Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003cschema:state\u003e","object":"\"2\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasMilestone\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/2\u003e","predicate":"\u003chasLabel\u003e","object":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-06T15:35:49Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-06T15:35:49Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test#1"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:title\u003e","object":"I'm a standard issue"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/issues/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/bug"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:title\u003e","object":"bug"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:color\u003e","object":"#d73a4a"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003cschema:description\u003e","object":"Something isn't working"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/bug\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:title\u003e","object":"documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:color\u003e","object":"#0075ca"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003cschema:description\u003e","object":"Improvements or additions to documentation"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/documentation\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Topic\u003e"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:localId\u003e","object":"moul/depviz-test/labels/enhancement"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:title\u003e","object":"enhancement"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:color\u003e","object":"#a2eeef"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003cschema:description\u003e","object":"New feature or request"} +{"subject":"\u003chttps://github.com/moul/depviz-test/labels/enhancement\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul/depviz-test\u003e"} diff --git a/internal/dvcore/testdata/moulbot-depviz-test.dump.golden b/internal/dvcore/testdata/moulbot-depviz-test.dump.golden new file mode 100644 index 00000000..8d4751f8 --- /dev/null +++ b/internal/dvcore/testdata/moulbot-depviz-test.dump.golden @@ -0,0 +1,93 @@ +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:localId\u003e","object":"@moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:shortName\u003e","object":"moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:fullName\u003e","object":"moul-bot"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot\u003e","predicate":"\u003cschema:avatarUrl\u003e","object":"https://avatars1.githubusercontent.com/u/41326314?v=4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Owner\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:kind\u003e","object":"\"4\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:56:14Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-09-03T09:07:03Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#7"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 7"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4\r\nDepends on https://github.com/moul/depviz-test/milestone/1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/7\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul/depviz-test/milestone/1\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:56:04Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:56:04Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#6"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 6"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/6\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:47Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#5"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 5"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/5\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:34Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:34Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:title\u003e","object":"Issue #4"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:description\u003e","object":"Depends on #1 \r\nDepends on #2 \r\nDepends on #3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/4\u003e","predicate":"\u003cisDependingOn\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:19Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:19Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 3"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/3\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:13Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:13Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#2"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 2"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/2\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003crdf:type\u003e","object":"\u003cdv:Task\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:createdAt\u003e","object":"\"2019-08-08T18:55:07Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:updatedAt\u003e","object":"\"2019-08-08T18:55:07Z\"^^\u003cschema:DateTime\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:localId\u003e","object":"moul-bot/depviz-test#1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:kind\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:title\u003e","object":"Issue 1"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:driver\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003cschema:state\u003e","object":"\"1\"^^\u003cschema:Integer\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003chasAuthor\u003e","object":"\u003chttps://github.com/moul-bot\u003e"} +{"subject":"\u003chttps://github.com/moul-bot/depviz-test/issues/1\u003e","predicate":"\u003chasOwner\u003e","object":"\u003chttps://github.com/moul-bot/depviz-test\u003e"} diff --git a/internal/dvcore/testing.go b/internal/dvcore/testing.go new file mode 100644 index 00000000..b7aae724 --- /dev/null +++ b/internal/dvcore/testing.go @@ -0,0 +1,77 @@ +package dvcore + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/cayleygraph/cayley" + "github.com/cayleygraph/cayley/graph" + _ "github.com/cayleygraph/cayley/graph/kv/bolt" // required by cayley + "github.com/cayleygraph/quad" + _ "github.com/cayleygraph/quad/gml" // required by cayley + _ "github.com/cayleygraph/quad/graphml" // required by cayley + _ "github.com/cayleygraph/quad/json" // required by cayley + _ "github.com/cayleygraph/quad/jsonld" // required by cayley + _ "github.com/cayleygraph/quad/nquads" // required by cayley + _ "github.com/cayleygraph/quad/pquads" // required by cayley + "github.com/stretchr/testify/assert" +) + +func TestingGoldenStore(t *testing.T, name string) (*cayley.Handle, func()) { + t.Helper() + + store, closeFunc := TestingStore(t) + + gp := filepath.Join("testdata", name+".dump.golden") + f, err := os.Open(gp) + assert.NoError(t, err, name) + defer f.Close() + + qw, err := store.NewQuadWriter() + assert.NoError(t, err, name) + assert.NotNil(t, qw, name) + defer qw.Close() + + format := quad.FormatByName("json-stream") + assert.NotNil(t, format, name) + + qr := format.Reader(f) + assert.NotNil(t, qr, name) + defer qr.Close() + + n, err := quad.CopyBatch(qw, qr, quad.DefaultBatch) + assert.NoError(t, err, name) + assert.Greater(t, n, 0, name) + + return store, closeFunc +} + +func TestingStore(t *testing.T) (*cayley.Handle, func()) { + t.Helper() + + dir, err := ioutil.TempDir("", "depviz") + if !assert.NoError(t, err) { + t.Fatal("create temp dir") + } + + err = graph.InitQuadStore("bolt", dir, nil) + if !assert.NoError(t, err) { + t.Fatal("init quadstore") + } + + store, err := cayley.NewGraph("bolt", dir, nil) + if !assert.NoError(t, err) { + t.Fatal("init cayley") + } + + closeFunc := func() { + if store != nil { + _ = store.Close() + } + _ = os.RemoveAll(dir) + } + + return store, closeFunc +} diff --git a/internal/dvstore/query_test.go b/internal/dvstore/query_test.go index fd455394..56260a6b 100644 --- a/internal/dvstore/query_test.go +++ b/internal/dvstore/query_test.go @@ -5,20 +5,18 @@ import ( "testing" "github.com/cayleygraph/cayley" - "github.com/cayleygraph/cayley/schema" + _ "github.com/cayleygraph/quad/json" "github.com/stretchr/testify/assert" "go.uber.org/zap" "moul.io/godev" ) func TestLoadTasks(t *testing.T) { - var ( - h *cayley.Handle - schema *schema.Config - filters LoadTasksFilters - logger *zap.Logger - ) - tasks, err := LoadTasks(h, schema, filters, logger) + logger := zap.NewNop() + + h := &cayley.Handle{} + filters := LoadTasksFilters{} + tasks, err := LoadTasks(h, schemaConfig, filters, logger) assert.NotNil(t, tasks) assert.NoError(t, err) fmt.Println(godev.PrettyJSON(tasks)) diff --git a/internal/dvstore/testing_test.go b/internal/dvstore/testing_test.go new file mode 100644 index 00000000..fb7a9b92 --- /dev/null +++ b/internal/dvstore/testing_test.go @@ -0,0 +1,9 @@ +package dvstore + +import "github.com/cayleygraph/cayley/schema" + +var schemaConfig *schema.Config + +func init() { + schemaConfig = Schema() +} diff --git a/internal/testutil/doc.go b/internal/testutil/doc.go new file mode 100644 index 00000000..b17ae8ae --- /dev/null +++ b/internal/testutil/doc.go @@ -0,0 +1 @@ +package testutil // import "moul.io/depviz/internal/testutil" diff --git a/internal/testutil/golden.go b/internal/testutil/golden.go new file mode 100644 index 00000000..30453ab8 --- /dev/null +++ b/internal/testutil/golden.go @@ -0,0 +1,9 @@ +package testutil + +import "flag" + +var update = flag.Bool("update", false, "update golden files") + +func UpdateGolden() bool { + return *update +} diff --git a/internal/testutil/logging.go b/internal/testutil/logging.go new file mode 100644 index 00000000..4a56c0f0 --- /dev/null +++ b/internal/testutil/logging.go @@ -0,0 +1,29 @@ +package testutil + +import ( + "flag" + "testing" + + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +) + +var debug = flag.Bool("debug", false, "more verbose logging") + +func Logger(t *testing.T) *zap.Logger { + t.Helper() + if !*debug { + return zap.NewNop() + } + + config := zap.NewDevelopmentConfig() + config.DisableStacktrace = true + config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder + config.Level.SetLevel(zap.DebugLevel) + logger, err := config.Build() + if err != nil { + t.Errorf("debug logger: %v", err) + return zap.NewNop() + } + return logger +} diff --git a/internal/testutil/skip.go b/internal/testutil/skip.go new file mode 100644 index 00000000..09610764 --- /dev/null +++ b/internal/testutil/skip.go @@ -0,0 +1,14 @@ +package testutil + +import ( + "fmt" + "os" + "testing" +) + +func SkipSlow(t *testing.T) { + t.Helper() + if os.Getenv("SKIP_SLOW_TESTS") == "1" { + t.Skip(fmt.Sprintf("slow test skipped")) + } +}