diff --git a/packages/app/package.json b/packages/app/package.json
index bfd1b35008..c9bc3eef8c 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -60,10 +60,10 @@
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "4.0.0-alpha.57",
"@octokit/rest": "^18.5.3",
- "@roadiehq/backstage-plugin-buildkite": "^1.3.8",
- "@roadiehq/backstage-plugin-github-insights": "^1.5.0",
- "@roadiehq/backstage-plugin-github-pull-requests": "^1.4.0",
- "@roadiehq/backstage-plugin-travis-ci": "^1.3.6",
+ "@roadiehq/backstage-plugin-buildkite": "^1.4.0",
+ "@roadiehq/backstage-plugin-github-insights": "^1.6.0",
+ "@roadiehq/backstage-plugin-github-pull-requests": "^1.5.0",
+ "@roadiehq/backstage-plugin-travis-ci": "^1.4.0",
"history": "^5.0.0",
"prop-types": "^15.7.2",
"react": "^17.0.2",
diff --git a/packages/app/src/components/catalog/EntityPage.tsx b/packages/app/src/components/catalog/EntityPage.tsx
index 5f0f22183f..ba0eacf97e 100644
--- a/packages/app/src/components/catalog/EntityPage.tsx
+++ b/packages/app/src/components/catalog/EntityPage.tsx
@@ -108,8 +108,27 @@ import { EntityTodoContent } from '@backstage/plugin-todo';
import { Button, Grid } from '@material-ui/core';
import BadgeIcon from '@material-ui/icons/CallToAction';
-import { EntityGithubInsightsContent } from '@roadiehq/backstage-plugin-github-insights';
-import { EntityGithubPullRequestsContent } from '@roadiehq/backstage-plugin-github-pull-requests';
+import {
+ EntityGithubInsightsContent,
+ EntityGithubInsightsLanguagesCard,
+ EntityGithubInsightsReadmeCard,
+ EntityGithubInsightsReleasesCard,
+ isGithubInsightsAvailable,
+} from '@roadiehq/backstage-plugin-github-insights';
+import {
+ EntityGithubPullRequestsContent,
+ EntityGithubPullRequestsOverviewCard,
+ isGithubPullRequestsAvailable,
+} from '@roadiehq/backstage-plugin-github-pull-requests';
+import {
+ EntityTravisCIContent,
+ EntityTravisCIOverviewCard,
+ isTravisciAvailable,
+} from '@roadiehq/backstage-plugin-travis-ci';
+import {
+ EntityBuildkiteContent,
+ isBuildkiteAvailable,
+} from '@roadiehq/backstage-plugin-buildkite';
import {
isNewRelicDashboardAvailable,
EntityNewRelicDashboardContent,
@@ -160,6 +179,10 @@ export const cicdContent = (
+
+
+
+
@@ -168,6 +191,10 @@ export const cicdContent = (
+
+
+
+
@@ -207,6 +234,12 @@ const cicdCard = (
+
+
+
+
+
+
@@ -292,6 +325,18 @@ const overviewContent = (
{cicdCard}
+
+ Boolean(isGithubInsightsAvailable(e))}>
+
+
+
+
+
+
+
+
+
+
@@ -300,6 +345,14 @@ const overviewContent = (
+
+ Boolean(isGithubPullRequestsAvailable(e))}>
+
+
+
+
+
+
diff --git a/yarn.lock b/yarn.lock
index e421da82ba..dd80570e70 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1358,169 +1358,6 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
-"@backstage/catalog-client@^0.7.0":
- version "0.7.2"
- resolved "https://registry.npmjs.org/@backstage/catalog-client/-/catalog-client-0.7.2.tgz#bcfdb2c210e878fbc5833f18e59feae1e7e48330"
- integrity sha512-jeJfi4ekwIffi8ozSzvgdv94DZ2kKNwFVhAP0V+63GF6wIspvGuTIwU2uKYH0v9JXA08lwmAsOGnrrwgS6ragA==
- dependencies:
- "@backstage/catalog-model" "^0.11.0"
- "@backstage/errors" "^0.2.2"
- cross-fetch "^3.1.5"
-
-"@backstage/catalog-model@^0.10.0":
- version "0.10.1"
- resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.10.1.tgz#dcc3415eb4d4ee3d437355c477e85c7479626b3b"
- integrity sha512-c004aQeO9cxtSZZc2iBcE6eoqurQLdj7YUm8mHWs8hEaPTA2UPVHawt+wlt89VywkI89X0wF7BuXV2LKVUfXvw==
- dependencies:
- "@backstage/config" "^0.1.15"
- "@backstage/errors" "^0.2.2"
- "@backstage/types" "^0.1.3"
- "@types/json-schema" "^7.0.5"
- ajv "^7.0.3"
- json-schema "^0.4.0"
- lodash "^4.17.21"
- uuid "^8.0.0"
-
-"@backstage/catalog-model@^0.11.0":
- version "0.11.0"
- resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.11.0.tgz#f02f86fe74305b49fce300e9c221659f9092d1b7"
- integrity sha512-DnmbzKZejvxBSQv1LjA3AZIxwmchir2A9L9MzWH9D+pVKIu4AEt2HItf6g+xhpgk+4GJppETsEgrLI+Iyr6QSA==
- dependencies:
- "@backstage/config" "^0.1.15"
- "@backstage/errors" "^0.2.2"
- "@backstage/types" "^0.1.3"
- "@types/json-schema" "^7.0.5"
- ajv "^7.0.3"
- json-schema "^0.4.0"
- lodash "^4.17.21"
- uuid "^8.0.0"
-
-"@backstage/catalog-model@^0.9.7":
- version "0.9.10"
- resolved "https://registry.npmjs.org/@backstage/catalog-model/-/catalog-model-0.9.10.tgz#bd5662e1ad7bd7c9604f3f45d055c99b5b2bb87f"
- integrity sha512-KhCjbZKhS5zZhHiGHmBMq6hDGDshMSZOPGXehtdhr6/oW7Ee5fDcOnhMqreCi1Ebm4RIWJhZcRrxO6X1TTi4TQ==
- dependencies:
- "@backstage/config" "^0.1.13"
- "@backstage/errors" "^0.2.0"
- "@backstage/types" "^0.1.1"
- "@types/json-schema" "^7.0.5"
- "@types/yup" "^0.29.13"
- ajv "^7.0.3"
- json-schema "^0.4.0"
- lodash "^4.17.21"
- uuid "^8.0.0"
- yup "^0.32.9"
-
-"@backstage/core-components@^0.8.0", "@backstage/core-components@^0.8.9":
- version "0.8.10"
- resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.8.10.tgz#6f79c46cdf507fc3a0d764848a4a8aa73af7ce93"
- integrity sha512-gGyCPPSdgvzYHWMKlxe/H4yFmEYDQuAtaoT7Y/3+pilcJSIQi9d3oV104BDLC94bdkyOWDsA1tT+PGZtd0p/8g==
- dependencies:
- "@backstage/config" "^0.1.15"
- "@backstage/core-plugin-api" "^0.7.0"
- "@backstage/errors" "^0.2.2"
- "@backstage/theme" "^0.2.15"
- "@material-table/core" "^3.1.0"
- "@material-ui/core" "^4.12.2"
- "@material-ui/icons" "^4.9.1"
- "@material-ui/lab" "4.0.0-alpha.57"
- "@react-hookz/web" "^12.3.0"
- "@types/react-sparklines" "^1.7.0"
- "@types/react-text-truncate" "^0.14.0"
- ansi-regex "^6.0.1"
- classnames "^2.2.6"
- d3-selection "^3.0.0"
- d3-shape "^3.0.0"
- d3-zoom "^3.0.0"
- dagre "^0.8.5"
- history "^5.0.0"
- immer "^9.0.1"
- lodash "^4.17.21"
- pluralize "^8.0.0"
- prop-types "^15.7.2"
- qs "^6.9.4"
- rc-progress "3.2.4"
- react-helmet "6.1.0"
- react-hook-form "^7.12.2"
- react-markdown "^8.0.0"
- react-router "6.0.0-beta.0"
- react-router-dom "6.0.0-beta.0"
- react-sparklines "^1.7.0"
- react-syntax-highlighter "^15.4.5"
- react-text-truncate "^0.17.0"
- react-use "^17.3.2"
- react-virtualized-auto-sizer "^1.0.6"
- react-window "^1.8.6"
- remark-gfm "^3.0.1"
- zen-observable "^0.8.15"
- zod "^3.11.6"
-
-"@backstage/core-plugin-api@^0.6.0", "@backstage/core-plugin-api@^0.6.1":
- version "0.6.1"
- resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.6.1.tgz#a6fb8110f384ab9405990450956b2c81b88e90b2"
- integrity sha512-DtHY0eG2OQ4QAHVb5y8yDUQXZW9Ot7Fsr4Rpe3BbiLpkXA5hZLXPMThOyz1Y79ZOEC5eiyhUlXL1g6P7ylOKMw==
- dependencies:
- "@backstage/config" "^0.1.14"
- "@backstage/types" "^0.1.2"
- "@backstage/version-bridge" "^0.1.2"
- history "^5.0.0"
- prop-types "^15.7.2"
- react-router-dom "6.0.0-beta.0"
- zen-observable "^0.8.15"
-
-"@backstage/core-plugin-api@^0.7.0":
- version "0.7.0"
- resolved "https://registry.npmjs.org/@backstage/core-plugin-api/-/core-plugin-api-0.7.0.tgz#e53f3aa5bbf074a70fcaf264b04402637008659c"
- integrity sha512-SVzrJjvEjWzJgIqfFUjQjqW0RGCzj6zgLULpSgP53GQat70I0wje6E4n0blNU+/q7hpt6PoIT0lgZtqFOJrfYQ==
- dependencies:
- "@backstage/config" "^0.1.15"
- "@backstage/types" "^0.1.3"
- "@backstage/version-bridge" "^0.1.2"
- history "^5.0.0"
- prop-types "^15.7.2"
- react-router-dom "6.0.0-beta.0"
- zen-observable "^0.8.15"
-
-"@backstage/integration@^0.7.3":
- version "0.7.5"
- resolved "https://registry.npmjs.org/@backstage/integration/-/integration-0.7.5.tgz#c68848f35db51705b3287b6fa6a259ae4b17bfbc"
- integrity sha512-KUoNQLfPaRqQsdfx04IX4d3EIHbJU3tJxoUjVCCDIAThtep6clhY4uoxXIYTUz+bhERUGGJYhMR+1ryEEtwWhw==
- dependencies:
- "@backstage/config" "^0.1.15"
- "@octokit/auth-app" "^3.4.0"
- "@octokit/rest" "^18.5.3"
- cross-fetch "^3.1.5"
- git-url-parse "^11.6.0"
- lodash "^4.17.21"
- luxon "^2.0.2"
-
-"@backstage/plugin-catalog-react@^0.6.5":
- version "0.6.15"
- resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.6.15.tgz#04de88caa4ac2ce2ad000ee34d28b11eda3910b9"
- integrity sha512-8JDM0upFD/WpB6Qs8oIQf99E2yaqbf835IEgt6aY7l4lEzUrtW4007VXPMdDqOwVwhVM4PbTIvyIRzkQpcr89A==
- dependencies:
- "@backstage/catalog-client" "^0.7.0"
- "@backstage/catalog-model" "^0.10.0"
- "@backstage/core-components" "^0.8.9"
- "@backstage/core-plugin-api" "^0.6.1"
- "@backstage/errors" "^0.2.1"
- "@backstage/integration" "^0.7.3"
- "@backstage/plugin-permission-common" "^0.5.0"
- "@backstage/plugin-permission-react" "^0.3.1"
- "@backstage/types" "^0.1.2"
- "@backstage/version-bridge" "^0.1.2"
- "@material-ui/core" "^4.12.2"
- "@material-ui/icons" "^4.9.1"
- "@material-ui/lab" "4.0.0-alpha.57"
- classnames "^2.2.6"
- jwt-decode "^3.1.0"
- lodash "^4.17.21"
- qs "^6.9.4"
- react-router "6.0.0-beta.0"
- react-use "^17.2.4"
- yaml "^1.10.0"
- zen-observable "^0.8.15"
-
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -4806,13 +4643,6 @@
resolved "https://registry.npmjs.org/@react-hookz/deep-equal/-/deep-equal-1.0.1.tgz#1e9aad97b964879b54a3909f36f0727befa13e1f"
integrity sha512-6k/pU2jNlgYvKOy84vpCAZ8MGVwybvAdjzrh4UicCVOCPxz0LSBws1OE6O5TO4sPHaSw+yLfNzNK8RicGFc1Kw==
-"@react-hookz/web@^12.3.0":
- version "12.3.0"
- resolved "https://registry.npmjs.org/@react-hookz/web/-/web-12.3.0.tgz#a9a1311a15171a57d68a3db61492f913d4fd455a"
- integrity sha512-Uujp2RfX/oDEtAbdkV0W/nhiQ5ZYVH+MEq04T7/8TstyiwoIlvsRbEic6c6gQA6sQ/lw93cZ8NP8R7AYjiqDvg==
- dependencies:
- "@react-hookz/deep-equal" "^1.0.1"
-
"@react-hookz/web@^13.0.0":
version "13.0.0"
resolved "https://registry.npmjs.org/@react-hookz/web/-/web-13.0.0.tgz#7c4d54fb4c1edf885879914d719e35086964e46e"
@@ -4840,15 +4670,15 @@
resolved "https://registry.npmjs.org/@rjsf/material-ui/-/material-ui-3.2.1.tgz#84fbf322485aee3a84101e189161f0687779ec8d"
integrity sha512-8UiDeDbjCImFSfOegGu13otQ7OdP9FOYpcLjeouppnhs+MPeIEAtYS+jCcBKmi3reyTagC15/KVSRhde1wS1vg==
-"@roadiehq/backstage-plugin-buildkite@^1.3.8":
- version "1.3.8"
- resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-1.3.8.tgz#fa91880e7d95a82d8d532f663cc9415c74dc6143"
- integrity sha512-eZW826eMTgy7znkNRQzIhi/mlL6ztYRGq/+kThX3JjoHyGfIxEd+GnR58YEeuvs5dy277SJ/9gm3iibhK9T9sQ==
+"@roadiehq/backstage-plugin-buildkite@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-buildkite/-/backstage-plugin-buildkite-1.4.0.tgz#f268ba2b6f43f68158af379d55fc7e19842c1b43"
+ integrity sha512-bG16kyn5e/QzceGy7PXs/wb09/p7W1O+kev7V/PGECHlxgj/Gg575maFsyZU/bIGTQM3cUavwvj0pzfdXjFD3Q==
dependencies:
- "@backstage/catalog-model" "^0.9.7"
- "@backstage/core-components" "^0.8.0"
- "@backstage/core-plugin-api" "^0.6.0"
- "@backstage/plugin-catalog-react" "^0.6.5"
+ "@backstage/catalog-model" "^0.13.0"
+ "@backstage/core-components" "^0.9.0"
+ "@backstage/core-plugin-api" "^0.8.0"
+ "@backstage/plugin-catalog-react" "^0.9.0"
"@backstage/theme" "^0.2.6"
"@material-ui/core" "^4.12.1"
"@material-ui/icons" "^4.11.2"
@@ -4859,16 +4689,16 @@
react-router-dom "6.0.0-beta.0"
react-use "^17.2.4"
-"@roadiehq/backstage-plugin-github-insights@^1.5.0":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-1.5.0.tgz#9a693be80adc9f3b9cfe5ba615628abde88e121f"
- integrity sha512-r2FclGGF/6aTrT6wH5Xq+5ByfVwgCDt83+KINf1ELNuWt5x0nMtguSTyZqJ5n1AdbGybVJZ84dlfbSTa8RTU7g==
+"@roadiehq/backstage-plugin-github-insights@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-insights/-/backstage-plugin-github-insights-1.6.0.tgz#0ccd63ff08f720f09d0076ba3210ef2373bb62b2"
+ integrity sha512-TV7hrxxhJy0yN+jERVKALYW36nwvNWCpCOcBGgoBepbFCOhiUgc3g9EjRp0b0z+uUSywFkEPUYH1B1CXGzDLdw==
dependencies:
- "@backstage/catalog-model" "^0.9.7"
- "@backstage/core-components" "^0.8.0"
- "@backstage/core-plugin-api" "^0.6.0"
+ "@backstage/catalog-model" "^0.13.0"
+ "@backstage/core-components" "^0.9.0"
+ "@backstage/core-plugin-api" "^0.8.0"
"@backstage/integration-react" "^0.1.10"
- "@backstage/plugin-catalog-react" "^0.6.5"
+ "@backstage/plugin-catalog-react" "^0.9.0"
"@backstage/theme" "^0.2.7"
"@date-io/core" "2.10.7"
"@material-ui/core" "^4.11.0"
@@ -4883,15 +4713,15 @@
react-use "^17.2.4"
zustand "3.6.9"
-"@roadiehq/backstage-plugin-github-pull-requests@^1.4.0":
- version "1.4.0"
- resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.4.0.tgz#3f250c8b13c6b95ec2825f9b7088ea5199054013"
- integrity sha512-qrbybOtZdWWWKptGfAvf1vzlwXGcvidWT5Dr6mbibn7GwSxSe4CD58pIEHJzFoT9jLHFGgAn5Uhh2SG/Ek7gbw==
+"@roadiehq/backstage-plugin-github-pull-requests@^1.5.0":
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-github-pull-requests/-/backstage-plugin-github-pull-requests-1.5.0.tgz#30266e037831c11842cd8e1456008fede2c6b580"
+ integrity sha512-jlNYV/RC0HVwkp8lCmPAhps6KpRP4OuTrsrIXt557EHWb+kuwEAV5jKaSkINvUOjIPAnOB7SA83xXWZW1Y9lig==
dependencies:
- "@backstage/catalog-model" "^0.9.7"
- "@backstage/core-components" "^0.8.0"
- "@backstage/core-plugin-api" "^0.6.0"
- "@backstage/plugin-catalog-react" "^0.6.5"
+ "@backstage/catalog-model" "^0.13.0"
+ "@backstage/core-components" "^0.9.0"
+ "@backstage/core-plugin-api" "^0.8.0"
+ "@backstage/plugin-catalog-react" "^0.9.0"
"@material-ui/core" "^4.11.0"
"@material-ui/icons" "^4.9.1"
"@octokit/rest" "^18.5.3"
@@ -4904,15 +4734,15 @@
react-router "6.0.0-beta.0"
react-use "^17.2.4"
-"@roadiehq/backstage-plugin-travis-ci@^1.3.6":
- version "1.3.6"
- resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-1.3.6.tgz#6f45a42bdf39aa6baab56f0c4400990238df1625"
- integrity sha512-th+2GaOjkPArDUbTBuhhCz/6WL4gcrVRVAsDHzuSrrJqNtsz6kXdBIHhR/58En16BZ2bnHhRzY87uiUDLjAntA==
+"@roadiehq/backstage-plugin-travis-ci@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/@roadiehq/backstage-plugin-travis-ci/-/backstage-plugin-travis-ci-1.4.0.tgz#165b401b4b4eaae93ebb1148854c8343392f9950"
+ integrity sha512-tYNpfybmKiOULYoL7YV2DJ1l0e8UcbZsc3B0pSUbchPedoWlvgpXoG5BmttTZcCW8MI0e1kK2FWqwnVkvygRhQ==
dependencies:
- "@backstage/catalog-model" "^0.9.7"
- "@backstage/core-components" "^0.8.0"
- "@backstage/core-plugin-api" "^0.6.0"
- "@backstage/plugin-catalog-react" "^0.6.5"
+ "@backstage/catalog-model" "^0.13.0"
+ "@backstage/core-components" "^0.9.0"
+ "@backstage/core-plugin-api" "^0.8.0"
+ "@backstage/plugin-catalog-react" "^0.9.0"
"@backstage/theme" "^0.2.9"
"@material-ui/core" "^4.11.3"
"@material-ui/icons" "^4.11.2"
@@ -11958,10 +11788,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
"@material-ui/icons" "^4.9.1"
"@material-ui/lab" "4.0.0-alpha.57"
"@octokit/rest" "^18.5.3"
- "@roadiehq/backstage-plugin-buildkite" "^1.3.8"
- "@roadiehq/backstage-plugin-github-insights" "^1.5.0"
- "@roadiehq/backstage-plugin-github-pull-requests" "^1.4.0"
- "@roadiehq/backstage-plugin-travis-ci" "^1.3.6"
+ "@roadiehq/backstage-plugin-buildkite" "^1.4.0"
+ "@roadiehq/backstage-plugin-github-insights" "^1.6.0"
+ "@roadiehq/backstage-plugin-github-pull-requests" "^1.5.0"
+ "@roadiehq/backstage-plugin-travis-ci" "^1.4.0"
history "^5.0.0"
prop-types "^15.7.2"
react "^17.0.2"
@@ -20840,13 +20670,6 @@ react-test-renderer@^16.13.1:
react-is "^16.8.6"
scheduler "^0.19.1"
-react-text-truncate@^0.17.0:
- version "0.17.0"
- resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.17.0.tgz#a820bfd9d084caf85d900a011fe2ab4216fc3821"
- integrity sha512-EUL7s47XApOgbR//t/9X+fXg1feS47RcTywNXEQZAlNL0vrCIYGye1C+mpUgGIIXKTkabweid6z7s16AkTo5sA==
- dependencies:
- prop-types "^15.5.7"
-
react-text-truncate@^0.18.0:
version "0.18.0"
resolved "https://registry.npmjs.org/react-text-truncate/-/react-text-truncate-0.18.0.tgz#c65f4be660d24734badb903a4832467eddcf8058"