{"action":"created","comment":{"url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/comments/201574683","pull_request_review_id":136101644,"id":201574683,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMTU3NDY4Mw==","diff_hunk":"@@ -0,0 +1,379 @@\n+/* @flow */\n+\n+import type { ComposeFieldConfigMap } from 'graphql-compose';\n+import {\n+  EnumTypeComposer,\n+  graphql,\n+  schemaComposer,\n+  SchemaComposer,\n+  TypeComposer,\n+} from 'graphql-compose';\n+import type {\n+  ComposePartialFieldConfigAsObject,\n+  RelationOpts,\n+} from 'graphql-compose/lib/TypeComposer';\n+import type { GraphQLFieldConfigMap } from 'graphql-compose/lib/graphql';\n+import { Model } from 'mongoose';\n+import type { TypeConverterOpts } from './composeWithMongoose';\n+import { composeWithMongoose } from './composeWithMongoose';\n+import { recomposeBaseResolvers } from './utils/recomposeBaseResolvers';\n+import { recomposeChildResolvers } from './utils/recomposeChildResolvers';\n+\n+const { GraphQLInterfaceType } = graphql;\n+\n+export type Options = {\n+  reorderFields: string[] | boolean, // true order: _id, DKey, DInterfaceFields, DiscriminatorFields\n+  customizationOptions: TypeConverterOpts,\n+};\n+\n+// Enum MongooseComposeResolvers\n+export const EMCResolvers = {\n+  count: 'count',\n+  connection: 'connection',\n+  pagination: 'pagination',\n+  findById: 'findById',\n+  findByIds: 'findByIds',\n+  findOne: 'findOne',\n+  findMany: 'findMany',\n+  createOne: 'createOne',\n+  updateById: 'updateById',\n+  updateOne: 'updateOne',\n+  updateMany: 'updateMany',\n+  removeById: 'removeById',\n+  removeOne: 'removeOne',\n+  removeMany: 'removeMany',\n+};\n+\n+type Discriminators = {\n+  [DName: string]: any,\n+};\n+\n+// sets the values on DKey enum TC\n+function setDKeyETCValues(discriminators: Discriminators): any {\n+  const values: { [propName: string]: { value: string } } = {};\n+\n+  for (const DName in discriminators) {\n+    if (discriminators.hasOwnProperty(DName)) {\n+      values[DName] = {\n+        value: DName,\n+      };\n+    }\n+  }\n+\n+  return values;\n+}\n+\n+// creates an enum from discriminator names\n+// then sets this enum type as the discriminator key field type\n+function createAndSetDKeyETC(dTC: DiscriminatorTypeComposer, discriminators: Discriminators) {\n+  const DKeyETC = EnumTypeComposer.create({\n+    name: `EnumDKey${dTC.getDBaseName()}${dTC.getDKey()[0].toUpperCase() +\n+      dTC.getDKey().substr(1)}`,\n+    values: setDKeyETCValues(discriminators),\n+  });\n+\n+  // set on Output\n+  dTC.extendField(dTC.getDKey(), {\n+    type: () => DKeyETC,\n+  });\n+\n+  // set on Input\n+  dTC.getInputTypeComposer().extendField(dTC.getDKey(), {\n+    type: () => DKeyETC,\n+  });\n+\n+  return DKeyETC;\n+}\n+\n+function reorderFields(\n+  modelTC: DiscriminatorTypeComposer | ChildDiscriminatorTypeComposer,\n+  order: string[] | boolean\n+) {\n+  if (order) {\n+    if (Array.isArray(order)) {\n+      modelTC.reorderFields(order);\n+    } else {\n+      const newOrder = [];\n+\n+      // is child discriminator\n+      if (modelTC instanceof ChildDiscriminatorTypeComposer) {\n+        const baseModelTC = modelTC.getDTC();\n+\n+        newOrder.push(...baseModelTC.getFieldNames());\n+\n+        newOrder.filter(value => value === '_id' || value === modelTC.getDKey());\n+\n+        newOrder.unshift('_id', modelTC.getDKey());\n+      } else {\n+        if (modelTC.getField('_id')) {\n+          newOrder.push('_id');\n+        }\n+        newOrder.push(modelTC.getDKey());\n+      }\n+\n+      modelTC.reorderFields(newOrder);\n+    }\n+  }\n+}\n+\n+// copy all baseTypeComposers fields to childTC\n+// these are the fields before calling discriminator\n+function childImplements(baseDTC: TypeComposer, childTC: TypeComposer) {\n+  const baseFields = baseDTC.getFieldNames();\n+  const childFields = childTC.getFieldNames();\n+\n+  for (const field of baseFields) {\n+    const childFieldName = childFields.find(fld => fld === field);\n+\n+    if (childFieldName) {\n+      childTC.extendField(field, {\n+        type: baseDTC.getFieldType(field),\n+      });\n+    } else {\n+      childTC.setField(field, baseDTC.getField(field));\n+    }\n+  }\n+\n+  return childTC;\n+}\n+\n+function getBaseTCFieldsWithTypes(baseTC: TypeComposer) {\n+  const baseFields = baseTC.getFieldNames();\n+  const baseFieldsWithTypes: GraphQLFieldConfigMap<any, any> = {};\n+\n+  for (const field of baseFields) {\n+    baseFieldsWithTypes[field] = {\n+      type: baseTC.getFieldType(field),\n+    };\n+  }\n+\n+  return baseFieldsWithTypes;\n+}\n+\n+function createDInterface(baseModelTC: DiscriminatorTypeComposer): GraphQLInterfaceType {\n+  return new GraphQLInterfaceType({\n+    name: baseModelTC.getDBaseName(),\n+\n+    resolveType: (value: any) => {\n+      const childDName = value[baseModelTC.getDKey()];\n+      const sComposer = baseModelTC.getGQC(); // get schemaComposer\n+\n+      if (childDName) {\n+        return sComposer.getTC(childDName).getType();\n+      }\n+\n+      // as fallback return BaseModelTC\n+      return sComposer.getTC(baseModelTC.getTypeName()).getType();\n+    },\n+    // hoisting issue solved, get at time :)\n+    fields: () => getBaseTCFieldsWithTypes(baseModelTC),\n+  });\n+}\n+\n+export class DiscriminatorTypeComposer extends TypeComposer {\n+  modelName: string;\n+\n+  discriminatorKey: string;\n+\n+  DKeyETC: EnumTypeComposer;\n+\n+  GQC: SchemaComposer<any>;\n+\n+  opts: Options;\n+\n+  DInterface: GraphQLInterfaceType;\n+\n+  discriminators: Discriminators;\n+\n+  CDTCs: Array<ChildDiscriminatorTypeComposer>;\n+\n+  constructor(\n+    baseModel: Model,\n+    opts: Options = {\n+      reorderFields: true,\n+      customizationOptions: {},\n+    }\n+  ) {\n+    if (!baseModel || !(baseModel: any).discriminators) {\n+      throw Error('Discriminator Key not Set, Use composeWithMongoose for Normal Collections');\n+    }\n+\n+    super(composeWithMongoose(baseModel, opts.customizationOptions).gqType);\n+\n+    // !ORDER MATTERS\n+    this.opts = opts || {};\n+    this.modelName = (baseModel: any).modelName;\n+    this.discriminatorKey = (baseModel: any).schema.get('discriminatorKey') || '__t';\n+\n+    // discriminants and object containing all discriminants with key\n+    // key being their DNames\n+    this.discriminators = (baseModel: any).discriminators;\n+\n+    this.CDTCs = [];\n+    this.GQC = opts.customizationOptions.schemaComposer || schemaComposer;\n+    this.setTypeName(`Generic${this.modelName}`);\n+    this.DKeyETC = createAndSetDKeyETC(this, this.discriminators);\n+\n+    reorderFields(this, this.opts.reorderFields);\n+\n+    this.DInterface = createDInterface(this);\n+    this.setInterfaces([this.DInterface]);\n+\n+    // Add a Generic Field, else we have generic Errors when resolving interface\n+    // this is somehow i don't understand, but we don't get any type if we never query it\n+    // I guess under the hud, graphql-compose shakes it off.\n+    this.GQC.Query.addFields({","path":"src/composeWithMongooseDiscriminators.js","position":159,"original_position":225,"commit_id":"e93a6ab82eea9e07c580981b6042954ecbcdde43","original_commit_id":"f44370420a3e0d16a7183dadf605fbe39d51a5da","user":{"login":"mernxl","id":16241595,"node_id":"MDQ6VXNlcjE2MjQxNTk1","avatar_url":"https://avatars0.githubusercontent.com/u/16241595?v=4","gravatar_id":"","url":"https://api.github.com/users/mernxl","html_url":"https://github.com/mernxl","followers_url":"https://api.github.com/users/mernxl/followers","following_url":"https://api.github.com/users/mernxl/following{/other_user}","gists_url":"https://api.github.com/users/mernxl/gists{/gist_id}","starred_url":"https://api.github.com/users/mernxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mernxl/subscriptions","organizations_url":"https://api.github.com/users/mernxl/orgs","repos_url":"https://api.github.com/users/mernxl/repos","events_url":"https://api.github.com/users/mernxl/events{/privacy}","received_events_url":"https://api.github.com/users/mernxl/received_events","type":"User","site_admin":false},"body":"@nodkz, i have this issue with the discriminators. When you don't add a particular discriminator type to query, mutation or subscription, when resolving the Interface, Graphql throws an Error if it references that type which is not in schema.\r\n\r\n```javascript\r\nbuildSchema(): GraphQLSchema {\r\n    const roots = {};\r\n\r\n    if (this.has('Query')) {\r\n      const tc = this.getTC('Query');\r\n      this.removeEmptyTypes(tc, new Set());\r\n      roots.query = tc.getType();\r\n    }\r\n\r\n    if (this.has('Mutation')) {\r\n      const tc = this.getTC('Mutation');\r\n      this.removeEmptyTypes(tc, new Set());\r\n      roots.mutation = tc.getType();\r\n    }\r\n\r\n    if (this.has('Subscription')) {\r\n      const tc = this.getTC('Subscription');\r\n      this.removeEmptyTypes(tc, new Set());\r\n      roots.subscription = tc.getType();\r\n    }\r\n\r\n    if (Object.keys(roots).length === 0) {\r\n      throw new Error(\r\n        'Can not build schema. Must be initialized at least one ' +\r\n          'of the following types: Query, Mutation, Subscription.'\r\n      );\r\n    }\r\n\r\n    return new GraphQLSchema(roots);\r\n  }\r\n```\r\nWhile seeking you opinion on how to solve the issue, i am proposing to add a field called `_disTypes` that contains all types that are either Discrimator or Child of Discriminator to `rootQuery`. It only host the Types, cannot be Queried, nor Mutated.\r\n\r\n### In composeWithMongooseDiscriminators.js\r\n\r\n```javascript\r\nif (!this.GQC.rootQuery().hasField('_disTypes')) {\r\n      this.GQC.rootQuery().addFields({\r\n        _disTypes: TypeComposer.create({\r\n          name: '_disTypes',\r\n          description: 'Hoisting for Discriminator Types',\r\n        }),\r\n    });\r\n}\r\n\r\nthis.GQC.rootQuery()\r\n    .getFieldTC('_disTypes')\r\n    .addFields({\r\n      [this.getTypeName()]: this,\r\n    });\r\n```","created_at":"2018-07-11T06:16:23Z","updated_at":"2018-07-11T06:16:23Z","html_url":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107#discussion_r201574683","pull_request_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/comments/201574683"},"html":{"href":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107#discussion_r201574683"},"pull_request":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107"}},"in_reply_to_id":200811228},"pull_request":{"url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107","id":199310976,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk5MzEwOTc2","html_url":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107","diff_url":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107.diff","patch_url":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107.patch","issue_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/107","number":107,"state":"open","locked":false,"title":"Mongoose discriminantors, composeWithMongooseDiscriminators","user":{"login":"mernxl","id":16241595,"node_id":"MDQ6VXNlcjE2MjQxNTk1","avatar_url":"https://avatars0.githubusercontent.com/u/16241595?v=4","gravatar_id":"","url":"https://api.github.com/users/mernxl","html_url":"https://github.com/mernxl","followers_url":"https://api.github.com/users/mernxl/followers","following_url":"https://api.github.com/users/mernxl/following{/other_user}","gists_url":"https://api.github.com/users/mernxl/gists{/gist_id}","starred_url":"https://api.github.com/users/mernxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mernxl/subscriptions","organizations_url":"https://api.github.com/users/mernxl/orgs","repos_url":"https://api.github.com/users/mernxl/repos","events_url":"https://api.github.com/users/mernxl/events{/privacy}","received_events_url":"https://api.github.com/users/mernxl/received_events","type":"User","site_admin":false},"body":"Was able to implement the interface concept minimally, check this issue out #78 \r\nGuess we can start the polishing from here.","created_at":"2018-07-04T19:00:02Z","updated_at":"2018-07-11T06:16:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d57a328d4f96ca78b291b96c53ed4fafdeea87c2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107/commits","review_comments_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107/comments","review_comment_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/comments{/number}","comments_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/107/comments","statuses_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/statuses/e93a6ab82eea9e07c580981b6042954ecbcdde43","head":{"label":"mernxl:mongoose-discriminantors","ref":"mongoose-discriminantors","sha":"e93a6ab82eea9e07c580981b6042954ecbcdde43","user":{"login":"mernxl","id":16241595,"node_id":"MDQ6VXNlcjE2MjQxNTk1","avatar_url":"https://avatars0.githubusercontent.com/u/16241595?v=4","gravatar_id":"","url":"https://api.github.com/users/mernxl","html_url":"https://github.com/mernxl","followers_url":"https://api.github.com/users/mernxl/followers","following_url":"https://api.github.com/users/mernxl/following{/other_user}","gists_url":"https://api.github.com/users/mernxl/gists{/gist_id}","starred_url":"https://api.github.com/users/mernxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mernxl/subscriptions","organizations_url":"https://api.github.com/users/mernxl/orgs","repos_url":"https://api.github.com/users/mernxl/repos","events_url":"https://api.github.com/users/mernxl/events{/privacy}","received_events_url":"https://api.github.com/users/mernxl/received_events","type":"User","site_admin":false},"repo":{"id":139756471,"node_id":"MDEwOlJlcG9zaXRvcnkxMzk3NTY0NzE=","name":"graphql-compose-mongoose","full_name":"mernxl/graphql-compose-mongoose","owner":{"login":"mernxl","id":16241595,"node_id":"MDQ6VXNlcjE2MjQxNTk1","avatar_url":"https://avatars0.githubusercontent.com/u/16241595?v=4","gravatar_id":"","url":"https://api.github.com/users/mernxl","html_url":"https://github.com/mernxl","followers_url":"https://api.github.com/users/mernxl/followers","following_url":"https://api.github.com/users/mernxl/following{/other_user}","gists_url":"https://api.github.com/users/mernxl/gists{/gist_id}","starred_url":"https://api.github.com/users/mernxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mernxl/subscriptions","organizations_url":"https://api.github.com/users/mernxl/orgs","repos_url":"https://api.github.com/users/mernxl/repos","events_url":"https://api.github.com/users/mernxl/events{/privacy}","received_events_url":"https://api.github.com/users/mernxl/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mernxl/graphql-compose-mongoose","description":"Mongoose model converter to GraphQL types with resolvers for graphql-compose https://github.com/nodkz/graphql-compose","fork":true,"url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose","forks_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/forks","keys_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/teams","hooks_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/hooks","issue_events_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/issues/events{/number}","events_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/events","assignees_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/assignees{/user}","branches_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/branches{/branch}","tags_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/tags","blobs_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/git/refs{/sha}","trees_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/statuses/{sha}","languages_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/languages","stargazers_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/stargazers","contributors_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/contributors","subscribers_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/subscribers","subscription_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/subscription","commits_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/commits{/sha}","git_commits_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/git/commits{/sha}","comments_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/comments{/number}","issue_comment_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/issues/comments{/number}","contents_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/contents/{+path}","compare_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/merges","archive_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/downloads","issues_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/issues{/number}","pulls_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/pulls{/number}","milestones_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/milestones{/number}","notifications_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/labels{/name}","releases_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/releases{/id}","deployments_url":"https://api.github.com/repos/mernxl/graphql-compose-mongoose/deployments","created_at":"2018-07-04T18:49:36Z","updated_at":"2018-07-04T18:49:38Z","pushed_at":"2018-07-10T22:21:34Z","git_url":"git://github.com/mernxl/graphql-compose-mongoose.git","ssh_url":"git@github.com:mernxl/graphql-compose-mongoose.git","clone_url":"https://github.com/mernxl/graphql-compose-mongoose.git","svn_url":"https://github.com/mernxl/graphql-compose-mongoose","homepage":"","size":1191,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"graphql-compose:master","ref":"master","sha":"34e756dbbc0fd3ce4594a51bdd3581327cf752fc","user":{"login":"graphql-compose","id":22095009,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyMDk1MDA5","avatar_url":"https://avatars0.githubusercontent.com/u/22095009?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-compose","html_url":"https://github.com/graphql-compose","followers_url":"https://api.github.com/users/graphql-compose/followers","following_url":"https://api.github.com/users/graphql-compose/following{/other_user}","gists_url":"https://api.github.com/users/graphql-compose/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-compose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-compose/subscriptions","organizations_url":"https://api.github.com/users/graphql-compose/orgs","repos_url":"https://api.github.com/users/graphql-compose/repos","events_url":"https://api.github.com/users/graphql-compose/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-compose/received_events","type":"Organization","site_admin":false},"repo":{"id":60606045,"node_id":"MDEwOlJlcG9zaXRvcnk2MDYwNjA0NQ==","name":"graphql-compose-mongoose","full_name":"graphql-compose/graphql-compose-mongoose","owner":{"login":"graphql-compose","id":22095009,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyMDk1MDA5","avatar_url":"https://avatars0.githubusercontent.com/u/22095009?v=4","gravatar_id":"","url":"https://api.github.com/users/graphql-compose","html_url":"https://github.com/graphql-compose","followers_url":"https://api.github.com/users/graphql-compose/followers","following_url":"https://api.github.com/users/graphql-compose/following{/other_user}","gists_url":"https://api.github.com/users/graphql-compose/gists{/gist_id}","starred_url":"https://api.github.com/users/graphql-compose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/graphql-compose/subscriptions","organizations_url":"https://api.github.com/users/graphql-compose/orgs","repos_url":"https://api.github.com/users/graphql-compose/repos","events_url":"https://api.github.com/users/graphql-compose/events{/privacy}","received_events_url":"https://api.github.com/users/graphql-compose/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/graphql-compose/graphql-compose-mongoose","description":"Mongoose model converter to GraphQL types with resolvers for graphql-compose https://github.com/nodkz/graphql-compose","fork":false,"url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose","forks_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/forks","keys_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/keys{/key_id}","collaborators_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/teams","hooks_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/hooks","issue_events_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/events{/number}","events_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/events","assignees_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/assignees{/user}","branches_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/branches{/branch}","tags_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/tags","blobs_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/git/refs{/sha}","trees_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/git/trees{/sha}","statuses_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/statuses/{sha}","languages_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/languages","stargazers_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/stargazers","contributors_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/contributors","subscribers_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/subscribers","subscription_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/subscription","commits_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/commits{/sha}","git_commits_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/git/commits{/sha}","comments_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/comments{/number}","issue_comment_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/comments{/number}","contents_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/contents/{+path}","compare_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/compare/{base}...{head}","merges_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/merges","archive_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/downloads","issues_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues{/number}","pulls_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls{/number}","milestones_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/milestones{/number}","notifications_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/labels{/name}","releases_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/releases{/id}","deployments_url":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/deployments","created_at":"2016-06-07T10:52:39Z","updated_at":"2018-07-10T12:24:36Z","pushed_at":"2018-07-10T22:21:35Z","git_url":"git://github.com/graphql-compose/graphql-compose-mongoose.git","ssh_url":"git@github.com:graphql-compose/graphql-compose-mongoose.git","clone_url":"https://github.com/graphql-compose/graphql-compose-mongoose.git","svn_url":"https://github.com/graphql-compose/graphql-compose-mongoose","homepage":"","size":1077,"stargazers_count":213,"watchers_count":213,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"archived":false,"open_issues_count":34,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":32,"open_issues":34,"watchers":213,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107"},"html":{"href":"https://github.com/graphql-compose/graphql-compose-mongoose/pull/107"},"issue":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/107"},"comments":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/issues/107/comments"},"review_comments":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107/comments"},"review_comment":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/pulls/107/commits"},"statuses":{"href":"https://api.github.com/repos/graphql-compose/graphql-compose-mongoose/statuses/e93a6ab82eea9e07c580981b6042954ecbcdde43"}},"author_association":"NONE"}}
{"actor":{"display_login":"mernxl"}}