* Add 'script/deploy' to enable manual deploys to Heroku * Pass API tokens into 'deploy-to-staging' module usage * Construct Octokit instance to pass in * Get PR branch name and verify state * Reorganize * Rename option to 'octokit' * Add missing option * Actually use the convenience methods for convenience * Simplify top-level script * Top-level script revisions * Add parse-pr-url module * Add create-staging-app-name module * Remove misplaced comment * Pass in owner * Use owner param * More variables * Pass owner along more * Correct prNumber param reference * Add WIP deploy-to-staging module * Prevent 'scripts/' and '.github/actions-scripts/' files from being modified in open source repo * Extract PR author earlier * Add note about optionally supplying DOCUBOT_REPO_PAT env var * Override Heroku env var during AppSetup creation instead of later to avoid triggering a second deploy * Updates to deploy-to-staging module * Lots of updates * Add dyno start-up monitoring and warmup requests * Ignore 'script/deploy' in the repository-references test * Correct path to Octokit helper * Temporarily add a 'gha-' prefix to environment names * Log whole error if terminal. Good for Octokit errors! * Correct Octokit preview configuration * Add more logging around Heroku build and release * Added more timings to log messages * Monitor dyno states specifically from the dyno list view to avoid 404 oddities when Free dynos are dropped and non-Free dynos are added * Don't wait for AppSetup status as it includes the Build time * Updating logging since we don't see DeploymentStatus update messages in the UI =( * Refactor to extract more properties from the PR object * Add a workflow to deploy PRs to Staging * Fix workflow description * Add skeleton workflow and module for undeploying * Remove commented out code * Update undeployment module * Add '--destroy' flag to 'script/deploy' options * Add timeout and concurrency key for undeployment * Add timeout and concurrency key for deployment * Remove dangling unneeded function declaration * Add ant-man preview for inactive deployment state setting * Fix reference to pull request number * Fix reference to pull request number * Refactor to extract more properties from the PR object * Fix reference to pull request number * Remove workflow * Add workflow to undeploy closed PRs from staging * Add repository filters to jobs * Update to using actions/github-script@4.0.2 * Pass more environment variables that affect deployments * Add explicit .js extensions to local require in Actions workflow * Check out the code and install deps first, of course * Try local requires without the explicit .js extension * Use our usual version of Octokit instead of the provided 'github' instance to avoid versioning discrepancies * Explicitly pass in GITHUB_TOKEN to github-script * Point to the workflow run page as a default log_url * Exclude staging deployment workflows from the workflow linter until we can get support for the 'concurrency' key (https://github.com/cschleiden/actions-linter/issues/79) * Remove 'gha-' prefix
16 lines
444 B
JavaScript
16 lines
444 B
JavaScript
const slugify = require('github-slugger').slug
|
|
|
|
const APP_NAME_MAX_LENGTH = 30
|
|
|
|
module.exports = function ({ repo, pullNumber, branch }) {
|
|
return `${repo}-${pullNumber}--${slugify(branch)}`
|
|
// Shorten the string to the max allowed length
|
|
.slice(0, APP_NAME_MAX_LENGTH)
|
|
// Convert underscores to dashes
|
|
.replace(/_/g, '-')
|
|
// Remove trailing dashes
|
|
.replace(/-+$/, '')
|
|
// Make it all lowercase
|
|
.toLowerCase()
|
|
}
|