refactor(bitbucketCloud): extracts function getAuthorizationHeader into helper module

Signed-off-by: Matthew Prinold <matthewprinold@gmail.com>
This commit is contained in:
Matthew Prinold
2023-12-19 12:15:56 +00:00
parent 8de491f77a
commit 315c1903c2
2 changed files with 39 additions and 23 deletions
@@ -25,6 +25,7 @@ import {
import fetch, { Response, RequestInit } from 'node-fetch';
import { Config } from '@backstage/config';
import { getAuthorizationHeader } from './helpers';
const createRepository = async (opts: {
workspace: string;
@@ -93,29 +94,6 @@ const createRepository = async (opts: {
return { remoteUrl, repoContentsUrl };
};
const getAuthorizationHeader = (config: {
username?: string;
appPassword?: string;
token?: string;
}) => {
if (config.username && config.appPassword) {
const buffer = Buffer.from(
`${config.username}:${config.appPassword}`,
'utf8',
);
return `Basic ${buffer.toString('base64')}`;
}
if (config.token) {
return `Bearer ${config.token}`;
}
throw new Error(
`Authorization has not been provided for Bitbucket Cloud. Please add either username + appPassword to the Integrations config or a user login auth token`,
);
};
/**
* Creates a new action that initializes a git repository of the content in the workspace
* and publishes it to Bitbucket Cloud.
@@ -0,0 +1,38 @@
/*
* 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.
*/
export const getAuthorizationHeader = (config: {
username?: string;
appPassword?: string;
token?: string;
}) => {
if (config.username && config.appPassword) {
const buffer = Buffer.from(
`${config.username}:${config.appPassword}`,
'utf8',
);
return `Basic ${buffer.toString('base64')}`;
}
if (config.token) {
return `Bearer ${config.token}`;
}
throw new Error(
`Authorization has not been provided for Bitbucket Cloud. Please add either username + appPassword to the Integrations config or a user login auth token`,
);
};