Merge branch 'backstage:master' into master
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-devtools': patch
|
||||
---
|
||||
|
||||
Allow specifying custom title for `DevToolsLayout`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Replace reference to deprecated import
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-badges-backend': patch
|
||||
---
|
||||
|
||||
Added support for the [new backend system](https://backstage.io/docs/backend-system/)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
---
|
||||
|
||||
Fixed the `--alwaysYarnPack` flag on the`backstage-cli build-workspace` command.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Post-create message - added instruction to run `yarn install` when app was created with `--skip-install`
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': minor
|
||||
---
|
||||
|
||||
**BREAKING**
|
||||
|
||||
This change updates the configuration of the confluence-to-markdown action so that it does not conflict with other confluence plguins. Currently many plugins make use of the `confluence.auth` configuration. However, only the confluence-to-markdown action uses the `confluence.auth` as a string. This change updates it so that `confluence.auth` is an object.
|
||||
|
||||
## Required Changes
|
||||
|
||||
Below are examples for updating `bearer`, `basic`, and `userpass` implementations.
|
||||
|
||||
For `bearer`:
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'bearer'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'bearer'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
```
|
||||
|
||||
For `basic`:
|
||||
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'basic'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
email: 'example@company.org'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'basic'
|
||||
token: '${CONFLUENCE_TOKEN}'
|
||||
email: 'example@company.org'
|
||||
```
|
||||
|
||||
For `userpass`
|
||||
Before:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth: 'userpass'
|
||||
username: 'your-username'
|
||||
password: 'your-password'
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```yaml
|
||||
confluence:
|
||||
baseUrl: 'https://confluence.example.com'
|
||||
auth:
|
||||
type: 'userpass'
|
||||
username: 'your-username'
|
||||
password: 'your-password'
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/theme': patch
|
||||
---
|
||||
|
||||
Overwrite `PaletteOptions` & `ThemeOptions` type to allow use of `createTheme` from `@backstage/theme` as well as `@material-ui/core/styles` with the same type. Also replaced the default `CSSBaseline` with v4 instead of v5 for better backwards compatibility for now.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Bumped create-app version.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
add cy.\*\*.should to cypress eslintrc
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
The Catalog Unprocessed Entities plugin can now be integrated as a tab within the DevTools plugin
|
||||
|
||||
- Added an export for `UnprocessedEntitiesContent`
|
||||
- Updated the `README` with images of the features
|
||||
- Adjusted the styles to fill in the available space
|
||||
- Set the table page size to 20 as 40 was causing errors in the browser console
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/errors': patch
|
||||
---
|
||||
|
||||
Set `this.name` in all error classes that extend `CustomErrorBase` class to their actual name
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-stackstorm': patch
|
||||
---
|
||||
|
||||
Add props to StackstormHome for Header Customization
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-react': patch
|
||||
---
|
||||
|
||||
Made markdown description theme-able
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-github': patch
|
||||
---
|
||||
|
||||
fixed event handler to respect configured organization
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
Export some types and API items. This allows people to call the API from different places with the ApiRef, as well
|
||||
as completely customize the client if required. Check the [README.md](https://github.com/backstage/backstage/blob/master/plugins/catalog-unprocessed-entities/README.md) to
|
||||
note what needs to be added in order to use the new `catalogUnprocessedEntitiesApiRef` exported function.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Add WebSocket support to `kubernetes-backend` proxy.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-devtools': patch
|
||||
---
|
||||
|
||||
Updated the `README` with instructions on how to integrate the Catalog Unprocessed Entities plugin as a tab within DevTools
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-lighthouse': patch
|
||||
---
|
||||
|
||||
Added more verbose components (used to render `null`) when no audits for a website corresponding to the provided url were found.
|
||||
Added `Create New Audit` button for the `AuditListForEntity` component used by `EntityLighthouseContent` and `EmbeddedRouter`.
|
||||
Removed error alert from `errorApi` if error was due to no audits being found for a website (empty database query result).
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
use `Readable.from` to explicitly convert the `buffer` from `node-fetch` to a `Readable` stream
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-import': patch
|
||||
---
|
||||
|
||||
Add a "View Component" button as the primary CTA after registering a new component using a link to catalog-info.yaml
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-sonarqube': patch
|
||||
'@backstage/plugin-sonarqube-backend': patch
|
||||
---
|
||||
|
||||
Made default config optional
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-dynatrace': patch
|
||||
---
|
||||
|
||||
updated the link that the "View Entity in Dynatrace" redirects the user to.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-unprocessed': patch
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
Fix and improve documentation for the unprocessed entities modules.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Proxy endpoint supports cluster URLs with subpath
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops-backend': patch
|
||||
'@backstage/plugin-devtools-backend': patch
|
||||
'@backstage/plugin-linguist-backend': patch
|
||||
---
|
||||
|
||||
Added alpha support for the [new backend system](https://backstage.io/docs/backend-system/)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
fix: update plugin home dependency for `@rjsf/material-ui` to `@rjsf/material-ui-v5`
|
||||
+42
-1
@@ -230,5 +230,46 @@
|
||||
"@backstage/plugin-vault-backend": "0.3.2",
|
||||
"@backstage/plugin-xcmetrics": "0.2.39"
|
||||
},
|
||||
"changesets": []
|
||||
"changesets": [
|
||||
"angry-phones-wash",
|
||||
"beige-actors-melt",
|
||||
"chatty-buttons-deny",
|
||||
"cli-always-yarn-pack-freal",
|
||||
"cold-hounds-cheat",
|
||||
"cool-starfishes-love",
|
||||
"create-app-1687867724",
|
||||
"cuddly-guests-hide",
|
||||
"cyan-shirts-deny",
|
||||
"dirty-wasps-draw",
|
||||
"dull-onions-remember",
|
||||
"fluffy-frogs-change",
|
||||
"fresh-bears-yawn",
|
||||
"green-otters-wait",
|
||||
"khaki-rocks-do",
|
||||
"lazy-frogs-destroy",
|
||||
"lemon-cycles-enjoy",
|
||||
"many-ants-poke",
|
||||
"mean-bobcats-taste",
|
||||
"mighty-pandas-deny",
|
||||
"mighty-shoes-refuse",
|
||||
"old-rules-give",
|
||||
"popular-crabs-deny",
|
||||
"popular-kangaroos-accept",
|
||||
"purple-feet-approve",
|
||||
"purple-starfishes-design",
|
||||
"red-cherries-draw",
|
||||
"renovate-f316d5e",
|
||||
"seven-pillows-hear",
|
||||
"short-rabbits-roll",
|
||||
"silver-balloons-sniff",
|
||||
"sixty-humans-rescue",
|
||||
"sour-humans-begin",
|
||||
"strange-baboons-look",
|
||||
"tender-clouds-promise",
|
||||
"thin-countries-battle",
|
||||
"tough-flowers-suffer",
|
||||
"twenty-seas-float",
|
||||
"yellow-schools-relax",
|
||||
"young-frogs-burn"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch
|
||||
---
|
||||
|
||||
Update readme and instructions
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
The `Skip to content` button on click focuses on the main article tag and skips the `h1` tag. Users are not able to identify which page they are on currently. Now it's changed the behaviour of the button and focuses on the `h1` tag on the page.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend-module-github': patch
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-playlist': patch
|
||||
'@backstage/plugin-nomad': patch
|
||||
---
|
||||
|
||||
Break some internal circular import chains
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
---
|
||||
|
||||
Make pod drawer headings consistent
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/cli': patch
|
||||
'@backstage/plugin-scaffolder-backend': patch
|
||||
---
|
||||
|
||||
Updated dependency `esbuild` to `^0.18.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/codemods': patch
|
||||
---
|
||||
|
||||
Updated dependency `jscodeshift` to `^0.15.0`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-codescene': patch
|
||||
'@backstage/plugin-sonarqube': patch
|
||||
---
|
||||
|
||||
Updated dependency `rc-progress` to `3.4.2`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
Corrected the installation instructions.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Fixed a bug where the proxy endpoint would error when used in combination with
|
||||
a local kubectl proxy process and a token-based auth strategy on-cluster.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-entity-feedback-backend': patch
|
||||
---
|
||||
|
||||
Added support for the new backend system
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
Fixed spacing for success message
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Display a warning alert if relations are defined, which don't exist in the catalog.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': minor
|
||||
'@backstage/plugin-catalog-node': minor
|
||||
---
|
||||
|
||||
Support placeholder resolvers in the CatalogPlugin, also moves `PlaceholderResolver` and related types from `@backstage/plugin-catalog-backend` to `@backstage/plugin-catalog-node`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
Fix missing column breakpoints in `CustomHompageGrid`
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-auth-backend': patch
|
||||
---
|
||||
|
||||
Support for Token Endpoint Auth Method for OIDC Provider
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-plugin-api': patch
|
||||
---
|
||||
|
||||
Change `IconComponent` type to be compatible with Material UI v5 icons.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
---
|
||||
|
||||
Update readme with a valid link to k8s documentation
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Fix keyboard navigation & focus highlight on Select component.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend-module-gitlab': patch
|
||||
---
|
||||
|
||||
Fixed a bug in `gitlab:group:ensureExists` where `repos` was always set as the root group.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/theme': patch
|
||||
---
|
||||
|
||||
Override the spacing to a v5 compliant method
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-unprocessed-entities': patch
|
||||
---
|
||||
|
||||
install command points to correct package name
|
||||
@@ -39,6 +39,9 @@ yarn.lock @backstage/maintainers @back
|
||||
/plugins/code-coverage-backend @backstage/maintainers @alde @nissayeva
|
||||
/plugins/cost-insights @backstage/maintainers @backstage/silver-lining
|
||||
/plugins/cost-insights-* @backstage/maintainers @backstage/silver-lining
|
||||
/plugins/devtools @backstage/maintainers @awanlin
|
||||
/plugins/devtools-backend @backstage/maintainers @awanlin
|
||||
/plugins/devtools-common @backstage/maintainers @awanlin
|
||||
/plugins/entity-feedback @backstage/maintainers @kuangp
|
||||
/plugins/entity-feedback-* @backstage/maintainers @kuangp
|
||||
/plugins/events-backend @backstage/maintainers @pjungermann
|
||||
@@ -64,6 +67,9 @@ yarn.lock @backstage/maintainers @back
|
||||
/plugins/kafka-backend @backstage/maintainers @nirga @andrewthauer
|
||||
/plugins/kubernetes @backstage/maintainers @backstage/kubernetes-maintainers
|
||||
/plugins/kubernetes-* @backstage/maintainers @backstage/kubernetes-maintainers
|
||||
/plugins/linguist @backstage/maintainers @awanlin
|
||||
/plugins/linguist-backend @backstage/maintainers @awanlin
|
||||
/plugins/linguist-common @backstage/maintainers @awanlin
|
||||
/plugins/microsoft-calendar @backstage/maintainers @abhay-soni-developer @NishkarshRaj
|
||||
/plugins/newrelic-dashboard @backstage/maintainers @mufaddal7
|
||||
/plugins/permission-* @backstage/permission-maintainers
|
||||
|
||||
@@ -409,6 +409,7 @@ unregistration
|
||||
untracked
|
||||
upsert
|
||||
upvote
|
||||
url
|
||||
URIs
|
||||
URLs
|
||||
utils
|
||||
|
||||
@@ -120,9 +120,9 @@ Scope: Tooling for frontend and backend schema-first OpenAPI development.
|
||||
|
||||
| Name | Organization | GitHub | Discord |
|
||||
| ------------------------------ | ------------------------- | ----------------------------------------------------- | ------------------------------ |
|
||||
| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey#3739` |
|
||||
| Adam Harvey | Cisco | [adamdmharvey](https://github.com/adamdmharvey) | `adamharvey_` |
|
||||
| Alex Crome | | [afscrome](https://github.com/afscrome) | `afscrome` |
|
||||
| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `Ahhhndre#3095` |
|
||||
| Andre Wanlin | Keyloop | [awanlin](https://github.com/awanlin) | `ahhhndre` |
|
||||
| Andrew Thauer | Wealthsimple | [andrewthauer](https://github.com/andrewthauer) | `andrewthauer#3060` |
|
||||
| Aramis Sennyey | | [sennyeya](https://github.com/sennyeya) | `Aramis#7984` |
|
||||
| Brian Fletcher | Roadie.io | [punkle](https://github.com/punkle) | `Brian Fletcher#7051` |
|
||||
|
||||
@@ -354,6 +354,7 @@ auth:
|
||||
clientSecret: ${AUTH_OIDC_CLIENT_SECRET}
|
||||
authorizationUrl: ${AUTH_OIDC_AUTH_URL}
|
||||
tokenUrl: ${AUTH_OIDC_TOKEN_URL}
|
||||
tokenEndpointAuthMethod: ${AUTH_OIDC_TOKEN_ENDPOINT_AUTH_METHOD} # default='client_secret_basic'
|
||||
tokenSignedResponseAlg: ${AUTH_OIDC_TOKEN_SIGNED_RESPONSE_ALG} # default='RS256'
|
||||
scope: ${AUTH_OIDC_SCOPE} # default='openid profile email'
|
||||
prompt: ${AUTH_OIDC_PROMPT} # default=none (allowed values: auto, none, consent, login)
|
||||
|
||||
+3
-3
@@ -1230,13 +1230,13 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"semver@npm:^7.3.2":
|
||||
version: 7.3.7
|
||||
resolution: "semver@npm:7.3.7"
|
||||
version: 7.5.3
|
||||
resolution: "semver@npm:7.5.3"
|
||||
dependencies:
|
||||
lru-cache: ^6.0.0
|
||||
bin:
|
||||
semver: bin/semver.js
|
||||
checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232
|
||||
checksum: 9d58db16525e9f749ad0a696a1f27deabaa51f66e91d2fa2b0db3de3e9644e8677de3b7d7a03f4c15bc81521e0c3916d7369e0572dbde250d9bedf5194e2a8a7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
@@ -237,6 +237,7 @@ check the App Registration you created:
|
||||
- `metadataUrl`: In Overview > Endpoints tab, grab OpenID Connect metadata document URL.
|
||||
- `authorizationUrl` and `tokenUrl`: Open the `metadataUrl` in a browser, that json will
|
||||
hold these 2 urls somewhere in there.
|
||||
- `tokenEndpointAuthMethod`: Don't define it, use the default unless you know what it does.
|
||||
- `tokenSignedResponseAlg`: Don't define it, use the default unless you know what it does.
|
||||
- `scope`: Only used if we didn't specify `defaultScopes` in the provider's factory,
|
||||
basically the same thing.
|
||||
|
||||
@@ -84,7 +84,7 @@ Options are a simple way to allow for more lightweight customization of a plugin
|
||||
|
||||
The following rules apply to the production setup of Backstage plugins in the broader Backstage plugin ecosystem. Any plugin that is maintained under the `@backstage` package namespace should follow these rules, and it is recommended that all widely distributed plugins follow these rules as well.
|
||||
|
||||
An exception to these rules are made for development or test setups, where shortcuts can be take in order to streamline development and keep things simple.
|
||||
An exception to these rules are made for development or test setups, where shortcuts can be taken in order to streamline development and keep things simple.
|
||||
|
||||
### Scalable
|
||||
|
||||
@@ -92,4 +92,4 @@ Plugins must always be designed to be horizontally scalable. This means that you
|
||||
|
||||
### Isolated
|
||||
|
||||
Plugins must never communicate with each other directly through code, they may only communicate over the network. Plugins that wish to expose an external interface for other plugins and modules to use are recommended to do so though a [node-library](../../local-dev/cli-build-system.md#package-roles) package. The library should export an API client service to make calls to your plugin, or similar construct.
|
||||
Plugins must never communicate with each other directly through code, they may only communicate over the network. Plugins that wish to expose an external interface for other plugins and modules to use are recommended to do so through a [node-library](../../local-dev/cli-build-system.md#package-roles) package. The library should export an API client service to make calls to your plugin, or similar construct.
|
||||
|
||||
@@ -351,7 +351,7 @@ component, like `java` or `go`.
|
||||
|
||||
This field is optional, and currently has no special semantics.
|
||||
|
||||
Each tag must be sequences of `[a-z0-9]` separated by `-`, at most 63 characters
|
||||
Each tag must be sequences of `[a-z0-9:+#]` separated by `-`, at most 63 characters
|
||||
in total.
|
||||
|
||||
### `links` [optional]
|
||||
|
||||
@@ -4,8 +4,8 @@ title: Writing Custom Actions
|
||||
description: How to write your own actions
|
||||
---
|
||||
|
||||
If you're wanting to extend the functionality of the Scaffolder, you can do so
|
||||
by writing custom actions which can be used along side our
|
||||
If you want to extend the functionality of the Scaffolder, you can do so
|
||||
by writing custom actions which can be used alongside our
|
||||
[built-in actions](./builtin-actions.md).
|
||||
|
||||
> Note: When adding custom actions, the actions array will **replace the
|
||||
@@ -65,7 +65,7 @@ The `createTemplateAction` takes an object which specifies the following:
|
||||
- `schema.input` - A `zod` or JSON schema object for input values to your function
|
||||
- `schema.output` - A `zod` or JSON schema object for values which are output from the
|
||||
function using `ctx.output`
|
||||
- `handler` - the actual code which is run part of the action, with a context
|
||||
- `handler` - the actual code which is run as part of the action, with a context
|
||||
|
||||
You can also choose to define your custom action using JSON schema instead of `zod`:
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ yarn add --cwd packages/backend pg
|
||||
```
|
||||
|
||||
Use your favorite editor to open `app-config.yaml` and add your PostgreSQL
|
||||
configuration. in the root directory of your Backstage app using the credentials
|
||||
configuration in the root directory of your Backstage app using the credentials
|
||||
from the previous steps.
|
||||
|
||||
```yaml title="app-config.yaml"
|
||||
@@ -90,10 +90,17 @@ backend:
|
||||
user: ${POSTGRES_USER}
|
||||
password: ${POSTGRES_PASSWORD}
|
||||
# https://node-postgres.com/features/ssl
|
||||
# ssl: require # see https://www.postgresql.org/docs/current/libpq-ssl.html Table 33.1. SSL Mode Descriptions (e.g. require)
|
||||
#ca: # if you have a CA file and want to verify it you can uncomment this section
|
||||
#$file: <file-path>/ca/server.crt
|
||||
# highlight-add-end
|
||||
# ssl:
|
||||
# host is only needed if the connection name differs from the certificate name.
|
||||
# This is for example the case with CloudSQL.
|
||||
# host: servername in the certificate
|
||||
# ca:
|
||||
# $file: <file-path>/server.pem
|
||||
# key:
|
||||
# $file: <file-path>/client.key
|
||||
# cert:
|
||||
# $file: <file-path>/client-cert.pem
|
||||
# highlight-add-end
|
||||
```
|
||||
|
||||
You'll use the connection details from the previous step. You can either set the
|
||||
|
||||
@@ -40,7 +40,7 @@ Inside your `packages/app` directory, create a new file where our new homepage c
|
||||
```tsx
|
||||
import React from 'react';
|
||||
|
||||
export const homePage = (
|
||||
export const HomePage = () => (
|
||||
/* We will shortly compose a pretty homepage here. */
|
||||
<h1>Welcome to Backstage!</h1>
|
||||
);
|
||||
|
||||
@@ -53,6 +53,8 @@ create a subdirectory inside your current working directory.
|
||||
npx @backstage/create-app@latest
|
||||
```
|
||||
|
||||
> Note: If this fails on the `yarn install` step, it's likely that you will need to install some additional dependencies which are used to configure `isolated-vm`. You can find out more in their [requirements section](https://github.com/laverdet/isolated-vm#requirements), and then run `yarn install` manually again after you've completed those steps.
|
||||
|
||||
The wizard will ask you for the name of the app, which will also be the name of the directory
|
||||
|
||||

|
||||
|
||||
@@ -37,7 +37,7 @@ catalog:
|
||||
```
|
||||
|
||||
Finally, register the plugin in `catalog.ts`.
|
||||
For large organizations, this plugin can take a long time, so be careful setting low frequency / timeouts.
|
||||
For large organizations, this plugin can take a long time, so be careful setting low frequency / timeouts and importing a large amount of users / groups for the first try.
|
||||
|
||||
```ts title="packages/backend/src/plugins/catalog.ts"
|
||||
/* highlight-add-next-line */
|
||||
@@ -106,7 +106,7 @@ To grant the managed identity the same permissions as mentioned in _App Registra
|
||||
## Filtering imported Users and Groups
|
||||
|
||||
By default, the plugin will import all users and groups from your directory.
|
||||
This can be customized through [filters](https://learn.microsoft.com/en-us/graph/filter-query-parameter) and [search](https://learn.microsoft.com/en-us/graph/search-query-parameter) queries.
|
||||
This can be customized through [filters](https://learn.microsoft.com/en-us/graph/filter-query-parameter) and [search](https://learn.microsoft.com/en-us/graph/search-query-parameter) queries. Keep in mind that if you omit filters and search queries for the user or group properties, the plugin will automatically import all available users or groups.
|
||||
|
||||
### Groups
|
||||
|
||||
|
||||
@@ -34,15 +34,17 @@ is a concrete implementation of [AnalyticsApi][analytics-api-type], common
|
||||
integrations are packaged and provided as plugins. Find your analytics tool of
|
||||
choice below.
|
||||
|
||||
| Analytics Tool | Support Status |
|
||||
| ---------------------- | -------------- |
|
||||
| [Google Analytics][ga] | Yes ✅ |
|
||||
| Analytics Tool | Support Status |
|
||||
| ------------------------- | -------------- |
|
||||
| [Google Analytics][ga] | Yes ✅ |
|
||||
| [Google Analytics 4][ga4] | Yes ✅ |
|
||||
|
||||
To suggest an integration, please [open an issue][add-tool] for the analytics
|
||||
tool your organization uses. Or jump to [Writing Integrations][int-howto] to
|
||||
learn how to contribute the integration yourself!
|
||||
|
||||
[ga]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga/README.md
|
||||
[ga4]: https://github.com/backstage/backstage/blob/master/plugins/analytics-module-ga4/README.md
|
||||
[add-tool]: https://github.com/backstage/backstage/issues/new?assignees=&labels=plugin&template=plugin_template.md&title=%5BAnalytics+Module%5D+THE+ANALYTICS+TOOL+TO+INTEGRATE
|
||||
[int-howto]: #writing-integrations
|
||||
[analytics-api-type]: https://backstage.io/docs/reference/core-plugin-api.analyticsapi
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: 'DevTools'
|
||||
author: Keyloop
|
||||
authorUrl: https://keyloop.com/
|
||||
category: Tools
|
||||
description: Tools for helping with the Ops side of running a Backstage instance
|
||||
documentation: https://github.com/backstage/backstage/blob/master/plugins/devtools/README.md
|
||||
iconUrl: /img/devtools.svg
|
||||
npmPackageName: '@backstage/plugin-devtools'
|
||||
addedDate: '2023-06-17'
|
||||
@@ -2,7 +2,7 @@
|
||||
title: k8sgpt
|
||||
author: suxess-it
|
||||
authorUrl: github.com/suxess-it
|
||||
category: monitoring
|
||||
category: Monitoring
|
||||
description: show all k8sgpt results of the k8sgpt operator related to your entity
|
||||
documentation: https://github.com/suxess-it/backstage-plugin-k8sgpt/blob/main/README.md
|
||||
iconUrl: https://raw.githubusercontent.com/k8sgpt-ai/k8sgpt/1a81227d6148be59b7b9ae4e9ae5e2d9a5b7a9ae/images/banner-white.png
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: Kubecost
|
||||
author: suxess-it
|
||||
authorUrl: https://github.com/suxess-it
|
||||
category: Discovery
|
||||
description: Get cost insights from Kubecost Installation for your k8s deployments
|
||||
documentation: https://github.com/suxess-it/backstage-plugin-kubecost/blob/main/README.md
|
||||
iconUrl: https://avatars.githubusercontent.com/u/45108136?s=200&v=4
|
||||
npmPackageName: '@suxess-it/backstage-plugin-kubecost'
|
||||
addedDate: '2023-06-29'
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: 'Linguist'
|
||||
author: Keyloop
|
||||
authorUrl: https://keyloop.com/
|
||||
category: Metadata
|
||||
description: View the programming language break down for your entities within the Software Catalog
|
||||
documentation: https://github.com/backstage/backstage/blob/master/plugins/linguist/README.md
|
||||
iconUrl: /img/linguist.svg
|
||||
npmPackageName: '@backstage/plugin-linguist'
|
||||
addedDate: '2023-06-17'
|
||||
+1
-1
@@ -3,7 +3,7 @@ title: Azure DevOps Wiki Search
|
||||
author: Drew Hill
|
||||
authorUrl: https://github.com/arhill05
|
||||
category: Search
|
||||
description: Index wiki articles from an Azure DevOps wiki into Backstage to allow you to search them with the Backstage Search feature.
|
||||
description: Index wiki articles from an Azure DevOps wiki into Backstage to allow you to search them with the Backstage Search feature.
|
||||
documentation: https://github.com/arhill05/backstage-plugin-search-backend-module-azure-devops-wiki#readme
|
||||
iconUrl: img/ado-wiki-search-icon.png
|
||||
npmPackageName: '@mdude2314/backstage-plugin-search-backend-module-azure-devops-wiki'
|
||||
@@ -127,6 +127,10 @@ module.exports = {
|
||||
from: '/docs/features/techdocs/techdocs-overview',
|
||||
to: '/docs/features/techdocs/',
|
||||
},
|
||||
{
|
||||
from: '/docs/features/kubernetes/overview',
|
||||
to: '/docs/features/kubernetes/',
|
||||
},
|
||||
{
|
||||
from: '/docs/features/search/search-overview',
|
||||
to: '/docs/features/search/',
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path clip-rule="evenodd" d="M0 0h24v24H0z" fill="none"/><path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/></svg>
|
||||
|
After Width: | Height: | Size: 345 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"/></svg>
|
||||
|
After Width: | Height: | Size: 453 B |
+46
-46
@@ -2604,90 +2604,90 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-arm64@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.62"
|
||||
"@swc/core-darwin-arm64@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-darwin-arm64@npm:1.3.68"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-darwin-x64@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.62"
|
||||
"@swc/core-darwin-x64@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-darwin-x64@npm:1.3.68"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm-gnueabihf@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.62"
|
||||
"@swc/core-linux-arm-gnueabihf@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.62"
|
||||
"@swc/core-linux-arm64-gnu@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.62"
|
||||
"@swc/core-linux-arm64-musl@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-arm64-musl@npm:1.3.68"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.62"
|
||||
"@swc/core-linux-x64-gnu@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-x64-gnu@npm:1.3.68"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-linux-x64-musl@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.62"
|
||||
"@swc/core-linux-x64-musl@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-linux-x64-musl@npm:1.3.68"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.62"
|
||||
"@swc/core-win32-arm64-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.62"
|
||||
"@swc/core-win32-ia32-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.62":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.62"
|
||||
"@swc/core-win32-x64-msvc@npm:1.3.68":
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core-win32-x64-msvc@npm:1.3.68"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@swc/core@npm:^1.3.46":
|
||||
version: 1.3.62
|
||||
resolution: "@swc/core@npm:1.3.62"
|
||||
version: 1.3.68
|
||||
resolution: "@swc/core@npm:1.3.68"
|
||||
dependencies:
|
||||
"@swc/core-darwin-arm64": 1.3.62
|
||||
"@swc/core-darwin-x64": 1.3.62
|
||||
"@swc/core-linux-arm-gnueabihf": 1.3.62
|
||||
"@swc/core-linux-arm64-gnu": 1.3.62
|
||||
"@swc/core-linux-arm64-musl": 1.3.62
|
||||
"@swc/core-linux-x64-gnu": 1.3.62
|
||||
"@swc/core-linux-x64-musl": 1.3.62
|
||||
"@swc/core-win32-arm64-msvc": 1.3.62
|
||||
"@swc/core-win32-ia32-msvc": 1.3.62
|
||||
"@swc/core-win32-x64-msvc": 1.3.62
|
||||
"@swc/core-darwin-arm64": 1.3.68
|
||||
"@swc/core-darwin-x64": 1.3.68
|
||||
"@swc/core-linux-arm-gnueabihf": 1.3.68
|
||||
"@swc/core-linux-arm64-gnu": 1.3.68
|
||||
"@swc/core-linux-arm64-musl": 1.3.68
|
||||
"@swc/core-linux-x64-gnu": 1.3.68
|
||||
"@swc/core-linux-x64-musl": 1.3.68
|
||||
"@swc/core-win32-arm64-msvc": 1.3.68
|
||||
"@swc/core-win32-ia32-msvc": 1.3.68
|
||||
"@swc/core-win32-x64-msvc": 1.3.68
|
||||
peerDependencies:
|
||||
"@swc/helpers": ^0.5.0
|
||||
dependenciesMeta:
|
||||
@@ -2714,7 +2714,7 @@ __metadata:
|
||||
peerDependenciesMeta:
|
||||
"@swc/helpers":
|
||||
optional: true
|
||||
checksum: a7a0d9ffdb8a2b0050e0ff89fdb86fe189d9bcb7f91cb6847f1bfe3e2b520a87ea2e83692dfd80b6d541fb5addb2194769484516b8ca6d3c62ad80f1c79a9368
|
||||
checksum: f56ad1d4cb91f7cc1cb5d4b9894bbb528da0b2eabc98984581f5b3f3187cf2c0d512003880f6ff7a3f6d215b7a3dcbf5a9c45e8a428ac2d711941027c0151d89
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -5028,14 +5028,14 @@ __metadata:
|
||||
linkType: hard
|
||||
|
||||
"docusaurus-plugin-sass@npm:^0.2.3":
|
||||
version: 0.2.3
|
||||
resolution: "docusaurus-plugin-sass@npm:0.2.3"
|
||||
version: 0.2.4
|
||||
resolution: "docusaurus-plugin-sass@npm:0.2.4"
|
||||
dependencies:
|
||||
sass-loader: ^10.1.1
|
||||
peerDependencies:
|
||||
"@docusaurus/core": ^2.0.0-beta
|
||||
sass: ^1.30.0
|
||||
checksum: 928b02fd7c63835d54cdcce2eeda01cb6124707c6d43ef8e77db06474d3e3b4b7282cc0d88fed378cf1f3db2fc93ba8c11366965bb9b668eae19ca805e578acb
|
||||
checksum: 10e0c9f519dd7ef4666b1fb82d120738feab03ea451c18bab7f785627887f65b8cb72457065a9b2a2664af1490c20b38df9adf525c1b58ce3e324d2b50412734
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@
|
||||
"@types/react": "^17",
|
||||
"@types/react-dom": "^17"
|
||||
},
|
||||
"version": "1.15.0",
|
||||
"version": "1.16.0-next.1",
|
||||
"dependencies": {
|
||||
"@backstage/errors": "workspace:^",
|
||||
"@manypkg/get-packages": "^1.1.3"
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @backstage/app-defaults
|
||||
|
||||
## 1.4.1-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.1-next.0
|
||||
- @backstage/core-components@0.13.3-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.0
|
||||
- @backstage/core-app-api@1.8.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.1
|
||||
|
||||
## 1.4.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.13.3-next.0
|
||||
- @backstage/core-app-api@1.8.1
|
||||
- @backstage/core-plugin-api@1.5.2
|
||||
- @backstage/theme@0.4.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.0
|
||||
|
||||
## 1.4.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/app-defaults",
|
||||
"description": "Provides the default wiring of a Backstage App",
|
||||
"version": "1.4.0",
|
||||
"version": "1.4.1-next.1",
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"main": "dist/index.esm.js",
|
||||
|
||||
@@ -1,5 +1,151 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.85-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/theme@0.4.1-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.5.1-next.1
|
||||
- @backstage/plugin-lighthouse@0.4.5-next.1
|
||||
- @backstage/plugin-catalog-import@0.9.10-next.1
|
||||
- @backstage/core-components@0.13.3-next.1
|
||||
- @backstage/plugin-kubernetes@0.9.3-next.1
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.1
|
||||
- @backstage/plugin-home@0.5.4-next.1
|
||||
- @backstage/core-plugin-api@1.5.3-next.0
|
||||
- @backstage/app-defaults@1.4.1-next.1
|
||||
- @backstage/cli@0.22.9-next.0
|
||||
- @backstage/integration-react@1.1.15-next.1
|
||||
- @backstage/plugin-adr@0.6.3-next.1
|
||||
- @backstage/plugin-airbrake@0.3.20-next.1
|
||||
- @backstage/plugin-api-docs@0.9.6-next.1
|
||||
- @backstage/plugin-azure-devops@0.3.2-next.1
|
||||
- @backstage/plugin-azure-sites@0.1.9-next.1
|
||||
- @backstage/plugin-badges@0.2.44-next.1
|
||||
- @backstage/plugin-catalog-graph@0.2.32-next.1
|
||||
- @backstage/plugin-catalog-react@1.7.1-next.1
|
||||
- @backstage/plugin-circleci@0.3.20-next.1
|
||||
- @backstage/plugin-cloudbuild@0.3.20-next.1
|
||||
- @backstage/plugin-code-coverage@0.2.13-next.1
|
||||
- @backstage/plugin-cost-insights@0.12.9-next.1
|
||||
- @backstage/plugin-devtools@0.1.2-next.1
|
||||
- @backstage/plugin-dynatrace@6.0.1-next.1
|
||||
- @backstage/plugin-entity-feedback@0.2.3-next.1
|
||||
- @backstage/plugin-explore@0.4.6-next.1
|
||||
- @backstage/plugin-gcalendar@0.3.16-next.1
|
||||
- @backstage/plugin-gcp-projects@0.3.39-next.1
|
||||
- @backstage/plugin-github-actions@0.6.1-next.1
|
||||
- @backstage/plugin-gocd@0.1.26-next.1
|
||||
- @backstage/plugin-graphiql@0.2.52-next.1
|
||||
- @backstage/plugin-jenkins@0.8.2-next.1
|
||||
- @backstage/plugin-kafka@0.3.20-next.1
|
||||
- @backstage/plugin-linguist@0.1.5-next.1
|
||||
- @backstage/plugin-microsoft-calendar@0.1.5-next.1
|
||||
- @backstage/plugin-newrelic@0.3.38-next.1
|
||||
- @backstage/plugin-nomad@0.1.1-next.1
|
||||
- @backstage/plugin-octopus-deploy@0.2.2-next.1
|
||||
- @backstage/plugin-org@0.6.10-next.1
|
||||
- @backstage/plugin-pagerduty@0.6.1-next.1
|
||||
- @backstage/plugin-playlist@0.1.12-next.1
|
||||
- @backstage/plugin-puppetdb@0.1.3-next.1
|
||||
- @backstage/plugin-rollbar@0.4.20-next.1
|
||||
- @backstage/plugin-scaffolder@1.14.1-next.1
|
||||
- @backstage/plugin-search@1.3.3-next.1
|
||||
- @backstage/plugin-search-react@1.6.3-next.1
|
||||
- @backstage/plugin-sentry@0.5.5-next.1
|
||||
- @backstage/plugin-shortcuts@0.3.12-next.1
|
||||
- @backstage/plugin-stack-overflow@0.1.18-next.1
|
||||
- @backstage/plugin-stackstorm@0.1.4-next.1
|
||||
- @backstage/plugin-tech-insights@0.3.12-next.1
|
||||
- @backstage/plugin-tech-radar@0.6.6-next.1
|
||||
- @backstage/plugin-techdocs@1.6.5-next.1
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.1
|
||||
- @backstage/plugin-techdocs-react@1.1.8-next.1
|
||||
- @backstage/plugin-todo@0.2.22-next.1
|
||||
- @backstage/plugin-user-settings@0.7.5-next.1
|
||||
- @backstage/plugin-apache-airflow@0.2.13-next.1
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.13-next.1
|
||||
- @internal/plugin-catalog-customized@0.0.12-next.1
|
||||
- @backstage/core-app-api@1.8.2-next.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.1
|
||||
- @backstage/config@1.0.8
|
||||
|
||||
## 0.2.85-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-devtools@0.1.2-next.0
|
||||
- @backstage/cli@0.22.9-next.0
|
||||
- @backstage/plugin-catalog-unprocessed-entities@0.1.1-next.0
|
||||
- @backstage/plugin-stackstorm@0.1.4-next.0
|
||||
- @backstage/plugin-dynatrace@6.0.1-next.0
|
||||
- @backstage/plugin-home@0.5.4-next.0
|
||||
- @backstage/core-components@0.13.3-next.0
|
||||
- @backstage/plugin-playlist@0.1.12-next.0
|
||||
- @backstage/plugin-nomad@0.1.1-next.0
|
||||
- @backstage/app-defaults@1.4.1-next.0
|
||||
- @backstage/catalog-model@1.4.1-next.0
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/core-app-api@1.8.1
|
||||
- @backstage/core-plugin-api@1.5.2
|
||||
- @backstage/integration-react@1.1.15-next.0
|
||||
- @backstage/theme@0.4.0
|
||||
- @backstage/plugin-adr@0.6.3-next.0
|
||||
- @backstage/plugin-airbrake@0.3.20-next.0
|
||||
- @backstage/plugin-apache-airflow@0.2.13-next.0
|
||||
- @backstage/plugin-api-docs@0.9.6-next.0
|
||||
- @backstage/plugin-azure-devops@0.3.2-next.0
|
||||
- @backstage/plugin-azure-sites@0.1.9-next.0
|
||||
- @backstage/plugin-badges@0.2.44-next.0
|
||||
- @backstage/plugin-catalog-common@1.0.15-next.0
|
||||
- @backstage/plugin-catalog-graph@0.2.32-next.0
|
||||
- @backstage/plugin-catalog-import@0.9.10-next.0
|
||||
- @backstage/plugin-catalog-react@1.7.1-next.0
|
||||
- @backstage/plugin-circleci@0.3.20-next.0
|
||||
- @backstage/plugin-cloudbuild@0.3.20-next.0
|
||||
- @backstage/plugin-code-coverage@0.2.13-next.0
|
||||
- @backstage/plugin-cost-insights@0.12.9-next.0
|
||||
- @backstage/plugin-entity-feedback@0.2.3-next.0
|
||||
- @backstage/plugin-explore@0.4.6-next.0
|
||||
- @backstage/plugin-gcalendar@0.3.16-next.0
|
||||
- @backstage/plugin-gcp-projects@0.3.39-next.0
|
||||
- @backstage/plugin-github-actions@0.6.1-next.0
|
||||
- @backstage/plugin-gocd@0.1.26-next.0
|
||||
- @backstage/plugin-graphiql@0.2.52-next.0
|
||||
- @backstage/plugin-jenkins@0.8.2-next.0
|
||||
- @backstage/plugin-kafka@0.3.20-next.0
|
||||
- @backstage/plugin-kubernetes@0.9.3-next.0
|
||||
- @backstage/plugin-lighthouse@0.4.5-next.0
|
||||
- @backstage/plugin-linguist@0.1.5-next.0
|
||||
- @backstage/plugin-linguist-common@0.1.0
|
||||
- @backstage/plugin-microsoft-calendar@0.1.5-next.0
|
||||
- @backstage/plugin-newrelic@0.3.38-next.0
|
||||
- @backstage/plugin-newrelic-dashboard@0.2.13-next.0
|
||||
- @backstage/plugin-octopus-deploy@0.2.2-next.0
|
||||
- @backstage/plugin-org@0.6.10-next.0
|
||||
- @backstage/plugin-pagerduty@0.6.1-next.0
|
||||
- @backstage/plugin-permission-react@0.4.14-next.0
|
||||
- @backstage/plugin-puppetdb@0.1.3-next.0
|
||||
- @backstage/plugin-rollbar@0.4.20-next.0
|
||||
- @backstage/plugin-scaffolder@1.14.1-next.0
|
||||
- @backstage/plugin-scaffolder-react@1.5.1-next.0
|
||||
- @backstage/plugin-search@1.3.3-next.0
|
||||
- @backstage/plugin-search-common@1.2.5-next.0
|
||||
- @backstage/plugin-search-react@1.6.3-next.0
|
||||
- @backstage/plugin-sentry@0.5.5-next.0
|
||||
- @backstage/plugin-shortcuts@0.3.12-next.0
|
||||
- @backstage/plugin-stack-overflow@0.1.18-next.0
|
||||
- @backstage/plugin-tech-insights@0.3.12-next.0
|
||||
- @backstage/plugin-tech-radar@0.6.6-next.0
|
||||
- @backstage/plugin-techdocs@1.6.5-next.0
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@1.0.15-next.0
|
||||
- @backstage/plugin-techdocs-react@1.1.8-next.0
|
||||
- @backstage/plugin-todo@0.2.22-next.0
|
||||
- @backstage/plugin-user-settings@0.7.5-next.0
|
||||
- @internal/plugin-catalog-customized@0.0.12-next.0
|
||||
|
||||
## 0.2.84
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"jest/expect-expect": [
|
||||
"error",
|
||||
{
|
||||
"assertFunctionNames": ["expect", "cy.contains"]
|
||||
"assertFunctionNames": ["expect", "cy.contains", "cy.**.should"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.84",
|
||||
"version": "0.2.85-next.1",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
|
||||
@@ -66,6 +66,8 @@ import {
|
||||
isKind,
|
||||
isOrphan,
|
||||
hasLabels,
|
||||
hasRelationWarnings,
|
||||
EntityRelationWarning,
|
||||
} from '@internal/plugin-catalog-customized';
|
||||
import {
|
||||
Direction,
|
||||
@@ -328,6 +330,14 @@ const entityWarningContent = (
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasRelationWarnings}>
|
||||
<Grid item xs={12}>
|
||||
<EntityRelationWarning />
|
||||
</Grid>
|
||||
</EntitySwitch.Case>
|
||||
</EntitySwitch>
|
||||
|
||||
<EntitySwitch>
|
||||
<EntitySwitch.Case if={hasCatalogProcessingErrors}>
|
||||
<Grid item xs={12}>
|
||||
|
||||
@@ -21,6 +21,7 @@ import {
|
||||
} from '@backstage/plugin-devtools';
|
||||
import { DevToolsLayout } from '@backstage/plugin-devtools';
|
||||
import React from 'react';
|
||||
import { UnprocessedEntitiesContent } from '@backstage/plugin-catalog-unprocessed-entities';
|
||||
|
||||
const DevToolsPage = () => {
|
||||
return (
|
||||
@@ -37,6 +38,12 @@ const DevToolsPage = () => {
|
||||
>
|
||||
<ExternalDependenciesContent />
|
||||
</DevToolsLayout.Route>
|
||||
<DevToolsLayout.Route
|
||||
path="unprocessed-entities"
|
||||
title="Unprocessed Entities"
|
||||
>
|
||||
<UnprocessedEntitiesContent />
|
||||
</DevToolsLayout.Route>
|
||||
</DevToolsLayout>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
# @backstage/backend-app-api
|
||||
|
||||
## 0.4.5-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.2.1-next.0
|
||||
- @backstage/backend-common@0.19.1-next.0
|
||||
- @backstage/backend-plugin-api@0.5.4-next.0
|
||||
- @backstage/backend-tasks@0.5.4-next.0
|
||||
- @backstage/cli-common@0.1.12
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/config-loader@1.3.2-next.0
|
||||
- @backstage/types@1.1.0
|
||||
- @backstage/plugin-auth-node@0.2.16-next.0
|
||||
- @backstage/plugin-permission-node@0.7.10-next.0
|
||||
|
||||
## 0.4.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-app-api",
|
||||
"description": "Core API used by Backstage backend apps",
|
||||
"version": "0.4.4",
|
||||
"version": "0.4.5-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.19.1-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 787ddcc5ef99: use `Readable.from` to explicitly convert the `buffer` from `node-fetch` to a `Readable` stream
|
||||
- Updated dependencies
|
||||
- @backstage/errors@1.2.1-next.0
|
||||
- @backstage/backend-app-api@0.4.5-next.0
|
||||
- @backstage/backend-dev-utils@0.1.1
|
||||
- @backstage/backend-plugin-api@0.5.4-next.0
|
||||
- @backstage/cli-common@0.1.12
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/config-loader@1.3.2-next.0
|
||||
- @backstage/integration@1.5.1-next.0
|
||||
- @backstage/integration-aws-node@0.1.5-next.0
|
||||
- @backstage/types@1.1.0
|
||||
|
||||
## 0.19.0
|
||||
|
||||
### Minor Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-common",
|
||||
"description": "Common functionality library for Backstage backends",
|
||||
"version": "0.19.0",
|
||||
"version": "0.19.1-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -158,7 +158,7 @@ export class AzureUrlReader implements UrlReader {
|
||||
}
|
||||
|
||||
return await this.deps.treeResponseFactory.fromZipArchive({
|
||||
stream: archiveAzureResponse.body as unknown as Readable,
|
||||
stream: Readable.from(archiveAzureResponse.body),
|
||||
etag: commitSha,
|
||||
filter,
|
||||
subpath,
|
||||
|
||||
@@ -160,7 +160,7 @@ export class BitbucketCloudUrlReader implements UrlReader {
|
||||
}
|
||||
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
stream: archiveResponse.body as unknown as Readable,
|
||||
stream: Readable.from(archiveResponse.body),
|
||||
subpath: filepath,
|
||||
etag: lastCommitShortHash,
|
||||
filter: options?.filter,
|
||||
|
||||
@@ -151,7 +151,7 @@ export class BitbucketServerUrlReader implements UrlReader {
|
||||
}
|
||||
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
stream: archiveResponse.body as unknown as Readable,
|
||||
stream: Readable.from(archiveResponse.body),
|
||||
subpath: filepath,
|
||||
etag: lastCommitShortHash,
|
||||
filter: options?.filter,
|
||||
|
||||
@@ -171,7 +171,7 @@ export class BitbucketUrlReader implements UrlReader {
|
||||
}
|
||||
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
stream: archiveBitbucketResponse.body as unknown as Readable,
|
||||
stream: Readable.from(archiveBitbucketResponse.body),
|
||||
subpath: filepath,
|
||||
etag: lastCommitShortHash,
|
||||
filter: options?.filter,
|
||||
|
||||
@@ -204,7 +204,7 @@ export class GerritUrlReader implements UrlReader {
|
||||
});
|
||||
const tarArchive = Readable.from(data);
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
stream: tarArchive as unknown as Readable,
|
||||
stream: tarArchive,
|
||||
subpath: filePath === '/' ? undefined : filePath,
|
||||
etag: branchInfo.revision,
|
||||
filter: options?.filter,
|
||||
|
||||
@@ -238,7 +238,7 @@ export class GithubUrlReader implements UrlReader {
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
// TODO(Rugvip): Underlying implementation of fetch will be node-fetch, we probably want
|
||||
// to stick to using that in exclusively backend code.
|
||||
stream: archive.body as unknown as Readable,
|
||||
stream: Readable.from(archive.body),
|
||||
subpath,
|
||||
etag: sha,
|
||||
filter: options?.filter,
|
||||
@@ -347,7 +347,6 @@ export class GithubUrlReader implements UrlReader {
|
||||
init: RequestInit,
|
||||
): Promise<Response> {
|
||||
const urlAsString = url.toString();
|
||||
|
||||
const response = await fetch(urlAsString, init);
|
||||
|
||||
if (!response.ok) {
|
||||
|
||||
@@ -229,7 +229,7 @@ export class GitlabUrlReader implements UrlReader {
|
||||
}
|
||||
|
||||
return await this.deps.treeResponseFactory.fromTarArchive({
|
||||
stream: archiveGitLabResponse.body as unknown as Readable,
|
||||
stream: Readable.from(archiveGitLabResponse.body),
|
||||
subpath: filepath,
|
||||
etag: commitSha,
|
||||
filter: options?.filter,
|
||||
|
||||
@@ -151,7 +151,6 @@ export class TarArchiveResponse implements ReadTreeResponse {
|
||||
const strip = this.subPath ? this.subPath.split('/').length : 1;
|
||||
|
||||
let filterError: Error | undefined = undefined;
|
||||
|
||||
await pipeline(
|
||||
this.stream,
|
||||
tar.extract({
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
# @backstage/backend-defaults
|
||||
|
||||
## 0.1.12-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-common@0.19.1-next.0
|
||||
- @backstage/backend-app-api@0.4.5-next.0
|
||||
- @backstage/backend-plugin-api@0.5.4-next.0
|
||||
|
||||
## 0.1.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-defaults",
|
||||
"description": "Backend defaults used by Backstage backend apps",
|
||||
"version": "0.1.11",
|
||||
"version": "0.1.12-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
@@ -1,5 +1,40 @@
|
||||
# example-backend-next
|
||||
|
||||
## 0.0.13-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.1
|
||||
- @backstage/plugin-badges-backend@0.2.2-next.1
|
||||
- @backstage/plugin-azure-devops-backend@0.3.26-next.1
|
||||
- @backstage/plugin-devtools-backend@0.1.2-next.1
|
||||
- @backstage/plugin-linguist-backend@0.3.1-next.1
|
||||
|
||||
## 0.0.13-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-catalog-backend-module-unprocessed@0.1.1-next.0
|
||||
- @backstage/plugin-entity-feedback-backend@0.1.5-next.0
|
||||
- @backstage/plugin-catalog-backend@1.11.0-next.0
|
||||
- @backstage/plugin-kubernetes-backend@0.11.2-next.0
|
||||
- @backstage/backend-defaults@0.1.12-next.0
|
||||
- @backstage/plugin-app-backend@0.3.47-next.0
|
||||
- @backstage/plugin-auth-node@0.2.16-next.0
|
||||
- @backstage/plugin-permission-backend@0.5.22-next.0
|
||||
- @backstage/plugin-permission-common@0.7.7-next.0
|
||||
- @backstage/plugin-permission-node@0.7.10-next.0
|
||||
- @backstage/plugin-scaffolder-backend@1.15.1-next.0
|
||||
- @backstage/plugin-search-backend@1.3.3-next.0
|
||||
- @backstage/plugin-search-backend-module-catalog@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-module-explore@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-module-techdocs@0.1.3-next.0
|
||||
- @backstage/plugin-search-backend-node@1.2.3-next.0
|
||||
- @backstage/plugin-techdocs-backend@1.6.4-next.0
|
||||
- @backstage/plugin-todo-backend@0.1.44-next.0
|
||||
|
||||
## 0.0.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-backend-next",
|
||||
"version": "0.0.12",
|
||||
"version": "0.0.13-next.1",
|
||||
"main": "dist/index.cjs.js",
|
||||
"types": "src/index.ts",
|
||||
"license": "Apache-2.0",
|
||||
@@ -26,11 +26,17 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@backstage/backend-defaults": "workspace:^",
|
||||
"@backstage/backend-tasks": "workspace:^",
|
||||
"@backstage/plugin-app-backend": "workspace:^",
|
||||
"@backstage/plugin-auth-node": "workspace:^",
|
||||
"@backstage/plugin-azure-devops-backend": "workspace:^",
|
||||
"@backstage/plugin-badges-backend": "workspace:^",
|
||||
"@backstage/plugin-catalog-backend": "workspace:^",
|
||||
"@backstage/plugin-catalog-backend-module-unprocessed": "workspace:^",
|
||||
"@backstage/plugin-devtools-backend": "workspace:^",
|
||||
"@backstage/plugin-entity-feedback-backend": "workspace:^",
|
||||
"@backstage/plugin-kubernetes-backend": "workspace:^",
|
||||
"@backstage/plugin-linguist-backend": "workspace:^",
|
||||
"@backstage/plugin-permission-backend": "workspace:^",
|
||||
"@backstage/plugin-permission-common": "workspace:^",
|
||||
"@backstage/plugin-permission-node": "workspace:^",
|
||||
|
||||
@@ -30,12 +30,46 @@ import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-m
|
||||
import { searchPlugin } from '@backstage/plugin-search-backend/alpha';
|
||||
import { techdocsPlugin } from '@backstage/plugin-techdocs-backend/alpha';
|
||||
import { todoPlugin } from '@backstage/plugin-todo-backend';
|
||||
import { entityFeedbackPlugin } from '@backstage/plugin-entity-feedback-backend';
|
||||
import { catalogModuleUnprocessedEntities } from '@backstage/plugin-catalog-backend-module-unprocessed';
|
||||
import { badgesPlugin } from '@backstage/plugin-badges-backend';
|
||||
import { azureDevOpsPlugin } from '@backstage/plugin-azure-devops-backend';
|
||||
import { linguistPlugin } from '@backstage/plugin-linguist-backend';
|
||||
import { devtoolsPlugin } from '@backstage/plugin-devtools-backend';
|
||||
import { TaskScheduleDefinition } from '@backstage/backend-tasks';
|
||||
|
||||
const backend = createBackend();
|
||||
|
||||
backend.add(appPlugin({ appPackageName: 'example-app' }));
|
||||
|
||||
// Badges
|
||||
backend.add(badgesPlugin());
|
||||
|
||||
// Azure DevOps
|
||||
backend.add(azureDevOpsPlugin());
|
||||
|
||||
// DevTools
|
||||
backend.add(devtoolsPlugin());
|
||||
|
||||
// Entity Feedback
|
||||
backend.add(entityFeedbackPlugin());
|
||||
|
||||
// Linguist
|
||||
const linguistSchedule: TaskScheduleDefinition = {
|
||||
frequency: { minutes: 2 },
|
||||
timeout: { minutes: 15 },
|
||||
initialDelay: { seconds: 15 },
|
||||
};
|
||||
|
||||
backend.add(
|
||||
linguistPlugin({
|
||||
schedule: linguistSchedule,
|
||||
age: { days: 30 },
|
||||
batchSize: 2,
|
||||
useSourceLocation: false,
|
||||
}),
|
||||
);
|
||||
|
||||
// Todo
|
||||
backend.add(todoPlugin());
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# @backstage/backend-plugin-api
|
||||
|
||||
## 0.5.4-next.0
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/backend-tasks@0.5.4-next.0
|
||||
- @backstage/config@1.0.8
|
||||
- @backstage/types@1.1.0
|
||||
- @backstage/plugin-auth-node@0.2.16-next.0
|
||||
- @backstage/plugin-permission-common@0.7.7-next.0
|
||||
|
||||
## 0.5.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@backstage/backend-plugin-api",
|
||||
"description": "Core API used by Backstage backend plugins",
|
||||
"version": "0.5.3",
|
||||
"version": "0.5.4-next.0",
|
||||
"main": "src/index.ts",
|
||||
"types": "src/index.ts",
|
||||
"publishConfig": {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user