Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(bulk-import): updated README.md and app-config.yaml to use github auth #59

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions workspaces/bulk-import/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,32 @@ yarn install
yarn dev
```

To enable GitHub authentication, set up the following environment variables: `GITHUB_TOKEN`, `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` required in the `app-config.yaml` file, and update `workspaces/bulk-import/examples/org.yaml` L18-L41 using your GitHub id and email as the following:

```yaml
---
apiVersion: backstage.io/v1alpha1
kind: User
metadata:
name: <your_github_id>
spec:
profile:
email: <your_github_email>
memberOf: [rhdh-ui-test]
---
apiVersion: backstage.io/v1alpha1
kind: Group
metadata:
name: rhdh-ui-test
description: The RHDH UI test group
spec:
type: team
profile:
displayName: RHDH UI test
children: []
members: [<your_github_id>]
```

To generate knip reports for this app, run:

```sh
Expand Down
3 changes: 3 additions & 0 deletions workspaces/bulk-import/app-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ auth:
development:
clientId: ${GITHUB_CLIENT_ID}
clientSecret: ${GITHUB_CLIENT_SECRET}
signIn:
resolvers:
- resolver: usernameMatchingUserEntityName

scaffolder:
{}
Expand Down
41 changes: 41 additions & 0 deletions workspaces/bulk-import/examples/entities.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-system
apiVersion: backstage.io/v1alpha1
kind: System
metadata:
name: examples
spec:
owner: guests
---
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-component
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: example-website
spec:
type: website
lifecycle: experimental
owner: guests
system: examples
providesApis: [example-grpc-api]
---
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-api
apiVersion: backstage.io/v1alpha1
kind: API
metadata:
name: example-grpc-api
spec:
type: grpc
lifecycle: experimental
owner: guests
system: examples
definition: |
syntax = "proto3";

service Exampler {
rpc Example (ExampleMessage) returns (ExampleMessage) {};
}

message ExampleMessage {
string example = 1;
};
41 changes: 41 additions & 0 deletions workspaces/bulk-import/examples/org.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-user
apiVersion: backstage.io/v1alpha1
kind: User
metadata:
name: guest
spec:
memberOf: [guests]
---
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-group
apiVersion: backstage.io/v1alpha1
kind: Group
metadata:
name: guests
spec:
type: team
children: []
---
apiVersion: backstage.io/v1alpha1
kind: User
metadata:
# replace this with <your_github_id>
name: ciiay
spec:
profile:
# replace this with <your_github_email>
email: [email protected]
memberOf: [rhdh-ui-test]
---
apiVersion: backstage.io/v1alpha1
kind: Group
metadata:
name: rhdh-ui-test
description: The RHDH UI test group
spec:
type: team
profile:
displayName: RHDH UI test
children: []
# replace member with <your_github_id> on L23
members: [ciiay]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: ${{ values.name | dump }}
spec:
type: service
owner: user:guest
lifecycle: experimental
16 changes: 16 additions & 0 deletions workspaces/bulk-import/examples/template/content/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*
* Copyright 2024 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
console.log('Hello from ${{ values.name }}!');
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "${{ values.name }}",
"private": true,
"dependencies": {}
}
74 changes: 74 additions & 0 deletions workspaces/bulk-import/examples/template/template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
apiVersion: scaffolder.backstage.io/v1beta3
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-template
kind: Template
metadata:
name: example-nodejs-template
title: Example Node.js Template
description: An example template for the scaffolder that creates a simple Node.js service
spec:
owner: user:guest
type: service

# These parameters are used to generate the input form in the frontend, and are
# used to gather input data for the execution of the template.
parameters:
- title: Fill in some steps
required:
- name
properties:
name:
title: Name
type: string
description: Unique name of the component
ui:autofocus: true
ui:options:
rows: 5
- title: Choose a location
required:
- repoUrl
properties:
repoUrl:
title: Repository Location
type: string
ui:field: RepoUrlPicker
ui:options:
allowedHosts:
- github.com

# These steps are executed in the scaffolder backend, using data that we gathered
# via the parameters above.
steps:
# Each step executes an action, in this case one templates files into the working directory.
- id: fetch-base
name: Fetch Base
action: fetch:template
input:
url: ./content
values:
name: ${{ parameters.name }}

# This step publishes the contents of the working directory to GitHub.
- id: publish
name: Publish
action: publish:github
input:
allowedHosts: ['github.com']
description: This is ${{ parameters.name }}
repoUrl: ${{ parameters.repoUrl }}

# The final step is to register our new component in the catalog.
- id: register
name: Register
action: catalog:register
input:
repoContentsUrl: ${{ steps['publish'].output.repoContentsUrl }}
catalogInfoPath: '/catalog-info.yaml'

# Outputs are displayed to the user after a successful execution of the template.
output:
links:
- title: Repository
url: ${{ steps['publish'].output.remoteUrl }}
- title: Open in catalog
icon: catalog
entityRef: ${{ steps['register'].output.entityRef }}