Compare commits

...

67 Commits

Author SHA1 Message Date
Backstage Service Account 6a65a4cea3
Version Packages (#5041)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-25 08:27:10 -05:00
Backstage Service Account c2261cf6ab
Version Packages (#5042)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-25 08:26:56 -05:00
Backstage Service Account 727c25df51
Version Packages (#5047)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-25 08:26:41 -05:00
Andre Wanlin ff785e582c
Skip version bump when release version matches workspace version (#5043)
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2025-08-25 08:15:41 -05:00
Backstage Service Account dcffece576
sonarqube - version:bump to v1.42.3 (#5032)
* v1.42.3 version bump

* sonarqube: align to latest nfs specs

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2025-08-25 15:14:38 +02:00
Andre Wanlin ceeadd1e1a
cost-insights - New Frontend System Fixes (#4839)
* cost-insights - New Frontend System Fixes

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

* Updated API report

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

---------

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2025-08-25 08:14:14 -05:00
Andre Wanlin 7bafbd4fc8
various workspaces - Added auto bump file (#5044)
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2025-08-25 07:29:45 -05:00
Backstage Service Account 0493206694
github-actions - version:bump to v1.42.3 (#5021)
* v1.42.3 version bump

* github-actions: nfs fixes and switch to yarn plugin

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* github-actions: prettier tweaks

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* github-actions: update api reports for nfs

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2025-08-25 10:47:10 +02:00
Backstage Service Account ca3c813046
linguist - version:bump to v1.42.3 (#5039)
* v1.42.3 version bump

* Use yarn plugin

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

* Manual changes for release

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

* Maintenance

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

---------

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andre Wanlin <awanlin@spotify.com>
2025-08-24 13:42:42 -05:00
Backstage Service Account 8367480d11
azure-devops - version:bump to v1.42.3 (#5040)
* v1.42.3 version bump

* Use yarn plugin

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

* Manual changes for release

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

* Maintenance

Signed-off-by: Andre Wanlin <awanlin@spotify.com>

---------

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andre Wanlin <awanlin@spotify.com>
2025-08-24 13:42:27 -05:00
Backstage Service Account 6e6b88413f
Version Packages (#4840)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-22 16:05:08 -05:00
Backstage Service Account 4815dfd531
v1.41.1 version bump (#4973)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 15:51:41 -05:00
Juan Pablo Garcia Ripa c2b33a16aa
github-pull-request-board decouple board from entity page (#4710)
* Decouple entities from the board logic for reuse the board on other places

Signed-off-by: Juan Pablo Garcia Ripa <sarabadu@gmail.com>

* mock useEntity

Signed-off-by: Juan Pablo Garcia Ripa <sarabadu@gmail.com>

* revert the change
Signed-off-by: Juan Pablo Garcia Ripa <sarabadu@gmail.com>

Signed-off-by: Juan Pablo Garcia Ripa <sarabadu@gmail.com>

---------

Signed-off-by: Juan Pablo Garcia Ripa <sarabadu@gmail.com>
2025-08-22 15:16:31 -05:00
James Andrew Vaughn 56382c80de
Remove `rollbar-backend` legacy backend (#4778)
* fix(rollbar-backend): use correct plugin id

The rollbar backend plugin did not have the id expected by
the frontend plugin and all rollbar to backend requests
failed.

Signed-off-by: James Andrew Vaughn <jamesvaughn@modethirteen.com>

* refactor(rollbar-backend)!: remove legacy backend support

BREAKING CHANGE: This removes the deprecated createRouter
interface. Going forward the rollbar backend plugin must be
registered using createBackendPlugin

Signed-off-by: James Andrew Vaughn <jamesvaughn@modethirteen.com>

---------

Signed-off-by: James Andrew Vaughn <jamesvaughn@modethirteen.com>
2025-08-22 14:39:55 -05:00
Backstage Service Account 7043b8bbb6
Version Packages (#5006)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-22 15:54:03 +00:00
Fredrik Adelöw 8460759070
explore: remove the alpha export of the collator (#5034)
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2025-08-22 09:45:36 -05:00
Fredrik Adelöw 02546adb32
explore: use the yarn plugin (#5033)
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2025-08-22 09:29:45 -05:00
Fredrik Adelöw c4f95b6e1e
move over `@backstage/plugin-search-backend-module-explore` (#4993)
* move over @backstage/plugin-search-backend-module-explore

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

* add note in the README about where it was moved from

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

---------

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2025-08-22 07:31:31 -05:00
Backstage Service Account fe6d855d73
tech-radar - version:bump to v1.42.3 (#5022)
* v1.42.3 version bump

* tech-radar: align to the latest nfs specs

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

* tech-radar: api-reports

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>

---------

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincenzo Scamporlino <vincenzos@spotify.com>
2025-08-22 13:27:29 +02:00
Camila Belo e46f2a55c2
refactor: simplify home redirect (#5007)
Signed-off-by: Camila Belo <camilaibs@gmail.com>
2025-08-22 12:59:50 +02:00
github-actions[bot] 46e1cefbac
chore: update issue templates with latest workspaces (#5028)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 12:30:41 +02:00
Backstage Service Account deb952366a
v1.42.3 version bump (#5029)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 11:50:16 +02:00
Backstage Service Account 593523a511
Version Packages (#5027) 2025-08-22 00:50:37 +02:00
Debsmita Santra 4d645136fd
(npm): export translation files (#5020)
Signed-off-by: Debsmita Santra <debsmita.santra@gmail.com>
2025-08-21 22:25:30 +00:00
dependabot[bot] 496b5ea76f
build(deps): bump cipher-base in /workspaces/topology (#5024)
Bumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.
- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.6)

---
updated-dependencies:
- dependency-name: cipher-base
  dependency-version: 1.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 15:51:13 -04:00
Backstage Service Account 2e3afacf8b
Version Packages (#5026)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 15:34:45 -04:00
logonoff 80b21b20f0
feat: add bookmarks plugin (#4931)
Signed-off-by: logonoff <git@logonoff.co>
2025-08-21 15:27:47 -04:00
Backstage Service Account 3cd6bac697
Version Packages (#5023)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 15:11:26 -04:00
Backstage Service Account 707c5f303c
v1.41.1 version bump (#4971)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-21 14:40:13 -04:00
Backstage Service Account 7df058feae
Version Packages (#5015)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 13:53:11 -04:00
Backstage Service Account 00731dafe6
Version Packages (#5016)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 13:50:18 -04:00
Backstage Service Account 51814e6f58
Version Packages (#4996)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 10:47:17 +01:00
Backstage Service Account 91f611bccb
Version Packages (#4982)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 15:04:18 +05:30
Backstage Service Account 74876f0d13
Version Packages (#4880)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 10:37:01 +02:00
Backstage Service Account fb6cbc705d
Version Packages (#5017)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 10:20:06 +02:00
Debsmita Santra 56b4264d5f
use useKubernetesObjects hook from k8s-react package (#4851)
Signed-off-by: Debsmita Santra <debsmita.santra@gmail.com>
2025-08-21 01:24:37 -04:00
Sri Aradhyula b0e72b5547
chore(CODEOWNERS): add maintainers for agent-forge plugin (#5011)
We are the maintainer of the agent-forge plugin

Stefan Braicu - @sbraicu 
Sri Aradhyula - @sriaradhyula
Shubham Bakshi - @subbaksh
Sunny Whang - @suwhang-cisco

Signed-off-by: Sri Aradhyula <sraradhy@cisco.com>
2025-08-20 12:15:41 -05:00
dependabot[bot] 2c0ec89454
build(deps): bump @backstage/plugin-scaffolder-backend from 2.0.0 to 2.1.1 in /workspaces/acs (#4979)
* build(deps): bump @backstage/plugin-scaffolder-backend

Bumps [@backstage/plugin-scaffolder-backend](https://github.com/backstage/backstage/tree/HEAD/plugins/scaffolder-backend) from 2.0.0 to 2.1.1.
- [Release notes](https://github.com/backstage/backstage/releases)
- [Changelog](https://github.com/backstage/backstage/blob/master/plugins/scaffolder-backend/CHANGELOG.md)
- [Commits](https://github.com/backstage/backstage/commits/HEAD/plugins/scaffolder-backend)

---
updated-dependencies:
- dependency-name: "@backstage/plugin-scaffolder-backend"
  dependency-version: 2.1.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): deduplicate yarn lockfile dependencies

Signed-off-by: Saif Chaudhry <schaudhr@redhat.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Saif Chaudhry <schaudhr@redhat.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Saif Chaudhry <schaudhr@redhat.com>
2025-08-20 09:11:58 -07:00
Christoph Jerolimov f5fff6fc37
chore(npm): add another codeowner (#5008)
Signed-off-by: Christoph Jerolimov <jerolimov+git@redhat.com>
2025-08-20 10:44:43 -04:00
Christoph Jerolimov bff3611105
chore(npm): enable knip-report verification and cleanup dependencies (#4991)
Signed-off-by: Christoph Jerolimov <jerolimov+git@redhat.com>
2025-08-20 17:28:57 +05:30
Camila Belo 13c0def6ea
[NFS] Complete Explore Plugin Migration (#5005)
* feat: complete migrating explore plugin to NFS

Signed-off-by: Camila Belo <camilaibs@gmail.com>

* Update workspaces/explore/.changeset/afraid-baboons-develop.md

Co-authored-by: Ben Lambert <ben@blam.sh>
Signed-off-by: Camila Belo <camilaibs@gmail.com>

---------

Signed-off-by: Camila Belo <camilaibs@gmail.com>
Co-authored-by: Ben Lambert <ben@blam.sh>
2025-08-20 09:52:40 +02:00
Backstage Service Account fa109420d0
Version Packages (#5002)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 16:21:49 -04:00
Backstage Service Account d1b75248ed
Version Packages (#5001)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 16:21:31 -04:00
backstage-goalie[bot] 45236345e3
chore(deps): update dependency @testing-library/jest-dom to v6.7.0 (#4988)
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: backstage-goalie[bot] <97962292+backstage-goalie[bot]@users.noreply.github.com>
2025-08-19 22:03:29 +02:00
Christoph Jerolimov 2c67eaaa4a
chore: add .auto-version-bump to npm, ocm and rbac workspaces (#4990)
Signed-off-by: Christoph Jerolimov <jerolimov+git@redhat.com>
2025-08-19 13:32:47 +02:00
Backstage Service Account 4b2153a833
scaffolder-backend-module-annotator - version:bump to v1.41.1 (#4744)
* v1.41.1 version bump

* fix(scaffolder-backend-module-annotator): fix backstage bump (#4914)

* fix: createAnnotatorAction method for the scaffolder-backend-module-annotator

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

* docs: update the report.api.md

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

* Update record zod schema

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

* fix(scaffolder-backend-module-annotator): warnings in the `report.api.md`

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

* fix(scaffolder-backend-module-annotator): schema for the `createAnnotatorAction` method

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

---------

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

---------

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ihor Mykhno <imykhno@redhat.com>
2025-08-19 12:44:40 +05:30
backstage-goalie[bot] e172f18500
chore(deps): update dependency @openapitools/openapi-generator-cli to v2.22.0 (#4986)
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: backstage-goalie[bot] <97962292+backstage-goalie[bot]@users.noreply.github.com>
2025-08-18 15:25:09 +00:00
Oleksandr Andriienko 10978474b7
fix(servicenow): remove freezed backend deps in the frontend (#4857)
* fix(servicenow): remove freezed backend deps in the frontend

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>

* fix(servicenow): remove more freezed deps

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>

---------

Signed-off-by: Oleksandr Andriienko <oandriie@redhat.com>
2025-08-18 17:22:39 +03:00
backstage-goalie[bot] 63407d09df
chore(deps): update dependency fs-extra to v11.3.1 (#4894)
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: backstage-goalie[bot] <97962292+backstage-goalie[bot]@users.noreply.github.com>
2025-08-18 14:57:55 +01:00
mbruhin 43064bf46c
Update default non-dense behavior (#4877)
* Update default non-dense behavior

Signed-off-by: Matthew Bruhin <mbruhin@athenahealth.com>

* add API report

Signed-off-by: Matthew Bruhin <mbruhin@athenahealth.com>

---------

Signed-off-by: Matthew Bruhin <mbruhin@athenahealth.com>
Co-authored-by: Matthew Bruhin <mbruhin@athenahealth.com>
2025-08-18 15:05:51 +02:00
Backstage Service Account f9a8eec66d
scaffolder-backend-module-kubernetes - version:bump to v1.41.1 (#4738)
* v1.41.1 version bump

* fix(scaffolder-backend-module-kubernetes): using zod for `createKubernetesNamespaceAction` method (#4927)

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>

---------

Signed-off-by: Ihor Mykhno <imykhno@redhat.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Ihor Mykhno <imykhno@redhat.com>
2025-08-18 17:05:35 +05:30
Backstage Service Account 1d51b5654e
Version Packages (#4978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 16:17:39 +02:00
Gustaf Räntilä 7593e172ce
Fixed erroneous repository.url in some manage plugin packages (#4977)
* Fixed erroneous repository.url in some manage plugin packages

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>

* Also fix repository.directory

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>

---------

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
2025-08-15 16:05:55 +02:00
Backstage Service Account 9a143944f3
Version Packages (#4889)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 14:20:07 +01:00
Backstage Service Account a04f9dbbfe
Version Packages (#4881)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 09:10:37 +02:00
Backstage Service Account 6464668e46
Version Packages (#4905)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 21:56:55 -04:00
Backstage Service Account c5f3c762ea
Version Packages (#4869)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 00:15:59 +02:00
backstage-goalie[bot] 14b24f18c0
chore(deps): update dependency @types/node-fetch to v2.6.13 (#4888)
Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: backstage-goalie[bot] <97962292+backstage-goalie[bot]@users.noreply.github.com>
2025-08-14 23:38:01 +02:00
Yi C 66c74801fb
fix(rbac): updated changeset for version bump (#4974)
Signed-off-by: Yi Cai <yicai@redhat.com>
2025-08-14 19:12:53 +02:00
Beth Griggs ee2783614c
feat: implement plugin archive process (#4860)
* feat: implement plugin archiving process

This commit introduces a process for archiving plugins and workspaces in
the project:

- `.github/archived-plugins.json` is added to track archived packages,
alongside `ARCHIVED_WORKSPACES.md` as a human-readable reference.

- `.github/workflows/deprecate-archived-plugins.yml` automates npm
deprecation using the new script `scripts/ci/deprecate-archived-plugins.sh`,
which runs `npm deprecate` for archived plugins.

- `scripts/archive.js` is added to automate the archiving of a plugin
or entire workspace, updating both tracking files.

- The plugin maintainer guide is updated with clear instructions on when
and how to archive plugins.

Refs: https://github.com/backstage/community-plugins/issues/4619
Signed-off-by: Beth Griggs <bethanyngriggs@gmail.com>

* fixup!

Signed-off-by: Beth Griggs <bethanyngriggs@gmail.com>

---------

Signed-off-by: Beth Griggs <bethanyngriggs@gmail.com>
2025-08-14 11:49:53 -04:00
Backstage Service Account 6fb5f674bd
Version Packages (#4934)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:09:17 -05:00
Backstage Service Account 6f1bfda110
Version Packages (#4954)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:09:07 -05:00
Backstage Service Account d0f9c3b4f9
Version Packages (#4955)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:08:54 -05:00
Backstage Service Account e446968b72
Version Packages (#4956)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:08:45 -05:00
Backstage Service Account cc2feb6237
Version Packages (#4957)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:08:27 -05:00
Backstage Service Account c514748777
Version Packages (#4958)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:08:15 -05:00
Backstage Service Account ed81d08523
Version Packages (#4959)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 09:07:17 -05:00
451 changed files with 43270 additions and 25629 deletions

5
.github/CODEOWNERS vendored
View File

@ -7,11 +7,13 @@
* @backstage/community-plugins-maintainers
yarn.lock @backstage/community-plugins-maintainers @backstage-service
*/yarn.lock @backstage/community-plugins-maintainers @backstage-service
.github/archived-plugins.json @backstage/community-plugins-maintainers
/workspaces/3scale @backstage/community-plugins-maintainers @04kash @AndrienkoAleksandr
/workspaces/acr @backstage/community-plugins-maintainers @christoph-jerolimov @ciiay @debsmita1 @divyanshiGupta @its-mitesh-kumar @logonoff
/workspaces/acs @backstage/community-plugins-maintainers @sachaudh @alwayshooin @dvail @maknop
/workspaces/adr @backstage/community-plugins-maintainers @kuangp
/workspaces/agent-forge @backstage/community-plugins-maintainers @sbraicu @sriaradhyula @subbaksh @suwhang-cisco
/workspaces/airbrake @backstage/community-plugins-maintainers
/workspaces/allure @backstage/community-plugins-maintainers
/workspaces/amplication @backstage/community-plugins-maintainers @itainathaniel
@ -30,6 +32,7 @@ yarn.lock @backsta
/workspaces/bazaar @backstage/community-plugins-maintainers
/workspaces/bitrise @backstage/community-plugins-maintainers @backstage/sda-se-reviewers
/workspaces/blackduck @backstage/community-plugins-maintainers @deepan10
/workspaces/bookmarks @backstage/community-plugins-maintainers @logonoff @christoph-jerolimov @ciiay @debsmita1 @divyanshiGupta @its-mitesh-kumar @lokanandaprabhu
/workspaces/cicd-statistics @backstage/community-plugins-maintainers
/workspaces/cloudbuild @backstage/community-plugins-maintainers
/workspaces/code-climate @backstage/community-plugins-maintainers
@ -78,7 +81,7 @@ yarn.lock @backsta
/workspaces/nexus-repository-manager @backstage/community-plugins-maintainers @ciiay @debsmita1 @jessicajhee
/workspaces/nomad @backstage/community-plugins-maintainers
/workspaces/noop @backstage/community-plugins-maintainers
/workspaces/npm @backstage/community-plugins-maintainers @christoph-jerolimov @ciiay @karthikjeeyar
/workspaces/npm @backstage/community-plugins-maintainers @christoph-jerolimov @ciiay @karthikjeeyar @logonoff
/workspaces/ocm @backstage/community-plugins-maintainers @christoph-jerolimov @ciiay @debsmita1 @divyanshiGupta @its-mitesh-kumar @logonoff
/workspaces/octopus-deploy @backstage/community-plugins-maintainers @jmezach
/workspaces/odo @backstage/community-plugins-maintainers

View File

@ -33,6 +33,7 @@ body:
- bazaar
- bitrise
- blackduck
- bookmarks
- cicd-statistics
- cloudbuild
- code-climate

View File

@ -34,6 +34,7 @@ body:
- bazaar
- bitrise
- blackduck
- bookmarks
- cicd-statistics
- cloudbuild
- code-climate

View File

@ -24,6 +24,7 @@ attributes:
- bazaar
- bitrise
- blackduck
- bookmarks
- cicd-statistics
- cloudbuild
- code-climate

3
.github/archived-plugins.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"archived": []
}

3
.github/labeler.yml vendored
View File

@ -58,6 +58,9 @@ workspace/bitrise:
workspace/blackduck:
- "Workspace\\s*blackduck"
workspace/bookmarks:
- "Workspace\\s*bookmarks"
workspace/cicd-statistics:
- "Workspace\\s*cicd-statistics"

View File

@ -0,0 +1,19 @@
name: Deprecate Archived Plugins
on:
push:
paths:
- '.github/archived-plugins.json'
branches:
- main
jobs:
deprecate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deprecate packages
run: ./scripts/ci/deprecate-archived-plugins.sh
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@ -78,6 +78,13 @@ jobs:
- name: 'Set release name'
id: set_release_name
run: node scripts/ci/set-release-name.js ${{ matrix.workspace }} ${{ inputs.release_line || 'main' }}
- name: 'Check current and release versions'
id: check
run: |
if [[ "${{ steps.set_release_name.outputs.release_version }}" == "${{ steps.set_release_name.outputs.current_version }}" ]]; then
echo "Backstage release version and current workspace version are the same, skipping version bump"
exit 1 # Non-zero exit code fails the step and job
fi
- name: 'Configure git'
run: |
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
@ -97,7 +104,7 @@ jobs:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
- name: Run dedupe
working-directory: ./workspaces/${{ matrix.workspace }}
run: yarn dedupe
run: yarn dedupe
- name: 'Check for changes'
id: check_for_changes
run: |

28
ARCHIVED_WORKSPACES.md Normal file
View File

@ -0,0 +1,28 @@
# Archived Workspaces
This document contains a list of workspaces and plugins that have been archived from the community-plugins repository.
## About Archived Workspaces
When a workspace or plugin is archived:
- The code is no longer actively maintained
- The npm packages are deprecated with a deprecation message
- The workspace/plugin is removed from the active codebase
- A Git tag can provide historical reference to the source
- An entry is added to this document for reference
To archive a workspace or plugin, use the `archive-workspace` script:
```bash
# Archive an entire workspace
./scripts/archive-workspace workspace-name
# Archive a specific plugin within a workspace
./scripts/archive-workspace workspace-name plugin-name
```
## Archived Items
| Workspace | Package | Reason | Source |
| --------- | ------- | ------ | ------ |

View File

@ -8,6 +8,9 @@
- [PR Reviews \& Merging](#pr-reviews--merging)
- [Issue Triage](#issue-triage)
- [Stepping Down as a Plugin Owner](#stepping-down-as-a-plugin-owner)
- [Archiving a Plugin](#archiving-a-plugin)
- [When to Archive](#when-to-archive)
- [How to Archive](#how-to-archive)
- [Version Bumping](#version-bumping)
- [Opt-in to Automatic Version Bump PRs](#opt-in-to-automatic-version-bump-prs)
- [Opt-in to Knip Reports Check](#opt-in-to-knip-reports-check)
@ -47,7 +50,59 @@ If you are no longer maintaining a plugin, please take the following steps to fo
3. If you are the last remaining CODEOWNER:
- The `@backstage/community-plugins-maintainers` group will provide best-effort support for issues and maintenance. Without a dedicated owner, plugin updates and support may be slower or limited.
- To help with this, opt into automatic version bump PRs by creating an empty `.auto-version-bump` file in the plugins workspace (i.e., `workspaces/${WORKSPACE}/.auto-version-bump`).
- To help with this, opt into automatic version bump PRs by creating an empty `.auto-version-bump` file in the plugin's workspace (i.e., `workspaces/${WORKSPACE}/.auto-version-bump`).
## Archiving a Plugin
When a plugin is no longer maintained, it should be archived rather than abandoned. The archival process ensures that users are properly notified through npm deprecation warnings while preserving the code for historical reference through Git tags.
### When to Archive
Consider archiving a plugin when:
- The plugin is no longer actively maintained
- No current maintainer is available (and no one is stepping up)
- The plugin has unresolved security vulnerabilities that won't be fixed
- The plugin functionality has been superseded by better alternatives
- The plugin is incompatible with current Backstage versions and won't be updated
### How to Archive
Follow these steps to archive a plugin or workspace:
1. Run the archive script to designate the plugin(s) as archived:
```bash
# Archive an entire workspace (defaults to "No longer maintained")
node scripts/archive.js workspace-name
# Archive an entire workspace with custom reason
node scripts/archive.js workspace-name "Custom reason"
# Archive a specific plugin within a workspace (use package name after @backstage-community/)
node scripts/archive.js workspace-name plugin-name "Custom reason"
```
This will:
- Record Git tag references using `package.json` versions (`@backstage-community/plugin-example@1.2.3`)
- Add entries to `.github/archived-plugins.json` and `ARCHIVED_WORKSPACES.md`
2. Dry run the following script to verify which packages would be deprecated:
```bash
./scripts/ci/deprecate-archived-plugins.sh --dry-run
```
3. Delete the workspace or plugin(s) from the repository.
4. Open a PR with the changes including:
- Updated `.github/archived-plugins.json`
- Updated `ARCHIVED_WORKSPACES.md`
- Removed workspace/plugin
5. Once the PR is merged, the GitHub Action will automatically deprecate the packages in `.github/archived-plugins.json` on npm. Note the `.github/archived-plugins.json` requires codeowner approval from `@backstage/community-plugins-maintainers`.
## Version Bumping

View File

@ -28,7 +28,7 @@
"eslint-plugin-notice": "^0.9.10",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-testing-library": "^6.0.0",
"fs-extra": "11.3.0",
"fs-extra": "11.3.1",
"husky": "^9.0.11",
"js-yaml": "^4.1.0",
"lint-staged": "^15.2.2",

175
scripts/archive.js Executable file
View File

@ -0,0 +1,175 @@
#!/usr/bin/env node
/*
* Copyright 2025 The Backstage Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import fs from 'fs/promises';
import path from 'path';
import { fileURLToPath } from 'url';
import { parseArgs } from 'util';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const ARCHIVED_FILE = path.join(
__dirname,
'..',
'.github',
'archived-plugins.json',
);
const ARCHIVED_WORKSPACES_FILE = path.join(
__dirname,
'..',
'ARCHIVED_WORKSPACES.md',
);
async function appendToArchivedWorkspacesMd(entries) {
console.log('Updating ARCHIVED_WORKSPACES.md...');
const tableRows = entries.map(entry => {
const workspace = entry.workspace;
const packageName = entry.pluginName;
const reason = entry.reason || 'No longer maintained';
const sourceLink = `[${entry.gitTag}](https://github.com/backstage/community-plugins/tree/${entry.gitTag}/workspaces/${workspace})`;
return `| ${workspace} | \`${packageName}\` | ${reason} | ${sourceLink} |`;
});
const newContent = `${tableRows.join('\n')}\n`;
await fs.appendFile(ARCHIVED_WORKSPACES_FILE, newContent);
console.log(`Added ${entries.length} entries to ARCHIVED_WORKSPACES.md`);
}
async function getPackagesFromWorkspace(workspace, targetPlugin = null) {
const plugins = [];
const pluginsDir = path.join(
__dirname,
'..',
'workspaces',
workspace,
'plugins',
);
const pluginDirs = await fs.readdir(pluginsDir);
for (const pluginDir of pluginDirs) {
const pluginPath = path.join(pluginsDir, pluginDir);
const stat = await fs.stat(pluginPath);
if (!stat.isDirectory()) {
continue;
}
const packageJsonPath = path.join(pluginPath, 'package.json');
const packageData = JSON.parse(await fs.readFile(packageJsonPath, 'utf8'));
if (packageData.name.startsWith('@backstage-community/')) {
const pluginName = packageData.name.replace('@backstage-community/', '');
// if a plugin specified, only process if plugin name matches
if (targetPlugin && pluginName !== targetPlugin) {
continue;
}
plugins.push({
name: packageData.name,
version: packageData.version,
workspace,
plugin: pluginDir,
});
}
}
return plugins;
}
async function addArchivedEntry(entries) {
const content = await fs.readFile(ARCHIVED_FILE, 'utf8');
const archivedData = JSON.parse(content);
for (const entry of entries) {
console.log(`Adding new entry for ${entry.pluginName}`);
archivedData.archived.push(entry);
}
await fs.writeFile(ARCHIVED_FILE, JSON.stringify(archivedData, null, 2));
console.log(`Updated ${ARCHIVED_FILE}`);
}
async function main() {
try {
const { positionals } = parseArgs({
args: process.argv.slice(2),
options: {
help: {
type: 'boolean',
short: 'h',
},
},
allowPositionals: true,
});
const workspace = positionals[0];
let plugin = positionals[1];
let reason = positionals[2] || 'No longer maintained';
// If second argument looks like a reason (contains spaces), treat it as reason
if (plugin && plugin.includes(' ')) {
reason = plugin;
plugin = null;
}
console.log(`Archiving workspace ${workspace}...`);
console.log(`Reason: ${reason}`);
// Get packages from workspace
const packages = await getPackagesFromWorkspace(workspace, plugin);
if (packages.length === 0) {
console.log('No packages found to archive.');
return;
}
const entries = packages.map(pkg => ({
pluginName: pkg.name,
version: pkg.version,
workspace: pkg.workspace,
plugin: pkg.plugin,
gitTag: `${pkg.name}@${pkg.version}`,
reason,
archivedDate: new Date().toISOString().split('T')[0],
}));
await addArchivedEntry(entries);
await appendToArchivedWorkspacesMd(entries);
console.log(`\nSuccessfully archived ${entries.length} package(s):`);
entries.forEach(entry => {
console.log(
` - ${entry.pluginName} (${entry.workspace}/${entry.plugin}) - Tag: ${entry.gitTag}`,
);
});
} catch (error) {
if (error.message.includes('parsing arguments')) {
// Already handled above
return;
}
console.error('Error:', error.message);
process.exit(1);
}
}
main();

View File

@ -0,0 +1,51 @@
#!/bin/bash
set -e
# Get script directory and archived file path
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ARCHIVED_FILE="$(dirname "$(dirname "$SCRIPT_DIR")")/.github/archived-plugins.json"
# Check if dry run (first argument)
DRY_RUN=${1:-false}
if [[ "$DRY_RUN" == "--dry-run" ]]; then
DRY_RUN=true
echo "DRY RUN MODE"
else
DRY_RUN=false
fi
echo "Processing archived packages..."
# Extract unique plugins from archived-plugins.json file
# Format: package_name|workspace|plugin|reason
jq -r '
.archived
| unique_by(.pluginName)
| .[]
| "\(.pluginName)|\(.workspace)|\(.plugin)|\(.reason)"
' "$ARCHIVED_FILE" | while IFS='|' read -r package_name workspace plugin reason; do
# Check if already deprecated
if npm view "$package_name" deprecated 2>/dev/null | grep -q "true\|deprecated"; then
echo "Already deprecated: $package_name"
continue
fi
# Generate deprecation message
message="This package has been archived from the backstage/community-plugins repository"
[[ -n "$plugin" ]] && message="$message (plugin: $plugin)"
[[ -n "$reason" ]] && message="$message. Reason: $reason"
message="$message."
if [[ "$DRY_RUN" == "true" ]]; then
echo "Would deprecate: $package_name"
echo " Message: $message"
else
echo "Deprecating: $package_name"
npm deprecate "$package_name" "$message"
echo "Done: $package_name"
fi
done
echo "Complete!"

View File

@ -1,5 +0,0 @@
---
'@backstage-community/plugin-acr': patch
---
Updated dependency `@testing-library/jest-dom` to `6.6.4`.

View File

@ -0,0 +1,5 @@
---
'@backstage-community/plugin-acr': patch
---
Updated dependency `@testing-library/jest-dom` to `6.7.0`.

View File

@ -1,5 +0,0 @@
---
'@backstage-community/plugin-acr': minor
---
Backstage version bump to v1.41.1

View File

@ -1,5 +1,15 @@
### Dependencies
## 1.16.0
### Minor Changes
- 4000b53: Backstage version bump to v1.41.1
### Patch Changes
- 6877ddc: Updated dependency `@testing-library/jest-dom` to `6.6.4`.
## 1.15.2
### Patch Changes

View File

@ -1,7 +1,7 @@
{
"name": "@backstage-community/plugin-acr",
"description": "A Backstage plugin that displays information about your container images available in the Azure Container Registry",
"version": "1.15.2",
"version": "1.16.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@ -62,7 +62,7 @@
"@backstage/core-app-api": "^1.18.0",
"@backstage/dev-utils": "^1.1.12",
"@backstage/test-utils": "^1.7.10",
"@testing-library/jest-dom": "6.6.4",
"@testing-library/jest-dom": "6.7.0",
"@testing-library/react": "14.3.1",
"@testing-library/react-hooks": "8.0.1",
"@testing-library/user-event": "14.6.1",

View File

@ -2725,7 +2725,7 @@ __metadata:
"@backstage/theme": "npm:^0.6.7"
"@material-ui/core": "npm:^4.9.13"
"@material-ui/icons": "npm:^4.11.3"
"@testing-library/jest-dom": "npm:6.6.4"
"@testing-library/jest-dom": "npm:6.7.0"
"@testing-library/react": "npm:14.3.1"
"@testing-library/react-hooks": "npm:8.0.1"
"@testing-library/user-event": "npm:14.6.1"
@ -11690,18 +11690,17 @@ __metadata:
languageName: node
linkType: hard
"@testing-library/jest-dom@npm:6.6.4, @testing-library/jest-dom@npm:^6.0.0":
version: 6.6.4
resolution: "@testing-library/jest-dom@npm:6.6.4"
"@testing-library/jest-dom@npm:6.7.0, @testing-library/jest-dom@npm:^6.0.0":
version: 6.7.0
resolution: "@testing-library/jest-dom@npm:6.7.0"
dependencies:
"@adobe/css-tools": "npm:^4.4.0"
aria-query: "npm:^5.0.0"
css.escape: "npm:^1.5.1"
dom-accessibility-api: "npm:^0.6.3"
lodash: "npm:^4.17.21"
picocolors: "npm:^1.1.1"
redent: "npm:^3.0.0"
checksum: 10/5e67112c789f884fb75b279c2cddfdd0995a012a7847a03c474e4134f0d213934ee70c97433bca26b45e3a5ffa56faafe6499c8e57841179c4f2bd80eef429cd
checksum: 10/c994f028b6f2d49c18c9fd6050af7f3316fb0afd03d0ba15d03b177f0f046a0308302dd52ab289fad8794e16a88e4d724b5f23caa007cf343a4b5e435efb84d9
languageName: node
linkType: hard

View File

@ -47,7 +47,7 @@
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.9",
"@backstage/plugin-catalog-backend-module-unprocessed": "^0.6.1",
"@backstage/plugin-scaffolder": "^1.32.0",
"@backstage/plugin-scaffolder-backend": "^2.0.0",
"@backstage/plugin-scaffolder-backend": "^2.1.1",
"@backstage/repo-tools": "^0.14.0",
"@changesets/cli": "^2.28.1",
"@eslint/js": "^9.19.0",

View File

@ -39,7 +39,7 @@
"@backstage/plugin-permission-node": "^0.10.1",
"@backstage/plugin-proxy-backend": "^0.6.3",
"@backstage/plugin-scaffolder": "^1.32.0",
"@backstage/plugin-scaffolder-backend": "^2.0.0",
"@backstage/plugin-scaffolder-backend": "^2.1.1",
"@backstage/plugin-search-backend": "^2.0.3",
"@backstage/plugin-search-backend-module-catalog": "^0.3.5",
"@backstage/plugin-search-backend-module-pg": "^0.5.45",

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +0,0 @@
---
'@backstage-community/plugin-catalog-backend-module-amplication': minor
'@backstage-community/plugin-scaffolder-backend-module-amplication': minor
---
Backstage version bump to v1.41.1

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-catalog-backend-module-amplication
## 0.4.0
### Minor Changes
- 4e167c6: Backstage version bump to v1.41.1
## 0.3.0
### Minor Changes

View File

@ -1,7 +1,7 @@
{
"name": "@backstage-community/plugin-catalog-backend-module-amplication",
"description": "The amplication backend module for the catalog plugin.",
"version": "0.3.0",
"version": "0.4.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-scaffolder-backend-module-amplication
## 0.4.0
### Minor Changes
- 4e167c6: Backstage version bump to v1.41.1
## 0.3.0
### Minor Changes

View File

@ -1,7 +1,7 @@
{
"name": "@backstage-community/plugin-scaffolder-backend-module-amplication",
"description": "The amplication module for @backstage/plugin-scaffolder-backend",
"version": "0.3.0",
"version": "0.4.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",

View File

View File

@ -0,0 +1,6 @@
---
'@backstage-community/plugin-analytics-module-matomo': patch
'@backstage-community/plugin-analytics-provider-segment': patch
---
Updated dependency `@testing-library/jest-dom` to `6.7.0`.

View File

@ -44,7 +44,7 @@
"@backstage/core-app-api": "^1.17.1",
"@backstage/core-components": "^0.17.3",
"@backstage/dev-utils": "^1.1.11",
"@testing-library/jest-dom": "6.6.4",
"@testing-library/jest-dom": "6.7.0",
"@types/node": "22.15.29",
"cross-fetch": "4.0.0",
"msw": "1.3.5"

View File

@ -54,7 +54,7 @@
"@backstage/dev-utils": "^1.1.11",
"@backstage/test-utils": "^1.7.9",
"@testing-library/dom": "9.3.4",
"@testing-library/jest-dom": "6.6.4",
"@testing-library/jest-dom": "6.7.0",
"@testing-library/react": "14.3.1",
"@testing-library/user-event": "14.6.1",
"@types/node": "22.15.29",

View File

@ -1791,7 +1791,7 @@ __metadata:
"@backstage/core-components": "npm:^0.17.3"
"@backstage/core-plugin-api": "npm:^1.10.8"
"@backstage/dev-utils": "npm:^1.1.11"
"@testing-library/jest-dom": "npm:6.6.4"
"@testing-library/jest-dom": "npm:6.7.0"
"@types/node": "npm:22.15.29"
cross-fetch: "npm:4.0.0"
msw: "npm:1.3.5"
@ -1838,7 +1838,7 @@ __metadata:
"@material-ui/lab": "npm:4.0.0-alpha.61"
"@segment/analytics-next": "npm:^1.58.0"
"@testing-library/dom": "npm:9.3.4"
"@testing-library/jest-dom": "npm:6.6.4"
"@testing-library/jest-dom": "npm:6.7.0"
"@testing-library/react": "npm:14.3.1"
"@testing-library/user-event": "npm:14.6.1"
"@types/node": "npm:22.15.29"
@ -6491,18 +6491,17 @@ __metadata:
languageName: node
linkType: hard
"@testing-library/jest-dom@npm:6.6.4, @testing-library/jest-dom@npm:^6.0.0":
version: 6.6.4
resolution: "@testing-library/jest-dom@npm:6.6.4"
"@testing-library/jest-dom@npm:6.7.0, @testing-library/jest-dom@npm:^6.0.0":
version: 6.7.0
resolution: "@testing-library/jest-dom@npm:6.7.0"
dependencies:
"@adobe/css-tools": "npm:^4.4.0"
aria-query: "npm:^5.0.0"
css.escape: "npm:^1.5.1"
dom-accessibility-api: "npm:^0.6.3"
lodash: "npm:^4.17.21"
picocolors: "npm:^1.1.1"
redent: "npm:^3.0.0"
checksum: 10/5e67112c789f884fb75b279c2cddfdd0995a012a7847a03c474e4134f0d213934ee70c97433bca26b45e3a5ffa56faafe6499c8e57841179c4f2bd80eef429cd
checksum: 10/c994f028b6f2d49c18c9fd6050af7f3316fb0afd03d0ba15d03b177f0f046a0308302dd52ab289fad8794e16a88e4d724b5f23caa007cf343a4b5e435efb84d9
languageName: node
linkType: hard

View File

@ -1,5 +0,0 @@
---
'@backstage-community/plugin-apollo-explorer': minor
---
Backstage version bump to v1.41.1

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-apollo-explorer
## 0.10.0
### Minor Changes
- 741c218: Backstage version bump to v1.41.1
## 0.9.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-apollo-explorer",
"version": "0.9.0",
"version": "0.10.0",
"backstage": {
"role": "frontend-plugin",
"pluginId": "apollo-explorer",

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
plugins:
- checksum: 8af7b3f2d7d19cacc7a3712f871efcb6208ba283a1f532260b0cba80c2cb66ed772b207b5ba41b8c5d64dd8d5e0c0e15bbb445bd14afac491712965211ba027c
path: .yarn/plugins/@yarnpkg/plugin-backstage.cjs
spec: 'https://versions.backstage.io/v1/releases/1.42.3/yarn-plugin'

View File

@ -1,6 +1,7 @@
app:
title: Azure DevOps Example App
baseUrl: http://localhost:3000
packages: all
organization:
name: Azure DevOps Example

View File

@ -1,3 +1,3 @@
{
"version": "1.41.1"
"version": "1.42.3"
}

View File

@ -36,9 +36,9 @@
"directory": "workspaces/azure-devops"
},
"devDependencies": {
"@backstage/cli": "^0.33.1",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.15.0",
"@backstage/cli": "backstage:^",
"@backstage/e2e-test-utils": "backstage:^",
"@backstage/repo-tools": "backstage:^",
"@changesets/cli": "^2.27.1",
"knip": "^5.27.4",
"node-gyp": "^10.0.0",
@ -58,9 +58,5 @@
"*.{json,md}": [
"prettier --write"
]
},
"dependencies": {
"@backstage-community/plugin-azure-devops": "workspace:^",
"@backstage-community/plugin-azure-devops-backend": "workspace:^"
}
}

View File

@ -20,29 +20,29 @@
},
"dependencies": {
"@backstage-community/plugin-azure-devops": "workspace:^",
"@backstage/app-defaults": "^1.6.4",
"@backstage/catalog-model": "^1.7.5",
"@backstage/cli": "^0.33.1",
"@backstage/core-app-api": "^1.18.0",
"@backstage/core-components": "^0.17.4",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/integration-react": "^1.2.9",
"@backstage/plugin-api-docs": "^0.12.9",
"@backstage/plugin-catalog": "^1.31.1",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-graph": "^0.4.21",
"@backstage/plugin-catalog-import": "^0.13.3",
"@backstage/plugin-catalog-react": "^1.19.1",
"@backstage/plugin-org": "^0.6.41",
"@backstage/plugin-permission-react": "^0.4.36",
"@backstage/plugin-scaffolder": "^1.33.0",
"@backstage/plugin-search": "^1.4.28",
"@backstage/plugin-search-react": "^1.9.2",
"@backstage/plugin-techdocs": "^1.13.2",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.26",
"@backstage/plugin-techdocs-react": "^1.3.1",
"@backstage/plugin-user-settings": "^0.8.24",
"@backstage/theme": "^0.6.7",
"@backstage/app-defaults": "backstage:^",
"@backstage/catalog-model": "backstage:^",
"@backstage/cli": "backstage:^",
"@backstage/core-app-api": "backstage:^",
"@backstage/core-components": "backstage:^",
"@backstage/core-plugin-api": "backstage:^",
"@backstage/integration-react": "backstage:^",
"@backstage/plugin-api-docs": "backstage:^",
"@backstage/plugin-catalog": "backstage:^",
"@backstage/plugin-catalog-common": "backstage:^",
"@backstage/plugin-catalog-graph": "backstage:^",
"@backstage/plugin-catalog-import": "backstage:^",
"@backstage/plugin-catalog-react": "backstage:^",
"@backstage/plugin-org": "backstage:^",
"@backstage/plugin-permission-react": "backstage:^",
"@backstage/plugin-scaffolder": "backstage:^",
"@backstage/plugin-search": "backstage:^",
"@backstage/plugin-search-react": "backstage:^",
"@backstage/plugin-techdocs": "backstage:^",
"@backstage/plugin-techdocs-module-addons-contrib": "backstage:^",
"@backstage/plugin-techdocs-react": "backstage:^",
"@backstage/plugin-user-settings": "backstage:^",
"@backstage/theme": "backstage:^",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"react": "^18.0.2",
@ -52,7 +52,7 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/test-utils": "^1.7.10",
"@backstage/test-utils": "backstage:^",
"@playwright/test": "^1.32.3",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",

View File

@ -25,26 +25,26 @@
"@backstage-community/plugin-catalog-backend-module-azure-devops-annotator-processor": "workspace:^",
"@backstage-community/plugin-scaffolder-backend-module-azure-devops": "workspace:^",
"@backstage-community/plugin-scaffolder-backend-module-dotnet": "workspace:^",
"@backstage/backend-defaults": "^0.11.1",
"@backstage/config": "^1.3.3",
"@backstage/plugin-app-backend": "^0.5.4",
"@backstage/plugin-auth-backend": "^0.25.2",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.10",
"@backstage/plugin-auth-node": "^0.6.5",
"@backstage/plugin-catalog-backend": "^3.0.0",
"@backstage/plugin-catalog-backend-module-logs": "^0.1.12",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.10",
"@backstage/plugin-permission-backend": "^0.7.2",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.10",
"@backstage/plugin-permission-common": "^0.9.1",
"@backstage/plugin-permission-node": "^0.10.2",
"@backstage/plugin-proxy-backend": "^0.6.4",
"@backstage/plugin-scaffolder-backend": "^2.1.0",
"@backstage/plugin-search-backend": "^2.0.4",
"@backstage/plugin-search-backend-module-catalog": "^0.3.6",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.4",
"@backstage/plugin-search-backend-node": "^1.3.13",
"@backstage/plugin-techdocs-backend": "^2.0.4",
"@backstage/backend-defaults": "backstage:^",
"@backstage/config": "backstage:^",
"@backstage/plugin-app-backend": "backstage:^",
"@backstage/plugin-auth-backend": "backstage:^",
"@backstage/plugin-auth-backend-module-guest-provider": "backstage:^",
"@backstage/plugin-auth-node": "backstage:^",
"@backstage/plugin-catalog-backend": "backstage:^",
"@backstage/plugin-catalog-backend-module-logs": "backstage:^",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "backstage:^",
"@backstage/plugin-permission-backend": "backstage:^",
"@backstage/plugin-permission-backend-module-allow-all-policy": "backstage:^",
"@backstage/plugin-permission-common": "backstage:^",
"@backstage/plugin-permission-node": "backstage:^",
"@backstage/plugin-proxy-backend": "backstage:^",
"@backstage/plugin-scaffolder-backend": "backstage:^",
"@backstage/plugin-search-backend": "backstage:^",
"@backstage/plugin-search-backend-module-catalog": "backstage:^",
"@backstage/plugin-search-backend-module-techdocs": "backstage:^",
"@backstage/plugin-search-backend-node": "backstage:^",
"@backstage/plugin-techdocs-backend": "backstage:^",
"app": "link:../app",
"better-sqlite3": "^9.0.0",
"dockerode": "^3.3.1",
@ -53,7 +53,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.33.1"
"@backstage/cli": "backstage:^"
},
"files": [
"dist"

View File

@ -1,5 +1,16 @@
# @backstage-community/plugin-azure-devops-backend
## 0.20.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
### Patch Changes
- Updated dependencies [8367480]
- @backstage-community/plugin-azure-devops-common@0.14.0
## 0.19.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-devops-backend",
"version": "0.19.0",
"version": "0.20.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@ -35,17 +35,17 @@
},
"dependencies": {
"@backstage-community/plugin-azure-devops-common": "workspace:^",
"@backstage/backend-defaults": "^0.11.1",
"@backstage/backend-plugin-api": "^1.4.1",
"@backstage/catalog-model": "^1.7.5",
"@backstage/config": "^1.3.3",
"@backstage/errors": "^1.2.7",
"@backstage/integration": "^1.17.1",
"@backstage/plugin-auth-node": "^0.6.5",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-node": "^1.17.2",
"@backstage/plugin-permission-common": "^0.9.1",
"@backstage/plugin-permission-node": "^0.10.2",
"@backstage/backend-defaults": "backstage:^",
"@backstage/backend-plugin-api": "backstage:^",
"@backstage/catalog-model": "backstage:^",
"@backstage/config": "backstage:^",
"@backstage/errors": "backstage:^",
"@backstage/integration": "backstage:^",
"@backstage/plugin-auth-node": "backstage:^",
"@backstage/plugin-catalog-common": "backstage:^",
"@backstage/plugin-catalog-node": "backstage:^",
"@backstage/plugin-permission-common": "backstage:^",
"@backstage/plugin-permission-node": "backstage:^",
"@types/express": "^4.17.6",
"azure-devops-node-api": "^13.0.0",
"express": "^4.17.1",
@ -54,8 +54,8 @@
"p-limit": "^3.1.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.7.0",
"@backstage/cli": "^0.33.1",
"@backstage/backend-test-utils": "backstage:^",
"@backstage/cli": "backstage:^",
"@types/lodash": "^4.14.151",
"@types/mime-types": "^2.1.0",
"@types/supertest": "^6.0.0",

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-azure-devops-common
## 0.14.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
## 0.13.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-devops-common",
"version": "0.13.0",
"version": "0.14.0",
"backstage": {
"role": "common-library",
"pluginId": "azure-devops",
@ -41,11 +41,11 @@
"test": "backstage-cli package test"
},
"dependencies": {
"@backstage/catalog-model": "^1.7.5",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-permission-common": "^0.9.1"
"@backstage/catalog-model": "backstage:^",
"@backstage/plugin-catalog-common": "backstage:^",
"@backstage/plugin-permission-common": "backstage:^"
},
"devDependencies": {
"@backstage/cli": "^0.33.1"
"@backstage/cli": "backstage:^"
}
}

View File

@ -1,5 +1,16 @@
# @backstage-community/plugin-azure-devops
## 0.19.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
### Patch Changes
- Updated dependencies [8367480]
- @backstage-community/plugin-azure-devops-common@0.14.0
## 0.18.0
### Minor Changes

View File

@ -412,3 +412,43 @@ async handle(
};
}
```
## New Frontend System (Alpha)
The Azure DevOps plugin currently support the New Frontend System via an `/alpha` export, here's how to use it:
### Use new frontend system
1. Install the frontend plugin:
```bash
# From your Backstage root directory
yarn --cwd packages/app add @backstage-community/plugin-azure-devops
```
2. Enable the plugin in your `packages/app(-next)/src/App.tsx`:
After all other imports:
```tsx
import azureDevOpsPlugin from '@backstage-community/plugin-azure-devops';
```
```tsx
export const app = createApp({
features: [
catalogPlugin,
catalogImportPlugin,
userSettingsPlugin,
azureDevOpsPlugin,
// ...
],
});
```
Alternatively you can simply use feature discover and skip the above step by adding the following yo your `app-config.yaml` file:
```yaml
app:
packages: all
```

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-devops",
"version": "0.18.0",
"version": "0.19.0",
"backstage": {
"role": "frontend-plugin",
"pluginId": "azure-devops",
@ -52,14 +52,14 @@
},
"dependencies": {
"@backstage-community/plugin-azure-devops-common": "workspace:^",
"@backstage/catalog-model": "^1.7.5",
"@backstage/core-compat-api": "^0.4.4",
"@backstage/core-components": "^0.17.4",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/errors": "^1.2.7",
"@backstage/frontend-plugin-api": "^0.10.4",
"@backstage/plugin-catalog-react": "^1.19.1",
"@backstage/plugin-permission-react": "^0.4.36",
"@backstage/catalog-model": "backstage:^",
"@backstage/core-compat-api": "backstage:^",
"@backstage/core-components": "backstage:^",
"@backstage/core-plugin-api": "backstage:^",
"@backstage/errors": "backstage:^",
"@backstage/frontend-plugin-api": "backstage:^",
"@backstage/plugin-catalog-react": "backstage:^",
"@backstage/plugin-permission-react": "backstage:^",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"@types/react": "^16.13.1 || ^17.0.0 || ^18.0.0",
@ -68,9 +68,9 @@
"react-use": "^17.2.4"
},
"devDependencies": {
"@backstage/cli": "^0.33.1",
"@backstage/dev-utils": "^1.1.12",
"@backstage/test-utils": "^1.7.10",
"@backstage/cli": "backstage:^",
"@backstage/dev-utils": "backstage:^",
"@backstage/test-utils": "backstage:^",
"@testing-library/dom": "^10.0.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^15.0.0",

View File

@ -7,17 +7,19 @@
import { AnyApiFactory } from '@backstage/core-plugin-api';
import { AnyRouteRefParams } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ApiFactory } from '@backstage/core-plugin-api';
import { Entity } from '@backstage/catalog-model';
import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
import { OverridableFrontendPlugin } from '@backstage/frontend-plugin-api';
import { RouteRef } from '@backstage/frontend-plugin-api';
// @alpha (undocumented)
const _default: FrontendPlugin<
const _default: OverridableFrontendPlugin<
{},
{},
{
@ -26,15 +28,17 @@ const _default: FrontendPlugin<
name: undefined;
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
AnyApiFactory,
'core.api.factory',
{}
>;
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
inputs: {};
params: {
factory: AnyApiFactory;
};
params: <
TApi,
TImpl extends TApi,
TDeps extends {
[x: string]: unknown;
},
>(
params: ApiFactory<TApi, TImpl, TDeps>,
) => ExtensionBlueprintParams<AnyApiFactory>;
}>;
'entity-card:azure-devops/readme': ExtensionDefinition<{
kind: 'entity-card';
@ -48,22 +52,22 @@ const _default: FrontendPlugin<
type?: 'content' | 'summary' | 'info' | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
EntityCardType,
'catalog.entity-card-type',
{
@ -93,35 +97,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@ -130,10 +130,12 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
defaultPath: string;
defaultTitle: string;
defaultGroup?:
defaultPath?: [Error: "Use the 'path' param instead"] | undefined;
path: string;
defaultTitle?: [Error: "Use the 'title' param instead"] | undefined;
title: string;
defaultGroup?: [Error: "Use the 'group' param instead"] | undefined;
group?:
| (string & {})
| 'development'
| 'deployment'
@ -142,6 +144,7 @@ const _default: FrontendPlugin<
| 'operation'
| 'observability'
| undefined;
loader: () => Promise<JSX.Element>;
routeRef?: RouteRef<AnyRouteRefParams> | undefined;
filter?: EntityPredicate | ((entity: Entity) => boolean) | undefined;
};
@ -162,35 +165,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@ -199,10 +198,12 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
defaultPath: string;
defaultTitle: string;
defaultGroup?:
defaultPath?: [Error: "Use the 'path' param instead"] | undefined;
path: string;
defaultTitle?: [Error: "Use the 'title' param instead"] | undefined;
title: string;
defaultGroup?: [Error: "Use the 'group' param instead"] | undefined;
group?:
| (string & {})
| 'development'
| 'deployment'
@ -211,6 +212,7 @@ const _default: FrontendPlugin<
| 'operation'
| 'observability'
| undefined;
loader: () => Promise<JSX.Element>;
routeRef?: RouteRef<AnyRouteRefParams> | undefined;
filter?: EntityPredicate | ((entity: Entity) => boolean) | undefined;
};
@ -231,35 +233,31 @@ const _default: FrontendPlugin<
group?: string | false | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
string,
'catalog.entity-content-title',
{}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
(entity: Entity) => boolean,
'catalog.entity-filter-function',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<
string,
'catalog.entity-filter-expression',
{
optional: true;
}
>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<string, 'catalog.entity-content-title', {}>
| ExtensionDataRef<
string,
'catalog.entity-content-group',
{
@ -268,10 +266,12 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
loader: () => Promise<JSX.Element>;
defaultPath: string;
defaultTitle: string;
defaultGroup?:
defaultPath?: [Error: "Use the 'path' param instead"] | undefined;
path: string;
defaultTitle?: [Error: "Use the 'title' param instead"] | undefined;
title: string;
defaultGroup?: [Error: "Use the 'group' param instead"] | undefined;
group?:
| (string & {})
| 'development'
| 'deployment'
@ -280,6 +280,7 @@ const _default: FrontendPlugin<
| 'operation'
| 'observability'
| undefined;
loader: () => Promise<JSX.Element>;
routeRef?: RouteRef<AnyRouteRefParams> | undefined;
filter?: EntityPredicate | ((entity: Entity) => boolean) | undefined;
};
@ -294,9 +295,9 @@ const _default: FrontendPlugin<
path?: string | undefined;
};
output:
| ConfigurableExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ConfigurableExtensionDataRef<string, 'core.routing.path', {}>
| ConfigurableExtensionDataRef<
| ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>
| ExtensionDataRef<string, 'core.routing.path', {}>
| ExtensionDataRef<
RouteRef<AnyRouteRefParams>,
'core.routing.ref',
{
@ -305,7 +306,8 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
defaultPath: string;
defaultPath?: [Error: "Use the 'path' param instead"] | undefined;
path: string;
loader: () => Promise<JSX.Element>;
routeRef?: RouteRef<AnyRouteRefParams> | undefined;
};

View File

@ -16,7 +16,6 @@
import {
ApiBlueprint,
createApiFactory,
PageBlueprint,
createFrontendPlugin,
discoveryApiRef,
@ -36,8 +35,8 @@ import { isAzureDevOpsAvailable, isAzurePipelinesAvailable } from '../plugin';
/** @alpha */
export const azureDevOpsApi = ApiBlueprint.make({
params: {
factory: createApiFactory({
params: defineParams =>
defineParams({
api: azureDevOpsApiRef,
deps: {
discoveryApi: discoveryApiRef,
@ -46,13 +45,12 @@ export const azureDevOpsApi = ApiBlueprint.make({
factory: ({ discoveryApi, fetchApi }) =>
new AzureDevOpsClient({ discoveryApi, fetchApi }),
}),
},
});
/** @alpha */
export const azureDevOpsPullRequestPage = PageBlueprint.make({
params: {
defaultPath: '/azure-pull-requests',
path: '/azure-pull-requests',
routeRef: convertLegacyRouteRef(azurePullRequestDashboardRouteRef),
loader: () =>
import('../components/PullRequestsPage').then(m =>
@ -65,8 +63,8 @@ export const azureDevOpsPullRequestPage = PageBlueprint.make({
export const azureDevOpsPipelinesEntityContent = EntityContentBlueprint.make({
name: 'pipelines',
params: {
defaultPath: '/pipelines',
defaultTitle: 'Pipelines',
path: '/pipelines',
title: 'Pipelines',
filter: isAzurePipelinesAvailable,
loader: () =>
import('../components/EntityPageAzurePipelines').then(m =>
@ -79,8 +77,8 @@ export const azureDevOpsPipelinesEntityContent = EntityContentBlueprint.make({
export const azureDevOpsGitTagsEntityContent = EntityContentBlueprint.make({
name: 'git-tags',
params: {
defaultPath: '/git-tags',
defaultTitle: 'Git Tags',
path: '/git-tags',
title: 'Git Tags',
filter: isAzureDevOpsAvailable,
loader: () =>
import('../components/EntityPageAzureGitTags').then(m =>
@ -94,8 +92,8 @@ export const azureDevOpsPullRequestsEntityContent = EntityContentBlueprint.make(
{
name: 'pull-requests',
params: {
defaultPath: '/pull-requests',
defaultTitle: 'Pull Requests',
path: '/pull-requests',
title: 'Pull Requests',
filter: isAzureDevOpsAvailable,
loader: () =>
import('../components/EntityPageAzurePullRequests').then(m =>

View File

@ -1,5 +1,16 @@
# @backstage-community/plugin-catalog-backend-module-azure-devops-annotator-processor
## 0.11.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
### Patch Changes
- Updated dependencies [8367480]
- @backstage-community/plugin-azure-devops-common@0.14.0
## 0.10.0
### Minor Changes

View File

@ -1,7 +1,7 @@
{
"name": "@backstage-community/plugin-catalog-backend-module-azure-devops-annotator-processor",
"description": "The azure-devops-annotator-processor backend module for the catalog plugin.",
"version": "0.10.0",
"version": "0.11.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@ -31,17 +31,17 @@
},
"dependencies": {
"@backstage-community/plugin-azure-devops-common": "workspace:^",
"@backstage/backend-plugin-api": "^1.4.1",
"@backstage/catalog-model": "^1.7.5",
"@backstage/config": "^1.3.3",
"@backstage/integration": "^1.17.1",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-node": "^1.17.2",
"@backstage/backend-plugin-api": "backstage:^",
"@backstage/catalog-model": "backstage:^",
"@backstage/config": "backstage:^",
"@backstage/integration": "backstage:^",
"@backstage/plugin-catalog-common": "backstage:^",
"@backstage/plugin-catalog-node": "backstage:^",
"lodash": "^4.17.21"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.7.0",
"@backstage/cli": "^0.33.1"
"@backstage/backend-test-utils": "backstage:^",
"@backstage/cli": "backstage:^"
},
"files": [
"dist"

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-scaffolder-backend-module-azure-devops
## 0.13.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
## 0.12.0
### Minor Changes

View File

@ -1,7 +1,7 @@
{
"name": "@backstage-community/plugin-scaffolder-backend-module-azure-devops",
"description": "The azure-devops module for @backstage/plugin-scaffolder-backend",
"version": "0.12.0",
"version": "0.13.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",
@ -39,17 +39,17 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/backend-plugin-api": "^1.4.1",
"@backstage/config": "^1.3.3",
"@backstage/errors": "^1.2.7",
"@backstage/integration": "^1.17.1",
"@backstage/plugin-scaffolder-node": "^0.10.0",
"@backstage/backend-plugin-api": "backstage:^",
"@backstage/config": "backstage:^",
"@backstage/errors": "backstage:^",
"@backstage/integration": "backstage:^",
"@backstage/plugin-scaffolder-node": "backstage:^",
"azure-devops-node-api": "^14.1.0",
"yaml": "^2.6.0"
},
"devDependencies": {
"@backstage/cli": "^0.33.1",
"@backstage/plugin-scaffolder-node-test-utils": "^0.3.1"
"@backstage/cli": "backstage:^",
"@backstage/plugin-scaffolder-node-test-utils": "backstage:^"
},
"files": [
"dist"

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-scaffolder-backend-module-dotnet
## 0.6.0
### Minor Changes
- 8367480: Backstage version bump to v1.42.3
## 0.5.0
### Minor Changes

View File

@ -1,5 +1,5 @@
{
"version": "0.5.0",
"version": "0.6.0",
"license": "Apache-2.0",
"name": "@backstage-community/plugin-scaffolder-backend-module-dotnet",
"description": "The azure-devops module for @backstage/plugin-scaffolder-backend",
@ -39,15 +39,15 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/backend-plugin-api": "^1.4.1",
"@backstage/plugin-scaffolder-node": "^0.10.0",
"@backstage/backend-plugin-api": "backstage:^",
"@backstage/plugin-scaffolder-node": "backstage:^",
"fs-extra": "^11.3.0",
"yaml": "^2.6.0",
"zod": "^3.24.3"
},
"devDependencies": {
"@backstage/cli": "^0.33.1",
"@backstage/plugin-scaffolder-node-test-utils": "^0.3.1",
"@backstage/cli": "backstage:^",
"@backstage/plugin-scaffolder-node-test-utils": "backstage:^",
"@types/fs-extra": "^11"
},
"files": [

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
---
'@backstage-community/plugin-azure-sites': minor
'@backstage-community/plugin-azure-sites-backend': minor
'@backstage-community/plugin-azure-sites-common': minor
---
Backstage version bump to v1.41.1

View File

@ -1,5 +1,16 @@
# @backstage-community/plugin-azure-sites-backend
## 0.11.0
### Minor Changes
- 7fcebc7: Backstage version bump to v1.41.1
### Patch Changes
- Updated dependencies [7fcebc7]
- @backstage-community/plugin-azure-sites-common@0.8.0
## 0.10.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-sites-backend",
"version": "0.10.0",
"version": "0.11.0",
"main": "src/index.ts",
"types": "src/index.ts",
"license": "Apache-2.0",

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-azure-sites-common
## 0.8.0
### Minor Changes
- 7fcebc7: Backstage version bump to v1.41.1
## 0.7.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-sites-common",
"version": "0.7.0",
"version": "0.8.0",
"description": "Common functionalities for the azure plugin",
"backstage": {
"role": "common-library",

View File

@ -1,5 +1,16 @@
# @backstage-community/plugin-azure-sites
## 0.8.0
### Minor Changes
- 7fcebc7: Backstage version bump to v1.41.1
### Patch Changes
- Updated dependencies [7fcebc7]
- @backstage-community/plugin-azure-sites-common@0.8.0
## 0.7.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-azure-sites",
"version": "0.7.0",
"version": "0.8.0",
"backstage": {
"role": "frontend-plugin",
"pluginId": "azure-sites",

View File

@ -0,0 +1,6 @@
---
'@backstage-community/plugin-azure-storage-explorer': minor
'@backstage-community/plugin-azure-storage-explorer-backend': minor
---
Backstage version bump to v1.41.1

View File

@ -1,3 +1,3 @@
{
"version": "1.40.2"
"version": "1.41.1"
}

View File

@ -36,9 +36,9 @@
"directory": "workspaces/azure-storage-explorer"
},
"devDependencies": {
"@backstage/cli": "^0.33.0",
"@backstage/cli": "^0.33.1",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.14.0",
"@backstage/repo-tools": "^0.15.0",
"@changesets/cli": "^2.27.1",
"knip": "^5.27.4",
"node-gyp": "^9.0.0",

View File

@ -20,29 +20,29 @@
},
"dependencies": {
"@backstage-community/plugin-azure-storage-explorer": "workspace:^",
"@backstage/app-defaults": "^1.6.3",
"@backstage/catalog-model": "^1.7.4",
"@backstage/cli": "^0.33.0",
"@backstage/core-app-api": "^1.17.1",
"@backstage/core-components": "^0.17.3",
"@backstage/core-plugin-api": "^1.10.8",
"@backstage/integration-react": "^1.2.8",
"@backstage/plugin-api-docs": "^0.12.8",
"@backstage/plugin-catalog": "^1.31.0",
"@backstage/plugin-catalog-common": "^1.1.4",
"@backstage/plugin-catalog-graph": "^0.4.20",
"@backstage/plugin-catalog-import": "^0.13.2",
"@backstage/plugin-catalog-react": "^1.19.0",
"@backstage/plugin-org": "^0.6.40",
"@backstage/plugin-permission-react": "^0.4.35",
"@backstage/plugin-scaffolder": "^1.32.0",
"@backstage/plugin-search": "^1.4.27",
"@backstage/plugin-search-react": "^1.9.1",
"@backstage/plugin-techdocs": "^1.13.1",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.25",
"@backstage/plugin-techdocs-react": "^1.3.0",
"@backstage/plugin-user-settings": "^0.8.23",
"@backstage/theme": "^0.6.6",
"@backstage/app-defaults": "^1.6.4",
"@backstage/catalog-model": "^1.7.5",
"@backstage/cli": "^0.33.1",
"@backstage/core-app-api": "^1.18.0",
"@backstage/core-components": "^0.17.4",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/integration-react": "^1.2.9",
"@backstage/plugin-api-docs": "^0.12.9",
"@backstage/plugin-catalog": "^1.31.1",
"@backstage/plugin-catalog-common": "^1.1.5",
"@backstage/plugin-catalog-graph": "^0.4.21",
"@backstage/plugin-catalog-import": "^0.13.3",
"@backstage/plugin-catalog-react": "^1.19.1",
"@backstage/plugin-org": "^0.6.41",
"@backstage/plugin-permission-react": "^0.4.36",
"@backstage/plugin-scaffolder": "^1.33.0",
"@backstage/plugin-search": "^1.4.28",
"@backstage/plugin-search-react": "^1.9.2",
"@backstage/plugin-techdocs": "^1.13.2",
"@backstage/plugin-techdocs-module-addons-contrib": "^1.1.26",
"@backstage/plugin-techdocs-react": "^1.3.1",
"@backstage/plugin-user-settings": "^0.8.24",
"@backstage/theme": "^0.6.7",
"@material-ui/core": "^4.12.2",
"@material-ui/icons": "^4.9.1",
"react": "^18.0.2",
@ -51,7 +51,7 @@
"react-router-dom": "^6.3.0"
},
"devDependencies": {
"@backstage/test-utils": "^1.7.9",
"@backstage/test-utils": "^1.7.10",
"@playwright/test": "^1.32.3",
"@testing-library/dom": "^9.0.0",
"@testing-library/jest-dom": "^6.0.0",

View File

@ -22,27 +22,27 @@
},
"dependencies": {
"@backstage-community/plugin-azure-storage-explorer-backend": "workspace:^",
"@backstage/backend-defaults": "^0.11.0",
"@backstage/catalog-client": "^1.10.1",
"@backstage/config": "^1.3.2",
"@backstage/plugin-app-backend": "^0.5.3",
"@backstage/plugin-auth-backend": "^0.25.1",
"@backstage/plugin-auth-backend-module-github-provider": "^0.3.4",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.9",
"@backstage/plugin-auth-node": "^0.6.4",
"@backstage/plugin-catalog-backend": "^2.1.0",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.9",
"@backstage/plugin-permission-backend": "^0.7.1",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.9",
"@backstage/plugin-permission-common": "^0.9.0",
"@backstage/plugin-permission-node": "^0.10.1",
"@backstage/plugin-proxy-backend": "^0.6.3",
"@backstage/plugin-scaffolder-backend": "^2.0.0",
"@backstage/plugin-search-backend": "^2.0.3",
"@backstage/plugin-search-backend-module-catalog": "^0.3.5",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.3",
"@backstage/plugin-search-backend-node": "^1.3.12",
"@backstage/plugin-techdocs-backend": "^2.0.3",
"@backstage/backend-defaults": "^0.11.1",
"@backstage/catalog-client": "^1.10.2",
"@backstage/config": "^1.3.3",
"@backstage/plugin-app-backend": "^0.5.4",
"@backstage/plugin-auth-backend": "^0.25.2",
"@backstage/plugin-auth-backend-module-github-provider": "^0.3.5",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.10",
"@backstage/plugin-auth-node": "^0.6.5",
"@backstage/plugin-catalog-backend": "^3.0.0",
"@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "^0.2.10",
"@backstage/plugin-permission-backend": "^0.7.2",
"@backstage/plugin-permission-backend-module-allow-all-policy": "^0.2.10",
"@backstage/plugin-permission-common": "^0.9.1",
"@backstage/plugin-permission-node": "^0.10.2",
"@backstage/plugin-proxy-backend": "^0.6.4",
"@backstage/plugin-scaffolder-backend": "^2.1.0",
"@backstage/plugin-search-backend": "^2.0.4",
"@backstage/plugin-search-backend-module-catalog": "^0.3.6",
"@backstage/plugin-search-backend-module-techdocs": "^0.4.4",
"@backstage/plugin-search-backend-node": "^1.3.13",
"@backstage/plugin-techdocs-backend": "^2.0.4",
"app": "link:../app",
"better-sqlite3": "^9.0.0",
"dockerode": "^3.3.1",
@ -52,7 +52,7 @@
"winston": "^3.2.1"
},
"devDependencies": {
"@backstage/cli": "^0.33.0"
"@backstage/cli": "^0.33.1"
},
"files": [
"dist"

View File

@ -40,19 +40,19 @@
"dependencies": {
"@azure/identity": "4.10.2",
"@azure/storage-blob": "12.27.0",
"@backstage/backend-defaults": "^0.11.0",
"@backstage/backend-plugin-api": "^1.4.0",
"@backstage/config": "^1.3.2",
"@backstage/backend-defaults": "^0.11.1",
"@backstage/backend-plugin-api": "^1.4.1",
"@backstage/config": "^1.3.3",
"@backstage/errors": "^1.2.7",
"@types/express": "*",
"express": "^4.17.1",
"express-promise-router": "^4.1.0"
},
"devDependencies": {
"@backstage/backend-test-utils": "^1.6.0",
"@backstage/cli": "^0.33.0",
"@backstage/plugin-auth-backend": "^0.25.1",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.9",
"@backstage/backend-test-utils": "^1.7.0",
"@backstage/cli": "^0.33.1",
"@backstage/plugin-auth-backend": "^0.25.2",
"@backstage/plugin-auth-backend-module-guest-provider": "^0.2.10",
"@types/supertest": "^6.0.0",
"supertest": "^7.0.0"
},

View File

@ -39,10 +39,10 @@
"postpack": "backstage-cli package postpack"
},
"dependencies": {
"@backstage/core-components": "^0.17.3",
"@backstage/core-plugin-api": "^1.10.8",
"@backstage/core-components": "^0.17.4",
"@backstage/core-plugin-api": "^1.10.9",
"@backstage/errors": "^1.2.7",
"@backstage/theme": "^0.6.6",
"@backstage/theme": "^0.6.7",
"@material-ui/core": "^4.9.13",
"@material-ui/icons": "^4.9.1",
"@material-ui/lab": "^4.0.0-alpha.61",
@ -54,10 +54,10 @@
"react-router-dom": "6.0.0-beta.0 || ^6.3.0"
},
"devDependencies": {
"@backstage/cli": "^0.33.0",
"@backstage/core-app-api": "^1.17.1",
"@backstage/dev-utils": "^1.1.11",
"@backstage/test-utils": "^1.7.9",
"@backstage/cli": "^0.33.1",
"@backstage/core-app-api": "^1.18.0",
"@backstage/dev-utils": "^1.1.12",
"@backstage/test-utils": "^1.7.10",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^12.1.3",
"@testing-library/user-event": "^14.0.0",

File diff suppressed because it is too large Load Diff

View File

View File

@ -1,5 +0,0 @@
---
'@backstage-community/plugin-bitrise': minor
---
Backstage version bump to v1.41.1

View File

@ -1,5 +1,11 @@
# @backstage-community/plugin-bitrise
## 0.6.0
### Minor Changes
- 8988316: Backstage version bump to v1.41.1
## 0.5.0
### Minor Changes

View File

@ -1,6 +1,6 @@
{
"name": "@backstage-community/plugin-bitrise",
"version": "0.5.0",
"version": "0.6.0",
"description": "A Backstage plugin that integrates towards Bitrise",
"backstage": {
"role": "frontend-plugin",

View File

View File

View File

@ -0,0 +1,8 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

View File

@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@ -0,0 +1,8 @@
.git
.yarn/cache
.yarn/install-state.gz
node_modules
packages/*/src
packages/*/node_modules
plugins
*.local.yaml

View File

@ -0,0 +1 @@
playwright.config.ts

View File

@ -0,0 +1,3 @@
module.exports = {
root: true,
};

56
workspaces/bookmarks/.gitignore vendored Normal file
View File

@ -0,0 +1,56 @@
# macOS
.DS_Store
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Coverage directory generated when running tests with coverage
coverage
# Dependencies
node_modules/
# Yarn files
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
# Node version directives
.nvmrc
# dotenv environment variables file
.env
.env.test
# Build output
dist
dist-types
# Temporary change files created by Vim
*.swp
# MkDocs build output
site
# Local configuration files
*.local.yaml
# Sensitive credentials
*-credentials.yaml
# vscode database functionality support files
*.session.sql
# E2E test reports
e2e-test-report/
# Cache
.cache/

View File

@ -0,0 +1,6 @@
.vscode
coverage
dist
dist-types
knip-report.md
report.api.md

View File

@ -0,0 +1,13 @@
# [Backstage](https://backstage.io)
> [!NOTE]
> See the [plugin README](./plugins/bookmarks/README.md) for more information about the Bookmarks plugin.
This is your newly scaffolded Backstage App, Good Luck!
To start the app, run:
```sh
yarn install
yarn start
```

View File

@ -0,0 +1,64 @@
app:
title: Scaffolded Backstage App
baseUrl: http://localhost:3000
backend:
baseUrl: http://localhost:7007
listen:
port: 7007
# Uncomment the following host directive to bind to specific interfaces
# host: 127.0.0.1
csp:
connect-src: ["'self'", 'http:', 'https:']
# Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference
# Default Helmet Content-Security-Policy values can be removed by setting the key to false
cors:
origin: http://localhost:3000
methods: [GET, HEAD, PATCH, POST, PUT, DELETE]
credentials: true
# This is for local development only, it is not recommended to use this in production
# The production database configuration is stored in app-config.production.yaml
database:
client: better-sqlite3
connection: ':memory:'
# workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir
auth:
# see https://backstage.io/docs/auth/ to learn about auth providers
providers:
# See https://backstage.io/docs/auth/guest/provider
guest: {}
catalog:
import:
entityFilename: catalog-info.yaml
pullRequestBranchName: backstage-integration
rules:
- allow: [Component, System, API, Resource, Location]
locations:
# Local example data, file locations are relative to the backend process, typically `packages/backend`
- type: file
target: ../../examples/entities.yaml
# Local example organizational data
- type: file
target: ../../examples/org.yaml
rules:
- allow: [User, Group]
- type: file
target: ./plugins/bookmarks/examples/component/catalog-info.yaml
## Uncomment these lines to add more example data
# - type: url
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml
## Uncomment these lines to add an example org
# - type: url
# target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml
# rules:
# - allow: [User, Group]
# see https://backstage.io/docs/permissions/getting-started for more on the permission framework
permission:
# setting this to `false` will disable permissions
enabled: false

View File

@ -0,0 +1,3 @@
{
"version": "1.41.0"
}

View File

@ -0,0 +1,3 @@
{
"knip-reports": true
}

View File

@ -0,0 +1,13 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: bookmarks-test-app
description: An example of a Backstage application.
# Example for optional annotations
# annotations:
# github.com/project-slug: backstage/backstage
# backstage.io/techdocs-ref: dir:.
spec:
type: website
owner: john@example.com
lifecycle: experimental

View File

@ -0,0 +1,66 @@
{
"name": "@internal/bookmarks",
"version": "1.0.0",
"private": true,
"engines": {
"node": "20 || 22"
},
"scripts": {
"start": "backstage-cli repo start",
"build:backend": "yarn workspace backend build",
"build:all": "backstage-cli repo build --all",
"build:api-reports": "yarn build:api-reports:only",
"build:api-reports:only": "backstage-repo-tools api-reports -o ae-wrong-input-file-type,ae-undocumented --validate-release-tags",
"build:knip-reports": "backstage-repo-tools knip-reports",
"tsc": "tsc",
"tsc:full": "tsc --skipLibCheck false --incremental false",
"clean": "backstage-cli repo clean",
"test": "backstage-cli repo test",
"test:all": "backstage-cli repo test --coverage",
"fix": "backstage-cli repo fix",
"lint": "backstage-cli repo lint --since origin/master",
"lint:all": "backstage-cli repo lint",
"prettier:check": "prettier --check .",
"prettier:fix": "prettier --write .",
"new": "backstage-cli new"
},
"workspaces": {
"packages": [
"packages/*",
"plugins/*"
]
},
"devDependencies": {
"@backstage/cli": "^0.33.1",
"@backstage/e2e-test-utils": "^0.1.1",
"@backstage/repo-tools": "^0.15.0",
"@changesets/cli": "^2.29.5",
"node-gyp": "^11.3.0",
"prettier": "^3.6.2",
"typescript": "~5.9.2"
},
"resolutions": {
"@types/react": "^18",
"@types/react-dom": "^18"
},
"prettier": "@backstage/cli/config/prettier",
"lint-staged": {
"*.{js,jsx,ts,tsx,mjs,cjs}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
},
"jest": {
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
}
}
}

View File

@ -0,0 +1,12 @@
# The Plugins Folder
> [!NOTE]
> See the [plugin README](./bookmarks/README.md) for more information about the Bookmarks plugin.
This is where your own plugins and their associated modules live, each in a
separate folder of its own.
If you want to create a new plugin here, go to your project root directory, run
the command `yarn new`, and follow the on-screen instructions.
You can also check out existing plugins on [the plugin marketplace](https://backstage.io/plugins)!

View File

@ -0,0 +1 @@
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);

View File

@ -0,0 +1,7 @@
# @backstage-community/plugin-bookmarks
## 0.2.0
### Minor Changes
- 80b21b2: Initial release

Some files were not shown because too many files have changed in this diff Show More