From d6bb9853d8c8a3e7c6deb015a5ddaa6babe912ea Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 12 Apr 2020 17:30:31 -0400 Subject: [PATCH] api/commits: implement commit parents --- graphql/graph/generated/generated.go | 5 +++-- graphql/graph/model/commit.go | 14 +++++++++++++- graphql/graph/schema.graphqls | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/graphql/graph/generated/generated.go b/graphql/graph/generated/generated.go index 7b796a0..96ef32b 100644 --- a/graphql/graph/generated/generated.go +++ b/graphql/graph/generated/generated.go @@ -1267,6 +1267,7 @@ type Tree implements Object { id: String! shortId: String! raw: String! + # TODO: add globbing entries(count: Int = 100, next: String): [TreeEntry!]! entry(path: String): TreeEntry @@ -2806,13 +2807,13 @@ func (ec *executionContext) _Commit_parents(ctx context.Context, field graphql.C Object: "Commit", Field: field, Args: nil, - IsMethod: false, + IsMethod: true, } ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Parents, nil + return obj.Parents(), nil }) if err != nil { ec.Error(ctx, err) diff --git a/graphql/graph/model/commit.go b/graphql/graph/model/commit.go index 5b9ed84..93532b9 100644 --- a/graphql/graph/model/commit.go +++ b/graphql/graph/model/commit.go @@ -10,7 +10,6 @@ type Commit struct { ID string `json:"id"` ShortID string `json:"shortId"` Raw string `json:"raw"` - Parents []*Commit `json:"parents"` commit *object.Commit repo *git.Repository @@ -46,3 +45,16 @@ func (c *Commit) Tree() *Tree { tree, _ := obj.(*Tree) return tree } + +func (c *Commit) Parents() []*Commit { + var parents []*Commit + for _, p := range c.commit.ParentHashes { + obj, err := LookupObject(c.repo, p) + if err != nil { + panic(err) + } + parent, _ := obj.(*Commit) + parents = append(parents, parent) + } + return parents +} diff --git a/graphql/graph/schema.graphqls b/graphql/graph/schema.graphqls index 975f3fc..66c2616 100644 --- a/graphql/graph/schema.graphqls +++ b/graphql/graph/schema.graphqls @@ -177,6 +177,7 @@ type Tree implements Object { id: String! shortId: String! raw: String! + # TODO: add globbing entries(count: Int = 100, next: String): [TreeEntry!]! entry(path: String): TreeEntry -- 2.38.4