@backstage-community/plugin-github-actions 0.6.22 → 0.6.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @backstage-community/plugin-github-actions
2
2
 
3
+ ## 0.6.24
4
+
5
+ ### Patch Changes
6
+
7
+ - 9501620: Updating README to include missing steps
8
+
9
+ ## 0.6.23
10
+
11
+ ### Patch Changes
12
+
13
+ - 6fdae83: Backstage version bump to v1.32.0
14
+
3
15
  ## 0.6.22
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -9,6 +9,7 @@ Website: [https://github.com/actions](https://github.com/actions)
9
9
  - [Screenshots](#screenshots)
10
10
  - [Setup](#setup)
11
11
  - [Generic Requirements](#generic-requirements)
12
+ - [Provide OAuth Credentials](#provide-oauth-credentials)
12
13
  - [Installation](#installation)
13
14
  - [Integrating with `EntityPage`](#integrating-with-entitypage)
14
15
  - [Integrating with `EntityPage` (New Frontend System)](#integrating-with-entitypage-new-frontend-system)
@@ -25,13 +26,21 @@ TBD
25
26
 
26
27
  ### Generic Requirements
27
28
 
28
- 1. Provide OAuth credentials:
29
- 1. [Create an OAuth App](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/) in the GitHub organization with the callback URL set to `http://localhost:7007/api/auth/github/handler/frame`.
30
- **Note**: This can be done with a user account also. Depending on if you use a personal account or an organization account will change the repositories this is functional with
29
+ #### Provide OAuth Credentials
30
+
31
+ Create an OAuth App in your GitHub organization, setting the callback URL to:
32
+
33
+ `http://localhost:7007/api/auth/github/handler/frame`
34
+
35
+ Replacing `localhost:7007` with the base URL of your backstage backend instance.
36
+
37
+ > **Note**: This setup can also be completed with a personal GitHub account.
38
+ > Keep in mind that using a personal account versus an organization account will affect which repositories the app can access.
39
+
31
40
  1. Take the Client ID and Client Secret from the newly created app's settings page and you can do either:
32
41
 
33
- 1. Put them into `AUTH_GITHUB_CLIENT_ID` and `AUTH_GITHUB_CLIENT_SECRET` environment variables.
34
- 2. Add them to the app-config like below:
42
+ - Put them into `AUTH_GITHUB_CLIENT_ID` and `AUTH_GITHUB_CLIENT_SECRET` environment variables.
43
+ - Add them to the app-config like below:
35
44
 
36
45
  ```yaml
37
46
  auth:
@@ -42,7 +51,7 @@ TBD
42
51
  clientSecret: ${AUTH_GITHUB_CLIENT_SECRET}
43
52
  ```
44
53
 
45
- 1. Annotate your component with a correct GitHub Actions repository and owner:
54
+ 2. Annotate your component with a correct GitHub Actions repository and owner:
46
55
 
47
56
  The annotation key is `github.com/project-slug`.
48
57
 
@@ -71,6 +80,18 @@ TBD
71
80
  yarn --cwd packages/app add @backstage-community/plugin-github-actions
72
81
  ```
73
82
 
83
+ > **Note**: If you are using GitHub auth to sign in, you may already have the GitHub provider, **if it is not the case**, install it by running:
84
+ >
85
+ > ```tsx
86
+ > yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-github-provider
87
+ > ```
88
+ >
89
+ > And add the following dependency to your backend index file:
90
+ >
91
+ > ```tsx
92
+ > backend.add(import('@backstage/plugin-auth-backend-module-github-provider'));
93
+ > ```
94
+
74
95
  ### Integrating with `EntityPage`
75
96
 
76
97
  1. Add to the app `EntityPage` component:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-github-actions__alpha",
3
- "version": "0.6.22",
3
+ "version": "0.6.24",
4
4
  "main": "../dist/alpha.esm.js",
5
5
  "module": "../dist/alpha.esm.js",
6
6
  "types": "../dist/alpha.d.ts"
@@ -1 +1 @@
1
- {"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.ts"],"sourcesContent":["import {\n configApiRef,\n ApiBlueprint,\n createApiFactory,\n} from '@backstage/frontend-plugin-api';\nimport { scmAuthApiRef } from '@backstage/integration-react';\nimport { githubActionsApiRef, GithubActionsClient } from '../api';\n\n/**\n * @alpha\n */\nexport const githubActionsApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\n api: githubActionsApiRef,\n deps: { configApi: configApiRef, scmAuthApi: scmAuthApiRef },\n factory: ({ configApi, scmAuthApi }) =>\n new GithubActionsClient({ configApi, scmAuthApi }),\n }),\n },\n});\n"],"names":[],"mappings":";;;;;AAWa,MAAA,gBAAA,GAAmB,aAAa,IAAK,CAAA;AAAA,EAChD,MAAQ,EAAA;AAAA,IACN,SAAS,gBAAiB,CAAA;AAAA,MACxB,GAAK,EAAA,mBAAA;AAAA,MACL,IAAM,EAAA,EAAE,SAAW,EAAA,YAAA,EAAc,YAAY,aAAc,EAAA;AAAA,MAC3D,OAAA,EAAS,CAAC,EAAE,SAAW,EAAA,UAAA,EACrB,KAAA,IAAI,mBAAoB,CAAA,EAAE,SAAW,EAAA,UAAA,EAAY,CAAA;AAAA,KACpD,CAAA;AAAA,GACH;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"apis.esm.js","sources":["../../src/alpha/apis.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n configApiRef,\n ApiBlueprint,\n createApiFactory,\n} from '@backstage/frontend-plugin-api';\nimport { scmAuthApiRef } from '@backstage/integration-react';\nimport { githubActionsApiRef, GithubActionsClient } from '../api';\n\n/**\n * @alpha\n */\nexport const githubActionsApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\n api: githubActionsApiRef,\n deps: { configApi: configApiRef, scmAuthApi: scmAuthApiRef },\n factory: ({ configApi, scmAuthApi }) =>\n new GithubActionsClient({ configApi, scmAuthApi }),\n }),\n },\n});\n"],"names":[],"mappings":";;;;;AA0Ba,MAAA,gBAAA,GAAmB,aAAa,IAAK,CAAA;AAAA,EAChD,MAAQ,EAAA;AAAA,IACN,SAAS,gBAAiB,CAAA;AAAA,MACxB,GAAK,EAAA,mBAAA;AAAA,MACL,IAAM,EAAA,EAAE,SAAW,EAAA,YAAA,EAAc,YAAY,aAAc,EAAA;AAAA,MAC3D,OAAA,EAAS,CAAC,EAAE,SAAW,EAAA,UAAA,EACrB,KAAA,IAAI,mBAAoB,CAAA,EAAE,SAAW,EAAA,UAAA,EAAY,CAAA;AAAA,KACpD,CAAA;AAAA,GACH;AACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"entityCards.esm.js","sources":["../../src/alpha/entityCards.tsx"],"sourcesContent":["import React from 'react';\nimport { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha';\n\n/**\n * @alpha\n */\nexport const entityGithubActionsCard = EntityCardBlueprint.make({\n name: 'workflow-runs',\n params: {\n filter: 'kind:component',\n loader: () =>\n import('../components/Router').then(m => <m.Router view=\"cards\" />),\n },\n});\n\n/**\n * @alpha\n */\nexport const entityLatestGithubActionRunCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'latest-workflow-run',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.LatestWorkflowRunCard {...config.props} />\n )),\n });\n },\n });\n\n/**\n * @alpha\n */\nexport const entityLatestGithubActionsForBranchCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'latest-branch-workflow-runs',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.LatestWorkflowsForBranchCard {...config.props} />\n )),\n });\n },\n });\n\n/**\n * @alpha\n */\nexport const entityRecentGithubActionsRunsCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'recent-workflow-runs',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n dense: z.boolean().default(false),\n limit: z.number().default(5).optional(),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.RecentWorkflowRunsCard {...config.props} />\n )),\n });\n },\n });\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entityCards.esm.js","sources":["../../src/alpha/entityCards.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\nimport { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha';\n\n/**\n * @alpha\n */\nexport const entityGithubActionsCard = EntityCardBlueprint.make({\n name: 'workflow-runs',\n params: {\n filter: 'kind:component',\n loader: () =>\n import('../components/Router').then(m => <m.Router view=\"cards\" />),\n },\n});\n\n/**\n * @alpha\n */\nexport const entityLatestGithubActionRunCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'latest-workflow-run',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.LatestWorkflowRunCard {...config.props} />\n )),\n });\n },\n });\n\n/**\n * @alpha\n */\nexport const entityLatestGithubActionsForBranchCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'latest-branch-workflow-runs',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.LatestWorkflowsForBranchCard {...config.props} />\n )),\n });\n },\n });\n\n/**\n * @alpha\n */\nexport const entityRecentGithubActionsRunsCard =\n EntityCardBlueprint.makeWithOverrides({\n name: 'recent-workflow-runs',\n config: {\n schema: {\n props: z =>\n z\n .object({\n branch: z.string().default('master'),\n dense: z.boolean().default(false),\n limit: z.number().default(5).optional(),\n })\n .default({}),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n filter: 'kind:component',\n loader: async () =>\n import('../components/Cards').then(m => (\n <m.RecentWorkflowRunsCard {...config.props} />\n )),\n });\n },\n });\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entityContent.esm.js","sources":["../../src/alpha/entityContent.tsx"],"sourcesContent":["import React from 'react';\nimport { convertLegacyRouteRef } from '@backstage/core-compat-api';\nimport { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\n\n/**\n * @alpha\n */\nexport const entityGithubActionsContent = EntityContentBlueprint.make({\n name: 'entity',\n params: {\n defaultPath: 'github-actions',\n defaultTitle: 'GitHub Actions',\n filter: 'kind:component',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: () =>\n import('../components/Router').then(m => <m.Router view=\"table\" />),\n },\n});\n"],"names":[],"mappings":";;;;;AAQa,MAAA,0BAAA,GAA6B,uBAAuB,IAAK,CAAA;AAAA,EACpE,IAAM,EAAA,QAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,WAAa,EAAA,gBAAA;AAAA,IACb,YAAc,EAAA,gBAAA;AAAA,IACd,MAAQ,EAAA,gBAAA;AAAA,IACR,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,IAC5C,MAAQ,EAAA,MACN,OAAO,6BAAsB,CAAE,CAAA,IAAA,CAAK,CAAK,CAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,CAAE,CAAA,MAAA,EAAF,EAAS,IAAA,EAAK,SAAQ,CAAE,CAAA;AAAA,GACtE;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"entityContent.esm.js","sources":["../../src/alpha/entityContent.tsx"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React from 'react';\nimport { convertLegacyRouteRef } from '@backstage/core-compat-api';\nimport { EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';\nimport { rootRouteRef } from '../routes';\n\n/**\n * @alpha\n */\nexport const entityGithubActionsContent = EntityContentBlueprint.make({\n name: 'entity',\n params: {\n defaultPath: 'github-actions',\n defaultTitle: 'GitHub Actions',\n filter: 'kind:component',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: () =>\n import('../components/Router').then(m => <m.Router view=\"table\" />),\n },\n});\n"],"names":[],"mappings":";;;;;AAuBa,MAAA,0BAAA,GAA6B,uBAAuB,IAAK,CAAA;AAAA,EACpE,IAAM,EAAA,QAAA;AAAA,EACN,MAAQ,EAAA;AAAA,IACN,WAAa,EAAA,gBAAA;AAAA,IACb,YAAc,EAAA,gBAAA;AAAA,IACd,MAAQ,EAAA,gBAAA;AAAA,IACR,QAAA,EAAU,sBAAsB,YAAY,CAAA;AAAA,IAC5C,MAAQ,EAAA,MACN,OAAO,6BAAsB,CAAE,CAAA,IAAA,CAAK,CAAK,CAAA,qBAAA,KAAA,CAAA,aAAA,CAAC,CAAE,CAAA,MAAA,EAAF,EAAS,IAAA,EAAK,SAAQ,CAAE,CAAA;AAAA,GACtE;AACF,CAAC;;;;"}
package/dist/alpha.d.ts CHANGED
@@ -7,127 +7,171 @@ import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api'
7
7
  /**
8
8
  * @alpha
9
9
  */
10
- declare const _default: _backstage_frontend_plugin_api.BackstagePlugin<{
10
+ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
11
11
  entityContent: _backstage_frontend_plugin_api.RouteRef<undefined>;
12
12
  }, {}, {
13
- "api:github-actions": _backstage_frontend_plugin_api.ExtensionDefinition<{}, {}, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_core_plugin_api.AnyApiFactory, "core.api.factory", {}>, {}, {
13
+ "api:github-actions": _backstage_frontend_plugin_api.ExtensionDefinition<{
14
14
  kind: "api";
15
- namespace: undefined;
16
15
  name: undefined;
16
+ config: {};
17
+ configInput: {};
18
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_core_plugin_api.AnyApiFactory, "core.api.factory", {}>;
19
+ inputs: {};
20
+ params: {
21
+ factory: _backstage_core_plugin_api.AnyApiFactory;
22
+ };
17
23
  }>;
18
24
  "entity-card:github-actions/workflow-runs": _backstage_frontend_plugin_api.ExtensionDefinition<{
19
- filter: string | undefined;
20
- }, {
21
- filter?: string | undefined;
22
- }, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
23
- optional: true;
24
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
25
- optional: true;
26
- }>, {}, {
27
25
  kind: "entity-card";
28
- namespace: undefined;
29
26
  name: "workflow-runs";
27
+ config: {
28
+ filter: string | undefined;
29
+ };
30
+ configInput: {
31
+ filter?: string | undefined;
32
+ };
33
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
34
+ optional: true;
35
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
36
+ optional: true;
37
+ }>;
38
+ inputs: {};
39
+ params: {
40
+ loader: () => Promise<JSX.Element>;
41
+ filter?: string | ((entity: _backstage_catalog_model.Entity) => boolean) | undefined;
42
+ };
30
43
  }>;
31
44
  "entity-card:github-actions/latest-workflow-run": _backstage_frontend_plugin_api.ExtensionDefinition<{
32
- props: {
33
- branch: string;
34
- };
35
- } & {
36
- filter: string | undefined;
37
- }, {
38
- props?: {
39
- branch?: string | undefined;
40
- } | undefined;
41
- } & {
42
- filter?: string | undefined;
43
- }, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
44
- optional: true;
45
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
46
- optional: true;
47
- }>, {
48
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
49
- optional: boolean;
50
- singleton: boolean;
45
+ config: {
46
+ props: {
47
+ branch: string;
48
+ };
49
+ } & {
50
+ filter: string | undefined;
51
+ };
52
+ configInput: {
53
+ props?: {
54
+ branch?: string | undefined;
55
+ } | undefined;
56
+ } & {
57
+ filter?: string | undefined;
58
+ };
59
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
60
+ optional: true;
61
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
62
+ optional: true;
51
63
  }>;
52
- }, {
64
+ inputs: {
65
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
66
+ optional: boolean;
67
+ singleton: boolean;
68
+ }>;
69
+ };
53
70
  kind: "entity-card";
54
- namespace: undefined;
55
71
  name: "latest-workflow-run";
72
+ params: {
73
+ loader: () => Promise<JSX.Element>;
74
+ filter?: string | ((entity: _backstage_catalog_model.Entity) => boolean) | undefined;
75
+ };
56
76
  }>;
57
77
  "entity-card:github-actions/latest-branch-workflow-runs": _backstage_frontend_plugin_api.ExtensionDefinition<{
58
- props: {
59
- branch: string;
60
- };
61
- } & {
62
- filter: string | undefined;
63
- }, {
64
- props?: {
65
- branch?: string | undefined;
66
- } | undefined;
67
- } & {
68
- filter?: string | undefined;
69
- }, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
70
- optional: true;
71
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
72
- optional: true;
73
- }>, {
74
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
75
- optional: boolean;
76
- singleton: boolean;
78
+ config: {
79
+ props: {
80
+ branch: string;
81
+ };
82
+ } & {
83
+ filter: string | undefined;
84
+ };
85
+ configInput: {
86
+ props?: {
87
+ branch?: string | undefined;
88
+ } | undefined;
89
+ } & {
90
+ filter?: string | undefined;
91
+ };
92
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
93
+ optional: true;
94
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
95
+ optional: true;
77
96
  }>;
78
- }, {
97
+ inputs: {
98
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
99
+ optional: boolean;
100
+ singleton: boolean;
101
+ }>;
102
+ };
79
103
  kind: "entity-card";
80
- namespace: undefined;
81
104
  name: "latest-branch-workflow-runs";
105
+ params: {
106
+ loader: () => Promise<JSX.Element>;
107
+ filter?: string | ((entity: _backstage_catalog_model.Entity) => boolean) | undefined;
108
+ };
82
109
  }>;
83
110
  "entity-card:github-actions/recent-workflow-runs": _backstage_frontend_plugin_api.ExtensionDefinition<{
84
- props: {
85
- dense: boolean;
86
- branch: string;
87
- limit?: number | undefined;
88
- };
89
- } & {
90
- filter: string | undefined;
91
- }, {
92
- props?: {
93
- dense?: boolean | undefined;
94
- branch?: string | undefined;
95
- limit?: number | undefined;
96
- } | undefined;
97
- } & {
98
- filter?: string | undefined;
99
- }, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
100
- optional: true;
101
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
102
- optional: true;
103
- }>, {
104
- [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
105
- optional: boolean;
106
- singleton: boolean;
111
+ config: {
112
+ props: {
113
+ dense: boolean;
114
+ branch: string;
115
+ limit?: number | undefined;
116
+ };
117
+ } & {
118
+ filter: string | undefined;
119
+ };
120
+ configInput: {
121
+ props?: {
122
+ dense?: boolean | undefined;
123
+ branch?: string | undefined;
124
+ limit?: number | undefined;
125
+ } | undefined;
126
+ } & {
127
+ filter?: string | undefined;
128
+ };
129
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
130
+ optional: true;
131
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
132
+ optional: true;
107
133
  }>;
108
- }, {
134
+ inputs: {
135
+ [x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.AnyExtensionDataRef, {
136
+ optional: boolean;
137
+ singleton: boolean;
138
+ }>;
139
+ };
109
140
  kind: "entity-card";
110
- namespace: undefined;
111
141
  name: "recent-workflow-runs";
142
+ params: {
143
+ loader: () => Promise<JSX.Element>;
144
+ filter?: string | ((entity: _backstage_catalog_model.Entity) => boolean) | undefined;
145
+ };
112
146
  }>;
113
147
  "entity-content:github-actions/entity": _backstage_frontend_plugin_api.ExtensionDefinition<{
114
- path: string | undefined;
115
- title: string | undefined;
116
- filter: string | undefined;
117
- }, {
118
- filter?: string | undefined;
119
- title?: string | undefined;
120
- path?: string | undefined;
121
- }, _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
122
- optional: true;
123
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
124
- optional: true;
125
- }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
126
- optional: true;
127
- }>, {}, {
128
148
  kind: "entity-content";
129
- namespace: undefined;
130
149
  name: "entity";
150
+ config: {
151
+ path: string | undefined;
152
+ title: string | undefined;
153
+ filter: string | undefined;
154
+ };
155
+ configInput: {
156
+ filter?: string | undefined;
157
+ title?: string | undefined;
158
+ path?: string | undefined;
159
+ };
160
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
161
+ optional: true;
162
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
163
+ optional: true;
164
+ }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-filter-expression", {
165
+ optional: true;
166
+ }>;
167
+ inputs: {};
168
+ params: {
169
+ loader: () => Promise<JSX.Element>;
170
+ defaultPath: string;
171
+ defaultTitle: string;
172
+ routeRef?: _backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams> | undefined;
173
+ filter?: string | ((entity: _backstage_catalog_model.Entity) => boolean) | undefined;
174
+ };
131
175
  }>;
132
176
  }>;
133
177
 
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.ts"],"sourcesContent":["import { convertLegacyRouteRefs } from '@backstage/core-compat-api';\nimport { createFrontendPlugin } from '@backstage/frontend-plugin-api';\nimport {\n entityGithubActionsCard,\n entityGithubActionsContent,\n entityLatestGithubActionRunCard,\n entityLatestGithubActionsForBranchCard,\n entityRecentGithubActionsRunsCard,\n githubActionsApi,\n} from './alpha/index';\nimport { rootRouteRef } from './routes';\n\n/**\n * @alpha\n */\nexport default createFrontendPlugin({\n id: 'github-actions',\n routes: convertLegacyRouteRefs({\n entityContent: rootRouteRef,\n }),\n extensions: [\n entityGithubActionsContent,\n entityGithubActionsCard,\n entityLatestGithubActionRunCard,\n entityLatestGithubActionsForBranchCard,\n entityRecentGithubActionsRunsCard,\n githubActionsApi,\n ],\n});\n"],"names":[],"mappings":";;;;;;;AAeA,YAAe,oBAAqB,CAAA;AAAA,EAClC,EAAI,EAAA,gBAAA;AAAA,EACJ,QAAQ,sBAAuB,CAAA;AAAA,IAC7B,aAAe,EAAA,YAAA;AAAA,GAChB,CAAA;AAAA,EACD,UAAY,EAAA;AAAA,IACV,0BAAA;AAAA,IACA,uBAAA;AAAA,IACA,+BAAA;AAAA,IACA,sCAAA;AAAA,IACA,iCAAA;AAAA,IACA,gBAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.ts"],"sourcesContent":["/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { convertLegacyRouteRefs } from '@backstage/core-compat-api';\nimport { createFrontendPlugin } from '@backstage/frontend-plugin-api';\nimport {\n entityGithubActionsCard,\n entityGithubActionsContent,\n entityLatestGithubActionRunCard,\n entityLatestGithubActionsForBranchCard,\n entityRecentGithubActionsRunsCard,\n githubActionsApi,\n} from './alpha/index';\nimport { rootRouteRef } from './routes';\n\n/**\n * @alpha\n */\nexport default createFrontendPlugin({\n id: 'github-actions',\n routes: convertLegacyRouteRefs({\n entityContent: rootRouteRef,\n }),\n extensions: [\n entityGithubActionsContent,\n entityGithubActionsCard,\n entityLatestGithubActionRunCard,\n entityLatestGithubActionsForBranchCard,\n entityRecentGithubActionsRunsCard,\n githubActionsApi,\n ],\n});\n"],"names":[],"mappings":";;;;;;;AA8BA,YAAe,oBAAqB,CAAA;AAAA,EAClC,EAAI,EAAA,gBAAA;AAAA,EACJ,QAAQ,sBAAuB,CAAA;AAAA,IAC7B,aAAe,EAAA,YAAA;AAAA,GAChB,CAAA;AAAA,EACD,UAAY,EAAA;AAAA,IACV,0BAAA;AAAA,IACA,uBAAA;AAAA,IACA,+BAAA;AAAA,IACA,sCAAA;AAAA,IACA,iCAAA;AAAA,IACA,gBAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage-community/plugin-github-actions",
3
- "version": "0.6.22",
3
+ "version": "0.6.24",
4
4
  "description": "A Backstage plugin that integrates towards GitHub Actions",
5
5
  "backstage": {
6
6
  "role": "frontend-plugin",
@@ -19,6 +19,7 @@
19
19
  "default": "./dist/index.esm.js"
20
20
  },
21
21
  "./alpha": {
22
+ "backstage": "@backstage/FrontendPlugin",
22
23
  "import": "./dist/alpha.esm.js",
23
24
  "types": "./dist/alpha.d.ts",
24
25
  "default": "./dist/alpha.esm.js"
@@ -54,14 +55,14 @@
54
55
  "test": "backstage-cli package test"
55
56
  },
56
57
  "dependencies": {
57
- "@backstage/catalog-model": "^1.6.0",
58
- "@backstage/core-compat-api": "^0.2.8",
59
- "@backstage/core-components": "^0.14.10",
60
- "@backstage/core-plugin-api": "^1.9.3",
61
- "@backstage/frontend-plugin-api": "^0.7.0",
62
- "@backstage/integration": "^1.14.0",
63
- "@backstage/integration-react": "^1.1.30",
64
- "@backstage/plugin-catalog-react": "^1.12.3",
58
+ "@backstage/catalog-model": "^1.7.0",
59
+ "@backstage/core-compat-api": "^0.3.1",
60
+ "@backstage/core-components": "^0.15.1",
61
+ "@backstage/core-plugin-api": "^1.10.0",
62
+ "@backstage/frontend-plugin-api": "^0.9.0",
63
+ "@backstage/integration": "^1.15.1",
64
+ "@backstage/integration-react": "^1.2.0",
65
+ "@backstage/plugin-catalog-react": "^1.14.0",
65
66
  "@material-ui/core": "^4.12.2",
66
67
  "@material-ui/icons": "^4.9.1",
67
68
  "@material-ui/lab": "4.0.0-alpha.61",
@@ -72,11 +73,11 @@
72
73
  "react-use": "^17.2.4"
73
74
  },
74
75
  "devDependencies": {
75
- "@backstage/cli": "^0.27.0",
76
- "@backstage/core-app-api": "^1.14.2",
77
- "@backstage/dev-utils": "^1.0.37",
78
- "@backstage/frontend-test-utils": "^0.1.12",
79
- "@backstage/test-utils": "^1.5.10",
76
+ "@backstage/cli": "^0.28.0",
77
+ "@backstage/core-app-api": "^1.15.1",
78
+ "@backstage/dev-utils": "^1.1.2",
79
+ "@backstage/frontend-test-utils": "^0.2.1",
80
+ "@backstage/test-utils": "^1.7.0",
80
81
  "@testing-library/dom": "^10.0.0",
81
82
  "@testing-library/jest-dom": "^6.0.0",
82
83
  "@testing-library/react": "^15.0.0",