From a41d7cf018fb0e7aa55ef9a203b5374dde42cf5f Mon Sep 17 00:00:00 2001 From: dawkaka Date: Tue, 16 Jul 2024 09:00:15 +0000 Subject: [PATCH] realse on tag push --- .github/ISSUE_TEMPLATE/bug_report.md | 32 ++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature_request.md | 19 +++++ .github/dependabot.yml | 11 +++ .github/workflows/node.js.yml | 29 +++++++ .github/workflows/release_package.yml | 96 +++++++++++++++++++++++ lib/axios.js | 6 +- package.json | 8 +- 8 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/node.js.yml create mode 100644 .github/workflows/release_package.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..c6dfe9e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "" +labels: "" +assignees: "" +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: + +1. +2. +3. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + +- OS: [e.g. Ubuntu 22.04, macOS 11.4] +- Node version [e.g 16.4.2] +- Code Version [e.g. 1.1.0] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..e159285 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: GitHub Discussions + url: https://github.com/apitoolkit/apitoolkit-express/discussions + about: Please discuss non bug-related topics there diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..2bc5d5f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,19 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "" +labels: "" +assignees: "" +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5f0889c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 0000000..aefd642 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,29 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs + +name: Node.js CI + +on: + push: + branches: ["master"] + pull_request: + branches: ["*"] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm install + + - run: npm run build + - run: npm test + env: + APITOOLKIT_KEY: ${{ secrets.APITOOLKIT_KEY }} diff --git a/.github/workflows/release_package.yml b/.github/workflows/release_package.yml new file mode 100644 index 0000000..92bd995 --- /dev/null +++ b/.github/workflows/release_package.yml @@ -0,0 +1,96 @@ +name: Release package +on: + push: + tags: + - "v*" +jobs: + release: + runs-on: ubuntu-latest + steps: + # Checkout project repository + - name: Checkout + uses: actions/checkout@v3 + + # Setup Node.js environment + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "16" + registry-url: "https://registry.npmjs.org" + + - name: Install dependencies + run: npm install + + # Tests + - name: Run tests + run: npm test + env: + APITOOLKIT_KEY: ${{ secrets.APITOOLKIT_KEY }} + + - run: npm run build + + # Configure Git + - name: Git configuration + run: | + git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --global user.name "GitHub Actions" + + # Extract version from tag + - name: Get version from tag + run: echo "NEW_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV + + # Determine if it's a pre-release + - name: Check if pre-release + run: | + if [[ ${{ env.NEW_VERSION }} == *"-"* ]]; then + echo "RELEASE_TAG=beta" >> $GITHUB_ENV + else + echo "RELEASE_TAG=latest" >> $GITHUB_ENV + fi + + # Bump version in package.json + - name: Bump version + run: npm version ${{ env.NEW_VERSION }} --no-git-tag-version + + - name: Create and checkout temporary branch + run: | + git branch temp-branch + git checkout temp-branch + + # Commit changes + - name: Commit Package.json changes + run: | + git add "package.json" + git commit -m "chore: release ${{ env.NEW_VERSION }}" + + # Push repository changes + - name: Push changes to repository + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git push origin temp-branch:master + + # Publish version to npm + - name: Publish + run: yarn publish --verbose --access public --tag ${{ env.RELEASE_TAG }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + # Read version changelog + - id: get-changelog + name: Get version changelog + uses: superfaceai/release-changelog-action@v1 + with: + path-to-changelog: CHANGELOG.md + version: ${{ env.NEW_VERSION }} + operation: read + + # Update GitHub release with changelog + - name: Update GitHub release documentation + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ env.NEW_VERSION }} + body: ${{ steps.get-changelog.outputs.changelog }} + prerelease: ${{ startsWith(github.event.inputs.release-type, 'pre') }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/lib/axios.js b/lib/axios.js index d2fac0d..c8622dd 100644 --- a/lib/axios.js +++ b/lib/axios.js @@ -30,7 +30,7 @@ function processResponse(response, urlWildcard, redactHeaderLists, redactRequest const ATConfig = config.config; const parent_id = undefined; const errors = []; - const payload = buildPayload(req?.meta.startTime, req, res, reqBody, respBody, redactRequestBody, redactResponseBody, redactHeaderLists, project_id, ATConfig.serviceVersion, errors, ATConfig.tags ?? [], parent_id, urlWildcard); + const payload = buildPayload(response.config?.meta.startTime, req, res, reqBody, respBody, redactRequestBody, redactResponseBody, redactHeaderLists, project_id, ATConfig.serviceVersion, errors, ATConfig.tags ?? [], parent_id, urlWildcard); client.publishMessage(payload); } else { @@ -54,13 +54,13 @@ function processResponse(response, urlWildcard, redactHeaderLists, redactRequest parent_id = store.get("AT_msg_id"); } const errors = []; - const payload = buildPayload(req?.meta.startTime, req, res, reqBody, respBody, redactRequestBody, redactResponseBody, redactHeaderLists, project_id, ATConfig.serviceVersion, errors, ATConfig.tags ?? [], parent_id, urlWildcard); + const payload = buildPayload(response.config?.meta.startTime, req, res, reqBody, respBody, redactRequestBody, redactResponseBody, redactHeaderLists, project_id, ATConfig.serviceVersion, errors, ATConfig.tags ?? [], parent_id, urlWildcard); ATClient.publishMessage(payload); } } const onResponse = (urlWildcard, redactHeaderLists, redactRequestBody, redactResponseBody, notWebContext, isGlobal, client) => (response) => { try { - if (apitoolkit_1.asyncLocalStorage.getStore() == null && !notWebContext) { + if (apitoolkit_1.asyncLocalStorage.getStore() == null && !notWebContext && !isGlobal) { console.log("APIToolkit: observeAxios used outside of the APIToolkit middleware's scope. Use the APIToolkitClient.observeAxios instead, if you're not in a web context."); return response; } diff --git a/package.json b/package.json index 5baad94..d17a50c 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,15 @@ { "name": "apitoolkit-js", - "version": "3.3.1", + "version": "3.3.2", "description": "share code for all js web framework apitoolkit sdks", "main": "./lib", "scripts": { "build": "npx tsc", - "test": "jest --config jestconfig.json" + "test": "jest --config jestconfig.json", + "version": "git add -A src", + "updates": "npx npm-check-updates", + "updates:minor": "npx npm-check-updates --target minor" + }, "prepublishOnly": "npm run build", "repository": {