diff --git a/implementations/apollo-server/metadata.json b/implementations/apollo-server/metadata.json index 6a9495e7a..6dbe9429a 100644 --- a/implementations/apollo-server/metadata.json +++ b/implementations/apollo-server/metadata.json @@ -6,6 +6,7 @@ "repository": { "name": "apollo-server", "owner": "apollographql", + "maintainer" : "apollographql", "link": "https://github.com/apollographql/apollo-server" }, "coreLibrary": { @@ -14,6 +15,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer": "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/dgs/metadata.json b/implementations/dgs/metadata.json index 6f12f57bf..9dce46666 100644 --- a/implementations/dgs/metadata.json +++ b/implementations/dgs/metadata.json @@ -15,6 +15,7 @@ "federationlibrary": { "name": "federation-jvm", "owner": "apollographql", + "maintainer" : "apollographql", "link": "https://github.com/apollographql/federation-jvm" } } \ No newline at end of file diff --git a/implementations/express-graphql/metadata.json b/implementations/express-graphql/metadata.json index 581e08ffd..b2125e37f 100644 --- a/implementations/express-graphql/metadata.json +++ b/implementations/express-graphql/metadata.json @@ -14,6 +14,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/graphql-java-kickstart/metadata.json b/implementations/graphql-java-kickstart/metadata.json index bea7fa243..0730abb36 100644 --- a/implementations/graphql-java-kickstart/metadata.json +++ b/implementations/graphql-java-kickstart/metadata.json @@ -15,6 +15,7 @@ "federationlibrary": { "name": "federation-jvm", "owner": "apollographql", + "maintainer": "apollographql", "link": "https://github.com/apollographql/federation-jvm" } } \ No newline at end of file diff --git a/implementations/graphql-yoga/metadata.json b/implementations/graphql-yoga/metadata.json index 343e6087b..b1b8fd014 100644 --- a/implementations/graphql-yoga/metadata.json +++ b/implementations/graphql-yoga/metadata.json @@ -15,6 +15,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/helix/metadata.json b/implementations/helix/metadata.json index 709e9bd38..fcff28660 100644 --- a/implementations/helix/metadata.json +++ b/implementations/helix/metadata.json @@ -15,6 +15,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/hotchocolate/metadata.json b/implementations/hotchocolate/metadata.json index d233218bd..71ea73828 100644 --- a/implementations/hotchocolate/metadata.json +++ b/implementations/hotchocolate/metadata.json @@ -12,6 +12,7 @@ "federationlibrary": { "name": "federation-hotchocolate", "owner": "apollographql", + "maintainer": "apollographql", "link": "https://github.com/apollographql/federation-hotchocolate" } } \ No newline at end of file diff --git a/implementations/mercurius/metadata.json b/implementations/mercurius/metadata.json index fd921f06f..435befb48 100644 --- a/implementations/mercurius/metadata.json +++ b/implementations/mercurius/metadata.json @@ -14,6 +14,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/neo4j-graphql/metadata.json b/implementations/neo4j-graphql/metadata.json index 09b63d2ff..2e163ce0c 100644 --- a/implementations/neo4j-graphql/metadata.json +++ b/implementations/neo4j-graphql/metadata.json @@ -14,6 +14,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } diff --git a/implementations/nestjs-code-first/metadata.json b/implementations/nestjs-code-first/metadata.json index 3a07773db..bffe0b951 100644 --- a/implementations/nestjs-code-first/metadata.json +++ b/implementations/nestjs-code-first/metadata.json @@ -15,6 +15,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/nestjs/metadata.json b/implementations/nestjs/metadata.json index 79cebabd7..b3769cbfa 100644 --- a/implementations/nestjs/metadata.json +++ b/implementations/nestjs/metadata.json @@ -15,6 +15,7 @@ }, "federationlibrary": { "name": "Apollo Subgraph", + "maintainer" : "apollographql", "link": "https://www.npmjs.com/package/@apollo/subgraph" } } \ No newline at end of file diff --git a/implementations/spring-graphql/metadata.json b/implementations/spring-graphql/metadata.json index 65ceeed2d..85bad2ae9 100644 --- a/implementations/spring-graphql/metadata.json +++ b/implementations/spring-graphql/metadata.json @@ -15,6 +15,7 @@ "federationlibrary": { "name": "federation-jvm", "owner": "apollographql", + "maintainer": "apollographql", "link": "https://github.com/apollographql/federation-jvm" } } \ No newline at end of file diff --git a/implementations/strawberry-graphql/metadata.json b/implementations/strawberry-graphql/metadata.json index e96c58316..8afb2d3c2 100644 --- a/implementations/strawberry-graphql/metadata.json +++ b/implementations/strawberry-graphql/metadata.json @@ -6,7 +6,7 @@ "repository": { "name": "strawberry", "owner": "strawberry-graphql", - "link": "https://github.com/strawberry-graphql/strawberry" + "link": "https://github.com/strawberry-graphql/strawberry", }, "coreLibrary": { "name": "GraphQL-core 3", diff --git a/packages/compatibility/src/testRunner.ts b/packages/compatibility/src/testRunner.ts index 2d65ba9c8..415ed4af3 100644 --- a/packages/compatibility/src/testRunner.ts +++ b/packages/compatibility/src/testRunner.ts @@ -162,6 +162,7 @@ export interface TestResultDetails { export interface RepositoryInformation { name: string; owner?: string; + maintainer?: string; link: string; } diff --git a/packages/compatibility/src/utils/markdown.ts b/packages/compatibility/src/utils/markdown.ts index 816ed05d1..f2be02ce7 100644 --- a/packages/compatibility/src/utils/markdown.ts +++ b/packages/compatibility/src/utils/markdown.ts @@ -2,6 +2,10 @@ import { writeFileSync } from 'fs'; import { resolve } from 'path'; import { TestResultDetails, TestResults, TESTS } from '../testRunner'; +const apolloIcon: string = + 'Maintained by Apollo'; +const apolloName: string = 'apollographql'; + export function generateMarkdown(results: TestResultDetails[]) { const markdownFile = new MarkdownFile(true); @@ -60,6 +64,7 @@ class MarkdownFile { | Icon | Description | | ---- | ---------------------------------------------------- | +| ${apolloIcon} | Maintained by Apollo | | 🟢 | Functionality is supported | | ❌ | Critical functionality is NOT supported | | 🔲 | Additional federation functionality is NOT supported | @@ -123,7 +128,7 @@ class MarkdownFile { } renderSubgraphDetailsCell(result: TestResultDetails): String { - let content = `${result.description}

`; + let content = `${result.description}

`; if (result.repository?.link) { const starCount = Number(result.stargazerCount); @@ -135,24 +140,36 @@ class MarkdownFile { } const lastReleaseDate = result.lastRelease.substring(0, 10); - content += `Github: ${result.repository.owner}/${result.repository.name}
-Type: ${result.type}
-Stars: ${stars} ⭐
-Last Release: ${lastReleaseDate}

`; + let repoName = result.repository.owner + ? `${result.repository.owner}/${result.repository.name}` + : result.repository.name; + if (result.repository.maintainer === apolloName) { + repoName += `  ${apolloIcon}`; + } + content += `Github: ${repoName}
+Type: ${result.type}
+Stars: ${stars} ⭐
+Last Release: ${lastReleaseDate}

`; } if (result.coreLibrary?.link) { - const coreLibraryName = result.coreLibrary.owner + let coreLibraryName = result.coreLibrary.owner ? `${result.coreLibrary.owner}/${result.coreLibrary.name}` : result.coreLibrary.name; - content += `Core Library: ${coreLibraryName}
`; + if (result.coreLibrary.maintainer === apolloName) { + coreLibraryName += `  ${apolloIcon}`; + } + content += `Core Library: ${coreLibraryName}
`; } if (result.federationlibrary?.link) { - const fedLibraryName = result.federationlibrary.owner + let fedLibraryName = result.federationlibrary.owner ? `${result.federationlibrary.owner}/${result.federationlibrary.name}` : result.federationlibrary.name; - content += `Federation Library: ${fedLibraryName}
`; + if (result.federationlibrary.maintainer === apolloName) { + fedLibraryName += `  ${apolloIcon}`; + } + content += `Federation Library: ${fedLibraryName}
`; } return content;