GitHub Insights Plugin for Backstage
![a preview of the GitHub insights plugin](./docs/code-insights-plugin.png)
Features
- Add GitHub Insights plugin tab.
- Show widgets about repository contributors, languages, readme, environments and release at overview page.
Plugin Setup
- Install the plugin:
cd packages/app
yarn add @roadiehq/backstage-plugin-github-insights
- Add plugin API to your Backstage instance:
import { EntityGithubInsightsContent } from '@roadiehq/backstage-plugin-github-insights';
...
const serviceEntityPage = (
<EntityLayoutWrapper>
...
<EntityLayout.Route
path="/code-insights"
title="Code Insights">
<EntityGithubInsightsContent />
</EntityLayout.Route>
...
</EntityLayoutWrapper>
);
- Run backstage app with
yarn start
and navigate to services tabs.
Widgets setup
-
You must install plugin by following the steps above to add widgets to your Overview. You might add only selected widgets or all of them.
-
Add widgets to your Overview tab:
import {
EntityGithubInsightsContent,
EntityGithubInsightsLanguagesCard,
EntityGithubInsightsReadmeCard,
EntityGithubInsightsReleasesCard,
isGithubInsightsAvailable,
} from '@roadiehq/backstage-plugin-github-insights';
...
const overviewContent = (
<Grid container spacing={3} alignItems="stretch">
<EntitySwitch>
<EntitySwitch.Case if={isGithubInsightsAvailable}>
<Grid item md={6}>
<EntityGithubInsightsLanguagesCard />
<EntityGithubInsightsReleasesCard />
</Grid>
<Grid item md={6}>
<EntityGithubInsightsReadmeCard maxHeight={350} />
</Grid>
</EntitySwitch.Case>
</EntitySwitch>
</Grid>
);
Readme path
By default the plugin will use the annotation github.com/project-slug
and get the root README.md
from the repository. You can use a specific path by using the annotation 'github.com/project-readme-path': 'packages/sub-module/README.md'
. It can be useful if you have a component inside a monorepos.
Widgets
Compliance Card
import { EntityGithubInsightsComplianceCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the compliance widget](docs/compliance-report-widget.png)
Contributors Card
import { EntityGithubInsightsContributorsCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the contributors widget](docs/contributors-widget.png)
Languages Card
import { EntityGithubInsightsLanguagesCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the languages widget](docs/languages-widget.png)
ReadMeCard
import { EntityGithubInsightsReadmeCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the compliance widget](docs/readme-widget.png)
ReleasesCard
import { EntityGithubInsightsReleasesCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the releases widget](docs/releases-widget.png)
EnvironmentsCard
import { EntityGithubInsightsEnvironmentsCard } from '@roadiehq/backstage-plugin-github-insights';
![a preview of the releases widget](docs/environments-widget.png)
Links