2019-11-19 23:06:27 +08:00
"use strict" ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2020-03-02 20:52:38 +08:00
const core _1 = require ( "@actions/core" ) ;
/* Utility function that checks to see if a value is undefined or not. */
exports . isNullOrUndefined = ( value ) => typeof value === "undefined" || value === null || value === "" ;
/* Generates a token type used for the action. */
exports . generateTokenType = ( action ) => action . ssh
? "SSH Deploy Key"
: action . accessToken
? "Access Token"
: action . gitHubToken
? "GitHub Token"
: "..." ;
/* Generates a the repository path used to make the commits. */
exports . generateRepositoryPath = ( action ) => action . ssh
? ` git@github.com: ${ action . gitHubRepository } `
: ` https:// ${ action . accessToken ||
` x-access-token: ${ action . gitHubToken } ` } @ github . com / $ { action . gitHubRepository } . git ` ;
/* Checks for the required tokens and formatting. Throws an error if any case is matched. */
exports . hasRequiredParameters = ( action ) => {
if ( ( exports . isNullOrUndefined ( action . accessToken ) &&
exports . isNullOrUndefined ( action . gitHubToken ) &&
exports . isNullOrUndefined ( action . ssh ) ) ||
exports . isNullOrUndefined ( action . repositoryPath ) ) {
throw new Error ( "No deployment token/method was provided. You must provide the action with either a Personal Access Token or the GitHub Token secret in order to deploy. If you wish to use an ssh deploy token then you must set SSH to true." ) ;
}
if ( exports . isNullOrUndefined ( action . branch ) ) {
throw new Error ( "Branch is required." ) ;
}
if ( ! action . folder || exports . isNullOrUndefined ( action . folder ) ) {
throw new Error ( "You must provide the action with a folder to deploy." ) ;
}
if ( action . folder . startsWith ( "/" ) || action . folder . startsWith ( "./" ) ) {
throw new Error ( "Incorrectly formatted build folder. The deployment folder cannot be prefixed with '/' or './'. Instead reference the folder name directly." ) ;
}
} ;
/* Suppresses sensitive information from being exposed in error messages. */
exports . suppressSensitiveInformation = ( str , action ) => {
let value = str ;
if ( core _1 . getInput ( "DEBUG" ) ) {
// Data is unmasked in debug mode.
return value ;
}
if ( action . accessToken ) {
value = value . replace ( action . accessToken , "***" ) ;
}
if ( action . gitHubToken ) {
value = value . replace ( action . gitHubToken , "***" ) ;
}
if ( action . repositoryPath ) {
value = value . replace ( action . repositoryPath , "***" ) ;
}
return value ;
} ;