chore: re-exported of the types

Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
blam
2023-12-06 15:06:18 +01:00
parent 5e0c1f36e2
commit 7640fe4957
4 changed files with 534 additions and 0 deletions
+101
View File
@@ -4,6 +4,8 @@
```ts
import { ActionContext as ActionContext_2 } from '@backstage/plugin-scaffolder-node';
import * as azure from '@backstage/plugin-scaffolder-backend-module-azure';
import * as bitbucket from '@backstage/plugin-scaffolder-backend-module-bitbucket';
import { CatalogApi } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { Duration } from 'luxon';
@@ -11,6 +13,9 @@ import { executeShellCommand as executeShellCommand_2 } from '@backstage/plugin-
import { ExecuteShellCommandOptions } from '@backstage/plugin-scaffolder-node';
import express from 'express';
import { fetchContents as fetchContents_2 } from '@backstage/plugin-scaffolder-node';
import * as gerrit from '@backstage/plugin-scaffolder-backend-module-gerrit';
import * as github from '@backstage/plugin-scaffolder-backend-module-github';
import * as gitlab from '@backstage/plugin-scaffolder-backend-module-gitlab';
import { HumanDuration } from '@backstage/types';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { JsonObject } from '@backstage/types';
@@ -25,6 +30,7 @@ import { RESOURCE_TYPE_SCAFFOLDER_ACTION } from '@backstage/plugin-scaffolder-co
import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder-common/alpha';
import { ScaffolderEntitiesProcessor as ScaffolderEntitiesProcessor_2 } from '@backstage/plugin-catalog-backend-module-scaffolder-entity-model';
import { Schema } from 'jsonschema';
import { ScmIntegrationRegistry } from '@backstage/integration';
import { ScmIntegrations } from '@backstage/integration';
import { SerializedTask as SerializedTask_2 } from '@backstage/plugin-scaffolder-node';
import { SerializedTaskEvent as SerializedTaskEvent_2 } from '@backstage/plugin-scaffolder-node';
@@ -193,6 +199,101 @@ export const createFilesystemRenameAction: () => TemplateAction_2<
JsonObject
>;
// @public @deprecated (undocumented)
export const createGithubActionsDispatchAction: typeof github.createGithubActionsDispatchAction;
// @public @deprecated (undocumented)
export const createGithubDeployKeyAction: typeof github.createGithubDeployKeyAction;
// @public @deprecated (undocumented)
export const createGithubEnvironmentAction: typeof github.createGithubEnvironmentAction;
// @public @deprecated (undocumented)
export const createGithubIssuesLabelAction: typeof github.createGithubIssuesLabelAction;
// @public @deprecated (undocumented)
export type CreateGithubPullRequestActionOptions =
github.CreateGithubPullRequestActionOptions;
// @public @deprecated (undocumented)
export const createGithubRepoCreateAction: typeof github.createGithubRepoCreateAction;
// @public @deprecated (undocumented)
export const createGithubRepoPushAction: typeof github.createGithubRepoPushAction;
// @public @deprecated (undocumented)
export const createGithubWebhookAction: typeof github.createGithubWebhookAction;
// @public @deprecated (undocumented)
export const createPublishAzureAction: typeof azure.createPublishAzureAction;
// @public @deprecated (undocumented)
export const createPublishBitbucketAction: typeof bitbucket.createPublishBitbucketAction;
// @public @deprecated (undocumented)
export const createPublishBitbucketCloudAction: typeof bitbucket.createPublishBitbucketCloudAction;
// @public @deprecated (undocumented)
export const createPublishBitbucketServerAction: typeof bitbucket.createPublishBitbucketServerAction;
// @public @deprecated (undocumented)
export const createPublishBitbucketServerPullRequestAction: typeof bitbucket.createPublishBitbucketServerPullRequestAction;
// @public @deprecated (undocumented)
export const createPublishGerritAction: typeof gerrit.createPublishGerritAction;
// @public @deprecated (undocumented)
export const createPublishGerritReviewAction: typeof gerrit.createPublishGerritReviewAction;
// @public @deprecated (undocumented)
export const createPublishGithubAction: typeof github.createPublishGithubAction;
// @public @deprecated (undocumented)
export const createPublishGithubPullRequestAction: (
options: github.CreateGithubPullRequestActionOptions,
) => TemplateAction_2<
{
title: string;
branchName: string;
targetBranchName?: string | undefined;
description: string;
repoUrl: string;
draft?: boolean | undefined;
targetPath?: string | undefined;
sourcePath?: string | undefined;
token?: string | undefined;
reviewers?: string[] | undefined;
teamReviewers?: string[] | undefined;
commitMessage?: string | undefined;
update?: boolean | undefined;
},
JsonObject
>;
// @public @deprecated (undocumented)
export const createPublishGitlabAction: typeof gitlab.createPublishGitlabAction;
// @public @deprecated (undocumented)
export const createPublishGitlabMergeRequestAction: (options: {
integrations: ScmIntegrationRegistry;
}) => TemplateAction_2<
{
repoUrl: string;
title: string;
description: string;
branchName: string;
targetBranchName?: string | undefined;
sourcePath?: string | undefined;
targetPath?: string | undefined;
token?: string | undefined;
commitAction?: 'update' | 'delete' | 'create' | undefined;
projectid?: string | undefined;
removeSourceBranch?: boolean | undefined;
assignee?: string | undefined;
},
JsonObject
>;
// @public
export function createRouter(options: RouterOptions): Promise<express.Router>;
@@ -0,0 +1,126 @@
/*
* Copyright 2023 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 * as github from '@backstage/plugin-scaffolder-backend-module-github';
import * as gitlab from '@backstage/plugin-scaffolder-backend-module-gitlab';
import * as azure from '@backstage/plugin-scaffolder-backend-module-azure';
import * as bitbucket from '@backstage/plugin-scaffolder-backend-module-bitbucket';
import * as gerrit from '@backstage/plugin-scaffolder-backend-module-gerrit';
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubActionsDispatchAction =
github.createGithubActionsDispatchAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubDeployKeyAction = github.createGithubDeployKeyAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubEnvironmentAction =
github.createGithubEnvironmentAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubIssuesLabelAction =
github.createGithubIssuesLabelAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export type CreateGithubPullRequestActionOptions =
github.CreateGithubPullRequestActionOptions;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubRepoCreateAction = github.createGithubRepoCreateAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubRepoPushAction = github.createGithubRepoPushAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createGithubWebhookAction = github.createGithubWebhookAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createPublishGithubAction = github.createPublishGithubAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-github instead
*/
export const createPublishGithubPullRequestAction =
github.createPublishGithubPullRequestAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-bitbucket instead
*/
export const createPublishBitbucketAction =
bitbucket.createPublishBitbucketAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-bitbucket instead
*/
export const createPublishBitbucketCloudAction =
bitbucket.createPublishBitbucketCloudAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-bitbucket instead
*/
export const createPublishBitbucketServerAction =
bitbucket.createPublishBitbucketServerAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-bitbucket instead
*/
export const createPublishBitbucketServerPullRequestAction =
bitbucket.createPublishBitbucketServerPullRequestAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-azure instead
*/
export const createPublishAzureAction = azure.createPublishAzureAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-gerrit instead
*/
export const createPublishGerritAction = gerrit.createPublishGerritAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-gerrit instead
*/
export const createPublishGerritReviewAction =
gerrit.createPublishGerritReviewAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-gitlab instead
*/
export const createPublishGitlabAction = gitlab.createPublishGitlabAction;
/**
* @public @deprecated use import from \@backstage/plugin-scaffolder-backend-module-gitlab instead
*/
export const createPublishGitlabMergeRequestAction =
gitlab.createPublishGitlabMergeRequestAction;
@@ -15,4 +15,6 @@
*/
export * from './builtin';
export * from './deprecated';
export { TemplateActionRegistry } from './TemplateActionRegistry';
@@ -0,0 +1,305 @@
/*
* Copyright 2021 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 { Git, getVoidLogger } from '@backstage/backend-common';
import { commitAndPushRepo, initRepoAndPush } from './gitHelpers';
jest.mock('@backstage/backend-common', () => ({
Git: {
fromAuth: jest.fn().mockReturnValue({
init: jest.fn(),
add: jest.fn(),
checkout: jest.fn(),
commit: jest
.fn()
.mockResolvedValue('220f19cc36b551763d157f1b5e4a4b446165dbd6'),
fetch: jest.fn(),
addRemote: jest.fn(),
push: jest.fn(),
}),
},
getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger,
}));
const mockedGit = Git.fromAuth({
logger: getVoidLogger(),
});
describe('initRepoAndPush', () => {
afterEach(() => {
jest.clearAllMocks();
});
describe('with minimal parameters', () => {
beforeEach(async () => {
await initRepoAndPush({
dir: '/test/repo/dir/',
remoteUrl: 'git@github.com:test/repo.git',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
});
});
it('initializes the repo', () => {
expect(mockedGit.init).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
defaultBranch: 'master',
});
});
it('stages all files in the repo', () => {
expect(mockedGit.add).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
filepath: '.',
});
});
it('creates an initial commit', () => {
expect(mockedGit.commit).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
message: 'Initial commit',
author: {
name: 'Scaffolder',
email: 'scaffolder@backstage.io',
},
committer: {
name: 'Scaffolder',
email: 'scaffolder@backstage.io',
},
});
});
it('adds the appropriate remote', () => {
expect(mockedGit.addRemote).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
url: 'git@github.com:test/repo.git',
remote: 'origin',
});
});
it('pushes to the remote', () => {
expect(mockedGit.push).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
remote: 'origin',
});
});
});
it('with token', async () => {
await initRepoAndPush({
dir: '/test/repo/dir/',
remoteUrl: 'git@github.com:test/repo.git',
auth: {
token: 'test-token',
},
logger: getVoidLogger(),
});
expect(mockedGit.init).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
defaultBranch: 'master',
});
});
it('allows overriding the default branch', async () => {
await initRepoAndPush({
dir: '/test/repo/dir/',
defaultBranch: 'trunk',
remoteUrl: 'git@github.com:test/repo.git',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
});
expect(mockedGit.init).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
defaultBranch: 'trunk',
});
});
it('allows overriding the author', async () => {
await initRepoAndPush({
dir: '/test/repo/dir/',
gitAuthorInfo: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
remoteUrl: 'git@github.com:test/repo.git',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
});
expect(mockedGit.commit).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
message: 'Initial commit',
author: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
committer: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
});
});
});
describe('commitAndPushRepo', () => {
afterEach(() => {
jest.clearAllMocks();
});
describe('with minimal parameters', () => {
beforeEach(async () => {
await commitAndPushRepo({
dir: '/test/repo/dir/',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
commitMessage: 'commit message',
});
});
it('fetches commits', () => {
expect(mockedGit.fetch).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
});
});
it('checkouts to master', () => {
expect(mockedGit.checkout).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
ref: 'master',
});
});
it('stages all files in the repo', () => {
expect(mockedGit.add).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
filepath: '.',
});
});
it('creates a commit', () => {
expect(mockedGit.commit).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
message: 'commit message',
author: {
name: 'Scaffolder',
email: 'scaffolder@backstage.io',
},
committer: {
name: 'Scaffolder',
email: 'scaffolder@backstage.io',
},
});
});
it('pushes to the remote', () => {
expect(mockedGit.push).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
remote: 'origin',
remoteRef: 'refs/heads/master',
});
});
});
it('allows overriding the default branch', async () => {
await commitAndPushRepo({
dir: '/test/repo/dir/',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
commitMessage: 'commit message',
branch: 'otherbranch',
});
expect(mockedGit.checkout).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
ref: 'otherbranch',
});
expect(mockedGit.push).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
remote: 'origin',
remoteRef: 'refs/heads/otherbranch',
});
});
it('allows overriding the remote ref', async () => {
await commitAndPushRepo({
dir: '/test/repo/dir/',
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
commitMessage: 'commit message',
remoteRef: 'refs/for/master',
});
expect(mockedGit.checkout).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
ref: 'master',
});
expect(mockedGit.push).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
remote: 'origin',
remoteRef: 'refs/for/master',
});
});
it('allows overriding the author', async () => {
await commitAndPushRepo({
dir: '/test/repo/dir/',
commitMessage: 'commit message',
gitAuthorInfo: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
auth: {
username: 'test-user',
password: 'test-password',
},
logger: getVoidLogger(),
branch: 'master',
});
expect(mockedGit.commit).toHaveBeenCalledWith({
dir: '/test/repo/dir/',
message: 'commit message',
author: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
committer: {
name: 'Custom Scaffolder Author',
email: 'scaffolder@example.org',
},
});
});
});