|
|
|
@@ -1,110 +1,3 @@
|
|
|
|
|
# GitHub Actions Plugin
|
|
|
|
|
# Deprecated
|
|
|
|
|
|
|
|
|
|
Website: [https://github.com/actions](https://github.com/actions)
|
|
|
|
|
|
|
|
|
|
## Screenshots
|
|
|
|
|
|
|
|
|
|
TBD
|
|
|
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
|
|
|
|
|
### Generic Requirements
|
|
|
|
|
|
|
|
|
|
1. Provide OAuth credentials:
|
|
|
|
|
1. [Create an OAuth App](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) in the GitHub organization with the callback URL set to `http://localhost:7007/api/auth/github/handler/frame`.
|
|
|
|
|
2. Take the Client ID and Client Secret from the newly created app's settings page and put them into `AUTH_GITHUB_CLIENT_ID` and `AUTH_GITHUB_CLIENT_SECRET` environment variables.
|
|
|
|
|
2. Annotate your component with a correct GitHub Actions repository and owner:
|
|
|
|
|
|
|
|
|
|
The annotation key is `github.com/project-slug`.
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
apiVersion: backstage.io/v1alpha1
|
|
|
|
|
kind: Component
|
|
|
|
|
metadata:
|
|
|
|
|
name: backstage
|
|
|
|
|
description: backstage.io
|
|
|
|
|
annotations:
|
|
|
|
|
github.com/project-slug: 'backstage/backstage'
|
|
|
|
|
spec:
|
|
|
|
|
type: website
|
|
|
|
|
lifecycle: production
|
|
|
|
|
owner: user:guest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Standalone app requirements
|
|
|
|
|
|
|
|
|
|
1. Install the plugin dependency in your Backstage app package:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# From your Backstage root directory
|
|
|
|
|
yarn --cwd packages/app add @backstage/plugin-github-actions
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. Add to the app `EntityPage` component:
|
|
|
|
|
|
|
|
|
|
```tsx
|
|
|
|
|
// In packages/app/src/components/catalog/EntityPage.tsx
|
|
|
|
|
import {
|
|
|
|
|
EntityGithubActionsContent,
|
|
|
|
|
isGithubActionsAvailable,
|
|
|
|
|
} from '@backstage/plugin-github-actions';
|
|
|
|
|
|
|
|
|
|
// You can add the tab to any number of pages, the service page is shown as an
|
|
|
|
|
// example here
|
|
|
|
|
const serviceEntityPage = (
|
|
|
|
|
<EntityLayout>
|
|
|
|
|
{/* other tabs... */}
|
|
|
|
|
<EntityLayout.Route path="/github-actions" title="GitHub Actions">
|
|
|
|
|
<EntityGithubActionsContent />
|
|
|
|
|
</EntityLayout.Route>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. Run the app with `yarn start` and the backend with `yarn start-backend`.
|
|
|
|
|
Then navigate to `/github-actions/` under any entity.
|
|
|
|
|
|
|
|
|
|
### Self-hosted / Enterprise GitHub
|
|
|
|
|
|
|
|
|
|
The plugin will try to use `backstage.io/source-location` or `backstage.io/managed-by-location`
|
|
|
|
|
annotations to figure out the location of the source code.
|
|
|
|
|
|
|
|
|
|
1. Add the `host` and `apiBaseUrl` to your `app-config.yaml`
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
# app-config.yaml
|
|
|
|
|
|
|
|
|
|
integrations:
|
|
|
|
|
github:
|
|
|
|
|
- host: 'your-github-host.com'
|
|
|
|
|
apiBaseUrl: 'https://api.your-github-host.com'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
- List workflow runs for a project
|
|
|
|
|
- Dive into one run to see a job steps
|
|
|
|
|
- Retry runs
|
|
|
|
|
- Pagination for runs
|
|
|
|
|
|
|
|
|
|
## Limitations
|
|
|
|
|
|
|
|
|
|
- There is a limit of 100 apps for one OAuth client/token pair
|
|
|
|
|
- The OAuth application must be at the GitHub organization level in order to display the workflows. If you do
|
|
|
|
|
not see any workflows, confirm the OAuth application was created in the organization and not a specific user account.
|
|
|
|
|
|
|
|
|
|
## Optional Workflow Runs Card View
|
|
|
|
|
|
|
|
|
|
Github Workflow Runs optional UI to show in Card view instead of table, with branch selection option
|
|
|
|
|
|
|
|
|
|
```tsx
|
|
|
|
|
|
|
|
|
|
// You can add the tab to any number of pages, the service page is shown as an
|
|
|
|
|
// example given here
|
|
|
|
|
const serviceEntityPage = (
|
|
|
|
|
<EntityLayout>
|
|
|
|
|
{/* other tabs... */}
|
|
|
|
|
<EntityLayout.Route path="/github-actions" title="GitHub Actions">
|
|
|
|
|
<EntityGithubActionsContent view='cards' />
|
|
|
|
|
</EntityLayout.Route>
|
|
|
|
|
```
|
|
|
|
|
This package has been moved to the [backstage-community/plugins](https://github.com/backstage/community-plugins) repository. Migrate to using `@backstage-community/plugin-github-actions` instead.
|
|
|
|
|