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

plugin(quay): initial migration #1912

Merged
merged 11 commits into from
Nov 14, 2024
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
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ yarn.lock @backstage/community-plugins
/workspaces/octopus-deploy @backstage/community-plugins-maintainers @jmezach
/workspaces/pingidentity @backstage/community-plugins-maintainers @jessicajhee
/workspaces/playlist @backstage/community-plugins-maintainers @kuangp
/workspaces/quay @backstage/community-plugins-maintainers @karthikjeeyar @rohitkrai03 @Eswaraiahsapram
/workspaces/rbac @backstage/community-plugins-maintainers @AndrienkoAleksandr @divyanshiGupta @PatAKnight
/workspaces/redhat-argocd @backstage/community-plugins-maintainers @karthikjeeyar @rohitkrai03 @Eswaraiahsapram
/workspaces/redhat-resource-optimization @backstage/community-plugins-maintainers @christoph-jerolimov @04kash
Expand Down
8 changes: 8 additions & 0 deletions workspaces/quay/.changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
14 changes: 14 additions & 0 deletions workspaces/quay/.changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"privatePackages": {
"tag": false,
"version": false
}
}
6 changes: 6 additions & 0 deletions workspaces/quay/.changeset/migrate-1731420924280.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@backstage-community/plugin-quay': patch
'@backstage-community/plugin-quay-common': patch
---

Migrated from [janus-idp/backstage-plugins](https://github.com/janus-idp/backstage-plugins).
8 changes: 8 additions & 0 deletions workspaces/quay/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.git
.yarn/cache
.yarn/install-state.gz
node_modules
packages/*/src
packages/*/node_modules
plugins
*.local.yaml
1 change: 1 addition & 0 deletions workspaces/quay/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
playwright.config.ts
16 changes: 16 additions & 0 deletions workspaces/quay/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const defaultRules = require('../../.eslintrc.cjs');
module.exports = {
...defaultRules,
overrides: defaultRules.overrides.map((override) => {
return {
...override,
rules: {
...override.rules,
// We disable the rule that forbids certain elements
// because this plugin is based on PatternFly instead of MUI
// and uses span elements in different places.
'react/forbid-elements': ['off'],
},
};
}),
}
54 changes: 54 additions & 0 deletions workspaces/quay/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# macOS
.DS_Store

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Coverage directory generated when running tests with coverage
coverage

# Dependencies
node_modules/

# Yarn 3 files
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

# Node version directives
.nvmrc

# dotenv environment variables file
.env
.env.test

# Build output
dist
dist-types

# Temporary change files created by Vim
*.swp

# MkDocs build output
site

# Local configuration files
*.local.yaml

# Sensitive credentials
*-credentials.yaml

# vscode database functionality support files
*.session.sql

# E2E test reports
e2e-test-report/
5 changes: 5 additions & 0 deletions workspaces/quay/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist
dist-types
coverage
.vscode
.eslintrc.js
16 changes: 16 additions & 0 deletions workspaces/quay/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# [Backstage](https://backstage.io)

This is your newly scaffolded Backstage App, Good Luck!

To start the app, run:

```sh
yarn install
yarn dev
```

To generate knip reports for this app, run:

```sh
yarn backstage-repo-tools knip-reports
```
1 change: 1 addition & 0 deletions workspaces/quay/backstage.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "version": "1.32.0" }
27 changes: 27 additions & 0 deletions workspaces/quay/catalog-info.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-component
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage-community-quay
title: Quay plugin
description: Quay plugin for Backstage
annotations:
backstage.io/source-location: url:https://github.com/backstage/community-plugins/tree/main/workspaces/quay/plugins/quay
backstage.io/view-url: https://github.com/backstage/community-plugins/blob/main/workspaces/quay/plugins/quay/catalog-info.yaml
backstage.io/edit-url: https://github.com/backstage/community-plugins/edit/main/workspaces/quay/plugins/quay/catalog-info.yaml
github.com/project-slug: backstage-community/backstage-plugins
github.com/team-slug: backstage-community/rhtap
sonarqube.org/project-key: backstage-community_plugins
tags:
- quay
links:
- url: https://github.com/backstage/community-plugins/tree/main/workspaces/quay/plugins/quay
title: GitHub Source
icon: source
type: source
spec:
type: backstage-plugin
lifecycle: production
owner: rhtap-team
system: backstage
subcomponentOf: backstage-community-plugins
63 changes: 63 additions & 0 deletions workspaces/quay/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"name": "@internal/quay",
"version": "1.0.0",
"private": true,
"engines": {
"node": "18 || 20"
},
"scripts": {
"tsc": "tsc",
"tsc:full": "tsc --skipLibCheck true --incremental false",
"build:all": "backstage-cli repo build --all",
"build:api-reports": "yarn build:api-reports:only",
"build:api-reports:only": "backstage-repo-tools api-reports --allow-all-warnings -o ae-wrong-input-file-type --validate-release-tags",
"clean": "backstage-cli repo clean",
"test": "backstage-cli repo test",
"test:all": "backstage-cli repo test --coverage",
"fix": "backstage-cli repo fix",
"lint": "backstage-cli repo lint --since origin/main",
"lint:all": "backstage-cli repo lint",
"prettier:check": "prettier --check .",
"new": "backstage-cli new --scope @backstage-community",
"postinstall": "cd ../../ && yarn install"
},
"workspaces": {
"packages": [
"packages/*",
"plugins/*"
]
},
"repository": {
"type": "git",
"url": "https://github.com/backstage/community-plugins",
"directory": "workspaces/quay"
},
"devDependencies": {
"@backstage/cli": "^0.28.0",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.10.0",
"@changesets/cli": "^2.27.1",
"@spotify/prettier-config": "^12.0.0",
"node-gyp": "^9.0.0",
"prettier": "^2.3.2",
"typescript": "~5.3.0"
},
"dependencies": {
"@ianvs/prettier-plugin-sort-imports": "^4.4.0",
"knip": "^5.27.4"
},
"resolutions": {
"@types/react": "^18",
"@types/react-dom": "^18"
},
"prettier": "@spotify/prettier-config",
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
}
}
9 changes: 9 additions & 0 deletions workspaces/quay/plugins/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# The Plugins Folder

This is where your own plugins and their associated modules live, each in a
separate folder of its own.

If you want to create a new plugin here, go to your project root directory, run
the command `yarn new`, and follow the on-screen instructions.

You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!
4 changes: 4 additions & 0 deletions workspaces/quay/plugins/quay-common/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dist-dynamic
dist-scalprum
!.eslintrc.js
!.prettierrc.js
16 changes: 16 additions & 0 deletions workspaces/quay/plugins/quay-common/.eslintrc.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.
*/
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Community plugins uses this:

Suggested change
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
module.exports = require('../../.eslintrc.cjs');

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you meant that workspaces/quay/.eslintrc.js should have this change?
Making this change in workspaces/quay/plugins/quay-common/.eslintrc.js gives me an error.
I also see that in your tekton migration PR you have left it as is: https://github.com/backstage/community-plugins/pull/1914/files#diff-9cf98ab6e4d58818286649976f98df6292b3cfe8c50ab50adad08ddfa6f0ba6c

4 changes: 4 additions & 0 deletions workspaces/quay/plugins/quay-common/.lintstagedrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"*": "prettier --ignore-unknown --write",
"*.{js,jsx,ts,tsx,mjs,cjs}": "backstage-cli package lint --fix"
}
12 changes: 12 additions & 0 deletions workspaces/quay/plugins/quay-common/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
dist
dist-types
coverage
.vscode
CHANGELOG.md
generated
templates
*.hbs
renovate.json
dist-dynamic
dist-scalprum
playwright-report
34 changes: 34 additions & 0 deletions workspaces/quay/plugins/quay-common/.prettierrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* 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.
*/

/** @type {import("@ianvs/prettier-plugin-sort-imports").PrettierConfig} */
module.exports = {
...require('@spotify/prettier-config'),
plugins: ['@ianvs/prettier-plugin-sort-imports'],
importOrder: [
'^react(.*)$',
'',
'^@backstage/(.*)$',
'',
'<THIRD_PARTY_MODULES>',
'',
'^@backstage-community/(.*)$',
'',
'<BUILTIN_MODULES>',
'',
'^[.]',
],
};
26 changes: 26 additions & 0 deletions workspaces/quay/plugins/quay-common/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# @backstage-community/plugin-quay-common

## 1.3.1

### Patch Changes

- 0e6bfd3: feat: update Backstage to the latest version

Update to Backstage 1.32.5

## 1.3.0

### Minor Changes

- 8244f28: chore(deps): update to backstage 1.32

## 1.2.0

### Minor Changes

- d9551ae: feat(deps): update to backstage 1.31

### Patch Changes

- d9551ae: change deps to peer deps in common packages
- d9551ae: upgrade to yarn v3
11 changes: 11 additions & 0 deletions workspaces/quay/plugins/quay-common/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Quay Common plugin

Welcome to the quay-common plugin!

This plugin contains common utilities for the quay plugin.

# Quay plugin for Backstage

The Quay plugin displays the information about your container images within the Quay registry in your Backstage application.

For more information about Quay plugin, see the [Quay plugin documentation](https://github.com/backstage/community-plugins/tree/main/workspaces/quay/plugins/quay) on GitHub.
27 changes: 27 additions & 0 deletions workspaces/quay/plugins/quay-common/catalog-info.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# https://backstage.io/docs/features/software-catalog/descriptor-format#kind-component
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: backstage-community-quay-common
title: '@backstage-community/backstage-plugin-quay-common'
description: Quay Common plugin
annotations:
backstage.io/source-location: url:https://github.com/backstage/community-plugins/tree/main/workspaces/quay/plugins/quay-common
backstage.io/view-url: https://github.com/backstage/community-plugins/blob/main/workspaces/quay/plugins/quay-common/catalog-info.yaml
backstage.io/edit-url: https://github.com/backstage/community-plugins/edit/main/workspaces/quay/plugins/quay-common/catalog-info.yaml
github.com/project-slug: backstage-community/backstage-plugins
github.com/team-slug: backstage-community/rhtap
sonarqube.org/project-key: backstage-community_plugins
tags:
- quay
links:
- url: https://github.com/backstage/community-plugins/tree/main/workspaces/quay/plugins/quay-common
title: GitHub Source
icon: source
type: source
spec:
type: backstage-common-library
lifecycle: production
owner: rhtap-team
system: backstage
subcomponentOf: backstage-community-quay
Loading
Loading