Merge branch 'master' into go/cache-azure-tokens
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
Added a `stream()` method to complement the `buffer()` method on `ReadUrlResponse`. A `ReadUrlResponseFactory` utility class is now also available, providing a simple, consistent way to provide a valid `ReadUrlResponse`.
|
||||
|
||||
This method, though optional for now, will be required on the responses of `UrlReader.readUrl()` implementations in a future release.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Enabled select component to be enabled by keyboard
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Fix wrong return type of the `isGroupEntity` function.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-org': patch
|
||||
---
|
||||
|
||||
Fixed overflow bug of name and email on EntitiyMembersListCard component which can occur on specific 'screen width' + ’character length' combinations
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/integration': minor
|
||||
---
|
||||
|
||||
added the possibility to handle raw Gitlab URLs with nested namespaces
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Create a menu in the sub header of documentation pages, it is responsible for rendering TechDocs addons that allow users to customize their reading experience.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-bazaar': patch
|
||||
---
|
||||
|
||||
Exported the SortView component from the Bazaar plugin for use directly
|
||||
@@ -0,0 +1,10 @@
|
||||
---
|
||||
'@backstage/plugin-kubernetes': patch
|
||||
'@backstage/plugin-kubernetes-backend': patch
|
||||
'@backstage/plugin-kubernetes-common': patch
|
||||
---
|
||||
|
||||
Add support for 'oidc' as authProvider for kubernetes authentication
|
||||
and adds optional 'oidcTokenProvider' config value. This will allow
|
||||
users to authenticate to kubernetes cluster using id tokens obtained
|
||||
from the configured auth provider in their backstage instance.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder-backend': minor
|
||||
'@backstage/plugin-scaffolder-common': minor
|
||||
---
|
||||
|
||||
Added the ability to reference the user in the `template.yaml` manifest
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Don't set the background color on an Avatar component that has a picture.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-react': patch
|
||||
---
|
||||
|
||||
Create a new addon location called "Settings", it is designed for addons that allow users to customize the reading experience in documentation pages.
|
||||
|
||||
Usage example:
|
||||
|
||||
```tsx
|
||||
const TextSize = techdocsModuleAddonsContribPlugin.provide(
|
||||
createTechDocsAddonExtension({
|
||||
name: 'TextSize',
|
||||
location: TechDocsAddonLocations.Settings,
|
||||
component: TextSizeAddon,
|
||||
}),
|
||||
);
|
||||
```
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
'@backstage/backend-common': patch
|
||||
---
|
||||
|
||||
**DEPRECATION**: Server-to-server authentication tokens issued from a
|
||||
`TokenManager` (specifically, `ServerTokenManager`) now has an expiry time set,
|
||||
for one hour in the future from when issued. This improves security. The ability
|
||||
to pass in and validate tokens that either have a missing `exp` claim, or an
|
||||
`exp` claim that expired in the past, is now deprecated. Trying to do so will
|
||||
lead to logged warnings, and in a future release will instead lead to errors.
|
||||
|
||||
It was always the case that users of this interface were expected to call its
|
||||
`getToken()` method for every outgoing call and never hold on to any given token
|
||||
for reuse. But this now has become even more important advice to heed, and you
|
||||
should verify that you do not hold on to and reuse tokens such as these in your
|
||||
own code.
|
||||
+47
-3
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"mode": "pre",
|
||||
"mode": "exit",
|
||||
"tag": "next",
|
||||
"initialVersions": {
|
||||
"example-app": "0.2.70",
|
||||
@@ -151,36 +151,53 @@
|
||||
"@internal/plugin-todo-list": "1.0.0",
|
||||
"@internal/plugin-todo-list-backend": "1.0.0",
|
||||
"@internal/plugin-todo-list-common": "1.0.0",
|
||||
"@backstage/plugin-techdocs-addons-test-utils": "0.0.0"
|
||||
"@backstage/plugin-techdocs-addons-test-utils": "0.0.0",
|
||||
"@backstage/plugin-codescene": "0.0.0"
|
||||
},
|
||||
"changesets": [
|
||||
"afraid-insects-do",
|
||||
"backend-common-slips-away",
|
||||
"backend-common-twist-your-ankle",
|
||||
"beige-glasses-swim",
|
||||
"beige-panthers-dream",
|
||||
"big-teachers-dress",
|
||||
"brave-starfishes-try",
|
||||
"breezy-days-prove",
|
||||
"bright-panthers-guess",
|
||||
"chatty-forks-bathe",
|
||||
"chatty-pears-nail",
|
||||
"clever-trains-greet",
|
||||
"cool-mice-sit",
|
||||
"cool-ties-share",
|
||||
"curly-parrots-applaud",
|
||||
"cyan-boxes-double",
|
||||
"dirty-clocks-poke",
|
||||
"dirty-ducks-suffer",
|
||||
"dirty-eagles-hunt",
|
||||
"dull-waves-marry",
|
||||
"early-crabs-help",
|
||||
"early-lemons-add",
|
||||
"eighty-chicken-retire",
|
||||
"empty-mugs-bow",
|
||||
"empty-planes-destroy",
|
||||
"empty-poems-lick",
|
||||
"fair-kings-retire",
|
||||
"fair-pigs-mate",
|
||||
"fast-stingrays-guess",
|
||||
"fluffy-poems-sell",
|
||||
"fluffy-sloths-deliver",
|
||||
"fresh-panthers-arrive",
|
||||
"funny-lamps-turn",
|
||||
"fuzzy-seahorses-teach",
|
||||
"gentle-penguins-kick",
|
||||
"giant-cheetahs-thank",
|
||||
"good-beans-knock",
|
||||
"grumpy-panthers-peel",
|
||||
"hip-adults-collect",
|
||||
"hip-monkeys-hide",
|
||||
"honest-kids-live",
|
||||
"hot-peaches-give",
|
||||
"hungry-chefs-return",
|
||||
"hungry-goats-mate",
|
||||
"kind-cats-clap",
|
||||
"lazy-zebras-pay",
|
||||
@@ -196,6 +213,7 @@
|
||||
"nasty-humans-give",
|
||||
"nasty-paws-move",
|
||||
"new-beds-argue",
|
||||
"nice-parrots-lie",
|
||||
"nine-actors-fly",
|
||||
"nine-geese-rest",
|
||||
"odd-apples-smash",
|
||||
@@ -204,14 +222,27 @@
|
||||
"perfect-penguins-rescue",
|
||||
"pink-mayflies-rhyme",
|
||||
"polite-planets-learn",
|
||||
"pretty-readers-grow",
|
||||
"renovate-05696d1",
|
||||
"renovate-4b92131",
|
||||
"renovate-5970cc2",
|
||||
"renovate-759d9d5",
|
||||
"renovate-9466904",
|
||||
"renovate-abcbd6e",
|
||||
"renovate-abcbd6e2",
|
||||
"renovate-b063c4b",
|
||||
"renovate-bf43c44",
|
||||
"renovate-bf63f74",
|
||||
"renovate-ca619fc",
|
||||
"rotten-impalas-clap",
|
||||
"search-dry-wolves-join",
|
||||
"search-heavy-llamas-worry",
|
||||
"search-the-worst-of-you",
|
||||
"serious-apricots-collect",
|
||||
"seven-deers-rule",
|
||||
"seven-panthers-pump",
|
||||
"shiny-apes-design",
|
||||
"shiny-moles-study",
|
||||
"shiny-students-approve",
|
||||
"short-chicken-act",
|
||||
"short-dodos-sparkle",
|
||||
@@ -219,9 +250,11 @@
|
||||
"silver-readers-deliver",
|
||||
"six-buckets-tap",
|
||||
"sixty-llamas-change",
|
||||
"small-eggs-guess",
|
||||
"smart-ghosts-search",
|
||||
"spotty-plums-rule",
|
||||
"stale-pigs-reply",
|
||||
"stale-pugs-kiss",
|
||||
"strong-mangos-sell",
|
||||
"swift-bugs-share",
|
||||
"swift-parrots-hammer",
|
||||
@@ -229,16 +262,27 @@
|
||||
"tasty-drinks-teach",
|
||||
"techdocs-changeset-not-found",
|
||||
"techdocs-five-hundred-ml",
|
||||
"techdocs-hot-berries-collect",
|
||||
"techdocs-loose-seal-blooth",
|
||||
"techdocs-low-calorie-drink",
|
||||
"techdocs-money-banana-stand",
|
||||
"techdocs-nice-boats-wonder",
|
||||
"techdocs-quick-owls-smile",
|
||||
"techdocs-touch-screen-wipes",
|
||||
"techdocs-vitamin-well-reload",
|
||||
"thick-bees-brush",
|
||||
"thick-tools-dream",
|
||||
"three-tips-hunt",
|
||||
"tough-forks-carry",
|
||||
"tricky-laws-thank",
|
||||
"tricky-phones-sing",
|
||||
"violet-steaks-knock",
|
||||
"warm-suns-wonder",
|
||||
"wicked-vans-press",
|
||||
"wild-pigs-work",
|
||||
"wise-emus-wait"
|
||||
"wise-countries-watch",
|
||||
"wise-doors-hammer",
|
||||
"wise-emus-wait",
|
||||
"witty-lions-reply"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-codescene': minor
|
||||
---
|
||||
|
||||
Add CodeScene plugin
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
---
|
||||
|
||||
Updated dependency `use-immer` to `^0.7.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-graphiql': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/codemirror` to `^5.0.0`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-codescene': patch
|
||||
---
|
||||
|
||||
Updated dependency `@testing-library/user-event` to `^14.0.0`.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/cli-common': patch
|
||||
'@backstage/config': patch
|
||||
'@backstage/dev-utils': patch
|
||||
'@backstage/release-manifests': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/node` to `^16.0.0`.
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
'@backstage/plugin-scaffolder': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Updated dependency `event-source-polyfill` to `1.0.26`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Updated dependency `@types/react-syntax-highlighter` to `^15.0.0`.
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-codescene': patch
|
||||
'@backstage/plugin-sonarqube': patch
|
||||
---
|
||||
|
||||
Updated dependency `rc-progress` to `3.3.2`.
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
---
|
||||
|
||||
Sidebar NAV now includes aria-label. Component AboutField now uses h2 variant instead of subtitle2 (font properties unchanged)
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend-node': patch
|
||||
'@backstage/plugin-search-backend-module-elasticsearch': patch
|
||||
'@backstage/plugin-search-backend-module-pg': patch
|
||||
---
|
||||
|
||||
Search Engines will now index documents in batches of 1000 instead of 100 (under the hood). This may result in your Backstage backend consuming slightly more memory during index runs, but should dramatically improve indexing performance for large document sets.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Added sample catalog data to the template under a top-level `examples` directory. This includes some simple entities, org data, and a template. You can find the sample data at https://github.com/backstage/backstage/tree/master/packages/create-app/templates/default-app/examples.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Add ARIA landmark( <main>), & label and a heading to OAuthRequestDialog. Removed nested interactive control (button).
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-backend': patch
|
||||
---
|
||||
|
||||
Updated parseEntityTransformParams to handle keys with '.' in them. This will allow for querying of entities based off annotations such as 'backstage.io/orgin-location' or other entity field keys that have '.' in them.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Properly highlight `SidebarSubmenuItem` dropdown items on hover, use ellipsis styling on long labels in `SidebarSubmenu`, allow `icon` and `to` properties to be optional on `SidebarSubmenuItem`, and fix `SidebarPage` padding to be responsive to pinned state
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
---
|
||||
|
||||
Fix kind filter error in the dev app
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-app-api': patch
|
||||
---
|
||||
|
||||
Fix SAML session schema to no longer require the (deprecated) id, to unbreak session data storage.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/core-components': patch
|
||||
---
|
||||
|
||||
Add controls to Storybook stories
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': patch
|
||||
---
|
||||
|
||||
Create a TechDocs `<TextSize/>` addon that allows users to set a font size in the browser's local storage for the text of documentation pages.
|
||||
|
||||
Here's an example on how to use it in a Backstage app:
|
||||
|
||||
```diff
|
||||
import {
|
||||
DefaultTechDocsHome,
|
||||
TechDocsIndexPage,
|
||||
TechDocsReaderPage,
|
||||
} from '@backstage/plugin-techdocs';
|
||||
import { TechDocsAddons } from '@backstage/plugin-techdocs-react/alpha';
|
||||
+import { TextSize } from '@backstage/plugin-techdocs-module-addons-contrib';
|
||||
|
||||
const AppRoutes = () => {
|
||||
<FlatRoutes>
|
||||
// other plugin routes
|
||||
<Route path="/docs" element={<TechDocsIndexPage />}>
|
||||
<DefaultTechDocsHome />
|
||||
</Route>
|
||||
<Route
|
||||
path="/docs/:namespace/:kind/:name/*"
|
||||
element={<TechDocsReaderPage />}
|
||||
>
|
||||
<TechDocsAddons>
|
||||
+ <TextSize />
|
||||
</TechDocsAddons>
|
||||
</Route>
|
||||
</FlatRoutes>;
|
||||
};
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-home': patch
|
||||
---
|
||||
|
||||
Display entity titles in `StarredEntities` home page card (if defined) and don't show entities which no longer exist
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-react': major
|
||||
'@backstage/plugin-techdocs-addons-test-utils': major
|
||||
'@backstage/plugin-techdocs-module-addons-contrib': major
|
||||
---
|
||||
|
||||
The TechDocs Addon framework is now generally available.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Loading SVGs correctly with `bota` with extended characters
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Updated the default version of the `@spotify/techdocs` container used when `techdocs.generator.runIn` is `docker` to `v1.0.3`.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-addons-test-utils': patch
|
||||
---
|
||||
|
||||
Fixed a bug preventing testing of TechDocs Addons whose dom contained `<img />` tags.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-addons-test-utils': patch
|
||||
---
|
||||
|
||||
The `TechDocsAddonTester` class may now be extended if custom test configuration is needed.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Hidden exports related to experimental TechDocs reader functionality have been removed and can no longer be imported. In the unlikely event you were using these exports, you can now take advantage of the officially supported and generally available TechDocs Addon framework instead.
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-addons-test-utils': patch
|
||||
---
|
||||
|
||||
Fixed a type bug preventing `buildAddonsInTechDocs().withApis()` from being called with multiple partial API implementations.
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
'@backstage/create-app': patch
|
||||
---
|
||||
|
||||
Implement highlighting matching terms in search results. To enable this for an existing app, make the following changes:
|
||||
|
||||
```diff
|
||||
// packages/app/src/components/search/SearchPage.tsx
|
||||
...
|
||||
- {results.map(({ type, document }) => {
|
||||
+ {results.map(({ type, document, highlight }) => {
|
||||
switch (type) {
|
||||
case 'software-catalog':
|
||||
return (
|
||||
<CatalogSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
+ highlight={highlight}
|
||||
/>
|
||||
);
|
||||
case 'techdocs':
|
||||
return (
|
||||
<TechDocsSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
+ highlight={highlight}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
return (
|
||||
<DefaultResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
+ highlight={highlight}
|
||||
/>
|
||||
);
|
||||
}
|
||||
})}
|
||||
...
|
||||
```
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-search': patch
|
||||
'@backstage/plugin-search-react': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
---
|
||||
|
||||
Updated search result components to support rendering content with highlighted matched terms
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-search-backend-module-elasticsearch': patch
|
||||
'@backstage/plugin-search-backend-node': patch
|
||||
'@backstage/plugin-search-common': patch
|
||||
---
|
||||
|
||||
Support generating highlighted matched terms in search result data
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
'@backstage/plugin-azure-devops': patch
|
||||
'@backstage/plugin-azure-devops-backend': patch
|
||||
'@backstage/plugin-azure-devops-common': patch
|
||||
---
|
||||
|
||||
Added entity view for Azure Git Tags, based on existing Pull Requests view
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-org': patch
|
||||
---
|
||||
|
||||
Include namespace in `MyGroupSidebarItem` if not default and remove root item routing if there are multiple groups
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-react': patch
|
||||
---
|
||||
|
||||
Make Menu item on filters accessible through keyboard
|
||||
@@ -3,7 +3,7 @@
|
||||
extends: ['config:base', ':disableDependencyDashboard', ':gitSignOff'],
|
||||
rangeStrategy: 'update-lockfile',
|
||||
// @elastic/elasticsearch is ignored due to licensing issues. See #10992
|
||||
ignoreDeps: ['@elastic/elasticsearch'],
|
||||
ignoreDeps: ['@elastic/elasticsearch', 'event-source-polyfill'],
|
||||
packageRules: [
|
||||
{
|
||||
matchSourceUrlPrefixes: ['https://github.com/spotify/web-scripts'],
|
||||
|
||||
@@ -45,6 +45,8 @@ codeblocks
|
||||
Codecov
|
||||
codehilite
|
||||
Codehilite
|
||||
codescene
|
||||
CodeScene
|
||||
codemod
|
||||
codemods
|
||||
codeowners
|
||||
|
||||
@@ -6,7 +6,7 @@ jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v3
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
sync-labels: true
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
if: github.repository == 'backstage/backstage' && github.event.pull_request.user.login != 'backstage-service'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
# Fetch the commit that's merged into the base rather than the target ref
|
||||
# This will let us diff only the contents of the PR, without fetching more history
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
node generate.js FETCH_HEAD > feedback.txt
|
||||
|
||||
- name: Post Feedback
|
||||
uses: actions/github-script@v5
|
||||
uses: actions/github-script@v6
|
||||
env:
|
||||
ISSUE_NUMBER: ${{ github.event.pull_request.number }}
|
||||
with:
|
||||
|
||||
@@ -16,13 +16,13 @@ jobs:
|
||||
application_private_key: ${{ secrets.BACKSTAGE_GOALIE_PRIVATE_KEY }}
|
||||
organization: backstage
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 14
|
||||
- run: npm install codeowners
|
||||
|
||||
- uses: actions/github-script@v5
|
||||
- uses: actions/github-script@v6
|
||||
id: fix-labels
|
||||
with:
|
||||
github-token: ${{ steps.get_workflow_token.outputs.token }}
|
||||
|
||||
@@ -16,14 +16,14 @@ jobs:
|
||||
label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
# THESE SCRIPTS SHOULD BE INLINED AND NOT IN REPO
|
||||
# DUE TO THE TOKEN PERMISSIONS THAT ARE GIVEN
|
||||
# TO THE WORKFLOW. THIS SCRIPT WILL AND SHOULD
|
||||
# RUN FROM THE BASE REPO ALL TIMES.
|
||||
- uses: actions/github-script@v6
|
||||
id: fix-labels
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# THIS SCRIPT SHOULD BE INLINED AND NOT IN REPO
|
||||
# DUE TO THE TOKEN PERMISSIONS THAT ARE GIVEN
|
||||
# TO THE WORKFLOW. THIS SCRIPT WILL AND SHOULD
|
||||
# RUN FROM THE BASE REPO ALL TIMES.
|
||||
script: |
|
||||
if (['opened', 'synchronize'].includes('${{ github.event.action }}')) {
|
||||
// if it's the author, always add awaiting-review label
|
||||
@@ -48,3 +48,37 @@ jobs:
|
||||
console.log(e)
|
||||
});
|
||||
}
|
||||
|
||||
- name: Add PRs to review board
|
||||
uses: actions/github-script@v6
|
||||
if: github.event.action == 'opened' || github.event.action == 'reopened'
|
||||
env:
|
||||
PROJECT_ID: PN_kwDOBFKqdc02LQ
|
||||
with:
|
||||
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
script: |
|
||||
const prLookup = await github.graphql(`
|
||||
query($owner: String!, $repo: String!, $number: Int!){
|
||||
repository(owner: $owner, name: $repo) {
|
||||
pullRequest(number: $number) {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`, context.issue);
|
||||
|
||||
await github.graphql(`
|
||||
mutation($projectId: ID!, $contentId: ID!) {
|
||||
addProjectNextItem(input: {
|
||||
projectId: $projectId,
|
||||
contentId: $contentId,
|
||||
}) {
|
||||
projectNextItem {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`, {
|
||||
projectId: process.env.PROJECT_ID,
|
||||
contentId: prLookup.repository.pullRequest.id
|
||||
})
|
||||
|
||||
@@ -60,14 +60,14 @@ jobs:
|
||||
INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: fetch branch master
|
||||
run: git fetch origin master
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows.
|
||||
# TODO(Rugvip): move this to composite action once all features we use are supported
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
# Cache every node_modules folder inside the monorepo
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
# We use both yarn.lock and package.json as cache keys to ensure that
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -17,10 +17,10 @@ jobs:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -55,8 +55,7 @@ jobs:
|
||||
run: ls microsite/build/backstage && ls microsite/build/backstage/storybook
|
||||
|
||||
- name: Deploy both microsite and storybook to gh-pages
|
||||
uses: JamesIves/github-pages-deploy-action@3.7.1
|
||||
uses: JamesIves/github-pages-deploy-action@v4.3.3
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BRANCH: gh-pages
|
||||
FOLDER: microsite/build/backstage
|
||||
branch: gh-pages
|
||||
folder: microsite/build/backstage
|
||||
|
||||
@@ -18,17 +18,17 @@ jobs:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -59,17 +59,17 @@ jobs:
|
||||
INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -78,7 +78,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
@@ -155,17 +155,17 @@ jobs:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -174,7 +174,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -18,12 +18,6 @@ jobs:
|
||||
const owner = 'backstage';
|
||||
const repo = 'backstage';
|
||||
|
||||
const date = new Date();
|
||||
if (date.getDay() === 2) {
|
||||
console.log('Skipping auto approve because Tuesday is release day');
|
||||
return;
|
||||
}
|
||||
|
||||
const r = await github.rest.pulls.listFiles({
|
||||
owner,
|
||||
repo,
|
||||
|
||||
@@ -9,20 +9,20 @@ jobs:
|
||||
name: Autofix Markdown files using Prettier
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
# Fetch changes to previous commit - required for 'only_changed' in Prettier action
|
||||
fetch-depth: 0
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
# End of yarn setup
|
||||
|
||||
- name: Run Prettier on ADOPTERS.md
|
||||
uses: creyD/prettier_action@v3.3
|
||||
uses: creyD/prettier_action@v4.2
|
||||
with:
|
||||
# Modifies commit only if prettier autofixed the ADOPTERS.md
|
||||
prettier_options: --config docs/prettier.config.js --write ADOPTERS.md
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'dependabot[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
ref: ${{ github.head_ref }}
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
git config --global user.email noreply@backstage.io
|
||||
git config --global user.name 'Github changeset workflow'
|
||||
- name: Generate changeset
|
||||
uses: actions/github-script@v5
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const { promises: fs } = require('fs');
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Setup node & install deps before checkout, keeping install quick
|
||||
- uses: actions/setup-node@v2
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Install dependencies
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
run: npm install semver@7.3.5 fs-extra@10.0.0 @manypkg/get-packages@1.1.1
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: backstage
|
||||
# 'v' prefix is added here for the tag, we keep it out of the manifest logic
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
# Checkout backstage/versions into /backstage/versions, which is where store the output
|
||||
- name: Checkout versions
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: backstage/versions
|
||||
path: backstage/versions
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
git push
|
||||
|
||||
- name: Dispatch update-helper update
|
||||
uses: actions/github-script@v5
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
# TODO(Rugvip): Remove the create-app dispatch once we've been on the release version for a while
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
if: github.actor == 'renovate[bot]' && github.repository == 'backstage/backstage'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
ref: ${{ github.head_ref }}
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
git config --global user.email noreply@backstage.io
|
||||
git config --global user.name 'Github changeset workflow'
|
||||
- name: Generate changeset
|
||||
uses: actions/github-script@v5
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const { promises: fs } = require("fs");
|
||||
|
||||
@@ -14,17 +14,17 @@ jobs:
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -18,7 +18,7 @@ jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Monitor and Synchronize Snyk Policies
|
||||
uses: snyk/actions/node@master
|
||||
with:
|
||||
@@ -45,6 +45,6 @@ jobs:
|
||||
env:
|
||||
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
|
||||
- name: Upload Snyk report
|
||||
uses: github/codeql-action/upload-sarif@v1
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
with:
|
||||
sarif_file: snyk.sarif
|
||||
|
||||
@@ -9,7 +9,7 @@ jobs:
|
||||
name: Create Changeset PR
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GH_SERVICE_ACCOUNT_TOKEN }}
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -54,7 +54,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -68,4 +68,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Verify DCO status for open pull requests
|
||||
uses: actions/github-script@v5
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const owner = "backstage";
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Vale does not support file excludes, so we use the script to generate a list of files instead
|
||||
# The action also does not allow args or a local config file to be passed in, so the files array
|
||||
|
||||
@@ -38,17 +38,17 @@ jobs:
|
||||
|
||||
name: Node ${{ matrix.node-version }} on ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
- name: setup chrome
|
||||
uses: browser-actions/setup-chrome@latest
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -25,8 +25,8 @@ jobs:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v3
|
||||
|
||||
- name: install dependencies
|
||||
run: yarn install --frozen-lockfile
|
||||
|
||||
@@ -10,12 +10,12 @@ jobs:
|
||||
# Set an initial commit status message to indicate that the tests are
|
||||
# running.
|
||||
- name: set pending status
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}}
|
||||
debug: true
|
||||
script: |
|
||||
return github.repos.createCommitStatus({
|
||||
return github.rest.repos.createCommitStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
sha: context.sha,
|
||||
@@ -34,12 +34,12 @@ jobs:
|
||||
# Set an initial commit status message to indicate that the tests are
|
||||
# running.
|
||||
- name: set pending status
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}}
|
||||
debug: true
|
||||
script: |
|
||||
return github.repos.createCommitStatus({
|
||||
return github.rest.repos.createCommitStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
sha: context.sha,
|
||||
@@ -49,8 +49,8 @@ jobs:
|
||||
target_url: "https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}"
|
||||
});
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: '14'
|
||||
|
||||
@@ -65,12 +65,12 @@ jobs:
|
||||
# https://developer.github.com/changes/2016-04-06-deployment-and-deployment-status-enhancements/
|
||||
- name: get deployment status
|
||||
id: get-status-env
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}}
|
||||
result-encoding: string
|
||||
script: |
|
||||
const result = await github.repos.getDeploymentStatus({
|
||||
const result = await github.rest.repos.getDeploymentStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
deployment_id: context.payload.deployment.id,
|
||||
@@ -95,18 +95,18 @@ jobs:
|
||||
|
||||
- name: update artifact
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v1
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: cypress-videos
|
||||
path: ./cypress/cypress/videos
|
||||
|
||||
- name: set status
|
||||
if: ${{ failure() }}
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}}
|
||||
script: |
|
||||
return github.repos.createCommitStatus({
|
||||
return github.rest.repos.createCommitStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
sha: context.sha,
|
||||
@@ -117,11 +117,11 @@ jobs:
|
||||
|
||||
- name: set status
|
||||
if: ${{ success() }}
|
||||
uses: actions/github-script@v3
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{secrets.GH_SERVICE_ACCOUNT_TOKEN}}
|
||||
script: |
|
||||
return github.repos.createCommitStatus({
|
||||
return github.rest.repos.createCommitStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
sha: context.sha,
|
||||
|
||||
@@ -37,10 +37,10 @@ jobs:
|
||||
git config --global core.autocrlf false
|
||||
git config --global core.eol lf
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Add msbuild to PATH
|
||||
|
||||
@@ -11,7 +11,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Fossa
|
||||
run: "curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install.sh | bash"
|
||||
|
||||
@@ -19,10 +19,10 @@ jobs:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
|
||||
@@ -19,19 +19,19 @@ jobs:
|
||||
chromatic:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Required to retrieve git history
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
- name: cache all node_modules
|
||||
id: cache-modules
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-v${{ matrix.node-version }}-node_modules-${{ hashFiles('yarn.lock', '**/package.json') }}
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
if: steps.cache-modules.outputs.cache-hit != 'true'
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
|
||||
@@ -24,11 +24,11 @@ jobs:
|
||||
INTEGRATION_TEST_AZURE_TOKEN: ${{ secrets.INTEGRATION_TEST_AZURE_TOKEN }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Beginning of yarn setup, keep in sync between all workflows, see ci.yml
|
||||
- name: use node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
registry-url: https://registry.npmjs.org/ # Needed for auth
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
id: yarn-cache
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- name: cache global yarn cache
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
|
||||
|
||||
@@ -123,3 +123,7 @@ _If you're using Backstage in your organization, please try to add your company
|
||||
| [leboncoin](https://www.leboncoin.fr/) | [Andy Ladjadj](https://github.com/aladjadj) | Centralize our multiple UI in a single portal. Simplify onbording, new features and harmonize how people search information. Core features (catalog,api,docs,scafolder) are good to start the adoption. status: internal beta. |
|
||||
| [Contentful](https://www.contentful.com) | [James Bourne](https://github.com/jamesmbourne) | Centralized documentation of service ownership, APIs, and documentation, and new service creation with a custom scaffolder - [full case study with Roadie](https://roadie.io/case-studies/maintaining-velocity-through-hypergrowth-contentful/). |
|
||||
| [Back Market](https://www.backmarket.com) | [Sami Farhat](https://github.com/skfarhat) | Internal Developer Portal featuring catalog, tech-radar, ownership management, component creation (scaffolder) and centralized infrastructure management -- probably more to come. |
|
||||
| [Avalia Systems](https://avalia.io) | [Olivier Liechti](https://github.com/wasadigi), [Fabio Velloso](https://github.com/fabiovelloso) | Innersource, software analytics, knowledge base for 360 software assessments, collaborative applications, hub for tracking and sharing IP assets. |
|
||||
| [Albert Heijn](https://ah.technology) | [Joost Hofman](https://github.com/joosthofman), [Reindrich Geerman](https://github.com/reinst) | Single point of entry for all our engineers (Developer portal), Tech radar, catalog, templates (paved roads) and tech documentation. |
|
||||
| [Wise, formerly TransferWise](https://wise.com) | [Andrew Beveridge](https://github.com/beveradb) | It's early days for us, we're trying to start small with catalog, tech docs and unified search. Future ambitious vision includes scaffolder for one-click component addition, building out integrations with CI/CD tooling, kubernetes clusters, monitoring/alerting tooling etc. and aiming for a frictionless "golden path" for engineers! 🚀 |
|
||||
|
||||
|
||||
+8
-20
@@ -203,8 +203,6 @@ catalog:
|
||||
- Component
|
||||
- API
|
||||
- Resource
|
||||
- Group
|
||||
- User
|
||||
- Template
|
||||
- System
|
||||
- Domain
|
||||
@@ -243,7 +241,7 @@ catalog:
|
||||
# Add a location here to ingest it, for example from a URL:
|
||||
#
|
||||
# - type: url
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all-components.yaml
|
||||
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml
|
||||
#
|
||||
# For local development you can use a file location instead:
|
||||
#
|
||||
@@ -253,33 +251,23 @@ catalog:
|
||||
# File locations are relative to the current working directory of the
|
||||
# backend, for example packages/backend/.
|
||||
|
||||
# Backstage example components
|
||||
# Backstage example entities
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-components.yaml
|
||||
target: ../catalog-model/examples/all.yaml
|
||||
# Backstage example groups and users
|
||||
- type: file
|
||||
target: ../catalog-model/examples/acme-corp.yaml
|
||||
rules:
|
||||
- allow: [User, Group]
|
||||
# Example component for github-actions and TechDocs
|
||||
- type: file
|
||||
target: ../../plugins/github-actions/examples/sample.yaml
|
||||
# Example component for TechDocs
|
||||
- type: file
|
||||
target: ../../plugins/techdocs-backend/examples/documented-component/catalog-info.yaml
|
||||
# Backstage example APIs
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-apis.yaml
|
||||
# Backstage example resources
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-resources.yaml
|
||||
# Backstage example systems
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-systems.yaml
|
||||
# Backstage example domains
|
||||
- type: file
|
||||
target: ../catalog-model/examples/all-domains.yaml
|
||||
# Backstage example templates
|
||||
- type: file
|
||||
target: ../../plugins/scaffolder-backend/sample-templates/all-templates.yaml
|
||||
# Backstage example groups and users
|
||||
- type: file
|
||||
target: ../catalog-model/examples/acme-corp.yaml
|
||||
# Backstage end-to-end tests of TechDocs
|
||||
- type: file
|
||||
target: ../../cypress/e2e-fixture.catalog.info.yaml
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 9.8.12
|
||||
digest: sha256:549b9a0cdf7b2e0ad949ebad853a467bf320928970a946fb0ef7e13e9bdb7a10
|
||||
generated: "2022-04-21T07:02:48.301491565Z"
|
||||
version: 11.1.28
|
||||
digest: sha256:91deeef78a140252c1ec9fbdf011e5584fc26b67f5a5dc9b6c90be2eee838499
|
||||
generated: "2022-05-06T14:02:33.227808666Z"
|
||||
|
||||
@@ -18,7 +18,7 @@ sources:
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
condition: postgresql.enabled
|
||||
version: 9.8.12
|
||||
version: 11.1.28
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
|
||||
maintainers:
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 297 KiB After Width: | Height: | Size: 1.9 MiB |
@@ -85,13 +85,14 @@ array. Users will see this value in the Software Catalog Kubernetes plugin.
|
||||
This determines how the Kubernetes client authenticates with the Kubernetes
|
||||
cluster. Valid values are:
|
||||
|
||||
| Value | Description |
|
||||
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `serviceAccount` | This will use a Kubernetes [service account](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/) to access the Kubernetes API. When this is used the `serviceAccountToken` field should also be set. |
|
||||
| `google` | This will use a user's Google auth token from the [Google auth plugin](https://backstage.io/docs/auth/) to access the Kubernetes API. |
|
||||
| `aws` | This will use AWS credentials to access resources in EKS clusters |
|
||||
| `googleServiceAccount` | This will use the Google Cloud service account credentials to access resources in clusters |
|
||||
| `azure` | This will use [Azure Identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) to access resources in clusters |
|
||||
| Value | Description |
|
||||
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `serviceAccount` | This will use a Kubernetes [service account](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/) to access the Kubernetes API. When this is used the `serviceAccountToken` field should also be set. |
|
||||
| `google` | This will use a user's Google auth token from the [Google auth plugin](https://backstage.io/docs/auth/) to access the Kubernetes API. |
|
||||
| `aws` | This will use AWS credentials to access resources in EKS clusters |
|
||||
| `googleServiceAccount` | This will use the Google Cloud service account credentials to access resources in clusters |
|
||||
| `azure` | This will use [Azure Identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview) to access resources in clusters |
|
||||
| `oidc` | This will use [Oidc Tokens](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) to authenticate to the Kubernetes API. When this is used the `oidcTokenProvider` field should also be set. |
|
||||
|
||||
##### `clusters.\*.skipTLSVerify`
|
||||
|
||||
@@ -115,6 +116,33 @@ kubectl -n <NAMESPACE> get secret $(kubectl -n <NAMESPACE> get sa <SERVICE_ACCOU
|
||||
| base64 --decode
|
||||
```
|
||||
|
||||
##### `clusters.\*.oidcTokenProvider` (optional)
|
||||
|
||||
This field is to be used when using the `oidc` auth provider. It will use the id tokens
|
||||
from a configured [backstage auth provider](https://backstage.io/docs/auth/) to
|
||||
authenticate to the cluster. The selected `oidcTokenProvider` needs to be properly
|
||||
configured under `auth` for this to work.
|
||||
|
||||
```yaml
|
||||
kubernetes:
|
||||
clusterLocatorMethods:
|
||||
- type: 'config'
|
||||
clusters:
|
||||
- name: test-cluster
|
||||
url: http://localhost:8080
|
||||
authProvider: oidc
|
||||
oidcTokenProvider: okta # This value needs to match a config under auth.providers
|
||||
auth:
|
||||
providers:
|
||||
okta:
|
||||
development:
|
||||
clientId: ${AUTH_OKTA_CLIENT_ID}
|
||||
clientSecret: ${AUTH_OKTA_CLIENT_SECRET}
|
||||
audience: ${AUTH_OKTA_AUDIENCE}
|
||||
```
|
||||
|
||||
The following values are supported out-of-the-box by the frontend: `google`, `microsoft`, `okta`, `onelogin`.
|
||||
|
||||
##### `clusters.\*.dashboardUrl` (optional)
|
||||
|
||||
Specifies the link to the Kubernetes dashboard managing this cluster.
|
||||
|
||||
@@ -71,6 +71,7 @@ export const searchPage = (
|
||||
<CatalogResultListItem
|
||||
key={result.document.location}
|
||||
result={result.document}
|
||||
highlight={result.highlight}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
@@ -78,6 +79,7 @@ export const searchPage = (
|
||||
<DefaultResultListItem
|
||||
key={result.document.location}
|
||||
result={result.document}
|
||||
highlight={result.highlight}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -266,6 +268,7 @@ an example:
|
||||
<CatalogResultListItem
|
||||
key={result.document.location}
|
||||
result={result.document}
|
||||
highlight={result.highlight}
|
||||
/>
|
||||
);
|
||||
// ...
|
||||
|
||||
@@ -67,11 +67,24 @@ getting started guide.
|
||||
import { DefaultTechDocsCollatorFactory } from '@backstage/plugin-techdocs-backend';
|
||||
```
|
||||
|
||||
2. Register the `DefaultTechDocsCollatorFactory` with the IndexBuilder.
|
||||
2. If there isn't an existing schedule you'd like to run the collator on, be
|
||||
sure to create it first. Something like...
|
||||
|
||||
```typescript
|
||||
import { Duration } from 'luxon';
|
||||
|
||||
const every10MinutesSchedule = env.scheduler.createScheduledTaskRunner({
|
||||
frequency: Duration.fromObject({ seconds: 600 }),
|
||||
timeout: Duration.fromObject({ seconds: 900 }),
|
||||
initialDelay: Duration.fromObject({ seconds: 3 }),
|
||||
});
|
||||
```
|
||||
|
||||
3. Register the `DefaultTechDocsCollatorFactory` with the IndexBuilder.
|
||||
|
||||
```typescript
|
||||
indexBuilder.addCollator({
|
||||
defaultRefreshIntervalSeconds: 600,
|
||||
schedule: every10MinutesSchedule,
|
||||
factory: DefaultTechDocsCollatorFactory.fromConfig(env.config, {
|
||||
discovery: env.discovery,
|
||||
logger: env.logger,
|
||||
@@ -398,6 +411,29 @@ export class YourSearchEngine implements SearchEngine {
|
||||
}
|
||||
```
|
||||
|
||||
## How to customize search results highlighting styling
|
||||
|
||||
The default highlighting styling for matched terms in search results is your
|
||||
browsers default styles for the `<mark>` HTML tag. If you want to customize
|
||||
how highlighted terms look you can follow Backstage's guide on how to
|
||||
[Customize the look-and-feel of your App](https://backstage.io/docs/getting-started/app-custom-theme)
|
||||
to create an override with your preferred styling.
|
||||
|
||||
For example, the following will result in highlighted terms to be bold & underlined:
|
||||
|
||||
```jsx
|
||||
const highlightOverride = {
|
||||
BackstageHighlightedSearchResultText: {
|
||||
highlight: {
|
||||
color: 'inherit',
|
||||
backgroundColor: 'inherit',
|
||||
fontWeight: 'bold',
|
||||
textDecoration: 'underline',
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
[obj-mode]: https://nodejs.org/docs/latest-v14.x/api/stream.html#stream_object_mode
|
||||
[read-stream]: https://nodejs.org/docs/latest-v14.x/api/stream.html#stream_readable_streams
|
||||
[async-gen]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of#iterating_over_async_generators
|
||||
|
||||
@@ -82,13 +82,17 @@ With the Backstage 1.2 release, we plan to introduce the [TechDocs Addon Framewo
|
||||
|
||||
In addition to the framework itself, we'll be open sourcing a `<ReportIssue />` addon, helping you to create a feedback loop that drives up documentation quality and fosters a documentation culture at your organization.
|
||||
|
||||
### **Future work 🔮**
|
||||
### **Next**
|
||||
|
||||
Some of the following items are coming soon and some are potential ideas.
|
||||
- What can we do in TechDocs to drive up documentation quality?
|
||||
|
||||
### **Someday/Maybe**
|
||||
|
||||
- Contribute to and deploy from a marketplace of TechDocs Addons
|
||||
- Addon: MDX (allows you to use JSX in your Markdown content)
|
||||
- Can we go static site generator agnostic?
|
||||
- Better integration with
|
||||
[Scaffolder V2](https://github.com/backstage/backstage/issues/2771) (e.g. easy to choose and plug documentation template with Software Templates)
|
||||
- Static site generator agnostic, including possible support for MDX (allowing you to use JSX in your Markdown content)
|
||||
[Scaffolder V2](https://github.com/backstage/backstage/issues/2771) (e.g. easy to choose and apply documentation template with Software Templates)
|
||||
- Possible to configure several aspects about TechDocs (e.g. URL, homepage,
|
||||
theme)
|
||||
|
||||
|
||||
@@ -35,6 +35,8 @@ representative of physical spaces in the TechDocs UI:
|
||||
line as the title.
|
||||
- `Subheader`: For Addons that sit below the header but above all content.
|
||||
This is a great location for tooling/configuration of TechDocs display.
|
||||
- `Settings`: These addons are items added to the settings menu list and are designed to make
|
||||
the reader experience customizable, for example accessibility options.
|
||||
- `PrimarySidebar`: Left of the content, above of the navigation.
|
||||
- `SecondarySidebar`: Right of the content, above the table of contents.
|
||||
- `Content`: A special location intended for Addons which augment the
|
||||
@@ -109,9 +111,10 @@ page header, TechDocs Addons whose location is `Header` will not be rendered.
|
||||
Addons can, in principle, be provided by any plugin! To make it easier to
|
||||
discover available Addons, we've compiled a list of them here:
|
||||
|
||||
| Addon | Package/Plugin | Description |
|
||||
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`<ReportIssue />`](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.reportissue) | `@backstage/plugin-techdocs-module-addons-contrib` | Allows TechDocs users to select a portion of text on a TechDocs page and open an issue against the repository that contains the documentation, populating the issue description with the selected text according to a configurable template. |
|
||||
| Addon | Package/Plugin | Description |
|
||||
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [`<ReportIssue />`](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.reportissue) | `@backstage/plugin-techdocs-module-addons-contrib` | Allows TechDocs users to select a portion of text on a TechDocs page and open an issue against the repository that contains the documentation, populating the issue description with the selected text according to a configurable template. |
|
||||
| [`<TextSize />`](https://backstage.io/docs/reference/plugin-techdocs-module-addons-contrib.textsize) | `@backstage/plugin-techdocs-module-addons-contrib` | This TechDocs addon allows users to customize text size on documentation pages, they can select how much they want to increase or decrease the font size via slider or buttons. The default value for font size is 100% and this setting is kept in the browser's local storage whenever it is changed. |
|
||||
|
||||
Got an Addon to contribute? Feel free to add a row above!
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ Generate TechDocs documentation site using MkDocs.
|
||||
Options:
|
||||
--source-dir <PATH> Source directory containing mkdocs.yml and docs/ directory. (default: ".")
|
||||
--output-dir <PATH> Output directory containing generated TechDocs site. (default: "./site/")
|
||||
--docker-image <DOCKER_IMAGE> The mkdocs docker container to use (default: "spotify/techdocs:v1.0.2")
|
||||
--docker-image <DOCKER_IMAGE> The mkdocs docker container to use (default: "spotify/techdocs:v1.0.3")
|
||||
--no-pull Do not pull the latest docker image
|
||||
--no-docker Do not use Docker, use MkDocs executable and plugins in current user environment.
|
||||
--techdocs-ref <HOST_TYPE:URL> The repository hosting documentation source files e.g.
|
||||
|
||||
+69
-94
@@ -6,80 +6,101 @@ description: Roadmap of Backstage
|
||||
|
||||
## The Backstage Roadmap
|
||||
|
||||
Backstage is currently under rapid development. This page details the project’s
|
||||
Backstage is currently under rapid development. This page details the project's
|
||||
public roadmap, the result of ongoing collaboration between the core maintainers
|
||||
and the broader Backstage community.
|
||||
|
||||
The Backstage roadmap lays out both [“what’s next”](#whats-next) and
|
||||
[“future work”](#future-work). With "next" we mean features planned for release
|
||||
within the ongoing quarter from January through March 2022. With "future" we
|
||||
mean features in the radar, but not yet scheduled.
|
||||
The Backstage roadmap lays out both [“what's next”](#whats-next) and ["future
|
||||
work"](#future-work). With "next" we mean features planned for release within
|
||||
the ongoing quarter from January through March 2022. With "future" we mean
|
||||
features on the radar, but not yet scheduled.
|
||||
|
||||
| [What's next](#whats-next) | [Future work](#future-work) |
|
||||
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [Backstage 1.0 (and following versions)](#backstage-10-and-following-versions) <br/> [Backstage Security Audit](#backstage-security-audit) <br/> [Moving to Incubation in CNCF](#moving-to-incubation-in-cncf) | Backend Services <br/> Security Plan (and Strategy) <br/> TechDocs Addon framework <br/> Composable Homepage 1.0 <br/> GraphQL <br/> Telemetry <br/> Improved UX design |
|
||||
| [What's next](#whats-next) | [Future work](#future-work) |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| [Ease of onboarding](#ease-of-onboarding) <br/> [Search 1.0](#search-1.0) <br/> [TechDocs Addon framework](#techdocs-addon-framework) <br/> [Backend Services (initial)](#backend-services-initial) <br/> [Backstage Security Audit](#backstage-security-audit) <br/> [SIGs for contributors](#sigs-for-contributors) | Security Plan (and Strategy) <br/> Composable Homepage 1.0 <br/> GraphQL <br/> Telemetry <br/> Improved UX design |
|
||||
|
||||
The long-term roadmap (12 - 36 months) is not detailed in the public roadmap.
|
||||
Third-party contributions are also not currently included in the roadmap. Let us
|
||||
know about any ongoing developments and we’re happy to include them here as well.
|
||||
know about any ongoing developments and we're happy to include them here as
|
||||
well.
|
||||
|
||||
## What’s next
|
||||
## What's next
|
||||
|
||||
The feature set below is planned for the ongoing quarter, and grouped by theme.
|
||||
The list order doesn’t necessarily reflect priority, and the development/release
|
||||
The list order doesn't necessarily reflect priority, and the development/release
|
||||
cycle will vary based on maintainer schedules.
|
||||
|
||||
### Backstage 1.0 (and following versions)
|
||||
### Ease of onboarding
|
||||
|
||||
During the first quarter of 2022, we plan to finalize and release version 1.0 of
|
||||
the Backstage platform (which includes Core,
|
||||
[Catalog](https://backstage.io/docs/features/software-catalog/software-catalog-overview),
|
||||
[Scaffolder](https://backstage.io/docs/features/software-templates/software-templates-index)
|
||||
and [TechDocs](https://backstage.io/docs/features/techdocs/techdocs-overview)).
|
||||
Included as part of this milestone:
|
||||
A faster (with less development) and easier setup of a proof-of-concept
|
||||
deployment, as part of the onboarding experience, has been a common and loud
|
||||
suggestion from new adopters as well as analysts looking at Backstage.
|
||||
|
||||
- Deciding on the cadence of minor/weekly/daily releases to provide clarity on
|
||||
the frequency and expectations for future versions of the platform and its
|
||||
defining modules.
|
||||
- Establish the support model to set the expectations from the adopters in their
|
||||
respective use cases.
|
||||
With this initiative we plan to start facing this important topic with the most
|
||||
commonly used and challenging tasks. More in particular we plan to reduce the
|
||||
effort required to go from zero to production in installing and customizing
|
||||
Backstage, as well as reducing the effort required to populate the Software
|
||||
Catalog.
|
||||
|
||||
More iterations will be required in the following quarters, but this will be a
|
||||
good improvement in the onboarding experience, especially for the benefit of new
|
||||
adopters.
|
||||
|
||||
### Search 1.0
|
||||
|
||||
Fix the few remaining issues to get Backstage Search platform up to 1.0
|
||||
([here](https://github.com/backstage/backstage/milestone/27) and
|
||||
[here](https://github.com/backstage/backstage/milestone/28)).
|
||||
|
||||
### TechDocs Addon framework
|
||||
|
||||
Addons are TechDocs features that are added on top of the base docs-like-code
|
||||
experience. An example would be a feature that showed comments on the page. We
|
||||
plan to add an Addon framework and open source a selection of the Addons that we
|
||||
use internally at Spotify. Further Addons can then be added by the Community.
|
||||
|
||||
### Backend Services (initial)
|
||||
|
||||
To better scale and maintain the Backstage instances, a backend services system
|
||||
is planned to be introduced as part of the software architecture. This layer of
|
||||
backend services will help in decoupling the various modules (e.g. Catalog and
|
||||
Scaffolder) from the frontend experience.
|
||||
|
||||
In this quarter we plan to start designing the new architecture, together with
|
||||
the first experimentation and development of the software components.
|
||||
|
||||
### Backstage Security Audit
|
||||
|
||||
This is the continuation of the initiative started in the previous quarter. This
|
||||
quarter will see the publication of the report describing the outcome of the
|
||||
audit, together the first fixes and the development of some of the changes
|
||||
required to address the vulnerabilities.
|
||||
|
||||
This initiative is the first of a broader Security Strategy for Backstage. The
|
||||
purpose of the Security Audit is to involve third-party companies in auditing
|
||||
the platform and highlighting potential vulnerabilities. The benefit for the
|
||||
adopters is clear: We want Backstage to be as secure as possible, and we want to
|
||||
make it reliable through a specific initiative. This initiative in particular is
|
||||
done together, and with the support of, the
|
||||
[Cloud Native Computing Foundation (CNCF)](https://www.cncf.io/).
|
||||
the platform. The benefit for the adopters is clear: we want Backstage to be as
|
||||
secure as possible, and we want to make it reliable through a specific
|
||||
initiative.
|
||||
|
||||
### Moving to Incubation in CNCF
|
||||
This initiative is done together with, and with the support of, the [Cloud
|
||||
Native Computing Foundation (CNCF)](https://www.cncf.io/).
|
||||
|
||||
The progress of the request can be seen
|
||||
[here](https://github.com/cncf/toc/pull/717).
|
||||
### SIGs for contributors
|
||||
|
||||
The request to better coordinate the increasing number of contributions coming
|
||||
from the various adopters' developers is loud and clear. We think that the
|
||||
community is mature enough to start launching the SIGs (Special Interest Groups)
|
||||
following the successful model of Kubernetes.
|
||||
|
||||
## Future work
|
||||
|
||||
The following feature list doesn’t represent a commitment to develop, and the
|
||||
list order doesn’t reflect any priority or importance, but these features are on
|
||||
the maintainers’ radar, with clear interest expressed by the community.
|
||||
The following feature list doesn't represent a commitment to develop, and the
|
||||
list order doesn't reflect any priority or importance, but these features are on
|
||||
the maintainers' radar, with clear interest expressed by the community.
|
||||
|
||||
- **Backend Services:** To better scale and maintain the Backstage instances, a
|
||||
backend layer of services is planned to be introduced as part of the software
|
||||
architecture. This layer of backend services will help in decoupling the
|
||||
various modules (e.g. Catalog and Scaffolder) from the frontend experience.
|
||||
- **Security Plan (and Strategy):** The purpose of the Security Strategy is to
|
||||
move another step along the path to maturing the platform, setting the
|
||||
expectations of any adopters from a security standpoint.
|
||||
- **Search 1.0:** Fix the few remaining issues to get Backstage Search platform
|
||||
up to 1.0 ([here](https://github.com/backstage/backstage/milestone/27) and
|
||||
[here](https://github.com/backstage/backstage/milestone/28)).
|
||||
- **TechDocs Addon framework and Addons:** Addons are TechDocs features that are
|
||||
added on top of the base docs like code experience. An example would be a
|
||||
feature that showed comments on the page. We plan to add an Addon framework
|
||||
and open source a selection of the Addons that we use internally at Spotify.
|
||||
Further Addons can then be added by the Community.
|
||||
- **Composable Homepage 1.0:** Driving this to 1.0 by adding some composable
|
||||
components.
|
||||
- **[GraphQL](https://graphql.org/) support:** Introduce the ability to query
|
||||
@@ -107,51 +128,5 @@ guidelines to get started.
|
||||
|
||||
If you have specific questions about the roadmap, please create an
|
||||
[issue](https://github.com/backstage/backstage/issues/new/choose), ping us on
|
||||
[Discord](https://discord.gg/qxsEfa8Vq8), or
|
||||
[book time](http://calendly.com/spotify-backstage) with the Spotify team.
|
||||
|
||||
## Completed milestones
|
||||
|
||||
Read more about the completed (and released) features for reference.
|
||||
|
||||
- [[Search] ElasticSearch integration](https://backstage.io/docs/features/search/search-engines#elasticsearch)
|
||||
- [[Search] TechDocs search capabilities](https://backstage.io/docs/features/search/how-to-guides#how-to-index-techdocs-documents)
|
||||
- [TechDocs Beta](https://backstage.spotify.com/blog/product-updates/techdocs-beta-has-landed)
|
||||
- [[Home] Composable homepage](https://github.com/backstage/backstage/milestone/34)
|
||||
- [[Search] Out-of-the-Box Implementation (Alpha)](https://github.com/backstage/backstage/milestone/26)
|
||||
- [Deploy a product demo at `demo.backstage.io`](https://demo.backstage.io)
|
||||
- [Kubernetes plugin - v1](https://github.com/backstage/backstage/tree/master/plugins/kubernetes)
|
||||
- [Helm charts](https://github.com/backstage/backstage/tree/master/contrib/chart/backstage)
|
||||
- [Backstage Design System 💅](https://backstage.io/blog/2020/09/30/backstage-design-system)
|
||||
- [Cost Insights plugin 💸](https://engineering.atspotify.com/2020/09/29/managing-clouds-from-the-ground-up-cost-engineering-at-spotify/)
|
||||
- [Donate Backstage to the CNCF 🎉](https://backstage.io/blog/2020/09/23/backstage-cncf-sandbox)
|
||||
- [TechDocs v1](https://backstage.io/blog/2020/09/08/announcing-tech-docs)
|
||||
- [Plugin marketplace](https://backstage.io/plugins)
|
||||
- [Improved and move documentation to backstage.io](https://backstage.io/docs/overview/what-is-backstage)
|
||||
- [Backstage Software Catalog (alpha)](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha)
|
||||
- [Backstage Software Templates (alpha)](https://backstage.io/blog/2020/08/05/announcing-backstage-software-templates)
|
||||
- [Make it possible to add custom auth providers](https://backstage.io/blog/2020/07/01/how-to-enable-authentication-in-backstage-using-passport)
|
||||
- [TechDocs v0](https://github.com/backstage/backstage/milestone/15)
|
||||
- CI plugins: CircleCI, Jenkins, GitHub Actions and TravisCI
|
||||
- [Service API documentation](https://github.com/backstage/backstage/pull/1737)
|
||||
- Backstage Software Catalog can read from: GitHub, GitLab,
|
||||
[Bitbucket](https://github.com/backstage/backstage/pull/1938)
|
||||
- Support auth providers: Google, Okta, GitHub, GitLab,
|
||||
[auth0](https://github.com/backstage/backstage/pull/1611),
|
||||
[AWS](https://github.com/backstage/backstage/pull/1990)
|
||||
|
||||
- [Donate Backstage to the CNCF 🎉](https://backstage.io/blog/2020/09/23/backstage-cncf-sandbox)
|
||||
- [TechDocs v1](https://backstage.io/blog/2020/09/08/announcing-tech-docs)
|
||||
- [Plugin marketplace](https://backstage.io/plugins)
|
||||
- [Improved and move documentation to backstage.io](https://backstage.io/docs/overview/what-is-backstage)
|
||||
- [Backstage Software Catalog (alpha)](https://backstage.io/blog/2020/06/22/backstage-service-catalog-alpha)
|
||||
- [Backstage Software Templates (beta)](https://backstage.io/blog/2021/07/26/software-templates-are-now-in-beta)
|
||||
- [Make it possible to add custom auth providers](https://backstage.io/blog/2020/07/01/how-to-enable-authentication-in-backstage-using-passport)
|
||||
- [TechDocs v0](https://github.com/backstage/backstage/milestone/15)
|
||||
- CI plugins: CircleCI, Jenkins, GitHub Actions and TravisCI
|
||||
- [Service API documentation](https://github.com/backstage/backstage/pull/1737)
|
||||
- Backstage Software Catalog can read from: GitHub, GitLab,
|
||||
[Bitbucket](https://github.com/backstage/backstage/pull/1938)
|
||||
- Support auth providers: Google, Okta, GitHub, GitLab,
|
||||
[auth0](https://github.com/backstage/backstage/pull/1611),
|
||||
[AWS](https://github.com/backstage/backstage/pull/1990)
|
||||
[Discord](https://discord.gg/qxsEfa8Vq8), or [book
|
||||
time](http://calendly.com/spotify-backstage) with the Spotify team.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,73 @@
|
||||
# Release v1.2.0-next.3
|
||||
|
||||
## @backstage/core-components@0.9.4-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 52c02ac02b: Don't set the background color on an Avatar component that has a picture.
|
||||
- 3603014e0e: Add ARIA landmark( <main>), & label and a heading to OAuthRequestDialog. Removed nested interactive control (button).
|
||||
- 2025d7c123: Properly highlight `SidebarSubmenuItem` dropdown items on hover, use ellipsis styling on long labels in `SidebarSubmenu`, allow `icon` and `to` properties to be optional on `SidebarSubmenuItem`, and fix `SidebarPage` padding to be responsive to pinned state
|
||||
|
||||
## @backstage/plugin-home@0.4.21-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 69093c5f91: Display entity titles in `StarredEntities` home page card (if defined) and don't show entities which no longer exist
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.4-next.2
|
||||
|
||||
## @backstage/plugin-kubernetes@0.6.5-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 447e060872: Add support for 'oidc' as authProvider for kubernetes authentication
|
||||
and adds optional 'oidcTokenProvider' config value. This will allow
|
||||
users to authenticate to kubernetes cluster using id tokens obtained
|
||||
from the configured auth provider in their backstage instance.
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-common@0.2.10-next.1
|
||||
- @backstage/core-components@0.9.4-next.2
|
||||
|
||||
## @backstage/plugin-kubernetes-backend@0.5.1-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 447e060872: Add support for 'oidc' as authProvider for kubernetes authentication
|
||||
and adds optional 'oidcTokenProvider' config value. This will allow
|
||||
users to authenticate to kubernetes cluster using id tokens obtained
|
||||
from the configured auth provider in their backstage instance.
|
||||
- Updated dependencies
|
||||
- @backstage/plugin-kubernetes-common@0.2.10-next.1
|
||||
|
||||
## @backstage/plugin-kubernetes-common@0.2.10-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 447e060872: Add support for 'oidc' as authProvider for kubernetes authentication
|
||||
and adds optional 'oidcTokenProvider' config value. This will allow
|
||||
users to authenticate to kubernetes cluster using id tokens obtained
|
||||
from the configured auth provider in their backstage instance.
|
||||
|
||||
## @backstage/plugin-org@0.5.5-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- 2025d7c123: Include namespace in `MyGroupSidebarItem` if not default and remove root item routing if there are multiple groups
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.4-next.2
|
||||
|
||||
## @backstage/plugin-scaffolder@1.2.0-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- cc8ddd0979: revert dependency `event-source-polyfill` to `1.0.25`
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.4-next.2
|
||||
|
||||
## @backstage/plugin-techdocs@1.1.1-next.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- cc8ddd0979: revert dependency `event-source-polyfill` to `1.0.25`
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.4-next.2
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Cloud Carbon Footprint
|
||||
author: Thoughtworks
|
||||
authorUrl: https://github.com/cloud-carbon-footprint
|
||||
authorUrl: https://www.cloudcarbonfootprint.org/
|
||||
category: Metrics
|
||||
description: View your cloud carbon footprint by estimating energy use (kilowatt-hours) and carbon emissions (metric tons CO2e) from public cloud usage.
|
||||
documentation: https://github.com/cloud-carbon-footprint/ccf-backstage-plugin/blob/trunk/README.md
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: CodeScene
|
||||
author: CodeScene
|
||||
authorUrl: https://codescene.com/
|
||||
category: Quality
|
||||
description: CodeScene is a multi-purpose tool bridging code, business and people. See hidden risks and social patterns in your code. Prioritize and reduce technical debt.
|
||||
documentation: https://github.com/backstage/backstage/tree/master/plugins/codescene
|
||||
iconUrl: img/codescene_logo.svg
|
||||
npmPackageName: '@backstage/plugin-codescene'
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 151.82 151.82" style="enable-background:new 0 0 151.82 151.82;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#003263;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M37.48,128.56c1.84,0,3.1,1,3.48,2.7l1.52-0.34c-0.49-2.28-2.4-3.73-4.98-3.73c-2.95,0-5.74,1.97-5.74,6.04
|
||||
c0,4.07,2.77,6.04,5.74,6.04c2.55,0,4.39-1.42,4.98-3.64l-1.54-0.32c-0.42,1.64-1.62,2.58-3.46,2.58c-2.4,0-4.13-1.64-4.13-4.66
|
||||
C33.35,130.21,35.09,128.56,37.48,128.56z"/>
|
||||
<path class="st0" d="M48.11,130.5c-2.53,0-4.32,1.84-4.32,4.39c0,2.55,1.79,4.39,4.32,4.39c2.51,0,4.34-1.84,4.34-4.39
|
||||
C52.45,132.34,50.63,130.5,48.11,130.5z M48.11,137.99c-1.7,0-2.85-1.28-2.85-3.1c0-1.82,1.15-3.1,2.85-3.1
|
||||
c1.7,0,2.85,1.28,2.85,3.1C50.97,136.71,49.82,137.99,48.11,137.99z"/>
|
||||
<path class="st0" d="M60.67,131.85c-0.54-0.79-1.65-1.35-2.78-1.35c-2.63,0-4.08,1.89-4.08,4.39c0,2.5,1.45,4.39,4.1,4.39
|
||||
c1.25,0,2.38-0.59,2.77-1.37v1.23h1.43v-11.95h-1.43V131.85z M58.03,137.99c-1.67,0-2.77-1.23-2.77-3.1c0-1.87,1.1-3.1,2.77-3.1
|
||||
c1.67,0,2.77,1.23,2.77,3.1C60.8,136.76,59.71,137.99,58.03,137.99z"/>
|
||||
<path class="st0" d="M68.06,130.5c-2.56,0-4.12,1.97-4.12,4.39c0,2.41,1.6,4.39,4.15,4.39c1.96,0,3.37-0.96,3.8-2.62l-1.35-0.32
|
||||
c-0.25,1.06-1.15,1.67-2.45,1.67c-1.54,0-2.62-1.13-2.72-2.85h6.72c0.02-0.15,0.03-0.46,0.03-0.66
|
||||
C72.12,132.3,70.57,130.5,68.06,130.5z M65.46,133.96c0.29-1.42,1.27-2.26,2.6-2.26c1.5,0,2.41,0.96,2.55,2.26H65.46z"/>
|
||||
<path class="st0" d="M75.31,130.28c0-1.06,0.91-1.72,2.43-1.72c1.49,0,2.5,0.81,2.73,2.09l1.4-0.54c-0.3-1.75-1.97-2.92-4.13-2.92
|
||||
c-2.33,0-3.98,1.25-3.98,3.09c0,4.18,6.72,2.53,6.72,5.69c0,1.18-1.05,1.94-2.67,1.94c-1.57,0-2.83-1.08-3.07-2.73l-1.45,0.47
|
||||
c0.39,2.16,2.21,3.63,4.49,3.63c2.58,0,4.29-1.32,4.29-3.32C82.06,131.22,75.31,132.98,75.31,130.28z"/>
|
||||
<path class="st0" d="M87.61,137.99c-1.67,0-2.75-1.23-2.75-3.1c0-1.87,1.08-3.1,2.75-3.1c1.2,0,2.09,0.74,2.28,1.77l1.42-0.29
|
||||
c-0.3-1.69-1.75-2.77-3.73-2.77c-2.53,0-4.22,1.75-4.22,4.39s1.69,4.39,4.22,4.39c1.96,0,3.37-1.03,3.75-2.78l-1.4-0.29
|
||||
C89.69,137.33,88.81,137.99,87.61,137.99z"/>
|
||||
<path class="st0" d="M96.74,130.5c-2.56,0-4.12,1.97-4.12,4.39c0,2.41,1.6,4.39,4.15,4.39c1.96,0,3.37-0.96,3.8-2.62l-1.35-0.32
|
||||
c-0.25,1.06-1.15,1.67-2.45,1.67c-1.54,0-2.62-1.13-2.72-2.85h6.72c0.02-0.15,0.03-0.46,0.03-0.66
|
||||
C100.81,132.3,99.26,130.5,96.74,130.5z M94.14,133.96c0.29-1.42,1.27-2.26,2.6-2.26c1.5,0,2.41,0.96,2.55,2.26H94.14z"/>
|
||||
<path class="st0" d="M107,130.5c-1.3,0-2.33,0.73-2.92,1.74v-1.6h-1.43v8.5h1.43v-3.73c0-2.24,1.01-3.61,2.6-3.61
|
||||
c1.2,0,1.92,0.83,1.92,1.97v5.37h1.43v-5.64C110.04,131.7,108.77,130.5,107,130.5z"/>
|
||||
<path class="st0" d="M115.99,130.5c-2.56,0-4.12,1.97-4.12,4.39c0,2.41,1.6,4.39,4.15,4.39c1.96,0,3.37-0.96,3.8-2.62l-1.35-0.32
|
||||
c-0.25,1.06-1.15,1.67-2.45,1.67c-1.54,0-2.62-1.13-2.72-2.85h6.72c0.02-0.15,0.03-0.46,0.03-0.66
|
||||
C120.06,132.3,118.51,130.5,115.99,130.5z M113.39,133.96c0.29-1.42,1.27-2.26,2.6-2.26c1.5,0,2.41,0.96,2.55,2.26H113.39z"/>
|
||||
<path class="st0" d="M122.68,41.11c-6.61-18.18-23.07-28.56-46.76-28.56S35.76,22.92,29.15,41.11c-5.7,1.97-9.93,12.54-9.93,25.68
|
||||
c0,14.59,5.21,26.02,11.86,26.02c0.15,0,0.3-0.01,0.45-0.02c2.28,4.52,5.27,7.99,9.01,10.52c9.03,6.11,21.6,6.53,34.84,6.53h1.06
|
||||
c0.17,0,0.34,0,0.51,0c13.08,0,25.42-0.51,34.33-6.53c3.74-2.53,6.74-6,9.01-10.52c0.15,0.01,0.3,0.02,0.45,0.02
|
||||
c6.65,0,11.86-11.43,11.86-26.02C132.6,53.65,128.38,43.07,122.68,41.11z M21.44,66.79c0-11.22,3.1-19.51,6.69-22.53
|
||||
c-1.46,5.05-2.22,10.63-2.22,16.71c0,12.49,1.48,22.21,4.57,29.53C26.01,89.74,21.44,80.42,21.44,66.79z M119.05,90.17
|
||||
c-0.31,0.69-0.63,1.36-0.96,2c-2.08,3.97-4.75,7.05-8.06,9.29c-8.35,5.65-19.8,6.25-33.05,6.25c-0.18,0-0.36,0-0.54,0h-0.53h-0.53
|
||||
c-13.5-0.01-25.13-0.52-33.59-6.25c-3.31-2.24-5.97-5.32-8.06-9.29c-0.34-0.64-0.66-1.31-0.96-2c-3.13-7.07-4.64-16.66-4.64-29.19
|
||||
c0-6.62,0.95-12.62,2.75-17.95c0.25-0.75,0.53-1.49,0.81-2.22c6.6-16.59,22.11-26.03,44.22-26.03s37.62,9.44,44.22,26.03
|
||||
c0.29,0.73,0.56,1.46,0.81,2.22c1.8,5.33,2.75,11.33,2.75,17.95C123.69,73.51,122.18,83.09,119.05,90.17z M121.34,90.51
|
||||
c3.09-7.32,4.57-17.04,4.57-29.53c0-6.08-0.76-11.66-2.22-16.71c3.59,3.02,6.69,11.31,6.69,22.53
|
||||
C130.38,80.42,125.81,89.74,121.34,90.51z"/>
|
||||
<path class="st0" d="M75.91,28.64c-29.98,0-43.35,11.92-43.35,38.65c0,26,14.18,38.64,43.35,38.64s43.35-12.64,43.35-38.64
|
||||
C119.26,40.56,105.89,28.64,75.91,28.64z M75.91,103.7c-28.06,0-41.13-11.57-41.13-36.42c0-16.96,4.67-36.42,41.13-36.42
|
||||
s41.13,19.46,41.13,36.42C117.04,92.13,103.97,103.7,75.91,103.7z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
+3
-3
@@ -45,11 +45,11 @@
|
||||
]
|
||||
},
|
||||
"resolutions": {
|
||||
"**/@graphql-codegen/cli/**/ws": "^7.4.6",
|
||||
"**/@graphql-codegen/cli/**/ws": "^8.0.0",
|
||||
"@types/react": "^17",
|
||||
"@types/react-dom": "^17"
|
||||
},
|
||||
"version": "1.2.0-next.1",
|
||||
"version": "1.2.0-next.3",
|
||||
"dependencies": {
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
"@microsoft/api-documenter": "^7.17.11",
|
||||
@@ -68,7 +68,7 @@
|
||||
"concurrently": "^7.0.0",
|
||||
"eslint-plugin-notice": "^0.9.10",
|
||||
"fs-extra": "10.1.0",
|
||||
"husky": "^7.0.4",
|
||||
"husky": "^8.0.0",
|
||||
"lerna": "^4.0.0",
|
||||
"lint-staged": "^12.2.0",
|
||||
"minimist": "^1.2.5",
|
||||
|
||||
@@ -1,5 +1,56 @@
|
||||
# example-app
|
||||
|
||||
## 0.2.71-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies
|
||||
- @backstage/core-components@0.9.4-next.1
|
||||
- @backstage/plugin-kubernetes@0.6.5-next.2
|
||||
- @backstage/plugin-org@0.5.5-next.2
|
||||
- @backstage/plugin-techdocs@1.1.1-next.2
|
||||
- @backstage/plugin-techdocs-react@0.1.1-next.2
|
||||
- @backstage/plugin-scaffolder@1.2.0-next.2
|
||||
- @backstage/plugin-graphiql@0.2.37-next.1
|
||||
- @backstage/config@1.0.1-next.0
|
||||
- @backstage/plugin-catalog@1.2.0-next.2
|
||||
- @backstage/plugin-techdocs-module-addons-contrib@0.1.0-next.2
|
||||
- @backstage/cli@0.17.1-next.2
|
||||
- @backstage/plugin-search@0.8.1-next.2
|
||||
- @backstage/plugin-search-react@0.2.0-next.2
|
||||
- @backstage/plugin-search-common@0.3.4-next.0
|
||||
- @backstage/plugin-azure-devops@0.1.21-next.2
|
||||
- @backstage/plugin-catalog-react@1.1.0-next.2
|
||||
- @backstage/catalog-model@1.0.2-next.0
|
||||
- @backstage/core-app-api@1.0.2-next.1
|
||||
- @backstage/core-plugin-api@1.0.2-next.1
|
||||
- @backstage/integration-react@1.1.0-next.2
|
||||
- @backstage/plugin-catalog-import@0.8.8-next.2
|
||||
- @backstage/plugin-code-coverage@0.1.32-next.2
|
||||
- @backstage/plugin-cost-insights@0.11.27-next.1
|
||||
- @backstage/plugin-home@0.4.21-next.2
|
||||
- @backstage/plugin-lighthouse@0.3.5-next.2
|
||||
- @backstage/plugin-permission-react@0.4.1-next.1
|
||||
- @backstage/plugin-stack-overflow@0.1.1-next.2
|
||||
- @backstage/plugin-airbrake@0.3.5-next.2
|
||||
- @backstage/plugin-api-docs@0.8.5-next.2
|
||||
- @backstage/plugin-badges@0.2.29-next.2
|
||||
- @backstage/plugin-catalog-graph@0.2.17-next.2
|
||||
- @backstage/plugin-circleci@0.3.5-next.2
|
||||
- @backstage/plugin-cloudbuild@0.3.5-next.2
|
||||
- @backstage/plugin-explore@0.3.36-next.2
|
||||
- @backstage/plugin-github-actions@0.5.5-next.2
|
||||
- @backstage/plugin-gocd@0.1.11-next.2
|
||||
- @backstage/plugin-jenkins@0.7.4-next.2
|
||||
- @backstage/plugin-kafka@0.3.5-next.2
|
||||
- @backstage/plugin-newrelic-dashboard@0.1.13-next.2
|
||||
- @backstage/plugin-pagerduty@0.3.32-next.2
|
||||
- @backstage/plugin-rollbar@0.4.5-next.2
|
||||
- @backstage/plugin-sentry@0.3.43-next.2
|
||||
- @backstage/plugin-tech-insights@0.2.1-next.2
|
||||
- @backstage/plugin-todo@0.2.7-next.2
|
||||
- @backstage/plugin-catalog-common@1.0.2-next.0
|
||||
|
||||
## 0.2.71-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+47
-47
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "example-app",
|
||||
"version": "0.2.71-next.1",
|
||||
"version": "0.2.71-next.2",
|
||||
"private": true,
|
||||
"backstage": {
|
||||
"role": "frontend"
|
||||
@@ -8,58 +8,58 @@
|
||||
"bundled": true,
|
||||
"dependencies": {
|
||||
"@backstage/app-defaults": "^1.0.2-next.0",
|
||||
"@backstage/catalog-model": "^1.0.1",
|
||||
"@backstage/cli": "^0.17.1-next.1",
|
||||
"@backstage/config": "^1.0.0",
|
||||
"@backstage/core-app-api": "^1.0.2-next.0",
|
||||
"@backstage/core-components": "^0.9.4-next.0",
|
||||
"@backstage/core-plugin-api": "^1.0.2-next.0",
|
||||
"@backstage/integration-react": "^1.1.0-next.1",
|
||||
"@backstage/plugin-airbrake": "^0.3.5-next.1",
|
||||
"@backstage/plugin-api-docs": "^0.8.5-next.1",
|
||||
"@backstage/plugin-azure-devops": "^0.1.21-next.1",
|
||||
"@backstage/catalog-model": "^1.0.2-next.0",
|
||||
"@backstage/cli": "^0.17.1-next.2",
|
||||
"@backstage/config": "^1.0.1-next.0",
|
||||
"@backstage/core-app-api": "^1.0.2-next.1",
|
||||
"@backstage/core-components": "^0.9.4-next.1",
|
||||
"@backstage/core-plugin-api": "^1.0.2-next.1",
|
||||
"@backstage/integration-react": "^1.1.0-next.2",
|
||||
"@backstage/plugin-airbrake": "^0.3.5-next.2",
|
||||
"@backstage/plugin-api-docs": "^0.8.5-next.2",
|
||||
"@backstage/plugin-azure-devops": "^0.1.21-next.2",
|
||||
"@backstage/plugin-apache-airflow": "^0.1.13-next.0",
|
||||
"@backstage/plugin-badges": "^0.2.29-next.1",
|
||||
"@backstage/plugin-catalog": "^1.2.0-next.1",
|
||||
"@backstage/plugin-catalog-common": "^1.0.1",
|
||||
"@backstage/plugin-catalog-graph": "^0.2.17-next.1",
|
||||
"@backstage/plugin-catalog-import": "^0.8.8-next.1",
|
||||
"@backstage/plugin-catalog-react": "^1.1.0-next.1",
|
||||
"@backstage/plugin-circleci": "^0.3.5-next.1",
|
||||
"@backstage/plugin-cloudbuild": "^0.3.5-next.1",
|
||||
"@backstage/plugin-code-coverage": "^0.1.32-next.1",
|
||||
"@backstage/plugin-cost-insights": "^0.11.27-next.0",
|
||||
"@backstage/plugin-explore": "^0.3.36-next.1",
|
||||
"@backstage/plugin-badges": "^0.2.29-next.2",
|
||||
"@backstage/plugin-catalog": "^1.2.0-next.2",
|
||||
"@backstage/plugin-catalog-common": "^1.0.2-next.0",
|
||||
"@backstage/plugin-catalog-graph": "^0.2.17-next.2",
|
||||
"@backstage/plugin-catalog-import": "^0.8.8-next.2",
|
||||
"@backstage/plugin-catalog-react": "^1.1.0-next.2",
|
||||
"@backstage/plugin-circleci": "^0.3.5-next.2",
|
||||
"@backstage/plugin-cloudbuild": "^0.3.5-next.2",
|
||||
"@backstage/plugin-code-coverage": "^0.1.32-next.2",
|
||||
"@backstage/plugin-cost-insights": "^0.11.27-next.1",
|
||||
"@backstage/plugin-explore": "^0.3.36-next.2",
|
||||
"@backstage/plugin-gcalendar": "^0.3.1-next.1",
|
||||
"@backstage/plugin-gcp-projects": "^0.3.24-next.0",
|
||||
"@backstage/plugin-github-actions": "^0.5.5-next.1",
|
||||
"@backstage/plugin-gocd": "^0.1.11-next.1",
|
||||
"@backstage/plugin-graphiql": "^0.2.37-next.0",
|
||||
"@backstage/plugin-home": "^0.4.21-next.1",
|
||||
"@backstage/plugin-jenkins": "^0.7.4-next.1",
|
||||
"@backstage/plugin-kafka": "^0.3.5-next.1",
|
||||
"@backstage/plugin-kubernetes": "^0.6.5-next.1",
|
||||
"@backstage/plugin-lighthouse": "^0.3.5-next.1",
|
||||
"@backstage/plugin-github-actions": "^0.5.5-next.2",
|
||||
"@backstage/plugin-gocd": "^0.1.11-next.2",
|
||||
"@backstage/plugin-graphiql": "^0.2.37-next.1",
|
||||
"@backstage/plugin-home": "^0.4.21-next.2",
|
||||
"@backstage/plugin-jenkins": "^0.7.4-next.2",
|
||||
"@backstage/plugin-kafka": "^0.3.5-next.2",
|
||||
"@backstage/plugin-kubernetes": "^0.6.5-next.2",
|
||||
"@backstage/plugin-lighthouse": "^0.3.5-next.2",
|
||||
"@backstage/plugin-newrelic": "^0.3.23-next.0",
|
||||
"@backstage/plugin-newrelic-dashboard": "^0.1.13-next.1",
|
||||
"@backstage/plugin-org": "^0.5.5-next.1",
|
||||
"@backstage/plugin-pagerduty": "0.3.32-next.1",
|
||||
"@backstage/plugin-permission-react": "^0.4.1-next.0",
|
||||
"@backstage/plugin-rollbar": "^0.4.5-next.1",
|
||||
"@backstage/plugin-scaffolder": "^1.2.0-next.1",
|
||||
"@backstage/plugin-search": "^0.8.1-next.1",
|
||||
"@backstage/plugin-search-react": "^0.2.0-next.1",
|
||||
"@backstage/plugin-search-common": "^0.3.3",
|
||||
"@backstage/plugin-sentry": "^0.3.43-next.1",
|
||||
"@backstage/plugin-newrelic-dashboard": "^0.1.13-next.2",
|
||||
"@backstage/plugin-org": "^0.5.5-next.2",
|
||||
"@backstage/plugin-pagerduty": "0.3.32-next.2",
|
||||
"@backstage/plugin-permission-react": "^0.4.1-next.1",
|
||||
"@backstage/plugin-rollbar": "^0.4.5-next.2",
|
||||
"@backstage/plugin-scaffolder": "^1.2.0-next.2",
|
||||
"@backstage/plugin-search": "^0.8.1-next.2",
|
||||
"@backstage/plugin-search-react": "^0.2.0-next.2",
|
||||
"@backstage/plugin-search-common": "^0.3.4-next.0",
|
||||
"@backstage/plugin-sentry": "^0.3.43-next.2",
|
||||
"@backstage/plugin-shortcuts": "^0.2.6-next.0",
|
||||
"@backstage/plugin-stack-overflow": "^0.1.1-next.1",
|
||||
"@backstage/plugin-stack-overflow": "^0.1.1-next.2",
|
||||
"@backstage/plugin-tech-radar": "^0.5.12-next.0",
|
||||
"@backstage/plugin-techdocs": "^1.1.1-next.1",
|
||||
"@backstage/plugin-techdocs-react": "^0.1.1-next.1",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "^0.1.0-next.1",
|
||||
"@backstage/plugin-todo": "^0.2.7-next.1",
|
||||
"@backstage/plugin-techdocs": "^1.1.1-next.2",
|
||||
"@backstage/plugin-techdocs-react": "^0.1.1-next.2",
|
||||
"@backstage/plugin-techdocs-module-addons-contrib": "^0.1.0-next.2",
|
||||
"@backstage/plugin-todo": "^0.2.7-next.2",
|
||||
"@backstage/plugin-user-settings": "^0.4.4-next.0",
|
||||
"@backstage/plugin-tech-insights": "^0.2.1-next.1",
|
||||
"@backstage/plugin-tech-insights": "^0.2.1-next.2",
|
||||
"@backstage/theme": "^0.2.15",
|
||||
"@material-ui/core": "^4.12.2",
|
||||
"@material-ui/icons": "^4.9.1",
|
||||
@@ -80,7 +80,7 @@
|
||||
"zen-observable": "^0.8.15"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@backstage/test-utils": "^1.1.0-next.1",
|
||||
"@backstage/test-utils": "^1.1.0-next.2",
|
||||
"@rjsf/core": "^3.2.1",
|
||||
"@testing-library/cypress": "^8.0.2",
|
||||
"@testing-library/jest-dom": "^5.10.1",
|
||||
|
||||
@@ -70,7 +70,10 @@ import {
|
||||
techdocsPlugin,
|
||||
} from '@backstage/plugin-techdocs';
|
||||
import { TechDocsAddons } from '@backstage/plugin-techdocs-react';
|
||||
import { ReportIssue } from '@backstage/plugin-techdocs-module-addons-contrib';
|
||||
import {
|
||||
ReportIssue,
|
||||
TextSize,
|
||||
} from '@backstage/plugin-techdocs-module-addons-contrib';
|
||||
import {
|
||||
UserSettingsPage,
|
||||
UserSettingsTab,
|
||||
@@ -183,6 +186,7 @@ const routes = (
|
||||
{techDocsPage}
|
||||
<TechDocsAddons>
|
||||
<ReportIssue />
|
||||
<TextSize />
|
||||
</TechDocsAddons>
|
||||
</Route>
|
||||
<Route
|
||||
|
||||
@@ -36,6 +36,7 @@ import {
|
||||
} from '@backstage/plugin-api-docs';
|
||||
import {
|
||||
EntityAzurePipelinesContent,
|
||||
EntityAzureGitTagsContent,
|
||||
EntityAzurePullRequestsContent,
|
||||
isAzureDevOpsAvailable,
|
||||
isAzurePipelinesAvailable,
|
||||
@@ -478,6 +479,14 @@ const websiteEntityPage = (
|
||||
<EntityKubernetesContent />
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route
|
||||
if={isAzureDevOpsAvailable}
|
||||
path="/git-tags"
|
||||
title="Git Tags"
|
||||
>
|
||||
<EntityAzureGitTagsContent />
|
||||
</EntityLayout.Route>
|
||||
|
||||
<EntityLayout.Route path="/pull-requests" title="Pull Requests">
|
||||
{pullRequestsContent}
|
||||
</EntityLayout.Route>
|
||||
|
||||
@@ -180,7 +180,7 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
<SearchResult>
|
||||
{({ results }) => (
|
||||
<List>
|
||||
{results.map(({ type, document }) => {
|
||||
{results.map(({ type, document, highlight }) => {
|
||||
let resultItem;
|
||||
switch (type) {
|
||||
case 'software-catalog':
|
||||
@@ -188,6 +188,7 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
<CatalogSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
break;
|
||||
@@ -196,6 +197,7 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
<TechDocsSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
break;
|
||||
@@ -204,6 +206,7 @@ export const SearchModal = ({ toggleModal }: { toggleModal: () => void }) => {
|
||||
<DefaultResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -132,13 +132,14 @@ const SearchPage = () => {
|
||||
<SearchResult>
|
||||
{({ results }) => (
|
||||
<List>
|
||||
{results.map(({ type, document }) => {
|
||||
{results.map(({ type, document, highlight }) => {
|
||||
switch (type) {
|
||||
case 'software-catalog':
|
||||
return (
|
||||
<CatalogSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
case 'techdocs':
|
||||
@@ -146,6 +147,7 @@ const SearchPage = () => {
|
||||
<TechDocsSearchResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
@@ -153,6 +155,7 @@ const SearchPage = () => {
|
||||
<DefaultResultListItem
|
||||
key={document.location}
|
||||
result={document}
|
||||
highlight={highlight}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @backstage/backend-common
|
||||
|
||||
## 0.13.3-next.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- e0a6360b80: Added a `stream()` method to complement the `buffer()` method on `ReadUrlResponse`. A `ReadUrlResponseFactory` utility class is now also available, providing a simple, consistent way to provide a valid `ReadUrlResponse`.
|
||||
|
||||
This method, though optional for now, will be required on the responses of `UrlReader.readUrl()` implementations in a future release.
|
||||
|
||||
- 4b811aafce: Implemented the `UrlReader.search()` method for Google Cloud Storage. Due to limitations in the underlying storage API, only prefix-based searches are supported right now (for example, `https://storage.cloud.google.com/your-bucket/some-path/*`).
|
||||
- Updated dependencies
|
||||
- @backstage/cli-common@0.1.9-next.0
|
||||
- @backstage/config@1.0.1-next.0
|
||||
- @backstage/config-loader@1.1.1-next.1
|
||||
- @backstage/integration@1.2.0-next.1
|
||||
|
||||
## 0.13.3-next.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -547,6 +547,24 @@ export type ReadUrlOptions = {
|
||||
// @public
|
||||
export type ReadUrlResponse = {
|
||||
buffer(): Promise<Buffer>;
|
||||
stream?(): Readable;
|
||||
etag?: string;
|
||||
};
|
||||
|
||||
// @public
|
||||
export class ReadUrlResponseFactory {
|
||||
static fromNodeJSReadable(
|
||||
oldStyleStream: NodeJS.ReadableStream,
|
||||
options?: ReadUrlResponseFactoryFromStreamOptions,
|
||||
): Promise<ReadUrlResponse>;
|
||||
static fromReadable(
|
||||
stream: Readable,
|
||||
options?: ReadUrlResponseFactoryFromStreamOptions,
|
||||
): Promise<ReadUrlResponse>;
|
||||
}
|
||||
|
||||
// @public
|
||||
export type ReadUrlResponseFactoryFromStreamOptions = {
|
||||
etag?: string;
|
||||
};
|
||||
|
||||
@@ -599,18 +617,20 @@ export class ServerTokenManager implements TokenManager {
|
||||
// (undocumented)
|
||||
static fromConfig(
|
||||
config: Config,
|
||||
options: {
|
||||
logger: Logger;
|
||||
},
|
||||
options: ServerTokenManagerOptions,
|
||||
): ServerTokenManager;
|
||||
// (undocumented)
|
||||
getToken(): Promise<{
|
||||
token: string;
|
||||
}>;
|
||||
// (undocumented)
|
||||
static noop(): TokenManager;
|
||||
}
|
||||
|
||||
// @public
|
||||
export interface ServerTokenManagerOptions {
|
||||
logger: Logger;
|
||||
}
|
||||
|
||||
// @public
|
||||
export type ServiceBuilder = {
|
||||
loadConfig(config: Config): ServiceBuilder;
|
||||
@@ -669,10 +689,8 @@ export interface StatusCheckHandlerOptions {
|
||||
|
||||
// @public
|
||||
export interface TokenManager {
|
||||
// (undocumented)
|
||||
authenticate: (token: string) => Promise<void>;
|
||||
// (undocumented)
|
||||
getToken: () => Promise<{
|
||||
authenticate(token: string): Promise<void>;
|
||||
getToken(): Promise<{
|
||||
token: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user