Skip to content

Commit 4bb71eb

Browse files
authored
feat: add backend module (#44)
* feat: add backend module * docs: update readme * Bump version
1 parent 5bdf2a4 commit 4bb71eb

File tree

4 files changed

+54
-32
lines changed

4 files changed

+54
-32
lines changed

README.md

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,40 +35,16 @@ yarn add --cwd packages/backend @parfuemerie-douglas/scaffolder-backend-module-a
3535
```
3636

3737
Configure the actions (you can check the
38-
[docs](https://backstage.io/docs/features/software-templates/writing-custom-actions#registering-custom-actions)
38+
[docs](https://backstage.io/docs/features/software-templates/writing-custom-actions#register-action-with-new-backend-system)
3939
to see all options):
4040

4141
```typescript
42-
// packages/backend/src/plugins/scaffolder.ts
43-
44-
import {
45-
createAzurePipelineAction,
46-
permitAzurePipelineAction,
47-
runAzurePipelineAction,
48-
} from "@parfuemerie-douglas/scaffolder-backend-module-azure-pipelines";
49-
50-
const actions = [
51-
createAzurePipelineAction({ integrations }),
52-
permitAzurePipelineAction({ integrations }),
53-
runAzurePipelineAction({ integrations }),
54-
...createBuiltInActions({
55-
containerRunner,
56-
catalogClient,
57-
integrations,
58-
config: env.config,
59-
reader: env.reader,
60-
}),
61-
];
62-
63-
return await createRouter({
64-
containerRunner,
65-
catalogClient,
66-
actions,
67-
logger: env.logger,
68-
config: env.config,
69-
database: env.database,
70-
reader: env.reader,
71-
});
42+
// packages/backend/src/index.ts
43+
const backend = createBackend();
44+
45+
// ...
46+
47+
backend.add(import('@parfuemerie-douglas/scaffolder-backend-module-azure-pipelines'))
7248
```
7349

7450
The Azure pipeline actions use an [Azure PAT (personal access

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@parfuemerie-douglas/scaffolder-backend-module-azure-pipelines",
3-
"version": "1.2.0",
3+
"version": "1.3.0",
44
"description": "A collection of Backstage scaffolder backend modules for Azure pipelines.",
55
"main": "dist/index.cjs.js",
66
"types": "dist/index.d.ts",
@@ -42,6 +42,7 @@
4242
"homepage": "https://github.com/Parfuemerie-Douglas/scaffolder-backend-module-azure-pipelines#readme",
4343
"dependencies": {
4444
"@backstage/backend-common": "^0.23.3",
45+
"@backstage/backend-plugin-api": "^0.7.0",
4546
"@backstage/errors": "^1.2.4",
4647
"@backstage/integration": "^1.13.0",
4748
"@backstage/plugin-scaffolder-backend": "^1.23.0",

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@
1414
* limitations under the License.
1515
*/
1616

17+
export { scaffolderModuleAzurePipelines as default } from './module';
1718
export * from "./actions";

src/module.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
2+
import {
3+
createBackendModule,
4+
coreServices
5+
} from '@backstage/backend-plugin-api';
6+
import { ScmIntegrations } from '@backstage/integration';
7+
8+
import {
9+
createAzurePipelineAction,
10+
permitAzurePipelineAction,
11+
runAzurePipelineAction
12+
} from './actions';
13+
14+
export const scaffolderModuleAzurePipelines = createBackendModule({
15+
pluginId: 'scaffolder',
16+
moduleId: 'azure-pipelines',
17+
register(env) {
18+
env.registerInit({
19+
deps: {
20+
scaffolder: scaffolderActionsExtensionPoint,
21+
logger: coreServices.logger,
22+
config: coreServices.rootConfig,
23+
discovery: coreServices.discovery,
24+
reader: coreServices.urlReader,
25+
},
26+
async init({ scaffolder, config}) {
27+
28+
const integrations = ScmIntegrations.fromConfig(config);
29+
30+
scaffolder.addActions(
31+
createAzurePipelineAction({
32+
integrations,
33+
}),
34+
permitAzurePipelineAction({
35+
integrations,
36+
}),
37+
runAzurePipelineAction({
38+
integrations,
39+
})
40+
);
41+
},
42+
});
43+
},
44+
});

0 commit comments

Comments
 (0)