1
0
Fork 0
mirror of synced 2026-06-05 12:48:19 +00:00

chore: projen eject

This commit is contained in:
Tom Keller 2022-10-27 16:54:59 -07:00
commit 4d17522ddb
No known key found for this signature in database
GPG key ID: E1806C1EE1663B8D
21 changed files with 4805 additions and 4150 deletions

View file

@ -1,43 +1,21 @@
env:
jest: true
node: true
root: true
plugins:
- "@typescript-eslint"
- import
- prettier
parser: "@typescript-eslint/parser"
parserOptions:
ecmaVersion: 2018
ecmaVersion: 2021
sourceType: module
project: ./tsconfig.dev.json
extends:
- plugin:import/typescript
- prettier
- plugin:prettier/recommended
settings:
import/parsers:
"@typescript-eslint/parser":
- .ts
- .tsx
import/resolver:
node: {}
typescript:
project: ./tsconfig.dev.json
alwaysTryTypes: true
ignorePatterns:
- "*.js"
- "!.projenrc.js"
- "*.d.ts"
- node_modules/
- "*.generated.ts"
- coverage
- prettier
- plugin:@typescript-eslint/recommended
- plugin:import/typescript
rules:
prettier/prettier:
- error
"@typescript-eslint/no-require-imports":
- error
import/no-extraneous-dependencies:
- error
- devDependencies:
@ -59,39 +37,47 @@ rules:
- error
no-shadow:
- off
"@typescript-eslint/no-shadow":
- error
key-spacing:
- error
no-multiple-empty-lines:
- error
"@typescript-eslint/no-floating-promises":
- error
no-return-await:
- off
"@typescript-eslint/return-await":
- error
no-trailing-spaces:
- error
dot-notation:
- error
no-bitwise:
- error
"@typescript-eslint/member-ordering":
- error
- default:
- public-static-field
- public-static-method
- protected-static-field
- protected-static-method
- private-static-field
- private-static-method
- field
- constructor
- method
overrides:
- files:
- .projenrc.js
- '**/*.ts'
parser: '@typescript-eslint/parser'
parserOptions:
ecmaVersion: 2021
sourceType: module
project: ./tsconfig.json
extends:
- plugin:@typescript-eslint/recommended
rules:
"@typescript-eslint/no-require-imports": off
import/no-extraneous-dependencies: off
'@typescript-eslint/no-require-imports':
- error
"@typescript-eslint/return-await":
- error
"@typescript-eslint/no-shadow":
- error
"@typescript-eslint/no-floating-promises":
- error
"@typescript-eslint/member-ordering":
- error
- default:
- public-static-field
- public-static-method
- protected-static-field
- protected-static-method
- private-static-field
- private-static-method
- field
- constructor
- method

22
.gitattributes vendored
View file

@ -1,24 +1,2 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
*.snap linguist-generated
/.eslintrc.yml linguist-generated
/.gitattributes linguist-generated
/.github/dependabot.yml linguist-generated
/.github/pull_request_template.md linguist-generated
/.github/workflows/build.yml linguist-generated
/.github/workflows/pull-request-lint.yml linguist-generated
/.github/workflows/release.yml linguist-generated
/.gitignore linguist-generated
/.mergify.yml linguist-generated
/.prettierrc.json linguist-generated
/.projen/** linguist-generated
/.projen/deps.json linguist-generated
/.projen/files.json linguist-generated
/.projen/tasks.json linguist-generated
/action.yml linguist-generated
/dist/** linguist-generated
/LICENSE linguist-generated
/package-lock.json linguist-generated
/package.json linguist-generated
/tsconfig.dev.json linguist-generated
/tsconfig.json linguist-generated

View file

@ -1,24 +1,10 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
version: 2
updates:
- package-ecosystem: npm
versioning-strategy: lockfile-only
directory: /
schedule:
interval: weekly
day: tuesday
ignore:
- dependency-name: projen
open-pull-requests-limit: 10
target-branch: main
- package-ecosystem: npm
directory: /
open-pull-requests-limit: 10
target-branch: v1-node16
ignore:
- dependency-name: projen
versioning-strategy: lockfile-only
schedule:
interval: weekly
day: tuesday

View file

@ -1,4 +1,3 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
name: build
on:
@ -26,7 +25,7 @@ jobs:
- name: Install dependencies
run: npm install
- name: build
run: npx projen build
run: scripts/run-task build
- name: Find mutations
id: self_mutation
run: |-

49
.github/workflows/package.yml vendored Normal file
View file

@ -0,0 +1,49 @@
name: Update dist files on target branch
on:
push:
branches:
- main
- v1-node16
paths-ignore:
- 'dist/**'
jobs:
package:
name: Package dist files
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-region: us-west-2
role-to-assume: ${{ secrets.SECRETS_AWS_ROLE_TO_ASSUME }}
role-duration-seconds: 900
role-session-name: SecretsManagerFetch
- name: Get bot user token
uses: aws-actions/aws-secretsmanager-get-secrets@v1
with:
parse-json-secrets: true
secret-ids: |
OSDS,arn:aws:secretsmanager:us-west-2:294535624312:secret:github-aws-sdk-osds-automation-ZHNalp
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.ref_name }}
token: ${{ env.OSDS_ACCESS_TOKEN }}
- name: Package
run: |
npm ci
npm test
npm run package
- name: Commit
run: |
echo "::add-mask::${{ env.OSDS_ACCESS_TOKEN }}}"
git config --global user.name "GitHub Actions"
git add dist/
git commit -m "chore: Update dist" || echo "No changes to commit"
git push https://${{ env.OSDS_ACCESS_TOKEN }}@github.com/aws-actions/configure-aws-credentials.git

View file

@ -1,4 +1,3 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
name: pull-request-lint
on:

View file

@ -1,86 +0,0 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
name: release
on:
push:
branches:
- main
workflow_dispatch: {}
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
latest_commit: ${{ steps.git_remote.outputs.latest_commit }}
env:
CI: "true"
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set git identity
run: |-
git config user.name "github-actions"
git config user.email "github-actions@github.com"
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 14.0.0
- name: Install dependencies
run: npm ci
- name: release
run: npx projen release
- name: Check for new commits
id: git_remote
run: echo ::set-output name=latest_commit::"$(git ls-remote origin -h ${{ github.ref }} | cut -f1)"
- name: Backup artifact permissions
if: ${{ steps.git_remote.outputs.latest_commit == github.sha }}
run: cd dist && getfacl -R . > permissions-backup.acl
continue-on-error: true
- name: Upload artifact
if: ${{ steps.git_remote.outputs.latest_commit == github.sha }}
uses: actions/upload-artifact@v2.1.1
with:
name: build-artifact
path: dist
release_github:
name: Publish to GitHub Releases
needs: release
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
if: needs.release.outputs.latest_commit == github.sha
steps:
- uses: actions/setup-node@v3
with:
node-version: 14.0.0
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: build-artifact
path: dist
- name: Restore build artifact permissions
run: cd dist && setfacl --restore=permissions-backup.acl
continue-on-error: true
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_REF: ${{ github.ref }}
run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi
- name: Extract Version
id: extract-version
if: ${{ failure() }}
run: echo "::set-output name=VERSION::$(cat dist/version.txt)"
- name: Create Issue
if: ${{ failure() }}
uses: imjohnbo/issue-bot@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
labels: failed-release
title: Publishing v${{ steps.extract-version.outputs.VERSION }} to GitHub Releases failed
body: See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}

16
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,16 @@
on:
[pull_request]
name: Run Unit Tests
jobs:
test:
name: Run Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run tests
run: |
npm ci
npm run test

39
.github/workflows/v1-node16.yml vendored Normal file
View file

@ -0,0 +1,39 @@
on:
push:
branches:
- main
paths-ignore:
- 'dist/**'
name: Update v1-node16 branch with changes from main
jobs:
v1-node16-update:
name: Update v1-node16
runs-on: ubuntu-latest
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1-node16
with:
aws-region: us-west-2
role-to-assume: ${{ secrets.SECRETS_AWS_ROLE_TO_ASSUME }}
role-duration-seconds: 900
role-session-name: SecretsManagerFetch
- name: Get bot user token
uses: aws-actions/aws-secretsmanager-get-secrets@v1
with:
parse-json-secrets: true
secret-ids: |
OSDS,arn:aws:secretsmanager:us-west-2:294535624312:secret:github-aws-sdk-osds-automation-ZHNalp
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.ref_name }}
token: ${{ env.OSDS_ACCESS_TOKEN }}
- name: Merge commit and push
run: |
echo "::add-mask::${{ env.OSDS_ACCESS_TOKEN }}}"
git config --global user.name "GitHub Actions"
git merge --no-ff -m "Merge branch main into v1-node16"
git push https://${{ env.OSDS_ACCESS_TOKEN }}@github.com/aws-actions/configure-aws-credentials.git

54
.gitignore vendored
View file

@ -1,51 +1,5 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
!/.gitattributes
!/.projen/tasks.json
!/.projen/deps.json
!/.projen/files.json
!/.mergify.yml
!/.github/workflows/pull-request-lint.yml
!/package.json
!/LICENSE
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
pids
*.pid
*.seed
*.pid.lock
lib-cov
node_modules
coverage
*.lcov
.nyc_output
build/Release
node_modules/
jspm_packages/
*.tsbuildinfo
.eslintcache
*.tgz
.yarn-integrity
.cache
.vscode
.env
!/.projenrc.js
/test-reports/
junit.xml
/coverage/
!/.github/workflows/build.yml
!/.github/workflows/release.yml
!/.github/dependabot.yml
!/.github/pull_request_template.md
!/.prettierrc.json
!/test/
!/tsconfig.json
!/tsconfig.dev.json
!/src/
/build
!/.eslintrc.yml
!/dist/
!/action.yml
.DS_Store
Thumbs.db
build

View file

@ -1,4 +1,3 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
queue_rules:
- name: default

View file

@ -1,130 +0,0 @@
{
"dependencies": [
{
"name": "@aws-sdk/credential-provider-env",
"type": "build"
},
{
"name": "@aws-sdk/property-provider",
"type": "build"
},
{
"name": "@jest/globals",
"type": "build"
},
{
"name": "@types/jest",
"type": "build"
},
{
"name": "@types/node",
"version": "^14",
"type": "build"
},
{
"name": "@typescript-eslint/eslint-plugin",
"version": "^5",
"type": "build"
},
{
"name": "@typescript-eslint/parser",
"version": "^5",
"type": "build"
},
{
"name": "@vercel/ncc",
"type": "build"
},
{
"name": "aws-sdk-client-mock",
"type": "build"
},
{
"name": "eslint-config-prettier",
"type": "build"
},
{
"name": "eslint-import-resolver-node",
"type": "build"
},
{
"name": "eslint-import-resolver-typescript",
"type": "build"
},
{
"name": "eslint-plugin-import",
"type": "build"
},
{
"name": "eslint-plugin-prettier",
"type": "build"
},
{
"name": "eslint",
"version": "^8",
"type": "build"
},
{
"name": "jest",
"type": "build"
},
{
"name": "jest-junit",
"version": "^13",
"type": "build"
},
{
"name": "json-schema",
"type": "build"
},
{
"name": "prettier",
"type": "build"
},
{
"name": "projen",
"type": "build"
},
{
"name": "projen-github-action-typescript",
"type": "build"
},
{
"name": "standard-version",
"version": "^9",
"type": "build"
},
{
"name": "ts-jest",
"type": "build"
},
{
"name": "typescript",
"type": "build"
},
{
"name": "@types/responselike",
"version": "1.0.0",
"type": "override"
},
{
"name": "got",
"version": "12.3.1",
"type": "override"
},
{
"name": "@actions/core",
"type": "runtime"
},
{
"name": "@actions/github",
"type": "runtime"
},
{
"name": "@aws-sdk/client-sts",
"version": "^3",
"type": "runtime"
}
],
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}

View file

@ -1,22 +0,0 @@
{
"files": [
".eslintrc.yml",
".gitattributes",
".github/dependabot.yml",
".github/pull_request_template.md",
".github/workflows/build.yml",
".github/workflows/pull-request-lint.yml",
".github/workflows/release.yml",
".gitignore",
".mergify.yml",
".prettierrc.json",
".projen/deps.json",
".projen/files.json",
".projen/tasks.json",
"action.yml",
"LICENSE",
"tsconfig.dev.json",
"tsconfig.json"
],
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}

View file

@ -1,209 +0,0 @@
{
"tasks": {
"build": {
"name": "build",
"description": "Full release build",
"steps": [
{
"spawn": "default"
},
{
"spawn": "pre-compile"
},
{
"spawn": "compile"
},
{
"spawn": "post-compile"
},
{
"spawn": "test"
},
{
"spawn": "package"
}
]
},
"bump": {
"name": "bump",
"description": "Bumps version based on latest git tag and generates a changelog entry",
"env": {
"OUTFILE": "package.json",
"CHANGELOG": "dist/changelog.md",
"BUMPFILE": "dist/version.txt",
"RELEASETAG": "dist/releasetag.txt",
"RELEASE_TAG_PREFIX": "v"
},
"steps": [
{
"builtin": "release/bump-version"
}
],
"condition": "! git log --oneline -1 | grep -q \"chore(release):\""
},
"clobber": {
"name": "clobber",
"description": "hard resets to HEAD of origin and cleans the local repo",
"env": {
"BRANCH": "$(git branch --show-current)"
},
"steps": [
{
"exec": "git checkout -b scratch",
"name": "save current HEAD in \"scratch\" branch"
},
{
"exec": "git checkout $BRANCH"
},
{
"exec": "git fetch origin",
"name": "fetch latest changes from origin"
},
{
"exec": "git reset --hard origin/$BRANCH",
"name": "hard reset to origin commit"
},
{
"exec": "git clean -fdx",
"name": "clean all untracked files"
},
{
"say": "ready to rock! (unpushed commits are under the \"scratch\" branch)"
}
],
"condition": "git diff --exit-code > /dev/null"
},
"compile": {
"name": "compile",
"description": "Only compile",
"steps": [
{
"exec": "tsc --build"
}
]
},
"default": {
"name": "default",
"description": "Synthesize project files",
"steps": [
{
"exec": "node .projenrc.js"
}
]
},
"eject": {
"name": "eject",
"description": "Remove projen from the project",
"env": {
"PROJEN_EJECTING": "true"
},
"steps": [
{
"spawn": "default"
}
]
},
"eslint": {
"name": "eslint",
"description": "Runs eslint against the codebase",
"steps": [
{
"exec": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern src test build-tools .projenrc.js"
}
]
},
"package": {
"name": "package",
"description": "Creates the distribution package",
"steps": [
{
"exec": "ncc build --source-map --license licenses.txt"
}
]
},
"post-compile": {
"name": "post-compile",
"description": "Runs after successful compilation"
},
"pre-compile": {
"name": "pre-compile",
"description": "Prepare the project for compilation"
},
"release": {
"name": "release",
"description": "Prepare a release from \"main\" branch",
"env": {
"RELEASE": "true",
"MAJOR": "2",
"RELEASE_TAG_PREFIX": "v"
},
"steps": [
{
"exec": "rm -fr dist"
},
{
"spawn": "bump"
},
{
"spawn": "build"
},
{
"spawn": "unbump"
},
{
"exec": "git diff --ignore-space-at-eol --exit-code"
}
]
},
"test": {
"name": "test",
"description": "Run tests",
"steps": [
{
"exec": "jest --passWithNoTests --all --coverageProvider=v8 --updateSnapshot"
},
{
"spawn": "eslint"
}
]
},
"test:watch": {
"name": "test:watch",
"description": "Run jest in watch mode",
"steps": [
{
"exec": "jest --watch"
}
]
},
"unbump": {
"name": "unbump",
"description": "Restores version to 0.0.0",
"env": {
"OUTFILE": "package.json",
"CHANGELOG": "dist/changelog.md",
"BUMPFILE": "dist/version.txt",
"RELEASETAG": "dist/releasetag.txt",
"RELEASE_TAG_PREFIX": "v"
},
"steps": [
{
"builtin": "release/reset-version"
}
]
},
"watch": {
"name": "watch",
"description": "Watch & compile in the background",
"steps": [
{
"exec": "tsc --build -w"
}
]
}
},
"env": {
"PATH": "$(npx -c \"node -e \\\"console.log(process.env.PATH)\\\"\")"
},
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}

View file

@ -1,253 +0,0 @@
const { JsonPatch } = require('projen');
const { GitHubActionTypeScriptProject, RunsUsing } = require('projen-github-action-typescript');
const { DependabotScheduleInterval } = require('projen/lib/github');
const { NodePackageManager, NpmAccess } = require('projen/lib/javascript');
const project = new GitHubActionTypeScriptProject({
defaultReleaseBranch: 'main',
devDeps: [
'projen-github-action-typescript',
'@aws-sdk/credential-provider-env',
'aws-sdk-client-mock',
'@jest/globals',
'@aws-sdk/property-provider',
],
deps: ['@aws-sdk/client-sts@^3'],
name: 'configure-aws-credentials',
description: 'A GitHub Action to configure AWS credentials',
keywords: ['aws', 'github', 'github-action'],
repositoryUrl: 'git+https://github.com/aws-actions/configure-aws-credentials.git',
authorName: 'Amazon.com, Inc. or its affiliates',
authorOrganization: true,
authorUrl: 'https://aws.amazon.com',
packageManager: NodePackageManager.NPM,
sampleCode: false,
gitignore: ['.vscode', '.env'],
actionMetadata: {
name: '"Configure AWS Credentials" Action for GitHub Actions',
description: 'Configures AWS credentials for use in subsequent steps in a GitHub Action workflow',
runs: {
using: RunsUsing.NODE_16,
main: 'dist/index.js',
post: 'dist/cleanup/index.js',
},
branding: {
color: 'orange',
icon: 'cloud',
},
inputs: {
audience: {
description: 'The audience to use for the OIDC provider',
required: false,
default: 'sts.amazonaws.com',
},
'aws-access-key-id': {
description:
'AWS Access Key ID. This input is required if running in the GitHub hosted environment. It is optional if ' +
'running in a self-hosted environment that already has AWS credentials, for example on an EC2 instance.',
required: false,
},
'aws-secret-access-key': {
description:
'AWS Access Key ID. This input is required if running in the GitHub hosted environment. It is optional if ' +
'running in a self-hosted environment that already has AWS credentials, for example on an EC2 instance.',
required: false,
},
'aws-session-token': {
description: 'AWS Session Token',
required: false,
},
'aws-region': {
description: 'AWS Region, e.g. us-east-2',
required: true,
},
'mask-aws-account-id': {
description:
'Whether to mask the AWS account ID for these credentials as a secret value, so that it is masked in logs. ' +
'Valid values are "true" or "false". Defaults to "true".',
required: false,
},
'role-to-assume': {
description:
'The Amazon Resource Name (ARN) of the role to assume. Use the provided credentials to assume an IAM role ' +
'and configure the Actions environment with the assumed role credentials rather than with the provided ' +
'credentials.',
required: false,
},
'web-identity-token-file': {
description:
'Use the web identity token file from the provided file system path in order to assume an IAM role using a ' +
'web identity, e.g. from within an Amazon EKS worker node.',
required: false,
},
'role-duration-seconds': {
description: 'Role duration in seconds (default: 6 hours, 1 hour for OIDC/specified aws-session-token)',
required: false,
},
'role-session-name': {
description: 'Role session name (default: GitHubActions)',
required: false,
},
'role-external-id': {
description: 'The external ID of the role to assume',
required: false,
},
'role-skip-session-tagging': {
description: 'Skip session tagging during role assumption',
required: false,
},
},
outputs: {
'aws-account-id': {
description: 'The AWS account ID for the provided credentials',
},
},
},
majorVersion: 2,
// minNodeVersion is not the same as the node version used by the action
minNodeVersion: '14.0.0',
bugsUrl: 'https://github.com/aws-actions/configure-aws-credentials/issues',
releaseToNpm: false,
copyrightOwner: 'Amazon.com, Inc. or its affiliates',
copyrightPeriod: '2019-2022',
license: 'MIT',
homepage: 'https://github.com/aws-actions/configure-aws-credentials',
eslintOptions: {
yaml: true,
prettier: true,
},
releaseFailureIssue: true,
releaseTagPrefix: 'v',
codeCov: false,
libdir: 'build',
entrypoint: 'build/index.js',
npmignoreEnabled: false,
tsconfig: {
compilerOptions: {
declaration: true,
forceConsistentCasingInFileNames: true,
resolveJsonModule: true,
esModuleInterop: true,
noEmitOnError: true,
noFallthroughCasesInSwitch: true,
noImplicitReturns: true,
inlineSourceMap: true,
strict: true,
// Node 16 is ES2022
target: 'es2022',
module: 'commonjs',
outDir: 'build',
noUnusedLocals: false,
},
},
prettier: true,
prettierOptions: {
ignoreFile: false,
settings: {
printWidth: 120,
semi: true,
singleQuote: true,
trailingComma: 'es5',
bracketSpacing: true,
},
},
jestOptions: {
jestConfig: {
transform: { '^.+\\.m?[tj]sx?$': ['ts-jest', { tsconfig: 'tsconfig.dev.json' }] },
},
},
dependabot: true,
dependabotOptions: {
scheduleInterval: DependabotScheduleInterval.WEEKLY,
},
githubOptions: {
mergify: true,
mergifyOptions: {
queues: [{ name: 'default', conditions: ['status-success=Run Unit Tests', '-label~=(do-not-merge)'] }],
rules: [
{
name: 'Automatically merge on CI success and review approval',
conditions: [
'base~=master|integ-tests|main',
'"#approved-reviews-by>=1"',
'-approved-reviews-by~=author',
'status-success=Run Unit Tests',
'label!=work-in-progress',
'-title~=(WIP|wip)',
'-merged',
'-closed',
'author!=dependabot[bot]',
],
actions: {
queue: { name: 'main', method: 'squash' },
},
},
{
name: 'Automatically approve and merge Dependabot PRs',
conditions: [
'base~=master|main',
'author=dependabot[bot]',
'status-success=build',
'-title~=(WIP|wip)',
'-label~=(do-not-merge|blocked)',
'-merged',
'-closed',
],
actions: {
review: { type: 'APPROVE' },
queue: { name: 'main', method: 'squash' },
},
},
],
},
},
});
/*-------------------------------------------------------------------
Overrides and escape hatches
-------------------------------------------------------------------*/
// We use different mergify defaults than projen
const mergifyyml = project.tryFindObjectFile('.mergify.yml');
if (mergifyyml) {
const mergifyQueues = mergifyyml.obj.queue_rules.pop();
const mergifyRules = mergifyyml.obj.pull_request_rules.pop();
mergifyyml.addOverride('queue_rules', mergifyQueues);
mergifyyml.addOverride('pull_request_rules', mergifyRules);
}
// Misc tsconfig overrides
const tsconfig = project.tryFindObjectFile('tsconfig.json');
if (tsconfig) {
tsconfig.addOverride('compilerOptions.allowUnreachableCode', false);
tsconfig.addOverride('compilerOptions.allowUnusedLabels', false);
tsconfig.addOverride('compilerOptions.pretty', true);
}
// The default jest config does not have the correct path
project.jest?.addTestMatch('<rootDir>/test/**/*.(test|spec).(js|jsx|ts|tsx)');
const packageJson = project.tryFindFile('package.json');
if (packageJson) {
// The default jest config makes use of the deprecated globals.ts-jest option
packageJson.addOverride('jest.globals', undefined);
// This is supposed to be controlled by jestConfig.preset, but it doesn't work
packageJson.addOverride('jest.preset', 'ts-jest/presets/default-legacy');
// The entrypoint property is supposed to manage this but it doesn't work
packageJson.addOverride('main', 'build/index.js');
// We don't want to publish this to NPM.
packageJson.addOverride('private', true);
}
// Projen doesn't know about our extra branches
const dependabotConfig = project.tryFindObjectFile('.github/dependabot.yml');
if (dependabotConfig) {
dependabotConfig.patch(JsonPatch.add('/updates/0/open-pull-requests-limit', 10));
dependabotConfig.patch(JsonPatch.add('/updates/0/target-branch', 'main'));
dependabotConfig.patch(JsonPatch.add('/updates/0/schedule/day', 'tuesday'));
dependabotConfig.addToArray('updates', {
'package-ecosystem': 'npm',
directory: '/',
'open-pull-requests-limit': 10,
'target-branch': 'v1-node16',
ignore: [{ 'dependency-name': 'projen' }],
'versioning-strategy': 'lockfile-only',
schedule: { interval: 'weekly', day: 'tuesday' },
});
}
project.synth();

View file

@ -1,4 +1,3 @@
# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
name: '"Configure AWS Credentials" Action for GitHub Actions'
description: Configures AWS credentials for use in subsequent steps in a GitHub Action workflow

31
jest.config.cjs Normal file
View file

@ -0,0 +1,31 @@
/** @type {import('jest').Config} */
const config = {
verbose: true,
transform: {
'^.+\\.m?[tj]sx?$': ['ts-jest'],
},
testMatch: [
'<rootDir>/src/**/__tests__/**/*.ts?(x)',
'<rootDir>/(test|src)/**/*(*.)@(spec|test).ts?(x)',
'<rootDir>/test/**/*.(test|spec).(js|jsx|ts|tsx)',
],
clearMocks: true,
collectCoverage: true,
coverageReporters: ['json', 'lcov', 'clover', 'cobertura', 'text'],
coverageDirectory: 'coverage',
coveragePathIgnorePatterns: ['/node_modules/'],
testPathIgnorePatterns: ['/node_modules/'],
watchPathIgnorePatterns: ['/node_modules/'],
reporters: [
'default',
[
'jest-junit',
{
outputDirectory: 'test-reports',
},
],
],
preset: 'ts-jest/presets/default-legacy',
};
module.exports = config;

7656
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -2,22 +2,10 @@
"name": "configure-aws-credentials",
"description": "A GitHub Action to configure AWS credentials",
"scripts": {
"build": "npx projen build",
"bump": "npx projen bump",
"clobber": "npx projen clobber",
"compile": "npx projen compile",
"default": "npx projen default",
"eject": "npx projen eject",
"eslint": "npx projen eslint",
"package": "npx projen package",
"post-compile": "npx projen post-compile",
"pre-compile": "npx projen pre-compile",
"release": "npx projen release",
"test": "npx projen test",
"test:watch": "npx projen test:watch",
"unbump": "npx projen unbump",
"watch": "npx projen watch",
"projen": "npx projen"
"build": "tsc",
"lint": "eslint .",
"package": "ncc build --license ../THIRD-PARTY -o dist",
"test": "npm run lint && jest --verbose"
},
"author": {
"name": "Amazon.com, Inc. or its affiliates",
@ -44,7 +32,6 @@
"jest-junit": "^13",
"json-schema": "^0.4.0",
"prettier": "^2.7.1",
"projen": "^0.63.19",
"projen-github-action-typescript": "^0.0.155",
"standard-version": "^9",
"ts-jest": "^29.0.3",
@ -52,7 +39,6 @@
},
"dependencies": {
"@actions/core": "^1.10.0",
"@actions/github": "^5.1.1",
"@aws-sdk/client-sts": "^3"
},
"keywords": [
@ -70,55 +56,6 @@
"bugs": {
"url": "https://github.com/aws-actions/configure-aws-credentials/issues"
},
"jest": {
"transform": {
"^.+\\.m?[tj]sx?$": [
"ts-jest",
{
"tsconfig": "tsconfig.dev.json"
}
]
},
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
"<rootDir>/(test|src)/**/*(*.)@(spec|test).ts?(x)",
"<rootDir>/test/**/*.(test|spec).(js|jsx|ts|tsx)"
],
"clearMocks": true,
"collectCoverage": true,
"coverageReporters": [
"json",
"lcov",
"clover",
"cobertura",
"text"
],
"coverageDirectory": "coverage",
"coveragePathIgnorePatterns": [
"/node_modules/"
],
"testPathIgnorePatterns": [
"/node_modules/"
],
"watchPathIgnorePatterns": [
"/node_modules/"
],
"reporters": [
"default",
[
"jest-junit",
{
"outputDirectory": "test-reports"
}
]
],
"preset": "ts-jest/presets/default-legacy"
},
"types": "build/index.d.ts",
"overrides": {
"@types/responselike": "1.0.0",
"got": "12.3.1"
},
"private": true,
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
"private": true
}

View file

@ -1,38 +0,0 @@
{
"compilerOptions": {
"alwaysStrict": true,
"declaration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"inlineSourceMap": true,
"inlineSources": true,
"lib": [
"es2019"
],
"module": "commonjs",
"noEmitOnError": true,
"noFallthroughCasesInSwitch": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": false,
"noUnusedParameters": true,
"resolveJsonModule": true,
"strict": true,
"strictNullChecks": true,
"strictPropertyInitialization": true,
"stripInternal": true,
"target": "es2022",
"forceConsistentCasingInFileNames": true,
"outDir": "build"
},
"include": [
".projenrc.js",
"src/**/*.ts",
"test/**/*.ts"
],
"exclude": [
"node_modules"
],
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}

View file

@ -1,38 +1,35 @@
{
"compilerOptions": {
"rootDir": "src",
"outDir": "build",
"alwaysStrict": true,
"declaration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"inlineSourceMap": true,
"inlineSources": true,
"lib": [
"es2019"
],
"module": "commonjs",
"noEmitOnError": true,
"noFallthroughCasesInSwitch": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": false,
"noUnusedParameters": true,
"resolveJsonModule": true,
"strict": true,
"strictNullChecks": true,
"strictPropertyInitialization": true,
"stripInternal": true,
"target": "es2022",
"forceConsistentCasingInFileNames": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"pretty": true
"strict": true,
"exactOptionalPropertyTypes": true,
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noPropertyAccessFromIndexSignature": true,
"noUncheckedIndexedAccess": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"module": "CommonJS",
"resolveJsonModule": true,
"rootDir": ".",
"outDir": "build",
"composite": true,
"newLine": "lf",
"noEmitOnError": true,
"sourceMap": true,
"disableSizeLimit": true,
"forceConsistentCasingInFileNames": true,
"lib": [ "ES2020" ],
"target": "ES2020",
"noErrorTruncation": true,
"esModuleInterop": true
},
"include": [
"src/**/*.ts"
"src/**/*.ts",
"test/**/*.ts"
],
"exclude": [],
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
}