From 36fbe42596571eec09f440dc0087b9217a5db8fd Mon Sep 17 00:00:00 2001 From: Anurag Rajawat Date: Wed, 15 Jul 2026 12:21:51 +0530 Subject: [PATCH] feat: Onboard go-task/setup-task action Signed-off-by: Anurag Rajawat --- .codespellrc | 9 + .github/workflows/actions_release.yml | 32 + .github/workflows/audit_package.yml | 38 + .github/workflows/auto_cherry_pick.yml | 47 + .github/workflows/ci.yml | 252 + .github/workflows/claude_review.yml | 2 +- .gitignore | 7 + .markdown-link-check.json | 18 + .markdownlint.yml | 62 + .markdownlintignore | 2 + .npmrc | 1 + .prettierignore | 5 + LICENSE | 675 + README.md | 59 +- SECURITY.md | 5 + Taskfile.yml | 359 + __tests__/main.test.ts | 107 + __tests__/testdata/releases.json | 64525 +++++++++++++++++++++++ action.yml | 23 + dist/index.js | 47474 +++++++++++++++++ dist/package.json | 3 + dist/unzip | Bin 0 -> 174216 bytes dist/unzip-darwin | Bin 0 -> 185536 bytes oxlint.json | 6 + package-lock.json | 4870 ++ package.json | 44 + poetry.lock | 23 + pyproject.toml | 11 + res/actions.png | Bin 0 -> 12975 bytes res/task.png | Bin 0 -> 5424 bytes scripts/extract-changelog-section.mjs | 21 + scripts/promote-changelog.mjs | 19 + src/installer.ts | 255 + src/main.ts | 34 + src/subscription.ts | 58 + tsconfig.json | 64 + vitest.config.ts | 14 + 37 files changed, 119122 insertions(+), 2 deletions(-) create mode 100644 .codespellrc create mode 100644 .github/workflows/actions_release.yml create mode 100644 .github/workflows/audit_package.yml create mode 100644 .github/workflows/auto_cherry_pick.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 .markdown-link-check.json create mode 100644 .markdownlint.yml create mode 100644 .markdownlintignore create mode 100644 .npmrc create mode 100644 .prettierignore create mode 100644 LICENSE create mode 100644 SECURITY.md create mode 100644 Taskfile.yml create mode 100644 __tests__/main.test.ts create mode 100644 __tests__/testdata/releases.json create mode 100644 action.yml create mode 100644 dist/index.js create mode 100644 dist/package.json create mode 100644 dist/unzip create mode 100644 dist/unzip-darwin create mode 100644 oxlint.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 poetry.lock create mode 100644 pyproject.toml create mode 100644 res/actions.png create mode 100644 res/task.png create mode 100644 scripts/extract-changelog-section.mjs create mode 100644 scripts/promote-changelog.mjs create mode 100644 src/installer.ts create mode 100644 src/main.ts create mode 100644 src/subscription.ts create mode 100644 tsconfig.json create mode 100644 vitest.config.ts diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 0000000..93316ff --- /dev/null +++ b/.codespellrc @@ -0,0 +1,9 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/spell-check/.codespellrc +# See: https://github.com/codespell-project/codespell#using-a-config-file +[codespell] +# In the event of a false positive, add the problematic word, in all lowercase, to a comma-separated list here: +ignore-words-list = afterall +skip = ./.git,./dist,./go.mod,./go.sum,./package-lock.json,./pnpm-lock.yaml,./poetry.lock,./yarn.lock,./node_modules,./__tests__/testdata +builtin = clear,informal,en-GB_to_en-US +check-filenames = +check-hidden = \ No newline at end of file diff --git a/.github/workflows/actions_release.yml b/.github/workflows/actions_release.yml new file mode 100644 index 0000000..933510a --- /dev/null +++ b/.github/workflows/actions_release.yml @@ -0,0 +1,32 @@ +name: Release GitHub Actions + +on: + workflow_dispatch: + inputs: + tag: + description: "Tag for the release" + required: true + node_version: + description: "Node.js version to use" + required: false + default: "24" + script: + description: "Command to build/bundle the action" + required: false + default: "npx tsc && npx ncc build" + +permissions: + contents: read + +jobs: + release: + permissions: + actions: read + id-token: write + contents: write + + uses: step-security/reusable-workflows/.github/workflows/actions_release.yaml@v1 + with: + tag: "${{ github.event.inputs.tag }}" + node_version: ${{ inputs.node_version || '24' }} + script: ${{ inputs.script || 'npx tsc && npx ncc build' }} diff --git a/.github/workflows/audit_package.yml b/.github/workflows/audit_package.yml new file mode 100644 index 0000000..284c593 --- /dev/null +++ b/.github/workflows/audit_package.yml @@ -0,0 +1,38 @@ +name: NPM Audit Fix Run + +on: + workflow_dispatch: + inputs: + force: + description: "Use --force flag for npm audit fix?" + required: true + type: boolean + base_branch: + description: "Specify a base branch" + required: false + default: "main" + node_version: + description: "Node.js version to use" + required: false + default: "24" + script: + description: "Command to build/bundle the action" + required: false + default: "npx tsc && npx ncc build" + schedule: + - cron: "0 0 * * 1" + +jobs: + audit-fix: + uses: step-security/reusable-workflows/.github/workflows/audit_fix.yml@v1 + with: + force: ${{ inputs.force || false }} + base_branch: ${{ inputs.base_branch || 'main' }} + node_version: ${{ inputs.node_version || '24' }} + script: ${{ inputs.script || 'npx tsc && npx ncc build' }} + +permissions: + contents: write + pull-requests: write + packages: read + issues: write diff --git a/.github/workflows/auto_cherry_pick.yml b/.github/workflows/auto_cherry_pick.yml new file mode 100644 index 0000000..ce6b498 --- /dev/null +++ b/.github/workflows/auto_cherry_pick.yml @@ -0,0 +1,47 @@ +name: Auto Cherry-Pick from Upstream + +on: + workflow_run: + workflows: ["Release GitHub Actions"] + types: + - completed + + workflow_dispatch: + inputs: + base_branch: + description: "Base branch to create the PR against" + required: true + default: "main" + mode: + description: "Run mode: cherry-pick or verify" + required: false + default: "cherry-pick" + node_version: + description: "Node.js version to use" + required: false + default: "24" + script: + description: "Command to build/bundle the action" + required: false + default: "npx tsc && npx ncc build" + + pull_request: + types: [opened, synchronize, labeled] + +permissions: + contents: write + pull-requests: write + packages: read + issues: write + +jobs: + cherry-pick: + if: (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') || github.event_name == 'workflow_dispatch' || contains(fromJson(toJson(github.event.pull_request.labels)).*.name, 'review-required') + uses: step-security/reusable-workflows/.github/workflows/auto_cherry_pick.yaml@v1 + with: + original-owner: "go-task" + repo-name: "setup-task" + base_branch: ${{ inputs.base_branch || 'main' }} + mode: ${{ github.event_name == 'pull_request' && 'verify' || inputs.mode || 'cherry-pick' }} + node_version: ${{ inputs.node_version || '24' }} + script: ${{ inputs.script || 'npx tsc && npx ncc build' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..890e421 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,252 @@ +name: CI + +on: + push: + +permissions: + contents: read + +jobs: + check-typescript: + name: Lint (oxlint) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task ts:lint + + check-tsconfig: + name: Validate tsconfig + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task --silent ts:validate + + check-action-metadata: + name: Validate action.yml + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task --silent action:validate + + check-npm-validate: + name: Validate package.json + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task --silent npm:validate + + check-npm-sync: + name: Lockfile sync + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task npm:install-deps + - run: git diff --color --exit-code package-lock.json + + check-markdown: + name: Markdown ${{ matrix.step }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + step: [lint, check-links] + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - if: matrix.step == 'lint' + uses: xt0rted/markdownlint-problem-matcher@v3 + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task --silent markdown:${{ matrix.step }} + + check-format: + name: oxfmt formatting + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: npx oxfmt --check . + + check-license: + name: LICENSE detection + runs-on: ubuntu-latest + env: + EXPECTED_LICENSE_FILENAME: LICENSE + EXPECTED_LICENSE_TYPE: GPL-3.0 + steps: + - uses: actions/checkout@v7 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ruby + - run: gem install licensee + - name: Check license file + run: | + EXIT_STATUS=0 + LICENSEE_OUTPUT="$(licensee detect --json --confidence=100)" + + DETECTED_LICENSE_FILE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].filename | tr --delete '\r')" + echo "Detected license file: $DETECTED_LICENSE_FILE" + if [ "$DETECTED_LICENSE_FILE" != "\"${EXPECTED_LICENSE_FILENAME}\"" ]; then + echo "::error file=${DETECTED_LICENSE_FILE}::detected license file $DETECTED_LICENSE_FILE doesn't match expected: $EXPECTED_LICENSE_FILENAME" + EXIT_STATUS=1 + fi + + DETECTED_LICENSE_TYPE="$(echo "$LICENSEE_OUTPUT" | jq .matched_files[0].matched_license | tr --delete '\r')" + echo "Detected license type: $DETECTED_LICENSE_TYPE" + if [ "$DETECTED_LICENSE_TYPE" != "\"${EXPECTED_LICENSE_TYPE}\"" ]; then + echo "::error file=${DETECTED_LICENSE_FILE}::detected license type $DETECTED_LICENSE_TYPE doesn't match expected \"${EXPECTED_LICENSE_TYPE}\"" + EXIT_STATUS=1 + fi + + exit $EXIT_STATUS + + spell-check: + name: Spell check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 + with: + python-version: "3.14" + - run: pip install poetry + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task general:check-spelling + + test-typescript: + name: Tests (${{ matrix.operating-system }}) + runs-on: ${{ matrix.operating-system }} + strategy: + fail-fast: false + matrix: + operating-system: [ubuntu-latest, macos-latest, windows-latest] + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task ts:test + + check-packaging: + name: dist bundle up to date + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version-file: package.json + cache: "npm" + - uses: ./ + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + version: 3.x + - run: task ts:build + # Ignore CR because ncc output has mixed line endings on Windows checkouts. + - run: git diff --ignore-cr-at-eol --color --exit-code dist + + integration-defaults: + name: Integration - defaults + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Run action with defaults + uses: ./ + - run: task --version + + integration-version: + name: Integration - ${{ matrix.version.input }} / ${{ matrix.runs-on }} + runs-on: ${{ matrix.runs-on }} + strategy: + fail-fast: false + matrix: + runs-on: [ubuntu-latest, windows-latest, macos-latest] + version: + - input: 3.36.x + expected: "Task version: v3.36.0 (h1:XVJ5hQ5hdzTAulHpAGzbUMUuYr9MUOEQFOFazI3hUsY=)" + - input: 3.37.2 + expected: "Task version: v3.37.2 (h1:Jwgvo+2vX79Fu+44xPxVKC5DIkUE89QeDjN2tmYaQzA=)" + - input: 3.50.0 + expected: "3.50.0" + steps: + - uses: actions/checkout@v7 + - uses: ./ + with: + version: ${{ matrix.version.input }} + repo-token: ${{ github.token }} + - shell: bash + run: | + [[ "$(task --version)" == "${{ matrix.version.expected }}" ]] + + integration-invalid-version: + name: Integration - invalid version rejected + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - id: setup-task + continue-on-error: true + uses: ./ + with: + version: 2.42.x + - if: steps.setup-task.outcome == 'success' + run: | + echo "::error::The action run was expected to fail, but passed!" + exit 1 diff --git a/.github/workflows/claude_review.yml b/.github/workflows/claude_review.yml index ec8fc4c..79ddfa0 100644 --- a/.github/workflows/claude_review.yml +++ b/.github/workflows/claude_review.yml @@ -2,7 +2,7 @@ name: Claude Code Review on: pull_request: - types: [ opened, synchronize, labeled ] + types: [opened, synchronize, labeled] jobs: code-review: diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b0c4499 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +# Dependency directory +node_modules/ + +# Ignore built ts files +__tests__/runner/* +lib/**/* +.idea/ diff --git a/.markdown-link-check.json b/.markdown-link-check.json new file mode 100644 index 0000000..69f1914 --- /dev/null +++ b/.markdown-link-check.json @@ -0,0 +1,18 @@ +{ + "httpHeaders": [ + { + "urls": ["https://docs.github.com/"], + "headers": { + "Accept-Encoding": "gzip, deflate, br" + } + } + ], + "ignorePatterns": [ + { + "pattern": "^https://www\\.npmjs\\.com" + } + ], + "retryOn429": true, + "retryCount": 3, + "aliveStatusCodes": [200, 206] +} diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000..65b6ef7 --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,62 @@ +# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown/.markdownlint.yml +# See: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md +# The code style defined in this file is the official standardized style to be used in all Arduino projects and should +# not be modified. +# Note: Rules disabled solely because they are redundant to Prettier are marked with a "Prettier" comment. + +default: false +MD001: false +MD002: false +MD003: false # Prettier +MD004: false # Prettier +MD005: false # Prettier +MD006: false # Prettier +MD007: false # Prettier +MD008: false # Prettier +MD009: + br_spaces: 0 + strict: true + list_item_empty_lines: false # Prettier +MD010: false # Prettier +MD011: true +MD012: false # Prettier +MD013: false +MD014: false +MD018: true +MD019: false # Prettier +MD020: true +MD021: false # Prettier +MD022: false # Prettier +MD023: false # Prettier +MD024: false +MD025: + level: 1 + front_matter_title: '^\s*"?title"?\s*[:=]' +MD026: false +MD027: false # Prettier +MD028: false +MD029: + style: one +MD030: + ul_single: 1 + ol_single: 1 + ul_multi: 1 + ol_multi: 1 +MD031: false # Prettier +MD032: false # Prettier +MD033: false +MD034: false +MD035: false # Prettier +MD036: false +MD037: true +MD038: true +MD039: true +MD040: false +MD041: false +MD042: true +MD043: false +MD044: false +MD045: true +MD046: + style: fenced +MD047: false # Prettier diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 0000000..e8e6ce6 --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1,2 @@ +# Dependency directory +node_modules \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..ec9e05d --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +min-release-age=3 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..bcc82b4 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +/.licenses/ +/dist/ +/lib/ +/node_modules/ +pnpm-lock.yaml diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9b0946a --- /dev/null +++ b/LICENSE @@ -0,0 +1,675 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (c) 2026 StepSecurity + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 2ef7639..24efa36 100644 --- a/README.md +++ b/README.md @@ -1 +1,58 @@ -# go-task-setup-task \ No newline at end of file +[![StepSecurity Maintained Action](https://raw.githubusercontent.com/step-security/maintained-actions-assets/main/assets/maintained-action-banner.png)](https://docs.stepsecurity.io/actions/stepsecurity-maintained-actions) + +
+ + Task + + + GitHub Actions + + +

Task GitHub Action

+ +

+ A GitHub Actions action that makes the Task task runner / build tool available to use in your workflow. +

+
+ +## Inputs + +### `version` + +The version of [Task](https://taskfile.dev) to install. +Can be an exact version (e.g., `3.4.2`) or a version range (e.g., `3.x`). + +**Default**: `3.x` + +### `repo-token` + +[GitHub access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) used for GitHub API requests. + +**Default**: [`GITHUB_TOKEN`](https://docs.github.com/actions/security-guides/automatic-token-authentication) + +## Usage + +To get the action's default version of Task just add this step: + +```yaml +- name: Install Task + uses: step-security/go-task-setup-task@v2 +``` + +If you want to pin a major or minor version you can use the `.x` wildcard: + +```yaml +- name: Install Task + uses: step-security/go-task-setup-task@v2 + with: + version: 2.x +``` + +To pin the exact version: + +```yaml +- name: Install Task + uses: step-security/go-task-setup-task@v2 + with: + version: 2.6.1 +``` diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..77568b2 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Security Policy + +## Reporting a Vulnerability + +Please report security vulnerabilities to security@stepsecurity.io diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..a3b3768 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,359 @@ +version: "3" + +vars: + # Last version of ajv-cli with support for the JSON schema "Draft 4" specification + SCHEMA_DRAFT_4_AJV_CLI_VERSION: 3.3.0 + +tasks: + build: + desc: Build the project + deps: + - task: ts:build + + check: + desc: Check for problems with the project + deps: + - task: action:validate + - task: general:check-spelling + - task: markdown:check-links + - task: markdown:lint + - task: npm:validate + - task: ts:lint + - task: ts:test + - task: ts:validate + vars: + TSCONFIG_PATH: "./tsconfig.json" + + fix: + desc: Make automated corrections to the project's files + deps: + - task: general:correct-spelling + - task: general:format + - task: markdown:fix + - task: ts:build + - task: ts:fix-lint + + action:validate: + desc: Validate GitHub Actions metadata against JSON schema + vars: + ACTION_METADATA_SCHEMA_PATH: + sh: mktemp -t github-action-schema-XXXXXXXXXX.json + deps: + - task: npm:install-deps + cmds: + - wget --quiet --output-document="{{.ACTION_METADATA_SCHEMA_PATH}}" https://json.schemastore.org/github-action + - npx ajv validate --strict=false -s "{{.ACTION_METADATA_SCHEMA_PATH}}" -d "action.yml" + + docs:generate: + desc: Create all generated documentation content + # This is an "umbrella" task used to call any documentation generation processes the project has. + # It can be left empty if there are none. + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/spell-check-task/Taskfile.yml + general:check-spelling: + desc: Check for commonly misspelled words + deps: + - task: poetry:install-deps + cmds: + - poetry run codespell + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/spell-check-task/Taskfile.yml + general:correct-spelling: + desc: Correct commonly misspelled words where possible + deps: + - task: poetry:install-deps + cmds: + - poetry run codespell --write-changes + + general:format: + desc: Format all supported files with oxfmt + deps: + - task: npm:install-deps + cmds: + - npx oxfmt --write . + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-dependencies-task/Taskfile.yml + general:install-deps: + desc: Install project dependencies + deps: + - task: npm:install-deps + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown-task/Taskfile.yml + markdown:check-links: + desc: Check for broken links + deps: + - task: docs:generate + - task: npm:install-deps + cmds: + - | + if [[ "{{.OS}}" == "Windows_NT" ]]; then + if ! which markdown-link-check &>/dev/null; then + echo "markdown-link-check not found or not in PATH. Please install: https://github.com/tcort/markdown-link-check#readme" + exit 1 + fi + set +o errexit + STATUS=0 + for file in \ + $(find . -type d -name node_modules -prune -o -regex ".*[.]md" -print); do + markdown-link-check \ + --quiet \ + --config "./.markdown-link-check.json" \ + "$file" + STATUS=$(( $STATUS + $? )) + done + exit $STATUS + else + STATUS=0 + for file in \ + $(find . -type d -name node_modules -prune -o -regex ".*[.]md" -print); do + npx markdown-link-check \ + --quiet \ + --config "./.markdown-link-check.json" \ + "$file" + STATUS=$(( $STATUS + $? )) + done + exit $STATUS + fi + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown-task/Taskfile.yml + markdown:fix: + desc: Automatically correct linting violations in Markdown files where possible + deps: + - task: npm:install-deps + cmds: + - npx markdownlint --fix "**/*.md" + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown-task/Taskfile.yml + markdown:lint: + desc: Check for problems in Markdown files + deps: + - task: npm:install-deps + cmds: + - npx markdownlint "**/*.md" + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/npm-task/Taskfile.yml + npm:install-deps: + desc: Install dependencies managed by npm + cmds: + - npm ci + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-task/Taskfile.yml + npm:validate: + desc: Validate npm configuration files against their JSON schema + vars: + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json + SCHEMA_URL: https://json.schemastore.org/package.json + SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="package-json-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/ava.json + AVA_SCHEMA_URL: https://json.schemastore.org/ava.json + AVA_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="ava-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/base.json + BASE_SCHEMA_URL: https://json.schemastore.org/base.json + BASE_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="base-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/eslintrc.json + ESLINTRC_SCHEMA_URL: https://json.schemastore.org/eslintrc.json + ESLINTRC_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="eslintrc-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/jscpd.json + JSCPD_SCHEMA_URL: https://json.schemastore.org/jscpd.json + JSCPD_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="jscpd-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/npm-badges.json + NPM_BADGES_SCHEMA_URL: https://json.schemastore.org/npm-badges.json + NPM_BADGES_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="npm-badges-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/nodemon.json + NODEMON_SCHEMA_URL: https://json.schemastore.org/nodemon.json + NODEMON_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="nodemon-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/partial-eslint-plugins.json + PARTIAL_ESLINT_PLUGINS_SCHEMA_URL: https://json.schemastore.org/partial-eslint-plugins.json + PARTIAL_ESLINT_PLUGINS_PATH: + sh: task utility:mktemp-file TEMPLATE="partial-eslint-plugins-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/prettierrc.json + PRETTIERRC_SCHEMA_URL: https://json.schemastore.org/prettierrc.json + PRETTIERRC_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="prettierrc-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/semantic-release.json + SEMANTIC_RELEASE_SCHEMA_URL: https://json.schemastore.org/semantic-release.json + SEMANTIC_RELEASE_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="semantic-release-schema-XXXXXXXXXX.json" + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/stylelintrc.json + STYLELINTRC_SCHEMA_URL: https://json.schemastore.org/stylelintrc.json + STYLELINTRC_SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json" + INSTANCE_PATH: >- + {{default "." .PROJECT_PATH}}/package.json + PROJECT_FOLDER: + sh: pwd + WORKING_FOLDER: + sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX" + cmds: + - wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}} + - wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}} + - wget --quiet --output-document="{{.BASE_SCHEMA_PATH}}" {{.BASE_SCHEMA_URL}} + - wget --quiet --output-document="{{.ESLINTRC_SCHEMA_PATH}}" {{.ESLINTRC_SCHEMA_URL}} + - wget --quiet --output-document="{{.JSCPD_SCHEMA_PATH}}" {{.JSCPD_SCHEMA_URL}} + - wget --quiet --output-document="{{.NPM_BADGES_SCHEMA_PATH}}" {{.NPM_BADGES_SCHEMA_URL}} + - wget --quiet --output-document="{{.NODEMON_SCHEMA_PATH}}" {{.NODEMON_SCHEMA_URL}} + - wget --quiet --output-document="{{.PARTIAL_ESLINT_PLUGINS_PATH}}" {{.PARTIAL_ESLINT_PLUGINS_SCHEMA_URL}} + - wget --quiet --output-document="{{.PRETTIERRC_SCHEMA_PATH}}" {{.PRETTIERRC_SCHEMA_URL}} + - wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}} + - wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}} + - | + cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210 + npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \ + --all-errors \ + -s "{{.SCHEMA_PATH}}" \ + -r "{{.AVA_SCHEMA_PATH}}" \ + -r "{{.BASE_SCHEMA_PATH}}" \ + -r "{{.ESLINTRC_SCHEMA_PATH}}" \ + -r "{{.JSCPD_SCHEMA_PATH}}" \ + -r "{{.NPM_BADGES_SCHEMA_PATH}}" \ + -r "{{.NODEMON_SCHEMA_PATH}}" \ + -r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \ + -r "{{.PRETTIERRC_SCHEMA_PATH}}" \ + -r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \ + -r "{{.STYLELINTRC_SCHEMA_PATH}}" \ + -d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}" + + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml + poetry:install-deps: + desc: Install dependencies managed by Poetry + cmds: + - poetry install --no-root + + release: + desc: "Tag and push a new release. Usage: task release VERSION=X.Y.Z" + vars: + MAJOR: '{{splitList "." .VERSION | first}}' + DATE: '{{dateInZone "2006-01-02" now "UTC"}}' + RELEASE_NOTES_PATH: + sh: task utility:mktemp-file TEMPLATE="release-notes.XXXXXXXXXX" + preconditions: + - sh: '[[ "{{.VERSION}}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]' + msg: 'VERSION must be X.Y.Z (no "v" prefix). Got: "{{.VERSION}}"' + - sh: '[[ -z "$(git status --porcelain)" ]]' + msg: "Working tree must be clean." + - sh: '[[ "$(git rev-parse --abbrev-ref HEAD)" == "main" ]]' + msg: "Must be on main branch." + - sh: 'git fetch origin main && [[ "$(git rev-parse HEAD)" == "$(git rev-parse origin/main)" ]]' + msg: "main must be up to date with origin/main." + - sh: 'grep -q "^## Unreleased$" CHANGELOG.md' + msg: 'CHANGELOG.md must contain an "## Unreleased" section.' + - sh: '! git rev-parse "v{{.VERSION}}" >/dev/null 2>&1' + msg: "Tag v{{.VERSION}} already exists." + - sh: "command -v gh >/dev/null 2>&1" + msg: "gh CLI is required. Install: https://cli.github.com/" + cmds: + - node scripts/promote-changelog.mjs "{{.VERSION}}" "{{.DATE}}" + - git add CHANGELOG.md + - 'git commit -m "chore: release v{{.VERSION}}"' + - git tag "v{{.VERSION}}" + - git tag -f "v{{.MAJOR}}" + - git push origin main + - git push origin "v{{.VERSION}}" + - git push origin "v{{.MAJOR}}" --force + - node scripts/extract-changelog-section.mjs "{{.VERSION}}" > "{{.RELEASE_NOTES_PATH}}" + - gh release create "v{{.VERSION}}" --title "v{{.VERSION}}" --draft --notes-file "{{.RELEASE_NOTES_PATH}}" + + ts:build: + desc: Build the action's TypeScript code. + deps: + - task: npm:install-deps + cmds: + - npx tsc + - npx ncc build + + ts:fix-lint: + desc: Fix TypeScript code linting violations + deps: + - task: npm:install-deps + cmds: + - npx oxlint src/ __tests__/ --fix + + ts:lint: + desc: Lint TypeScript code + deps: + - task: npm:install-deps + cmds: + - npx oxlint src/ __tests__/ + + ts:test: + desc: Test the action's TypeScript code. + deps: + - task: npm:install-deps + cmds: + - npx vitest run + + ts:validate: + desc: Validate TypeScript configuration file against its JSON schema + vars: + # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/tsconfig.json + SCHEMA_URL: https://json.schemastore.org/tsconfig.json + SCHEMA_PATH: + sh: task utility:mktemp-file TEMPLATE="tsconfig-schema-XXXXXXXXXX.json" + INSTANCE_PATH: '{{default "./tsconfig.json" .TSCONFIG_PATH}}' + WORKING_FOLDER: + sh: task utility:mktemp-folder TEMPLATE="ts-validate-XXXXXXXXXX" + WORKING_INSTANCE_PATH: + sh: echo "{{.WORKING_FOLDER}}/$(basename "{{.INSTANCE_PATH}}")" + deps: + - task: npm:install-deps + cmds: + - | + # TypeScript allows comments in tsconfig.json. + # ajv-cli did not support comments in JSON at the 3.x version in use (support was added in a later version). + npx strip-json-comments \ + --no-whitespace \ + "{{.INSTANCE_PATH}}" \ + > "{{.WORKING_INSTANCE_PATH}}" + - | + wget \ + --quiet \ + --output-document="{{.SCHEMA_PATH}}" \ + {{.SCHEMA_URL}} + - | + cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210 + npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \ + --all-errors \ + -s "{{.SCHEMA_PATH}}" \ + -d "{{.WORKING_INSTANCE_PATH}}" + + # Make a temporary file named according to the passed TEMPLATE variable and print the path passed to stdout + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml + utility:mktemp-file: + vars: + RAW_PATH: + sh: mktemp "${TMPDIR:-/tmp}/{{.TEMPLATE}}" + cmds: + - task: utility:normalize-path + vars: + RAW_PATH: "{{.RAW_PATH}}" + + # Make a temporary folder named according to the passed TEMPLATE variable and print the path passed to stdout + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml + utility:mktemp-folder: + vars: + RAW_PATH: + sh: mktemp -d "${TMPDIR:-/tmp}/{{.TEMPLATE}}" + cmds: + - task: utility:normalize-path + vars: + RAW_PATH: "{{.RAW_PATH}}" + + # Print a normalized version of the path passed via the RAW_PATH variable to stdout + # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml + utility:normalize-path: + cmds: + - | + if [[ "{{.OS}}" == "Windows_NT" ]] && which cygpath &>/dev/null; then + # Even though the shell handles POSIX format absolute paths as expected, external applications do not. + # So paths passed to such applications must first be converted to Windows format. + cygpath -w "{{.RAW_PATH}}" + else + echo "{{.RAW_PATH}}" + fi diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts new file mode 100644 index 0000000..527757b --- /dev/null +++ b/__tests__/main.test.ts @@ -0,0 +1,107 @@ +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + +import { join } from "node:path"; +import { arch } from "node:os"; +import { existsSync } from "node:fs"; +import { mkdirP, rmRF } from "@actions/io"; +import nock from "nock"; + +const testDir = import.meta.dirname; +const toolDir = join(testDir, "runner", "tools"); +const tempDir = join(testDir, "runner", "temp"); +const dataDir = join(testDir, "testdata"); +const IS_WINDOWS = process.platform === "win32"; + +process.env.RUNNER_TEMP = tempDir; +process.env.RUNNER_TOOL_CACHE = toolDir; +import { getTask } from "../src/installer.js"; + +describe("installer tests", () => { + beforeEach(async () => { + await rmRF(toolDir); + await rmRF(tempDir); + await mkdirP(toolDir); + await mkdirP(tempDir); + }); + + afterAll(async () => { + try { + await rmRF(toolDir); + await rmRF(tempDir); + } catch { + console.log("Failed to remove test directories"); + } + }); + + it("Downloads version of Task if no matching version is installed", async () => { + await getTask("3.37.1", ""); + const taskDir = join(toolDir, "task", "3.37.1", arch()); + + expect(existsSync(`${taskDir}.complete`)).toBe(true); + + if (IS_WINDOWS) { + expect(existsSync(join(taskDir, "bin", "task.exe"))).toBe(true); + } else { + expect(existsSync(join(taskDir, "bin", "task"))).toBe(true); + } + }, 100000); + + describe("Gets the latest release of Task", () => { + beforeEach(() => { + nock("https://api.github.com") + .get("/repos/go-task/task/releases?per_page=100") + .replyWithFile(200, join(dataDir, "releases.json")); + }); + + afterEach(() => { + nock.cleanAll(); + nock.enableNetConnect(); + }); + + it("Gets the latest version of Task 3.36 using 3.36 and no matching version is installed", async () => { + await getTask("3.36", ""); + const taskDir = join(toolDir, "task", "3.36.0", arch()); + + expect(existsSync(`${taskDir}.complete`)).toBe(true); + if (IS_WINDOWS) { + expect(existsSync(join(taskDir, "bin", "task.exe"))).toBe(true); + } else { + expect(existsSync(join(taskDir, "bin", "task"))).toBe(true); + } + }); + + it("Gets latest version of Task using 3.x and no matching version is installed", async () => { + await getTask("3.x", ""); + const taskdir = join(toolDir, "task", "3.43.2", arch()); + + expect(existsSync(`${taskdir}.complete`)).toBe(true); + if (IS_WINDOWS) { + expect(existsSync(join(taskdir, "bin", "task.exe"))).toBe(true); + } else { + expect(existsSync(join(taskdir, "bin", "task"))).toBe(true); + } + }); + + it("Skips version computing when a valid semver is provided", async () => { + await getTask("3.37.0", ""); + const taskdir = join(toolDir, "task", "3.37.0", arch()); + + expect(existsSync(`${taskdir}.complete`)).toBe(true); + if (IS_WINDOWS) { + expect(existsSync(join(taskdir, "bin", "task.exe"))).toBe(true); + } else { + expect(existsSync(join(taskdir, "bin", "task"))).toBe(true); + } + }); + }); +}); diff --git a/__tests__/testdata/releases.json b/__tests__/testdata/releases.json new file mode 100644 index 0000000..5f37469 --- /dev/null +++ b/__tests__/testdata/releases.json @@ -0,0 +1,64525 @@ +[ + { + "url": "https://api.github.com/repos/go-task/task/releases/213754056", + "assets_url": "https://api.github.com/repos/go-task/task/releases/213754056/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/213754056/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.43.2", + "id": 213754056, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984MvaDI", + "tag_name": "v3.43.2", + "target_commitish": "main", + "name": "v3.43.2", + "draft": false, + "prerelease": false, + "created_at": "2025-04-21T19:35:01Z", + "published_at": "2025-04-21T19:41:35Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228820", + "id": 248228820, + "node_id": "RA_kwDOBPZW984Oy6vU", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228807", + "id": 248228807, + "node_id": "RA_kwDOBPZW984Oy6vH", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6909811, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228800", + "id": 248228800, + "node_id": "RA_kwDOBPZW984Oy6vA", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6492985, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228801", + "id": 248228801, + "node_id": "RA_kwDOBPZW984Oy6vB", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6459013, + "download_count": 0, + "created_at": "2025-04-21T19:40:15Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228808", + "id": 248228808, + "node_id": "RA_kwDOBPZW984Oy6vI", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6774426, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228802", + "id": 248228802, + "node_id": "RA_kwDOBPZW984Oy6vC", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6446301, + "download_count": 0, + "created_at": "2025-04-21T19:40:15Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228795", + "id": 248228795, + "node_id": "RA_kwDOBPZW984Oy6u7", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6224867, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228819", + "id": 248228819, + "node_id": "RA_kwDOBPZW984Oy6vT", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6497092, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228818", + "id": 248228818, + "node_id": "RA_kwDOBPZW984Oy6vS", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6774145, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228798", + "id": 248228798, + "node_id": "RA_kwDOBPZW984Oy6u-", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6482697, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228813", + "id": 248228813, + "node_id": "RA_kwDOBPZW984Oy6vN", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6813740, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228812", + "id": 248228812, + "node_id": "RA_kwDOBPZW984Oy6vM", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 7073502, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228794", + "id": 248228794, + "node_id": "RA_kwDOBPZW984Oy6u6", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6791797, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228810", + "id": 248228810, + "node_id": "RA_kwDOBPZW984Oy6vK", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6480508, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228815", + "id": 248228815, + "node_id": "RA_kwDOBPZW984Oy6vP", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6698704, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228797", + "id": 248228797, + "node_id": "RA_kwDOBPZW984Oy6u9", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6465892, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228809", + "id": 248228809, + "node_id": "RA_kwDOBPZW984Oy6vJ", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6265778, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228814", + "id": 248228814, + "node_id": "RA_kwDOBPZW984Oy6vO", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6501368, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228793", + "id": 248228793, + "node_id": "RA_kwDOBPZW984Oy6u5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6245741, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228811", + "id": 248228811, + "node_id": "RA_kwDOBPZW984Oy6vL", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6445862, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228816", + "id": 248228816, + "node_id": "RA_kwDOBPZW984Oy6vQ", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6723223, + "download_count": 0, + "created_at": "2025-04-21T19:40:17Z", + "updated_at": "2025-04-21T19:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228806", + "id": 248228806, + "node_id": "RA_kwDOBPZW984Oy6vG", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6426211, + "download_count": 0, + "created_at": "2025-04-21T19:40:16Z", + "updated_at": "2025-04-21T19:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228796", + "id": 248228796, + "node_id": "RA_kwDOBPZW984Oy6u8", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6774533, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228799", + "id": 248228799, + "node_id": "RA_kwDOBPZW984Oy6u_", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 7002973, + "download_count": 0, + "created_at": "2025-04-21T19:40:14Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228803", + "id": 248228803, + "node_id": "RA_kwDOBPZW984Oy6vD", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6637632, + "download_count": 0, + "created_at": "2025-04-21T19:40:15Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248228805", + "id": 248228805, + "node_id": "RA_kwDOBPZW984Oy6vF", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6354834, + "download_count": 0, + "created_at": "2025-04-21T19:40:15Z", + "updated_at": "2025-04-21T19:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.2/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.43.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.43.2", + "body": "## Changelog\r\n\r\n- Fixed regresion of `CLI_ARGS` being exposed as the wrong type (#2190, #2191 by @vmaerten).\r\n\r\n", + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/213722488", + "assets_url": "https://api.github.com/repos/go-task/task/releases/213722488/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/213722488/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.43.1", + "id": 213722488, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984MvSV4", + "tag_name": "v3.43.1", + "target_commitish": "main", + "name": "v3.43.1", + "draft": false, + "prerelease": false, + "created_at": "2025-04-21T16:57:43Z", + "published_at": "2025-04-21T17:13:30Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197587", + "id": 248197587, + "node_id": "RA_kwDOBPZW984OyzHT", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 753, + "created_at": "2025-04-21T17:03:04Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197551", + "id": 248197551, + "node_id": "RA_kwDOBPZW984OyzGv", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6909788, + "download_count": 10, + "created_at": "2025-04-21T17:02:59Z", + "updated_at": "2025-04-21T17:03:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197565", + "id": 248197565, + "node_id": "RA_kwDOBPZW984OyzG9", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6493166, + "download_count": 107, + "created_at": "2025-04-21T17:03:02Z", + "updated_at": "2025-04-21T17:03:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197547", + "id": 248197547, + "node_id": "RA_kwDOBPZW984OyzGr", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6459037, + "download_count": 3, + "created_at": "2025-04-21T17:02:59Z", + "updated_at": "2025-04-21T17:03:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197569", + "id": 248197569, + "node_id": "RA_kwDOBPZW984OyzHB", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6774422, + "download_count": 3, + "created_at": "2025-04-21T17:03:02Z", + "updated_at": "2025-04-21T17:03:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197555", + "id": 248197555, + "node_id": "RA_kwDOBPZW984OyzGz", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6446351, + "download_count": 3, + "created_at": "2025-04-21T17:03:00Z", + "updated_at": "2025-04-21T17:03:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197563", + "id": 248197563, + "node_id": "RA_kwDOBPZW984OyzG7", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6224799, + "download_count": 3, + "created_at": "2025-04-21T17:03:01Z", + "updated_at": "2025-04-21T17:03:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197574", + "id": 248197574, + "node_id": "RA_kwDOBPZW984OyzHG", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6497082, + "download_count": 3, + "created_at": "2025-04-21T17:03:03Z", + "updated_at": "2025-04-21T17:03:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197584", + "id": 248197584, + "node_id": "RA_kwDOBPZW984OyzHQ", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6759958, + "download_count": 3, + "created_at": "2025-04-21T17:03:04Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197567", + "id": 248197567, + "node_id": "RA_kwDOBPZW984OyzG_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6482681, + "download_count": 4, + "created_at": "2025-04-21T17:03:02Z", + "updated_at": "2025-04-21T17:03:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197576", + "id": 248197576, + "node_id": "RA_kwDOBPZW984OyzHI", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6813982, + "download_count": 4, + "created_at": "2025-04-21T17:03:03Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197577", + "id": 248197577, + "node_id": "RA_kwDOBPZW984OyzHJ", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 7073789, + "download_count": 4, + "created_at": "2025-04-21T17:03:03Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197548", + "id": 248197548, + "node_id": "RA_kwDOBPZW984OyzGs", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6792009, + "download_count": 1945, + "created_at": "2025-04-21T17:02:59Z", + "updated_at": "2025-04-21T17:03:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197585", + "id": 248197585, + "node_id": "RA_kwDOBPZW984OyzHR", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6480526, + "download_count": 3, + "created_at": "2025-04-21T17:03:04Z", + "updated_at": "2025-04-21T17:03:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197578", + "id": 248197578, + "node_id": "RA_kwDOBPZW984OyzHK", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6712468, + "download_count": 3, + "created_at": "2025-04-21T17:03:03Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197557", + "id": 248197557, + "node_id": "RA_kwDOBPZW984OyzG1", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6465932, + "download_count": 4, + "created_at": "2025-04-21T17:03:00Z", + "updated_at": "2025-04-21T17:03:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197570", + "id": 248197570, + "node_id": "RA_kwDOBPZW984OyzHC", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6265804, + "download_count": 3, + "created_at": "2025-04-21T17:03:02Z", + "updated_at": "2025-04-21T17:03:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197579", + "id": 248197579, + "node_id": "RA_kwDOBPZW984OyzHL", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6481382, + "download_count": 3, + "created_at": "2025-04-21T17:03:03Z", + "updated_at": "2025-04-21T17:03:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197558", + "id": 248197558, + "node_id": "RA_kwDOBPZW984OyzG2", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6245654, + "download_count": 54, + "created_at": "2025-04-21T17:03:01Z", + "updated_at": "2025-04-21T17:03:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197573", + "id": 248197573, + "node_id": "RA_kwDOBPZW984OyzHF", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6446018, + "download_count": 3, + "created_at": "2025-04-21T17:03:02Z", + "updated_at": "2025-04-21T17:03:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197583", + "id": 248197583, + "node_id": "RA_kwDOBPZW984OyzHP", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6708175, + "download_count": 3, + "created_at": "2025-04-21T17:03:04Z", + "updated_at": "2025-04-21T17:03:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197561", + "id": 248197561, + "node_id": "RA_kwDOBPZW984OyzG5", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6426382, + "download_count": 3, + "created_at": "2025-04-21T17:03:01Z", + "updated_at": "2025-04-21T17:03:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197556", + "id": 248197556, + "node_id": "RA_kwDOBPZW984OyzG0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6774793, + "download_count": 8, + "created_at": "2025-04-21T17:03:00Z", + "updated_at": "2025-04-21T17:03:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197564", + "id": 248197564, + "node_id": "RA_kwDOBPZW984OyzG8", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 7003269, + "download_count": 45, + "created_at": "2025-04-21T17:03:01Z", + "updated_at": "2025-04-21T17:03:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197554", + "id": 248197554, + "node_id": "RA_kwDOBPZW984OyzGy", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6637560, + "download_count": 3, + "created_at": "2025-04-21T17:03:00Z", + "updated_at": "2025-04-21T17:03:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/248197550", + "id": 248197550, + "node_id": "RA_kwDOBPZW984OyzGu", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6354994, + "download_count": 6, + "created_at": "2025-04-21T17:02:59Z", + "updated_at": "2025-04-21T17:03:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.43.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.43.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.43.1", + "body": "## Changelog\r\n\r\n- Significant improvements were made to the watcher. We migrated from [watcher](https://github.com/radovskyb/watcher) to [fsnotify](https://github.com/fsnotify/fsnotify). The former library used polling, which means Task had a high CPU usage when watching too many files. `fsnotify` uses proper the APIs from each operating system to watch files, which means a much better performance. The default interval changed from 5 seconds to 100 milliseconds, because now it configures the wait time for duplicated events, instead of the polling time (#2048 by @andreynering, #1508, #985, #1179).\r\n- The [Map Variables experiment](https://github.com/go-task/task/issues/1585) was made generally available so you can now [define map variables in your Taskfiles!](https://taskfile.dev/usage/#variables) (#1585, #1547, #2081 by @pd93).\r\n- Wildcards can now [match multiple tasks](https://taskfile.dev/usage/#wildcard-arguments) (#2072, #2121 by @pd93).\r\n- Added the ability to [loop over the files specified by the `generates` keyword](https://taskfile.dev/usage/#looping-over-your-tasks-sources-or-generated-files). This works the same way as looping over sources (#2151 by @sedyh).\r\n- Added the ability to resolve variables when defining an include variable (#2108, #2113 by @pd93).\r\n- A few changes have been made to the [Remote Taskfiles experiment](https://github.com/go-task/task/issues/1317) (#1402, #2176 by @pd93):\r\n - Cached files are now prioritized over remote ones.\r\n - Added an `--expiry` flag which sets the TTL for a remote file cache. By default the value will be 0 (caching disabled). If Task is running in offline mode or fails to make a connection, it will fallback on the cache.\r\n- `.taskrc` files can now be used from subdirectories and will be searched for recursively up the file tree in the same way that Taskfiles are (#2159, #2166 by @pd93).\r\n- The default taskfile (output when using the `--init` flag) is now an embedded file in the binary instead of being stored in the code (#2112 by @pd93).\r\n- Improved the way we report the Task version when using the `--version` flag or `{{.TASK_VERSION}}` variable. This should now be more consistent and easier for package maintainers to use (#2131 by @pd93).\r\n- Fixed a bug where globstar (`**`) matching in `sources` only resolved the first result (#2073, #2075 by @pd93).\r\n- Fixed a bug where sorting tasks by \"none\" would use the default sorting instead of leaving tasks in the order they were defined (#2124, #2125 by @trulede).\r\n- Fixed Fish completion on newer Fish versions (#2130 by @atusy).\r\n- Fixed a bug where undefined/null variables resolved to an empty string instead of `nil` (#1911, #2144 by @pd93).\r\n- The `USER_WORKING_DIR` special now will now properly account for the `--dir` (`-d`) flag, if given (#2102, #2103 by @jaynis, #2186 by @andreynering).\r\n- Fix Fish completions when `--global` (`-g`) is given (#2134 by @atusy).\r\n- Fixed variables not available when using `defer:` (#1909, #2173 by @vmaerten).\r\n\r\n## Contribute\r\n\r\nLove Task? If you or your company benefit from our work, consider [becoming a sponsor](https://taskfile.dev/donate)!", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/213722488/reactions", + "total_count": 5, + "+1": 4, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 7 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/204835692", + "assets_url": "https://api.github.com/repos/go-task/task/releases/204835692/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/204835692/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.42.1", + "id": 204835692, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984MNYts", + "tag_name": "v3.42.1", + "target_commitish": "main", + "name": "v3.42.1", + "draft": false, + "prerelease": false, + "created_at": "2025-03-10T20:18:58Z", + "published_at": "2025-03-10T20:29:28Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262439", + "id": 236262439, + "node_id": "RA_kwDOBPZW984OFRQn", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 285161, + "created_at": "2025-03-10T20:23:50Z", + "updated_at": "2025-03-10T20:23:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262409", + "id": 236262409, + "node_id": "RA_kwDOBPZW984OFRQJ", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6576567, + "download_count": 2609, + "created_at": "2025-03-10T20:23:46Z", + "updated_at": "2025-03-10T20:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262407", + "id": 236262407, + "node_id": "RA_kwDOBPZW984OFRQH", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6188105, + "download_count": 20348, + "created_at": "2025-03-10T20:23:46Z", + "updated_at": "2025-03-10T20:23:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262419", + "id": 236262419, + "node_id": "RA_kwDOBPZW984OFRQT", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6078067, + "download_count": 53, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262400", + "id": 236262400, + "node_id": "RA_kwDOBPZW984OFRQA", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6450183, + "download_count": 64, + "created_at": "2025-03-10T20:23:45Z", + "updated_at": "2025-03-10T20:23:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262401", + "id": 236262401, + "node_id": "RA_kwDOBPZW984OFRQB", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6069699, + "download_count": 40, + "created_at": "2025-03-10T20:23:45Z", + "updated_at": "2025-03-10T20:23:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262402", + "id": 236262402, + "node_id": "RA_kwDOBPZW984OFRQC", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5936752, + "download_count": 42, + "created_at": "2025-03-10T20:23:45Z", + "updated_at": "2025-03-10T20:23:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262426", + "id": 236262426, + "node_id": "RA_kwDOBPZW984OFRQa", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6120600, + "download_count": 110, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262432", + "id": 236262432, + "node_id": "RA_kwDOBPZW984OFRQg", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6351888, + "download_count": 164, + "created_at": "2025-03-10T20:23:49Z", + "updated_at": "2025-03-10T20:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262421", + "id": 236262421, + "node_id": "RA_kwDOBPZW984OFRQV", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6106600, + "download_count": 174, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262428", + "id": 236262428, + "node_id": "RA_kwDOBPZW984OFRQc", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6491784, + "download_count": 3491, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262435", + "id": 236262435, + "node_id": "RA_kwDOBPZW984OFRQj", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6755649, + "download_count": 197, + "created_at": "2025-03-10T20:23:49Z", + "updated_at": "2025-03-10T20:23:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262408", + "id": 236262408, + "node_id": "RA_kwDOBPZW984OFRQI", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6468672, + "download_count": 698969, + "created_at": "2025-03-10T20:23:46Z", + "updated_at": "2025-03-10T20:23:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262437", + "id": 236262437, + "node_id": "RA_kwDOBPZW984OFRQl", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6105754, + "download_count": 35, + "created_at": "2025-03-10T20:23:49Z", + "updated_at": "2025-03-10T20:23:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262431", + "id": 236262431, + "node_id": "RA_kwDOBPZW984OFRQf", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6346303, + "download_count": 35, + "created_at": "2025-03-10T20:23:49Z", + "updated_at": "2025-03-10T20:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262422", + "id": 236262422, + "node_id": "RA_kwDOBPZW984OFRQW", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6094499, + "download_count": 54, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262424", + "id": 236262424, + "node_id": "RA_kwDOBPZW984OFRQY", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5985930, + "download_count": 217, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262430", + "id": 236262430, + "node_id": "RA_kwDOBPZW984OFRQe", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6214957, + "download_count": 37, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262423", + "id": 236262423, + "node_id": "RA_kwDOBPZW984OFRQX", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5968123, + "download_count": 48387, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262425", + "id": 236262425, + "node_id": "RA_kwDOBPZW984OFRQZ", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6040914, + "download_count": 46, + "created_at": "2025-03-10T20:23:48Z", + "updated_at": "2025-03-10T20:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262434", + "id": 236262434, + "node_id": "RA_kwDOBPZW984OFRQi", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6268045, + "download_count": 45, + "created_at": "2025-03-10T20:23:49Z", + "updated_at": "2025-03-10T20:23:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262403", + "id": 236262403, + "node_id": "RA_kwDOBPZW984OFRQD", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6019881, + "download_count": 54, + "created_at": "2025-03-10T20:23:45Z", + "updated_at": "2025-03-10T20:23:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262410", + "id": 236262410, + "node_id": "RA_kwDOBPZW984OFRQK", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6385506, + "download_count": 128, + "created_at": "2025-03-10T20:23:46Z", + "updated_at": "2025-03-10T20:23:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262418", + "id": 236262418, + "node_id": "RA_kwDOBPZW984OFRQS", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6676855, + "download_count": 13135, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262416", + "id": 236262416, + "node_id": "RA_kwDOBPZW984OFRQQ", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6255252, + "download_count": 45, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/236262420", + "id": 236262420, + "node_id": "RA_kwDOBPZW984OFRQU", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6065834, + "download_count": 121, + "created_at": "2025-03-10T20:23:47Z", + "updated_at": "2025-03-10T20:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.42.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.42.1", + "body": "- Fixed a bug where some special variables caused a type error when used in global variables (#2106, #2107 by @pd93).\r\n", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/204835692/reactions", + "total_count": 9, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/204563288", + "assets_url": "https://api.github.com/repos/go-task/task/releases/204563288/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/204563288/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.42.0", + "id": 204563288, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984MMWNY", + "tag_name": "v3.42.0", + "target_commitish": "main", + "name": "v3.42.0", + "draft": false, + "prerelease": false, + "created_at": "2025-03-09T01:34:07Z", + "published_at": "2025-03-09T01:43:34Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832871", + "id": 235832871, + "node_id": "RA_kwDOBPZW984ODoYn", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 16201, + "created_at": "2025-03-09T01:39:44Z", + "updated_at": "2025-03-09T01:39:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832847", + "id": 235832847, + "node_id": "RA_kwDOBPZW984ODoYP", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6576764, + "download_count": 175, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832831", + "id": 235832831, + "node_id": "RA_kwDOBPZW984ODoX_", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6187724, + "download_count": 1408, + "created_at": "2025-03-09T01:39:40Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832852", + "id": 235832852, + "node_id": "RA_kwDOBPZW984ODoYU", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6077936, + "download_count": 17, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832846", + "id": 235832846, + "node_id": "RA_kwDOBPZW984ODoYO", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6450071, + "download_count": 17, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832845", + "id": 235832845, + "node_id": "RA_kwDOBPZW984ODoYN", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6069535, + "download_count": 6, + "created_at": "2025-03-09T01:39:41Z", + "updated_at": "2025-03-09T01:39:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832843", + "id": 235832843, + "node_id": "RA_kwDOBPZW984ODoYL", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5936680, + "download_count": 6, + "created_at": "2025-03-09T01:39:41Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832857", + "id": 235832857, + "node_id": "RA_kwDOBPZW984ODoYZ", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6120530, + "download_count": 21, + "created_at": "2025-03-09T01:39:43Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832861", + "id": 235832861, + "node_id": "RA_kwDOBPZW984ODoYd", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6351723, + "download_count": 21, + "created_at": "2025-03-09T01:39:43Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832829", + "id": 235832829, + "node_id": "RA_kwDOBPZW984ODoX9", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6106493, + "download_count": 25, + "created_at": "2025-03-09T01:39:40Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832859", + "id": 235832859, + "node_id": "RA_kwDOBPZW984ODoYb", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6491392, + "download_count": 249, + "created_at": "2025-03-09T01:39:43Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832862", + "id": 235832862, + "node_id": "RA_kwDOBPZW984ODoYe", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6755474, + "download_count": 44, + "created_at": "2025-03-09T01:39:43Z", + "updated_at": "2025-03-09T01:39:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832842", + "id": 235832842, + "node_id": "RA_kwDOBPZW984ODoYK", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6468470, + "download_count": 32489, + "created_at": "2025-03-09T01:39:41Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832858", + "id": 235832858, + "node_id": "RA_kwDOBPZW984ODoYa", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6105622, + "download_count": 5, + "created_at": "2025-03-09T01:39:43Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832864", + "id": 235832864, + "node_id": "RA_kwDOBPZW984ODoYg", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6346610, + "download_count": 5, + "created_at": "2025-03-09T01:39:44Z", + "updated_at": "2025-03-09T01:39:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832851", + "id": 235832851, + "node_id": "RA_kwDOBPZW984ODoYT", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6094316, + "download_count": 8, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832856", + "id": 235832856, + "node_id": "RA_kwDOBPZW984ODoYY", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5985876, + "download_count": 43, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832863", + "id": 235832863, + "node_id": "RA_kwDOBPZW984ODoYf", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6214827, + "download_count": 8, + "created_at": "2025-03-09T01:39:44Z", + "updated_at": "2025-03-09T01:39:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832840", + "id": 235832840, + "node_id": "RA_kwDOBPZW984ODoYI", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5968065, + "download_count": 2030, + "created_at": "2025-03-09T01:39:41Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832869", + "id": 235832869, + "node_id": "RA_kwDOBPZW984ODoYl", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6040554, + "download_count": 17, + "created_at": "2025-03-09T01:39:44Z", + "updated_at": "2025-03-09T01:39:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832867", + "id": 235832867, + "node_id": "RA_kwDOBPZW984ODoYj", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6267978, + "download_count": 17, + "created_at": "2025-03-09T01:39:44Z", + "updated_at": "2025-03-09T01:39:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832830", + "id": 235832830, + "node_id": "RA_kwDOBPZW984ODoX-", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6019599, + "download_count": 20, + "created_at": "2025-03-09T01:39:40Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832841", + "id": 235832841, + "node_id": "RA_kwDOBPZW984ODoYJ", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6385281, + "download_count": 147, + "created_at": "2025-03-09T01:39:41Z", + "updated_at": "2025-03-09T01:39:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832850", + "id": 235832850, + "node_id": "RA_kwDOBPZW984ODoYS", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6676743, + "download_count": 1644, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832828", + "id": 235832828, + "node_id": "RA_kwDOBPZW984ODoX8", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6255191, + "download_count": 6, + "created_at": "2025-03-09T01:39:40Z", + "updated_at": "2025-03-09T01:39:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/235832854", + "id": 235832854, + "node_id": "RA_kwDOBPZW984ODoYW", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6065663, + "download_count": 130, + "created_at": "2025-03-09T01:39:42Z", + "updated_at": "2025-03-09T01:39:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.42.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.42.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.42.0", + "body": "- Made `--init` less verbose by default and respect `--silent` and `--verbose` flags (#2009, #2011 by @HeCorr).\r\n- `--init` now accepts a file name or directory as an argument (#2008, #2018 by @HeCorr).\r\n- Fix a bug where an HTTP node's location was being mutated incorrectly (#2007 by @jeongukjae).\r\n- Fixed a bug where allowed values didn't work with dynamic var (#2032, #2033 by @vmaerten).\r\n- Use only the relevant checker (timestamp or checksum) to improve performance (#2029, #2031 by @vmaerten).\r\n- Print warnings when attempting to enable an inactive experiment or an active experiment with an invalid value (#1979, #2049 by @pd93).\r\n- Refactored the experiments package and added tests (#2049 by @pd93).\r\n- Show allowed values when a variable with an enum is missing (#2027, #2052 by @vmaerten).\r\n- Refactored how snippets in error work and added tests (#2068 by @pd93).\r\n- Fixed a bug where errors decoding commands were sometimes unhelpful (#2068 by @pd93).\r\n- Fixed a bug in the Taskfile schema where `defer` statements in the shorthand `cmds` syntax were not considered valid (#2068 by @pd93).\r\n- Refactored how task sorting functions work (#1798 by @pd93).\r\n- Added a new `.taskrc.yml` (or `.taskrc.yaml`) file to let users enable experiments (similar to `.env`) (#1982 by @vmaerten).\r\n- Added new [Getting Started docs](https://taskfile.dev/getting-started) (#2086 by @pd93).\r\n- Allow `matrix` to use references to other variables (#2065, #2069 by @pd93).\r\n- Fixed a bug where, when a dynamic variable is provided, even if it is not used, all other variables become unavailable in the templating system within the include (#2092 by @vmaerten).\r\n\r\n#### Package API\r\n\r\nUnlike our CLI tool, [Task's package API is not currently stable](https://taskfile.dev/reference/package). In an effort to ease the pain of breaking changes for our users, we will be providing changelogs for our package API going forwards. The hope is that these changes will provide a better long-term experience for our users and allow to stabilize the API in the future. #121 now tracks this piece of work.\r\n\r\n- Bumped the minimum required Go version to 1.23 (#2059 by @pd93).\r\n- [`task.InitTaskfile`](https://pkg.go.dev/github.com/go-task/task/v3#InitTaskfile) (#2011, ff8c913 by @HeCorr and @pd93)\r\n - No longer accepts an `io.Writer` (output is now the caller's responsibility).\r\n - The path argument can now be a filename OR a directory.\r\n - The function now returns the full path of the generated file.\r\n- [`TaskfileDecodeError.WithFileInfo`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskfileDecodeError.WithFileInfo) now accepts a string instead of the arguments required to generate a snippet (#2068 by @pd93).\r\n - The caller is now expected to create the snippet themselves (see below).\r\n- [`TaskfileSnippet`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Snippet) and related code moved from the `errors` package to the `taskfile` package (#2068 by @pd93).\r\n- Renamed `TaskMissingRequiredVars` to [`TaskMissingRequiredVarsError`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskMissingRequiredVarsError) (#2052 by @vmaerten).\r\n- Renamed `TaskNotAllowedVars` to [`TaskNotAllowedVarsError`](https://pkg.go.dev/github.com/go-task/task/v3/errors#TaskNotAllowedVarsError) (#2052 by @vmaerten).\r\n- The [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) is now constructed using the functional options pattern (#2082 by @pd93).\r\n- Removed our internal `logger.Logger` from the entire `taskfile` package (#2082 by @pd93).\r\n - Users are now expected to pass a custom debug/prompt functions into [`taskfile.Reader`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#Reader) if they want this functionality by using the new [`WithDebugFunc`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#WithDebugFunc) and [`WithPromptFunc`](https://pkg.go.dev/github.com/go-task/task/v3/taskfile#WithPromptFunc) functional options.\r\n- Remove `Range` functions in the `taskfile/ast` package in favour of new iterator functions (#1798 by @pd93).\r\n- `ast.Call` was moved from the `taskfile/ast` package to the main `task` package (#2084 by @pd93).\r\n- `ast.Tasks.FindMatchingTasks` was moved from the `taskfile/ast` package to the `task.Executor.FindMatchingTasks` in the main `task` package (#2084 by @pd93).\r\n- The `Compiler` and its `GetVariables` and `FastGetVariables` methods were moved from the `internal/compiler` package to the main `task` package (#2084 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/204563288/reactions", + "total_count": 9, + "+1": 2, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 6, + "eyes": 0 + }, + "mentions_count": 4 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/195464501", + "assets_url": "https://api.github.com/repos/go-task/task/releases/195464501/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/195464501/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.41.0", + "id": 195464501, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Lpo01", + "tag_name": "v3.41.0", + "target_commitish": "main", + "name": "v3.41.0", + "draft": false, + "prerelease": false, + "created_at": "2025-01-18T14:15:57Z", + "published_at": "2025-01-18T14:22:48Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404434", + "id": 221404434, + "node_id": "RA_kwDOBPZW984NMl0S", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 337878, + "created_at": "2025-01-18T14:20:35Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404419", + "id": 221404419, + "node_id": "RA_kwDOBPZW984NMl0D", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6364786, + "download_count": 2053, + "created_at": "2025-01-18T14:20:32Z", + "updated_at": "2025-01-18T14:20:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404416", + "id": 221404416, + "node_id": "RA_kwDOBPZW984NMl0A", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5997745, + "download_count": 24658, + "created_at": "2025-01-18T14:20:32Z", + "updated_at": "2025-01-18T14:20:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404408", + "id": 221404408, + "node_id": "RA_kwDOBPZW984NMlz4", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5877894, + "download_count": 63, + "created_at": "2025-01-18T14:20:30Z", + "updated_at": "2025-01-18T14:20:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404413", + "id": 221404413, + "node_id": "RA_kwDOBPZW984NMlz9", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6245682, + "download_count": 73, + "created_at": "2025-01-18T14:20:31Z", + "updated_at": "2025-01-18T14:20:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404418", + "id": 221404418, + "node_id": "RA_kwDOBPZW984NMl0C", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5892560, + "download_count": 43, + "created_at": "2025-01-18T14:20:32Z", + "updated_at": "2025-01-18T14:20:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404412", + "id": 221404412, + "node_id": "RA_kwDOBPZW984NMlz8", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5754274, + "download_count": 43, + "created_at": "2025-01-18T14:20:31Z", + "updated_at": "2025-01-18T14:20:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404426", + "id": 221404426, + "node_id": "RA_kwDOBPZW984NMl0K", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5917222, + "download_count": 151, + "created_at": "2025-01-18T14:20:34Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404429", + "id": 221404429, + "node_id": "RA_kwDOBPZW984NMl0N", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6143630, + "download_count": 313, + "created_at": "2025-01-18T14:20:34Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404415", + "id": 221404415, + "node_id": "RA_kwDOBPZW984NMlz_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5902274, + "download_count": 334, + "created_at": "2025-01-18T14:20:32Z", + "updated_at": "2025-01-18T14:20:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404427", + "id": 221404427, + "node_id": "RA_kwDOBPZW984NMl0L", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6282610, + "download_count": 5555, + "created_at": "2025-01-18T14:20:34Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404430", + "id": 221404430, + "node_id": "RA_kwDOBPZW984NMl0O", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6517782, + "download_count": 177, + "created_at": "2025-01-18T14:20:34Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404423", + "id": 221404423, + "node_id": "RA_kwDOBPZW984NMl0H", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6260461, + "download_count": 854756, + "created_at": "2025-01-18T14:20:33Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404425", + "id": 221404425, + "node_id": "RA_kwDOBPZW984NMl0J", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5920296, + "download_count": 50, + "created_at": "2025-01-18T14:20:33Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404431", + "id": 221404431, + "node_id": "RA_kwDOBPZW984NMl0P", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6113658, + "download_count": 44, + "created_at": "2025-01-18T14:20:35Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404409", + "id": 221404409, + "node_id": "RA_kwDOBPZW984NMlz5", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5905586, + "download_count": 96, + "created_at": "2025-01-18T14:20:30Z", + "updated_at": "2025-01-18T14:20:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404424", + "id": 221404424, + "node_id": "RA_kwDOBPZW984NMl0I", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5792262, + "download_count": 229, + "created_at": "2025-01-18T14:20:33Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404432", + "id": 221404432, + "node_id": "RA_kwDOBPZW984NMl0Q", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6000244, + "download_count": 52, + "created_at": "2025-01-18T14:20:35Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404407", + "id": 221404407, + "node_id": "RA_kwDOBPZW984NMlz3", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5773752, + "download_count": 60989, + "created_at": "2025-01-18T14:20:30Z", + "updated_at": "2025-01-18T14:20:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404433", + "id": 221404433, + "node_id": "RA_kwDOBPZW984NMl0R", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5857170, + "download_count": 66, + "created_at": "2025-01-18T14:20:35Z", + "updated_at": "2025-01-18T14:20:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404428", + "id": 221404428, + "node_id": "RA_kwDOBPZW984NMl0M", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6097170, + "download_count": 65, + "created_at": "2025-01-18T14:20:34Z", + "updated_at": "2025-01-18T14:20:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404411", + "id": 221404411, + "node_id": "RA_kwDOBPZW984NMlz7", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5835269, + "download_count": 71, + "created_at": "2025-01-18T14:20:31Z", + "updated_at": "2025-01-18T14:20:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404422", + "id": 221404422, + "node_id": "RA_kwDOBPZW984NMl0G", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6169458, + "download_count": 302, + "created_at": "2025-01-18T14:20:33Z", + "updated_at": "2025-01-18T14:20:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404414", + "id": 221404414, + "node_id": "RA_kwDOBPZW984NMlz-", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6457689, + "download_count": 15417, + "created_at": "2025-01-18T14:20:31Z", + "updated_at": "2025-01-18T14:20:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404405", + "id": 221404405, + "node_id": "RA_kwDOBPZW984NMlz1", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6065797, + "download_count": 43, + "created_at": "2025-01-18T14:20:30Z", + "updated_at": "2025-01-18T14:20:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/221404420", + "id": 221404420, + "node_id": "RA_kwDOBPZW984NMl0E", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 5874681, + "download_count": 269, + "created_at": "2025-01-18T14:20:32Z", + "updated_at": "2025-01-18T14:20:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.41.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.41.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.41.0", + "body": "- Fixed an issue where dynamic variables were not properly logged in verbose mode (#1920, #1921 by @mgbowman).\r\n- Support `silent` for defer statements (#1877, #1879 by @danilobuerger).\r\n- Added an option to exclude some tasks from being included (#1859 by @vmaerten).\r\n- Fixed an issue where a required variable was incorrectly handled in a template function (#1950, #1962 by @vmaerten).\r\n- Expose a new `TASK_DIR` special variable, which will contain the absolute path of task directory. (#1959, #1961 by @vmaerten).\r\n- Fixed fatal bugs that caused concurrent map writes (#1605, #1972, #1974 by @pd93, @GrahamDennis and @trim21).\r\n- Refactored internal ordered map implementation to use [github.com/elliotchance/orderedmap](https://github.com/elliotchance/orderedmap) (#1797 by @pd93).\r\n- Fixed a bug where variables defined at the task level were being ignored in the `requires` section. (#1960, #1955, #1768 by @vmaerten and @mokeko)\r\n- The `CHECKSUM` and `TIMESTAMP` variables are now accessible within `cmds` (#1872 by @niklasr22).\r\n- Updated [installation docs](https://taskfile.dev/installation) and added pip installation method (#935, #1989 by @pd93).\r\n- Fixed a bug where dynamic variables could not access environment variables (#630, #1869 by @rohm1 and @pd93).\r\n- Disable version check for use as an external library (#1938 by @leaanthony).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/195464501/reactions", + "total_count": 19, + "+1": 16, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 3, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 10 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/189400341", + "assets_url": "https://api.github.com/repos/go-task/task/releases/189400341/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/189400341/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.40.1", + "id": 189400341, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984LSgUV", + "tag_name": "v3.40.1", + "target_commitish": "main", + "name": "v3.40.1", + "draft": false, + "prerelease": false, + "created_at": "2024-12-06T12:59:04Z", + "published_at": "2024-12-06T13:05:05Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553744", + "id": 211553744, + "node_id": "RA_kwDOBPZW984MnA3Q", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 235975, + "created_at": "2024-12-06T13:03:38Z", + "updated_at": "2024-12-06T13:03:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553728", + "id": 211553728, + "node_id": "RA_kwDOBPZW984MnA3A", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6325528, + "download_count": 1897, + "created_at": "2024-12-06T13:03:35Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553717", + "id": 211553717, + "node_id": "RA_kwDOBPZW984MnA21", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5960282, + "download_count": 18244, + "created_at": "2024-12-06T13:03:33Z", + "updated_at": "2024-12-06T13:03:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553706", + "id": 211553706, + "node_id": "RA_kwDOBPZW984MnA2q", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5846771, + "download_count": 66, + "created_at": "2024-12-06T13:03:32Z", + "updated_at": "2024-12-06T13:03:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553722", + "id": 211553722, + "node_id": "RA_kwDOBPZW984MnA26", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6208813, + "download_count": 148, + "created_at": "2024-12-06T13:03:34Z", + "updated_at": "2024-12-06T13:03:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553721", + "id": 211553721, + "node_id": "RA_kwDOBPZW984MnA25", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5859802, + "download_count": 40, + "created_at": "2024-12-06T13:03:34Z", + "updated_at": "2024-12-06T13:03:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553715", + "id": 211553715, + "node_id": "RA_kwDOBPZW984MnA2z", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5720211, + "download_count": 42, + "created_at": "2024-12-06T13:03:33Z", + "updated_at": "2024-12-06T13:03:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553731", + "id": 211553731, + "node_id": "RA_kwDOBPZW984MnA3D", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5876018, + "download_count": 155, + "created_at": "2024-12-06T13:03:35Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553737", + "id": 211553737, + "node_id": "RA_kwDOBPZW984MnA3J", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6101200, + "download_count": 245, + "created_at": "2024-12-06T13:03:37Z", + "updated_at": "2024-12-06T13:03:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553727", + "id": 211553727, + "node_id": "RA_kwDOBPZW984MnA2_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5860001, + "download_count": 340, + "created_at": "2024-12-06T13:03:35Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553734", + "id": 211553734, + "node_id": "RA_kwDOBPZW984MnA3G", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6234474, + "download_count": 2552, + "created_at": "2024-12-06T13:03:36Z", + "updated_at": "2024-12-06T13:03:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553738", + "id": 211553738, + "node_id": "RA_kwDOBPZW984MnA3K", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6474044, + "download_count": 289, + "created_at": "2024-12-06T13:03:37Z", + "updated_at": "2024-12-06T13:03:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553720", + "id": 211553720, + "node_id": "RA_kwDOBPZW984MnA24", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6214203, + "download_count": 590678, + "created_at": "2024-12-06T13:03:34Z", + "updated_at": "2024-12-06T13:03:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553732", + "id": 211553732, + "node_id": "RA_kwDOBPZW984MnA3E", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5879214, + "download_count": 45, + "created_at": "2024-12-06T13:03:36Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553739", + "id": 211553739, + "node_id": "RA_kwDOBPZW984MnA3L", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6105792, + "download_count": 38, + "created_at": "2024-12-06T13:03:37Z", + "updated_at": "2024-12-06T13:03:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553713", + "id": 211553713, + "node_id": "RA_kwDOBPZW984MnA2x", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5863655, + "download_count": 149, + "created_at": "2024-12-06T13:03:32Z", + "updated_at": "2024-12-06T13:03:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553729", + "id": 211553729, + "node_id": "RA_kwDOBPZW984MnA3B", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5749580, + "download_count": 474, + "created_at": "2024-12-06T13:03:35Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553733", + "id": 211553733, + "node_id": "RA_kwDOBPZW984MnA3F", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 5979090, + "download_count": 51, + "created_at": "2024-12-06T13:03:36Z", + "updated_at": "2024-12-06T13:03:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553723", + "id": 211553723, + "node_id": "RA_kwDOBPZW984MnA27", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5729716, + "download_count": 33288, + "created_at": "2024-12-06T13:03:34Z", + "updated_at": "2024-12-06T13:03:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553741", + "id": 211553741, + "node_id": "RA_kwDOBPZW984MnA3N", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5808680, + "download_count": 68, + "created_at": "2024-12-06T13:03:37Z", + "updated_at": "2024-12-06T13:03:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553736", + "id": 211553736, + "node_id": "RA_kwDOBPZW984MnA3I", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6038352, + "download_count": 66, + "created_at": "2024-12-06T13:03:36Z", + "updated_at": "2024-12-06T13:03:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553718", + "id": 211553718, + "node_id": "RA_kwDOBPZW984MnA22", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5787628, + "download_count": 67, + "created_at": "2024-12-06T13:03:33Z", + "updated_at": "2024-12-06T13:03:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553704", + "id": 211553704, + "node_id": "RA_kwDOBPZW984MnA2o", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6137824, + "download_count": 312, + "created_at": "2024-12-06T13:03:32Z", + "updated_at": "2024-12-06T13:03:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553703", + "id": 211553703, + "node_id": "RA_kwDOBPZW984MnA2n", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6420910, + "download_count": 12248, + "created_at": "2024-12-06T13:03:32Z", + "updated_at": "2024-12-06T13:03:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553725", + "id": 211553725, + "node_id": "RA_kwDOBPZW984MnA29", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6033364, + "download_count": 42, + "created_at": "2024-12-06T13:03:35Z", + "updated_at": "2024-12-06T13:03:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/211553705", + "id": 211553705, + "node_id": "RA_kwDOBPZW984MnA2p", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 5842684, + "download_count": 280, + "created_at": "2024-12-06T13:03:32Z", + "updated_at": "2024-12-06T13:03:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.40.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.40.1", + "body": "- Fixed a security issue in `git-urls` by switching to the maintained fork `chainguard-dev/git-urls` (#1917 by @AlekSi).\r\n- Added missing `platforms` property to `cmds` that use `for` (#1915 by @dkarter).\r\n- Added misspell linter to check for misspelled English words (#1883 by @christiandins).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/189400341/reactions", + "total_count": 7, + "+1": 7, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/183839046", + "assets_url": "https://api.github.com/repos/go-task/task/releases/183839046/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/183839046/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.40.0", + "id": 183839046, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984K9SlG", + "tag_name": "v3.40.0", + "target_commitish": "main", + "name": "v3.40.0", + "draft": false, + "prerelease": false, + "created_at": "2024-11-06T01:34:38Z", + "published_at": "2024-11-06T01:51:32Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424168", + "id": 204424168, + "node_id": "RA_kwDOBPZW984ML0Po", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 215346, + "created_at": "2024-11-06T01:39:40Z", + "updated_at": "2024-11-06T01:39:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424138", + "id": 204424138, + "node_id": "RA_kwDOBPZW984ML0PK", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6324895, + "download_count": 1417, + "created_at": "2024-11-06T01:39:37Z", + "updated_at": "2024-11-06T01:39:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424118", + "id": 204424118, + "node_id": "RA_kwDOBPZW984ML0O2", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5960273, + "download_count": 12782, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424143", + "id": 204424143, + "node_id": "RA_kwDOBPZW984ML0PP", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5847452, + "download_count": 59, + "created_at": "2024-11-06T01:39:37Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424146", + "id": 204424146, + "node_id": "RA_kwDOBPZW984ML0PS", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6208748, + "download_count": 67, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424116", + "id": 204424116, + "node_id": "RA_kwDOBPZW984ML0O0", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5859798, + "download_count": 30, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424137", + "id": 204424137, + "node_id": "RA_kwDOBPZW984ML0PJ", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5719875, + "download_count": 27, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424154", + "id": 204424154, + "node_id": "RA_kwDOBPZW984ML0Pa", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5875920, + "download_count": 150, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424156", + "id": 204424156, + "node_id": "RA_kwDOBPZW984ML0Pc", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6104141, + "download_count": 237, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424135", + "id": 204424135, + "node_id": "RA_kwDOBPZW984ML0PH", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5860051, + "download_count": 155, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424155", + "id": 204424155, + "node_id": "RA_kwDOBPZW984ML0Pb", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 6234238, + "download_count": 4289, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424160", + "id": 204424160, + "node_id": "RA_kwDOBPZW984ML0Pg", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6488909, + "download_count": 172, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424142", + "id": 204424142, + "node_id": "RA_kwDOBPZW984ML0PO", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 6213938, + "download_count": 477426, + "created_at": "2024-11-06T01:39:37Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424151", + "id": 204424151, + "node_id": "RA_kwDOBPZW984ML0PX", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5879442, + "download_count": 38, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424161", + "id": 204424161, + "node_id": "RA_kwDOBPZW984ML0Ph", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6104843, + "download_count": 25, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424140", + "id": 204424140, + "node_id": "RA_kwDOBPZW984ML0PM", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5864003, + "download_count": 61, + "created_at": "2024-11-06T01:39:37Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424149", + "id": 204424149, + "node_id": "RA_kwDOBPZW984ML0PV", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5749460, + "download_count": 213, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424164", + "id": 204424164, + "node_id": "RA_kwDOBPZW984ML0Pk", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 5961715, + "download_count": 30, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424136", + "id": 204424136, + "node_id": "RA_kwDOBPZW984ML0PI", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5729664, + "download_count": 24565, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424167", + "id": 204424167, + "node_id": "RA_kwDOBPZW984ML0Pn", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 5808268, + "download_count": 59, + "created_at": "2024-11-06T01:39:40Z", + "updated_at": "2024-11-06T01:39:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424162", + "id": 204424162, + "node_id": "RA_kwDOBPZW984ML0Pi", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 6037808, + "download_count": 58, + "created_at": "2024-11-06T01:39:39Z", + "updated_at": "2024-11-06T01:39:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424117", + "id": 204424117, + "node_id": "RA_kwDOBPZW984ML0O1", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 5787501, + "download_count": 59, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424115", + "id": 204424115, + "node_id": "RA_kwDOBPZW984ML0Oz", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6137505, + "download_count": 422, + "created_at": "2024-11-06T01:39:36Z", + "updated_at": "2024-11-06T01:39:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424141", + "id": 204424141, + "node_id": "RA_kwDOBPZW984ML0PN", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6420483, + "download_count": 9242, + "created_at": "2024-11-06T01:39:37Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424145", + "id": 204424145, + "node_id": "RA_kwDOBPZW984ML0PR", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 6033339, + "download_count": 26, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/204424147", + "id": 204424147, + "node_id": "RA_kwDOBPZW984ML0PT", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 5842395, + "download_count": 345, + "created_at": "2024-11-06T01:39:38Z", + "updated_at": "2024-11-06T01:39:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.40.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.40.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.40.0", + "body": "If you like this project, consider [spreading the word](https://x.com/intent/post?text=%40taskfiledev+is+awesome%21+https%3A%2F%2Ftaskfile.dev) or [sponsoring the project](https://taskfile.dev/donate/).\r\n\r\n- Fixed output of some functions (e.g. `splitArgs`/`splitLines`) not working in for loops (#1822, #1823 by @stawii).\r\n- Added a new `TASK_OFFLINE` environment variable to configure the `--offline` flag and expose it as a special variable in the templating system (#1470, #1716 by @vmaerten and @pd93).\r\n- Fixed a bug where multiple remote includes caused all prompts to display without waiting for user input (#1832, #1833 by @vmaerten and @pd93).\r\n- When using the \"[Remote Taskfiles](https://taskfile.dev/experiments/remote-taskfiles/)\" experiment, you can now include Taskfiles from Git repositories (#1652 by @vmaerten).\r\n- Improved the error message when a dotenv file cannot be parsed (#1842 by @pbitty).\r\n- Fix issue with directory when using the remote experiment (#1757 by @pbitty).\r\n- Fixed an issue where a special variable was used in combination with a dotenv file (#1232, #1810 by @vmaerten).\r\n- Refactor the way Task reads Taskfiles to improve readability (#1771 by @pbitty).\r\n- Added a new option to ensure variable is within the list of values (#1827 by @vmaerten).\r\n- Allow multiple prompts to be specified for a task (#1861, #1866 by @mfbmina).\r\n- Added new template function: `numCPU`, which returns the number of logical CPUs usable (#1890, #1887 by @Amoghrd).\r\n- Fixed a bug where non-nil, empty dynamic variables are returned as an empty interface (#1903, #1904 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/183839046/reactions", + "total_count": 15, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 7, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/175880246", + "assets_url": "https://api.github.com/repos/go-task/task/releases/175880246/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/175880246/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.39.2", + "id": 175880246, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Ke7g2", + "tag_name": "v3.39.2", + "target_commitish": "main", + "name": "v3.39.2", + "draft": false, + "prerelease": false, + "created_at": "2024-09-19T12:25:29Z", + "published_at": "2024-09-19T12:32:17Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598300", + "id": 193598300, + "node_id": "RA_kwDOBPZW984LihNc", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 251888, + "created_at": "2024-09-19T12:29:29Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598288", + "id": 193598288, + "node_id": "RA_kwDOBPZW984LihNQ", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4902080, + "download_count": 2218, + "created_at": "2024-09-19T12:29:27Z", + "updated_at": "2024-09-19T12:29:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598274", + "id": 193598274, + "node_id": "RA_kwDOBPZW984LihNC", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4637083, + "download_count": 16772, + "created_at": "2024-09-19T12:29:24Z", + "updated_at": "2024-09-19T12:29:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598279", + "id": 193598279, + "node_id": "RA_kwDOBPZW984LihNH", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4522653, + "download_count": 80, + "created_at": "2024-09-19T12:29:25Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598284", + "id": 193598284, + "node_id": "RA_kwDOBPZW984LihNM", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4813793, + "download_count": 97, + "created_at": "2024-09-19T12:29:26Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598282", + "id": 193598282, + "node_id": "RA_kwDOBPZW984LihNK", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4549976, + "download_count": 41, + "created_at": "2024-09-19T12:29:26Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598283", + "id": 193598283, + "node_id": "RA_kwDOBPZW984LihNL", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4451554, + "download_count": 42, + "created_at": "2024-09-19T12:29:26Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598289", + "id": 193598289, + "node_id": "RA_kwDOBPZW984LihNR", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4545358, + "download_count": 194, + "created_at": "2024-09-19T12:29:27Z", + "updated_at": "2024-09-19T12:29:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598297", + "id": 193598297, + "node_id": "RA_kwDOBPZW984LihNZ", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4732823, + "download_count": 383, + "created_at": "2024-09-19T12:29:29Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598287", + "id": 193598287, + "node_id": "RA_kwDOBPZW984LihNP", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4533654, + "download_count": 652, + "created_at": "2024-09-19T12:29:27Z", + "updated_at": "2024-09-19T12:29:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598292", + "id": 193598292, + "node_id": "RA_kwDOBPZW984LihNU", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4833486, + "download_count": 11085, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598296", + "id": 193598296, + "node_id": "RA_kwDOBPZW984LihNY", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 5027024, + "download_count": 939, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598276", + "id": 193598276, + "node_id": "RA_kwDOBPZW984LihNE", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4816875, + "download_count": 707219, + "created_at": "2024-09-19T12:29:24Z", + "updated_at": "2024-09-19T12:29:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598290", + "id": 193598290, + "node_id": "RA_kwDOBPZW984LihNS", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4563776, + "download_count": 45, + "created_at": "2024-09-19T12:29:27Z", + "updated_at": "2024-09-19T12:29:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598293", + "id": 193598293, + "node_id": "RA_kwDOBPZW984LihNV", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4740008, + "download_count": 37, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598277", + "id": 193598277, + "node_id": "RA_kwDOBPZW984LihNF", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4554225, + "download_count": 133, + "created_at": "2024-09-19T12:29:24Z", + "updated_at": "2024-09-19T12:29:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598299", + "id": 193598299, + "node_id": "RA_kwDOBPZW984LihNb", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4471054, + "download_count": 123, + "created_at": "2024-09-19T12:29:29Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598295", + "id": 193598295, + "node_id": "RA_kwDOBPZW984LihNX", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4640725, + "download_count": 45, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598275", + "id": 193598275, + "node_id": "RA_kwDOBPZW984LihND", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4456734, + "download_count": 36959, + "created_at": "2024-09-19T12:29:24Z", + "updated_at": "2024-09-19T12:29:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598291", + "id": 193598291, + "node_id": "RA_kwDOBPZW984LihNT", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4497702, + "download_count": 77, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598294", + "id": 193598294, + "node_id": "RA_kwDOBPZW984LihNW", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4676790, + "download_count": 76, + "created_at": "2024-09-19T12:29:28Z", + "updated_at": "2024-09-19T12:29:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598281", + "id": 193598281, + "node_id": "RA_kwDOBPZW984LihNJ", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4481974, + "download_count": 81, + "created_at": "2024-09-19T12:29:25Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598278", + "id": 193598278, + "node_id": "RA_kwDOBPZW984LihNG", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4746459, + "download_count": 441, + "created_at": "2024-09-19T12:29:25Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598280", + "id": 193598280, + "node_id": "RA_kwDOBPZW984LihNI", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4973245, + "download_count": 10581, + "created_at": "2024-09-19T12:29:25Z", + "updated_at": "2024-09-19T12:29:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598285", + "id": 193598285, + "node_id": "RA_kwDOBPZW984LihNN", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4681176, + "download_count": 41, + "created_at": "2024-09-19T12:29:26Z", + "updated_at": "2024-09-19T12:29:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193598286", + "id": 193598286, + "node_id": "RA_kwDOBPZW984LihNO", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4540916, + "download_count": 358, + "created_at": "2024-09-19T12:29:27Z", + "updated_at": "2024-09-19T12:29:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.2/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.39.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.39.2", + "body": "- Fix dynamic variables not working properly for a defer: statement (#1803, #1818 by @vmaerten).\r\n", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/175880246/reactions", + "total_count": 13, + "+1": 13, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/175789332", + "assets_url": "https://api.github.com/repos/go-task/task/releases/175789332/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/175789332/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.39.1", + "id": 175789332, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984KelUU", + "tag_name": "v3.39.1", + "target_commitish": "main", + "name": "v3.39.1", + "draft": false, + "prerelease": false, + "created_at": "2024-09-19T01:22:56Z", + "published_at": "2024-09-19T01:28:39Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504944", + "id": 193504944, + "node_id": "RA_kwDOBPZW984LiKaw", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 3365, + "created_at": "2024-09-19T01:27:02Z", + "updated_at": "2024-09-19T01:27:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504907", + "id": 193504907, + "node_id": "RA_kwDOBPZW984LiKaL", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4902077, + "download_count": 114, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504887", + "id": 193504887, + "node_id": "RA_kwDOBPZW984LiKZ3", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4637081, + "download_count": 449, + "created_at": "2024-09-19T01:26:58Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504915", + "id": 193504915, + "node_id": "RA_kwDOBPZW984LiKaT", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4522651, + "download_count": 45, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504900", + "id": 193504900, + "node_id": "RA_kwDOBPZW984LiKaE", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4813791, + "download_count": 45, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504896", + "id": 193504896, + "node_id": "RA_kwDOBPZW984LiKaA", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4549971, + "download_count": 5, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504888", + "id": 193504888, + "node_id": "RA_kwDOBPZW984LiKZ4", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4451558, + "download_count": 11, + "created_at": "2024-09-19T01:26:58Z", + "updated_at": "2024-09-19T01:26:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504924", + "id": 193504924, + "node_id": "RA_kwDOBPZW984LiKac", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4545358, + "download_count": 45, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504927", + "id": 193504927, + "node_id": "RA_kwDOBPZW984LiKaf", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4732822, + "download_count": 52, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504893", + "id": 193504893, + "node_id": "RA_kwDOBPZW984LiKZ9", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4533666, + "download_count": 50, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504939", + "id": 193504939, + "node_id": "RA_kwDOBPZW984LiKar", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4833474, + "download_count": 115, + "created_at": "2024-09-19T01:27:02Z", + "updated_at": "2024-09-19T01:27:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504933", + "id": 193504933, + "node_id": "RA_kwDOBPZW984LiKal", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 5027020, + "download_count": 48, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504913", + "id": 193504913, + "node_id": "RA_kwDOBPZW984LiKaR", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4816867, + "download_count": 9695, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504925", + "id": 193504925, + "node_id": "RA_kwDOBPZW984LiKad", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4563780, + "download_count": 4, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504934", + "id": 193504934, + "node_id": "RA_kwDOBPZW984LiKam", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4740012, + "download_count": 5, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504895", + "id": 193504895, + "node_id": "RA_kwDOBPZW984LiKZ_", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4554228, + "download_count": 6, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504918", + "id": 193504918, + "node_id": "RA_kwDOBPZW984LiKaW", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4471056, + "download_count": 7, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504936", + "id": 193504936, + "node_id": "RA_kwDOBPZW984LiKao", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4640729, + "download_count": 4, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504897", + "id": 193504897, + "node_id": "RA_kwDOBPZW984LiKaB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4456737, + "download_count": 515, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504922", + "id": 193504922, + "node_id": "RA_kwDOBPZW984LiKaa", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4497686, + "download_count": 44, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504931", + "id": 193504931, + "node_id": "RA_kwDOBPZW984LiKaj", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4676781, + "download_count": 45, + "created_at": "2024-09-19T01:27:01Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504916", + "id": 193504916, + "node_id": "RA_kwDOBPZW984LiKaU", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4481976, + "download_count": 45, + "created_at": "2024-09-19T01:27:00Z", + "updated_at": "2024-09-19T01:27:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504891", + "id": 193504891, + "node_id": "RA_kwDOBPZW984LiKZ7", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4746463, + "download_count": 417, + "created_at": "2024-09-19T01:26:58Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504906", + "id": 193504906, + "node_id": "RA_kwDOBPZW984LiKaK", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4973239, + "download_count": 1667, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504899", + "id": 193504899, + "node_id": "RA_kwDOBPZW984LiKaD", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4681187, + "download_count": 5, + "created_at": "2024-09-19T01:26:59Z", + "updated_at": "2024-09-19T01:27:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/193504889", + "id": 193504889, + "node_id": "RA_kwDOBPZW984LiKZ5", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4540925, + "download_count": 357, + "created_at": "2024-09-19T01:26:58Z", + "updated_at": "2024-09-19T01:26:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.39.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.39.1", + "body": "- Added Renovate configuration to automatically create PRs to keep dependencies up to date (#1783 by @vmaerten).\r\n- Fixed a bug where the help was displayed twice (#1805, #1806 by @vmaerten).\r\n- Fixed a bug where ZSH and PowerShell completions did not work when using the recommended method. (#1813, #1809 by @vmaerten and @shirayu)\r\n- Fix variables not working properly for a `defer:` statement (#1803, #1814 by @vmaerten and @andreynering).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/175789332/reactions", + "total_count": 11, + "+1": 9, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 2, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/173983276", + "assets_url": "https://api.github.com/repos/go-task/task/releases/173983276/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/173983276/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.39.0", + "id": 173983276, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984KXsYs", + "tag_name": "v3.39.0", + "target_commitish": "main", + "name": "v3.39.0", + "draft": false, + "prerelease": false, + "created_at": "2024-09-07T20:05:46Z", + "published_at": "2024-09-07T20:12:13Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113115", + "id": 191113115, + "node_id": "RA_kwDOBPZW984LZCeb", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 58616, + "created_at": "2024-09-07T20:09:27Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113089", + "id": 191113089, + "node_id": "RA_kwDOBPZW984LZCeB", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4901544, + "download_count": 643, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113098", + "id": 191113098, + "node_id": "RA_kwDOBPZW984LZCeK", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4636870, + "download_count": 4716, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113092", + "id": 191113092, + "node_id": "RA_kwDOBPZW984LZCeE", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4522540, + "download_count": 57, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113090", + "id": 191113090, + "node_id": "RA_kwDOBPZW984LZCeC", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4813555, + "download_count": 63, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113104", + "id": 191113104, + "node_id": "RA_kwDOBPZW984LZCeQ", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4549930, + "download_count": 13, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113096", + "id": 191113096, + "node_id": "RA_kwDOBPZW984LZCeI", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4451035, + "download_count": 14, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113107", + "id": 191113107, + "node_id": "RA_kwDOBPZW984LZCeT", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4545292, + "download_count": 78, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113113", + "id": 191113113, + "node_id": "RA_kwDOBPZW984LZCeZ", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4732747, + "download_count": 117, + "created_at": "2024-09-07T20:09:27Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113087", + "id": 191113087, + "node_id": "RA_kwDOBPZW984LZCd_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4533660, + "download_count": 267, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113108", + "id": 191113108, + "node_id": "RA_kwDOBPZW984LZCeU", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4832698, + "download_count": 959, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113109", + "id": 191113109, + "node_id": "RA_kwDOBPZW984LZCeV", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 5027078, + "download_count": 578, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113094", + "id": 191113094, + "node_id": "RA_kwDOBPZW984LZCeG", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4816278, + "download_count": 232150, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113114", + "id": 191113114, + "node_id": "RA_kwDOBPZW984LZCea", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4563736, + "download_count": 13, + "created_at": "2024-09-07T20:09:27Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113110", + "id": 191113110, + "node_id": "RA_kwDOBPZW984LZCeW", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4742164, + "download_count": 12, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113100", + "id": 191113100, + "node_id": "RA_kwDOBPZW984LZCeM", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4553774, + "download_count": 30, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113105", + "id": 191113105, + "node_id": "RA_kwDOBPZW984LZCeR", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4471170, + "download_count": 171, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113111", + "id": 191113111, + "node_id": "RA_kwDOBPZW984LZCeX", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4639407, + "download_count": 12, + "created_at": "2024-09-07T20:09:27Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113088", + "id": 191113088, + "node_id": "RA_kwDOBPZW984LZCeA", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4457071, + "download_count": 7016, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113106", + "id": 191113106, + "node_id": "RA_kwDOBPZW984LZCeS", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4497146, + "download_count": 55, + "created_at": "2024-09-07T20:09:26Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113112", + "id": 191113112, + "node_id": "RA_kwDOBPZW984LZCeY", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4693033, + "download_count": 55, + "created_at": "2024-09-07T20:09:27Z", + "updated_at": "2024-09-07T20:09:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113093", + "id": 191113093, + "node_id": "RA_kwDOBPZW984LZCeF", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4481958, + "download_count": 56, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113097", + "id": 191113097, + "node_id": "RA_kwDOBPZW984LZCeJ", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4745153, + "download_count": 456, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113099", + "id": 191113099, + "node_id": "RA_kwDOBPZW984LZCeL", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4972891, + "download_count": 3068, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113091", + "id": 191113091, + "node_id": "RA_kwDOBPZW984LZCeD", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4680521, + "download_count": 15, + "created_at": "2024-09-07T20:09:24Z", + "updated_at": "2024-09-07T20:09:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/191113102", + "id": 191113102, + "node_id": "RA_kwDOBPZW984LZCeO", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4541049, + "download_count": 374, + "created_at": "2024-09-07T20:09:25Z", + "updated_at": "2024-09-07T20:09:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.39.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.39.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.39.0", + "body": "- Added [Env Precedence Experiment](https://taskfile.dev/experiments/env-precedence) (#1038, #1633 by @vmaerten).\r\n- Added a CI lint job to ensure that the docs are updated correctly (#1719 by @vmaerten).\r\n- Updated minimum required Go version to 1.22 (#1758 by @pd93).\r\n- Expose a new `EXIT_CODE` special variable on `defer:` when a command finishes with a non-zero exit code (#1484, #1762 by @dorimon-1 and @andreynering).\r\n- Expose a new `ALIAS` special variable, which will contain the alias used to call the current task. Falls back to the task name. (#1764 by @DanStory).\r\n- Fixed `TASK_REMOTE_DIR` environment variable not working when the path was absolute. (#1715 by @vmaerten).\r\n- Added an option to declare an included Taskfile as flattened (#1704 by @vmaerten).\r\n- Added a new [`--completion` flag](https://taskfile.dev/installation/#setup-completions) to output completion scripts for various shells (#293, #1157 by @pd93).\r\n - This is now the preferred way to install completions.\r\n - The completion scripts in the `completion` directory [are now deprecated](https://taskfile.dev/deprecations/completion-scripts/).\r\n- Added the ability to [loop over a matrix of values](https://taskfile.dev/usage/#looping-over-a-matrix) (#1766, #1767, #1784 by @pd93).\r\n- Fixed a bug in fish completion where aliases were not displayed (#1781, #1782 by @vmaerten).\r\n- Fixed panic when having a flattened included Taskfile that contains a `default` task (#1777, #1778 by @vmaerten).\r\n- Optimized file existence checks for remote Taskfiles (#1713 by @vmaerten).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/173983276/reactions", + "total_count": 34, + "+1": 12, + "-1": 0, + "laugh": 0, + "hooray": 8, + "confused": 0, + "heart": 8, + "rocket": 6, + "eyes": 0 + }, + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/163212473", + "assets_url": "https://api.github.com/repos/go-task/task/releases/163212473/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/163212473/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.38.0", + "id": 163212473, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Jumy5", + "tag_name": "v3.38.0", + "target_commitish": "main", + "name": "v3.38.0", + "draft": false, + "prerelease": false, + "created_at": "2024-06-30T14:50:47Z", + "published_at": "2024-06-30T14:55:28Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818709", + "id": 176818709, + "node_id": "RA_kwDOBPZW984KigoV", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 2212, + "download_count": 476981, + "created_at": "2024-06-30T14:54:23Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818681", + "id": 176818681, + "node_id": "RA_kwDOBPZW984Kign5", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4890483, + "download_count": 2889, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818683", + "id": 176818683, + "node_id": "RA_kwDOBPZW984Kign7", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4700916, + "download_count": 21796, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818680", + "id": 176818680, + "node_id": "RA_kwDOBPZW984Kign4", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4471258, + "download_count": 115, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818695", + "id": 176818695, + "node_id": "RA_kwDOBPZW984KigoH", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4726332, + "download_count": 138, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818678", + "id": 176818678, + "node_id": "RA_kwDOBPZW984Kign2", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4498123, + "download_count": 60, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818694", + "id": 176818694, + "node_id": "RA_kwDOBPZW984KigoG", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4365765, + "download_count": 62, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818700", + "id": 176818700, + "node_id": "RA_kwDOBPZW984KigoM", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4492654, + "download_count": 204, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818705", + "id": 176818705, + "node_id": "RA_kwDOBPZW984KigoR", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4681915, + "download_count": 815, + "created_at": "2024-06-30T14:54:23Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818687", + "id": 176818687, + "node_id": "RA_kwDOBPZW984Kign_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4482060, + "download_count": 464, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818698", + "id": 176818698, + "node_id": "RA_kwDOBPZW984KigoK", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4749246, + "download_count": 18339, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818703", + "id": 176818703, + "node_id": "RA_kwDOBPZW984KigoP", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4951357, + "download_count": 48986, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818684", + "id": 176818684, + "node_id": "RA_kwDOBPZW984Kign8", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4731485, + "download_count": 1063821, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818697", + "id": 176818697, + "node_id": "RA_kwDOBPZW984KigoJ", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4513698, + "download_count": 66, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818707", + "id": 176818707, + "node_id": "RA_kwDOBPZW984KigoT", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4695614, + "download_count": 57, + "created_at": "2024-06-30T14:54:23Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818682", + "id": 176818682, + "node_id": "RA_kwDOBPZW984Kign6", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4505087, + "download_count": 87, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818696", + "id": 176818696, + "node_id": "RA_kwDOBPZW984KigoI", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4388362, + "download_count": 588, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818701", + "id": 176818701, + "node_id": "RA_kwDOBPZW984KigoN", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4556927, + "download_count": 2058, + "created_at": "2024-06-30T14:54:22Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818689", + "id": 176818689, + "node_id": "RA_kwDOBPZW984KigoB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4374136, + "download_count": 25024, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818708", + "id": 176818708, + "node_id": "RA_kwDOBPZW984KigoU", + "name": "task_linux_riscv64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 4494958, + "download_count": 112, + "created_at": "2024-06-30T14:54:23Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_riscv64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818704", + "id": 176818704, + "node_id": "RA_kwDOBPZW984KigoQ", + "name": "task_linux_riscv64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 4672047, + "download_count": 111, + "created_at": "2024-06-30T14:54:23Z", + "updated_at": "2024-06-30T14:54:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_riscv64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818691", + "id": 176818691, + "node_id": "RA_kwDOBPZW984KigoD", + "name": "task_linux_riscv64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 4477967, + "download_count": 113, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_linux_riscv64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818679", + "id": 176818679, + "node_id": "RA_kwDOBPZW984Kign3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4689157, + "download_count": 541, + "created_at": "2024-06-30T14:54:20Z", + "updated_at": "2024-06-30T14:54:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818693", + "id": 176818693, + "node_id": "RA_kwDOBPZW984KigoF", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4883722, + "download_count": 12813, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818688", + "id": 176818688, + "node_id": "RA_kwDOBPZW984KigoA", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4630106, + "download_count": 69, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/176818686", + "id": 176818686, + "node_id": "RA_kwDOBPZW984Kign-", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4457051, + "download_count": 450, + "created_at": "2024-06-30T14:54:21Z", + "updated_at": "2024-06-30T14:54:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.38.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.38.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.38.0", + "body": "- Added `TASK_EXE` special variable (#1616, #1624 by @pd93 and @andreynering).\r\n- Some YAML parsing errors will now show in a more user friendly way (#1619 by @pd93).\r\n- Prefixed outputs will now be colorized by default (#1572 by @AlexanderArvidsson)\r\n- [References](https://taskfile.dev/usage/#referencing-other-variables) are now generally available (no experiments required) (#1654 by @pd93).\r\n- Templating functions can now be used in references (#1645, #1654 by @pd93).\r\n- Added a new [templating reference page](https://taskfile.dev/reference/templating/) to the documentation (#1614, #1653 by @pd93).\r\n- If using the [Map Variables experiment (1)](https://taskfile.dev/experiments/map-variables/?proposal=1), references are available by [prefixing a string with a `#`](https://taskfile.dev/experiments/map-variables/?proposal=1#references) (#1654 by @pd93).\r\n- If using the [Map Variables experiment (2)](https://taskfile.dev/experiments/map-variables/?proposal=2), the `yaml` and `json` keys are no longer available (#1654 by @pd93).\r\n- Added a new `TASK_REMOTE_DIR` environment variable to configure where cached remote Taskfiles are stored (#1661 by @vmaerten).\r\n- Added a new `--clear-cache` flag to clear the cache of remote Taskfiles (#1639 by @vmaerten).\r\n- Improved the readability of cached remote Taskfile filenames (#1636 by @vmaerten).\r\n- Starting releasing a binary for the `riscv64` architecture on Linux (#1699 by @mengzhuo).\r\n- Added `CLI_SILENT` and `CLI_VERBOSE` variables (#1480, #1669 by @Vince-Smith).\r\n- Fixed a couple of bugs with the `prompt:` feature (#1657 by @pd93).\r\n- Fixed JSON Schema to disallow invalid properties (#1657 by @pd93).\r\n- Fixed version checks not working as intended (#872, #1663 by @vmaerten).\r\n- Fixed a bug where included tasks were run multiple times even if `run: once` was set (#852, #1655 by @pd93).\r\n- Fixed some bugs related to column formatting in the terminal (#1350, #1637, #1656 by @vmaerten).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/163212473/reactions", + "total_count": 25, + "+1": 5, + "-1": 0, + "laugh": 0, + "hooray": 15, + "confused": 0, + "heart": 5, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/155409107", + "assets_url": "https://api.github.com/repos/go-task/task/releases/155409107/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/155409107/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.37.2", + "id": 155409107, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984JQ1rT", + "tag_name": "v3.37.2", + "target_commitish": "main", + "name": "v3.37.2", + "draft": false, + "prerelease": false, + "created_at": "2024-05-12T19:37:37Z", + "published_at": "2024-05-12T19:40:45Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500669", + "id": 167500669, + "node_id": "RA_kwDOBPZW984J-9t9", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 242398, + "created_at": "2024-05-12T19:40:45Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500642", + "id": 167500642, + "node_id": "RA_kwDOBPZW984J-9ti", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3786664, + "download_count": 5595, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500643", + "id": 167500643, + "node_id": "RA_kwDOBPZW984J-9tj", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3611135, + "download_count": 14593, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500638", + "id": 167500638, + "node_id": "RA_kwDOBPZW984J-9te", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3451885, + "download_count": 130, + "created_at": "2024-05-12T19:40:42Z", + "updated_at": "2024-05-12T19:40:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500640", + "id": 167500640, + "node_id": "RA_kwDOBPZW984J-9tg", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3639018, + "download_count": 369, + "created_at": "2024-05-12T19:40:42Z", + "updated_at": "2024-05-12T19:40:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500649", + "id": 167500649, + "node_id": "RA_kwDOBPZW984J-9tp", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3434511, + "download_count": 66, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500639", + "id": 167500639, + "node_id": "RA_kwDOBPZW984J-9tf", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3331595, + "download_count": 67, + "created_at": "2024-05-12T19:40:42Z", + "updated_at": "2024-05-12T19:40:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500656", + "id": 167500656, + "node_id": "RA_kwDOBPZW984J-9tw", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3467964, + "download_count": 213, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500663", + "id": 167500663, + "node_id": "RA_kwDOBPZW984J-9t3", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3572132, + "download_count": 399, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500641", + "id": 167500641, + "node_id": "RA_kwDOBPZW984J-9th", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3461860, + "download_count": 802, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500661", + "id": 167500661, + "node_id": "RA_kwDOBPZW984J-9t1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3653638, + "download_count": 27293, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500665", + "id": 167500665, + "node_id": "RA_kwDOBPZW984J-9t5", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3766515, + "download_count": 1644, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500644", + "id": 167500644, + "node_id": "RA_kwDOBPZW984J-9tk", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3644052, + "download_count": 910378, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500660", + "id": 167500660, + "node_id": "RA_kwDOBPZW984J-9t0", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3445562, + "download_count": 72, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500666", + "id": 167500666, + "node_id": "RA_kwDOBPZW984J-9t6", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3546350, + "download_count": 63, + "created_at": "2024-05-12T19:40:45Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500653", + "id": 167500653, + "node_id": "RA_kwDOBPZW984J-9tt", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3440736, + "download_count": 84, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500655", + "id": 167500655, + "node_id": "RA_kwDOBPZW984J-9tv", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3347988, + "download_count": 625, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500668", + "id": 167500668, + "node_id": "RA_kwDOBPZW984J-9t8", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3427449, + "download_count": 1019, + "created_at": "2024-05-12T19:40:45Z", + "updated_at": "2024-05-12T19:40:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500648", + "id": 167500648, + "node_id": "RA_kwDOBPZW984J-9to", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3338577, + "download_count": 16404, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500651", + "id": 167500651, + "node_id": "RA_kwDOBPZW984J-9tr", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3637806, + "download_count": 647, + "created_at": "2024-05-12T19:40:44Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500650", + "id": 167500650, + "node_id": "RA_kwDOBPZW984J-9tq", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3789046, + "download_count": 11269, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500646", + "id": 167500646, + "node_id": "RA_kwDOBPZW984J-9tm", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3562523, + "download_count": 69, + "created_at": "2024-05-12T19:40:43Z", + "updated_at": "2024-05-12T19:40:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/167500637", + "id": 167500637, + "node_id": "RA_kwDOBPZW984J-9td", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3427068, + "download_count": 556, + "created_at": "2024-05-12T19:40:42Z", + "updated_at": "2024-05-12T19:40:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.2/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.37.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.37.2", + "body": "- Fixed a bug where an empty Taskfile would cause a panic (#1648 by @pd93).\r\n- Fixed a bug where includes Taskfile variable were not being merged correctly\r\n (#1643, #1649 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/155409107/reactions", + "total_count": 13, + "+1": 11, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 2, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/154953126", + "assets_url": "https://api.github.com/repos/go-task/task/releases/154953126/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/154953126/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.37.1", + "id": 154953126, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984JPGWm", + "tag_name": "v3.37.1", + "target_commitish": "main", + "name": "v3.37.1", + "draft": false, + "prerelease": false, + "created_at": "2024-05-09T14:22:55Z", + "published_at": "2024-05-09T14:27:07Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961029", + "id": 166961029, + "node_id": "RA_kwDOBPZW984J85-F", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 8497, + "created_at": "2024-05-09T14:26:16Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961009", + "id": 166961009, + "node_id": "RA_kwDOBPZW984J859x", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3786286, + "download_count": 293, + "created_at": "2024-05-09T14:26:13Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961016", + "id": 166961016, + "node_id": "RA_kwDOBPZW984J8594", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3611026, + "download_count": 1256, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961007", + "id": 166961007, + "node_id": "RA_kwDOBPZW984J859v", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3451928, + "download_count": 71, + "created_at": "2024-05-09T14:26:13Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961010", + "id": 166961010, + "node_id": "RA_kwDOBPZW984J859y", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3638787, + "download_count": 75, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961011", + "id": 166961011, + "node_id": "RA_kwDOBPZW984J859z", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3434303, + "download_count": 8, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961012", + "id": 166961012, + "node_id": "RA_kwDOBPZW984J8590", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3331489, + "download_count": 8, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961020", + "id": 166961020, + "node_id": "RA_kwDOBPZW984J8598", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3467690, + "download_count": 78, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961028", + "id": 166961028, + "node_id": "RA_kwDOBPZW984J85-E", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3574080, + "download_count": 85, + "created_at": "2024-05-09T14:26:16Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961003", + "id": 166961003, + "node_id": "RA_kwDOBPZW984J859r", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3461658, + "download_count": 84, + "created_at": "2024-05-09T14:26:12Z", + "updated_at": "2024-05-09T14:26:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961025", + "id": 166961025, + "node_id": "RA_kwDOBPZW984J85-B", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3653566, + "download_count": 174, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961026", + "id": 166961026, + "node_id": "RA_kwDOBPZW984J85-C", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3766371, + "download_count": 193, + "created_at": "2024-05-09T14:26:16Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961018", + "id": 166961018, + "node_id": "RA_kwDOBPZW984J8596", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3643822, + "download_count": 23326, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961022", + "id": 166961022, + "node_id": "RA_kwDOBPZW984J859-", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3445370, + "download_count": 10, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961027", + "id": 166961027, + "node_id": "RA_kwDOBPZW984J85-D", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3546285, + "download_count": 7, + "created_at": "2024-05-09T14:26:16Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961017", + "id": 166961017, + "node_id": "RA_kwDOBPZW984J8595", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3440480, + "download_count": 27, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961019", + "id": 166961019, + "node_id": "RA_kwDOBPZW984J8597", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3347904, + "download_count": 30, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961023", + "id": 166961023, + "node_id": "RA_kwDOBPZW984J859_", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3427534, + "download_count": 7, + "created_at": "2024-05-09T14:26:15Z", + "updated_at": "2024-05-09T14:26:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961008", + "id": 166961008, + "node_id": "RA_kwDOBPZW984J859w", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3338534, + "download_count": 394, + "created_at": "2024-05-09T14:26:13Z", + "updated_at": "2024-05-09T14:26:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961004", + "id": 166961004, + "node_id": "RA_kwDOBPZW984J859s", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3637664, + "download_count": 519, + "created_at": "2024-05-09T14:26:12Z", + "updated_at": "2024-05-09T14:26:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961014", + "id": 166961014, + "node_id": "RA_kwDOBPZW984J8592", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3788562, + "download_count": 1219, + "created_at": "2024-05-09T14:26:14Z", + "updated_at": "2024-05-09T14:26:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961005", + "id": 166961005, + "node_id": "RA_kwDOBPZW984J859t", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3562383, + "download_count": 10, + "created_at": "2024-05-09T14:26:12Z", + "updated_at": "2024-05-09T14:26:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166961006", + "id": 166961006, + "node_id": "RA_kwDOBPZW984J859u", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3427019, + "download_count": 456, + "created_at": "2024-05-09T14:26:13Z", + "updated_at": "2024-05-09T14:26:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.37.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.37.1", + "body": "- Fix bug where non-string values (numbers, bools) added to `env:` weren't been correctly exported (#1640, #1641 by @vmaerten and @andreynering).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/154953126/reactions", + "total_count": 9, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 6, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 2 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/154864477", + "assets_url": "https://api.github.com/repos/go-task/task/releases/154864477/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/154864477/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.37.0", + "id": 154864477, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984JOwtd", + "tag_name": "v3.37.0", + "target_commitish": "main", + "name": "v3.37.0", + "draft": false, + "prerelease": false, + "created_at": "2024-05-09T00:32:34Z", + "published_at": "2024-05-09T00:38:12Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841755", + "id": 166841755, + "node_id": "RA_kwDOBPZW984J8c2b", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 2510, + "created_at": "2024-05-09T00:35:54Z", + "updated_at": "2024-05-09T00:35:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841714", + "id": 166841714, + "node_id": "RA_kwDOBPZW984J8c1y", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3786360, + "download_count": 137, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841732", + "id": 166841732, + "node_id": "RA_kwDOBPZW984J8c2E", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3610883, + "download_count": 618, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841730", + "id": 166841730, + "node_id": "RA_kwDOBPZW984J8c2C", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3451730, + "download_count": 73, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841736", + "id": 166841736, + "node_id": "RA_kwDOBPZW984J8c2I", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3638698, + "download_count": 73, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841720", + "id": 166841720, + "node_id": "RA_kwDOBPZW984J8c14", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3433900, + "download_count": 11, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841722", + "id": 166841722, + "node_id": "RA_kwDOBPZW984J8c16", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3331256, + "download_count": 9, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841743", + "id": 166841743, + "node_id": "RA_kwDOBPZW984J8c2P", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3467608, + "download_count": 72, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841747", + "id": 166841747, + "node_id": "RA_kwDOBPZW984J8c2T", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3574270, + "download_count": 84, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841728", + "id": 166841728, + "node_id": "RA_kwDOBPZW984J8c2A", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3461522, + "download_count": 75, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841746", + "id": 166841746, + "node_id": "RA_kwDOBPZW984J8c2S", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3653196, + "download_count": 1468, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841750", + "id": 166841750, + "node_id": "RA_kwDOBPZW984J8c2W", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3766006, + "download_count": 81, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841738", + "id": 166841738, + "node_id": "RA_kwDOBPZW984J8c2K", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3643655, + "download_count": 35589, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841744", + "id": 166841744, + "node_id": "RA_kwDOBPZW984J8c2Q", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3445044, + "download_count": 7, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841748", + "id": 166841748, + "node_id": "RA_kwDOBPZW984J8c2U", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3531138, + "download_count": 7, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841713", + "id": 166841713, + "node_id": "RA_kwDOBPZW984J8c1x", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3440230, + "download_count": 9, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841740", + "id": 166841740, + "node_id": "RA_kwDOBPZW984J8c2M", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3347698, + "download_count": 13, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841753", + "id": 166841753, + "node_id": "RA_kwDOBPZW984J8c2Z", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3442103, + "download_count": 7, + "created_at": "2024-05-09T00:35:53Z", + "updated_at": "2024-05-09T00:35:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841712", + "id": 166841712, + "node_id": "RA_kwDOBPZW984J8c1w", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3338326, + "download_count": 2164, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841725", + "id": 166841725, + "node_id": "RA_kwDOBPZW984J8c19", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3637197, + "download_count": 534, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841715", + "id": 166841715, + "node_id": "RA_kwDOBPZW984J8c1z", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3788124, + "download_count": 1011, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841734", + "id": 166841734, + "node_id": "RA_kwDOBPZW984J8c2G", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3562571, + "download_count": 8, + "created_at": "2024-05-09T00:35:52Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/166841723", + "id": 166841723, + "node_id": "RA_kwDOBPZW984J8c17", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3426811, + "download_count": 453, + "created_at": "2024-05-09T00:35:51Z", + "updated_at": "2024-05-09T00:35:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.37.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.37.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.37.0", + "body": "- Released the [Any Variables experiment](https://taskfile.dev/blog/any-variables), but [_without support for maps_](https://github.com/go-task/task/issues/1415#issuecomment-2044756925) (#1415, #1547 by @pd93).\r\n- Refactored how Task reads, parses and merges Taskfiles using a DAG (#1563, #1607 by @pd93).\r\n- Fix a bug which stopped tasks from using `stdin` as input (#1593, #1623 by @pd93).\r\n- Fix error when a file or directory in the project contained a special char like `&`, `(` or `)` (#1551, #1584 by @andreynering).\r\n- Added alias `q` for template function `shellQuote` (#1601, #1603 by @vergenzt)\r\n- Added support for `~` on ZSH completions (#1613 by @jwater7).\r\n- Added the ability to pass variables by reference using Go template syntax when the [Map Variables experiment](https://taskfile.dev/experiments/map-variables/) is enabled (#1612 by @pd93).\r\n- Added support for environment variables in the templating engine in `includes` (#1610 by @vmaerten).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/154864477/reactions", + "total_count": 15, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 7, + "confused": 0, + "heart": 1, + "rocket": 4, + "eyes": 0 + }, + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/150314586", + "assets_url": "https://api.github.com/repos/go-task/task/releases/150314586/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/150314586/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.36.0", + "id": 150314586, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984I9Z5a", + "tag_name": "v3.36.0", + "target_commitish": "main", + "name": "v3.36.0", + "draft": false, + "prerelease": false, + "created_at": "2024-04-09T01:12:11Z", + "published_at": "2024-04-09T01:17:19Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039731", + "id": 161039731, + "node_id": "RA_kwDOBPZW984JmUVz", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 176215, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039704", + "id": 161039704, + "node_id": "RA_kwDOBPZW984JmUVY", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3754176, + "download_count": 9015, + "created_at": "2024-04-09T01:15:33Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039709", + "id": 161039709, + "node_id": "RA_kwDOBPZW984JmUVd", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3575030, + "download_count": 8196, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039719", + "id": 161039719, + "node_id": "RA_kwDOBPZW984JmUVn", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3420517, + "download_count": 86, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039707", + "id": 161039707, + "node_id": "RA_kwDOBPZW984JmUVb", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3608300, + "download_count": 103, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039721", + "id": 161039721, + "node_id": "RA_kwDOBPZW984JmUVp", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3405900, + "download_count": 19, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039712", + "id": 161039712, + "node_id": "RA_kwDOBPZW984JmUVg", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3302284, + "download_count": 18, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039724", + "id": 161039724, + "node_id": "RA_kwDOBPZW984JmUVs", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3438068, + "download_count": 146, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039726", + "id": 161039726, + "node_id": "RA_kwDOBPZW984JmUVu", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3539094, + "download_count": 234, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039715", + "id": 161039715, + "node_id": "RA_kwDOBPZW984JmUVj", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3430498, + "download_count": 273, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039725", + "id": 161039725, + "node_id": "RA_kwDOBPZW984JmUVt", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3621260, + "download_count": 2716, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039727", + "id": 161039727, + "node_id": "RA_kwDOBPZW984JmUVv", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3734364, + "download_count": 1431, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039717", + "id": 161039717, + "node_id": "RA_kwDOBPZW984JmUVl", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3612536, + "download_count": 538917, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039723", + "id": 161039723, + "node_id": "RA_kwDOBPZW984JmUVr", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3417656, + "download_count": 35, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039728", + "id": 161039728, + "node_id": "RA_kwDOBPZW984JmUVw", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3503204, + "download_count": 16, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039714", + "id": 161039714, + "node_id": "RA_kwDOBPZW984JmUVi", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3412436, + "download_count": 32, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039722", + "id": 161039722, + "node_id": "RA_kwDOBPZW984JmUVq", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3319934, + "download_count": 56, + "created_at": "2024-04-09T01:15:35Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039730", + "id": 161039730, + "node_id": "RA_kwDOBPZW984JmUVy", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3404991, + "download_count": 16, + "created_at": "2024-04-09T01:15:36Z", + "updated_at": "2024-04-09T01:15:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039711", + "id": 161039711, + "node_id": "RA_kwDOBPZW984JmUVf", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3311258, + "download_count": 8555, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039706", + "id": 161039706, + "node_id": "RA_kwDOBPZW984JmUVa", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3608183, + "download_count": 637, + "created_at": "2024-04-09T01:15:33Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039703", + "id": 161039703, + "node_id": "RA_kwDOBPZW984JmUVX", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3757729, + "download_count": 8320, + "created_at": "2024-04-09T01:15:33Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039713", + "id": 161039713, + "node_id": "RA_kwDOBPZW984JmUVh", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3532594, + "download_count": 21, + "created_at": "2024-04-09T01:15:34Z", + "updated_at": "2024-04-09T01:15:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/161039705", + "id": 161039705, + "node_id": "RA_kwDOBPZW984JmUVZ", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3394892, + "download_count": 548, + "created_at": "2024-04-09T01:15:33Z", + "updated_at": "2024-04-09T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.36.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.36.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.36.0", + "body": "- Added support for [looping over dependencies](https://taskfile.dev/usage/#looping-over-dependencies) (#1299, #1541 by @pd93).\r\n- When using the \"[Remote Taskfiles](https://taskfile.dev/experiments/remote-taskfiles/)\" experiment, you are now able to use [remote Taskfiles as your entrypoint](https://taskfile.dev/experiments/remote-taskfiles/#root-remote-taskfiles).\r\n- `includes` in remote Taskfiles will now also resolve correctly (#1347 by @pd93).\r\n- When using the \"[Any Variables](https://taskfile.dev/experiments/any-variables/)\" experiments, templating is now supported in collection-type variables (#1477, #1511, #1526 by @pd93).\r\n- Fixed a bug where variables being passed to an included Taskfile were not available when defining global variables (#1503, #1533 by @pd93).\r\n- Improved support to customized colors by allowing 8-bit colors and multiple ANSI attributes (#1576 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/150314586/reactions", + "total_count": 17, + "+1": 7, + "-1": 0, + "laugh": 0, + "hooray": 10, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/144733197", + "assets_url": "https://api.github.com/repos/go-task/task/releases/144733197/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/144733197/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.35.1", + "id": 144733197, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984IoHQN", + "tag_name": "v3.35.1", + "target_commitish": "main", + "name": "v3.35.1", + "draft": false, + "prerelease": false, + "created_at": "2024-03-04T22:21:12Z", + "published_at": "2024-03-04T22:29:08Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904286", + "id": 154904286, + "node_id": "RA_kwDOBPZW984JO6be", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 179346, + "created_at": "2024-03-04T22:24:20Z", + "updated_at": "2024-03-04T22:24:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904255", + "id": 154904255, + "node_id": "RA_kwDOBPZW984JO6a_", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3742165, + "download_count": 7474, + "created_at": "2024-03-04T22:24:16Z", + "updated_at": "2024-03-04T22:24:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904262", + "id": 154904262, + "node_id": "RA_kwDOBPZW984JO6bG", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3567615, + "download_count": 5488, + "created_at": "2024-03-04T22:24:16Z", + "updated_at": "2024-03-04T22:24:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904269", + "id": 154904269, + "node_id": "RA_kwDOBPZW984JO6bN", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3412757, + "download_count": 99, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904263", + "id": 154904263, + "node_id": "RA_kwDOBPZW984JO6bH", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3596271, + "download_count": 109, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904256", + "id": 154904256, + "node_id": "RA_kwDOBPZW984JO6bA", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3398261, + "download_count": 23, + "created_at": "2024-03-04T22:24:16Z", + "updated_at": "2024-03-04T22:24:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904257", + "id": 154904257, + "node_id": "RA_kwDOBPZW984JO6bB", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3293852, + "download_count": 20, + "created_at": "2024-03-04T22:24:16Z", + "updated_at": "2024-03-04T22:24:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904276", + "id": 154904276, + "node_id": "RA_kwDOBPZW984JO6bU", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3428380, + "download_count": 171, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904279", + "id": 154904279, + "node_id": "RA_kwDOBPZW984JO6bX", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3527794, + "download_count": 324, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904266", + "id": 154904266, + "node_id": "RA_kwDOBPZW984JO6bK", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3422250, + "download_count": 432, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904281", + "id": 154904281, + "node_id": "RA_kwDOBPZW984JO6bZ", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3611542, + "download_count": 10203, + "created_at": "2024-03-04T22:24:19Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904283", + "id": 154904283, + "node_id": "RA_kwDOBPZW984JO6bb", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3728078, + "download_count": 1543, + "created_at": "2024-03-04T22:24:19Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904270", + "id": 154904270, + "node_id": "RA_kwDOBPZW984JO6bO", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3601692, + "download_count": 494522, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904277", + "id": 154904277, + "node_id": "RA_kwDOBPZW984JO6bV", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3408882, + "download_count": 23, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904282", + "id": 154904282, + "node_id": "RA_kwDOBPZW984JO6ba", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3495928, + "download_count": 21, + "created_at": "2024-03-04T22:24:19Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904271", + "id": 154904271, + "node_id": "RA_kwDOBPZW984JO6bP", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3402942, + "download_count": 56, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904274", + "id": 154904274, + "node_id": "RA_kwDOBPZW984JO6bS", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3308738, + "download_count": 413, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904284", + "id": 154904284, + "node_id": "RA_kwDOBPZW984JO6bc", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3388477, + "download_count": 2290, + "created_at": "2024-03-04T22:24:19Z", + "updated_at": "2024-03-04T22:24:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904264", + "id": 154904264, + "node_id": "RA_kwDOBPZW984JO6bI", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3299595, + "download_count": 8472, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904254", + "id": 154904254, + "node_id": "RA_kwDOBPZW984JO6a-", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3597367, + "download_count": 697, + "created_at": "2024-03-04T22:24:16Z", + "updated_at": "2024-03-04T22:24:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904273", + "id": 154904273, + "node_id": "RA_kwDOBPZW984JO6bR", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3743629, + "download_count": 8155, + "created_at": "2024-03-04T22:24:18Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904268", + "id": 154904268, + "node_id": "RA_kwDOBPZW984JO6bM", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3523356, + "download_count": 26, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154904265", + "id": 154904265, + "node_id": "RA_kwDOBPZW984JO6bJ", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3385391, + "download_count": 619, + "created_at": "2024-03-04T22:24:17Z", + "updated_at": "2024-03-04T22:24:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.35.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.35.1", + "body": "- Fixed a bug where the `TASKFILE_DIR` variable was sometimes incorrect (#1522, #1523 by @pd93).\r\n- Added a new `TASKFILE` special variable that holds the root Taskfile path (#1523 by @pd93).\r\n- Fixed various issues related to running a Taskfile from a subdirectory (#1529, #1530 by @pd93).\r\n", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/144733197/reactions", + "total_count": 14, + "+1": 14, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/144089026", + "assets_url": "https://api.github.com/repos/go-task/task/releases/144089026/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/144089026/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.35.0", + "id": 144089026, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Ilp_C", + "tag_name": "v3.35.0", + "target_commitish": "main", + "name": "v3.35.0", + "draft": false, + "prerelease": false, + "created_at": "2024-02-28T22:55:28Z", + "published_at": "2024-02-28T23:52:42Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089809", + "id": 154089809, + "node_id": "RA_kwDOBPZW984JLzlR", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 44535, + "created_at": "2024-02-28T22:58:38Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089786", + "id": 154089786, + "node_id": "RA_kwDOBPZW984JLzk6", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3741615, + "download_count": 1669, + "created_at": "2024-02-28T22:58:34Z", + "updated_at": "2024-02-28T22:58:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089781", + "id": 154089781, + "node_id": "RA_kwDOBPZW984JLzk1", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3566740, + "download_count": 1424, + "created_at": "2024-02-28T22:58:33Z", + "updated_at": "2024-02-28T22:58:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089782", + "id": 154089782, + "node_id": "RA_kwDOBPZW984JLzk2", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3413024, + "download_count": 86, + "created_at": "2024-02-28T22:58:33Z", + "updated_at": "2024-02-28T22:58:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089785", + "id": 154089785, + "node_id": "RA_kwDOBPZW984JLzk5", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3596353, + "download_count": 89, + "created_at": "2024-02-28T22:58:34Z", + "updated_at": "2024-02-28T22:58:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089784", + "id": 154089784, + "node_id": "RA_kwDOBPZW984JLzk4", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3398272, + "download_count": 8, + "created_at": "2024-02-28T22:58:34Z", + "updated_at": "2024-02-28T22:58:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089788", + "id": 154089788, + "node_id": "RA_kwDOBPZW984JLzk8", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3293534, + "download_count": 9, + "created_at": "2024-02-28T22:58:34Z", + "updated_at": "2024-02-28T22:58:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089800", + "id": 154089800, + "node_id": "RA_kwDOBPZW984JLzlI", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3428464, + "download_count": 94, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089808", + "id": 154089808, + "node_id": "RA_kwDOBPZW984JLzlQ", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3541011, + "download_count": 131, + "created_at": "2024-02-28T22:58:38Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089795", + "id": 154089795, + "node_id": "RA_kwDOBPZW984JLzlD", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3422321, + "download_count": 225, + "created_at": "2024-02-28T22:58:36Z", + "updated_at": "2024-02-28T22:58:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089803", + "id": 154089803, + "node_id": "RA_kwDOBPZW984JLzlL", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3611622, + "download_count": 11482, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089805", + "id": 154089805, + "node_id": "RA_kwDOBPZW984JLzlN", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3727771, + "download_count": 404, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089793", + "id": 154089793, + "node_id": "RA_kwDOBPZW984JLzlB", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3601681, + "download_count": 149815, + "created_at": "2024-02-28T22:58:36Z", + "updated_at": "2024-02-28T22:58:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089802", + "id": 154089802, + "node_id": "RA_kwDOBPZW984JLzlK", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3408516, + "download_count": 17, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089804", + "id": 154089804, + "node_id": "RA_kwDOBPZW984JLzlM", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3493884, + "download_count": 8, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089792", + "id": 154089792, + "node_id": "RA_kwDOBPZW984JLzlA", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3402620, + "download_count": 31, + "created_at": "2024-02-28T22:58:35Z", + "updated_at": "2024-02-28T22:58:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089799", + "id": 154089799, + "node_id": "RA_kwDOBPZW984JLzlH", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3308724, + "download_count": 54, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089807", + "id": 154089807, + "node_id": "RA_kwDOBPZW984JLzlP", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3388456, + "download_count": 7, + "created_at": "2024-02-28T22:58:37Z", + "updated_at": "2024-02-28T22:58:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089798", + "id": 154089798, + "node_id": "RA_kwDOBPZW984JLzlG", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3299633, + "download_count": 1946, + "created_at": "2024-02-28T22:58:36Z", + "updated_at": "2024-02-28T22:58:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089780", + "id": 154089780, + "node_id": "RA_kwDOBPZW984JLzk0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3597541, + "download_count": 99, + "created_at": "2024-02-28T22:58:33Z", + "updated_at": "2024-02-28T22:58:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089794", + "id": 154089794, + "node_id": "RA_kwDOBPZW984JLzlC", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3743807, + "download_count": 1701, + "created_at": "2024-02-28T22:58:36Z", + "updated_at": "2024-02-28T22:58:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089789", + "id": 154089789, + "node_id": "RA_kwDOBPZW984JLzk9", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3523376, + "download_count": 11, + "created_at": "2024-02-28T22:58:35Z", + "updated_at": "2024-02-28T22:58:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/154089783", + "id": 154089783, + "node_id": "RA_kwDOBPZW984JLzk3", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3384761, + "download_count": 22, + "created_at": "2024-02-28T22:58:33Z", + "updated_at": "2024-02-28T22:58:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.35.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.35.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.35.0", + "body": "- Added support for [wildcards in task names](https://taskfile.dev/usage/#wildcard-arguments) (#836, #1489 by @pd93).\r\n- Added the ability to [run Taskfiles via stdin](https://taskfile.dev/usage/#reading-a-taskfile-from-stdin) (#655, #1483 by @pd93).\r\n- Bumped minimum Go version to 1.21 (#1500 by @pd93).\r\n- Fixed bug related to the `--list` flag (#1509, #1512 by @pd93, #1514, #1520 by @pd93).\r\n- Add mention on the documentation to the fact that the variable declaration order is respected (#1510 by @kirkrodrigues).\r\n- Improved style guide docs (#1495 by @iwittkau).\r\n- Removed duplicated entry for `requires` on the API docs (#1491 by @teatimeguest).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/144089026/reactions", + "total_count": 18, + "+1": 10, + "-1": 0, + "laugh": 0, + "hooray": 8, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 4 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/138794464", + "assets_url": "https://api.github.com/repos/go-task/task/releases/138794464/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/138794464/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.34.1", + "id": 138794464, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984IRdXg", + "tag_name": "v3.34.1", + "target_commitish": "main", + "name": "v3.34.1", + "draft": false, + "prerelease": false, + "created_at": "2024-01-27T21:49:27Z", + "published_at": "2024-01-27T21:53:29Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228184", + "id": 148228184, + "node_id": "RA_kwDOBPZW984I1chY", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 130249, + "created_at": "2024-01-27T21:52:37Z", + "updated_at": "2024-01-27T21:52:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228157", + "id": 148228157, + "node_id": "RA_kwDOBPZW984I1cg9", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3734414, + "download_count": 7058, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228170", + "id": 148228170, + "node_id": "RA_kwDOBPZW984I1chK", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3557898, + "download_count": 5137, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228160", + "id": 148228160, + "node_id": "RA_kwDOBPZW984I1chA", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3403798, + "download_count": 95, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228167", + "id": 148228167, + "node_id": "RA_kwDOBPZW984I1chH", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3589679, + "download_count": 102, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228162", + "id": 148228162, + "node_id": "RA_kwDOBPZW984I1chC", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3391403, + "download_count": 19, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228166", + "id": 148228166, + "node_id": "RA_kwDOBPZW984I1chG", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3287503, + "download_count": 18, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228175", + "id": 148228175, + "node_id": "RA_kwDOBPZW984I1chP", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3421302, + "download_count": 149, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228177", + "id": 148228177, + "node_id": "RA_kwDOBPZW984I1chR", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3527484, + "download_count": 296, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228164", + "id": 148228164, + "node_id": "RA_kwDOBPZW984I1chE", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3414401, + "download_count": 160, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228178", + "id": 148228178, + "node_id": "RA_kwDOBPZW984I1chS", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3601758, + "download_count": 7141, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228180", + "id": 148228180, + "node_id": "RA_kwDOBPZW984I1chU", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3713644, + "download_count": 1456, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228171", + "id": 148228171, + "node_id": "RA_kwDOBPZW984I1chL", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3591989, + "download_count": 559618, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228174", + "id": 148228174, + "node_id": "RA_kwDOBPZW984I1chO", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3400392, + "download_count": 26, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228183", + "id": 148228183, + "node_id": "RA_kwDOBPZW984I1chX", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3480338, + "download_count": 18, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228158", + "id": 148228158, + "node_id": "RA_kwDOBPZW984I1cg-", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3394936, + "download_count": 68, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228173", + "id": 148228173, + "node_id": "RA_kwDOBPZW984I1chN", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3302182, + "download_count": 79, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228182", + "id": 148228182, + "node_id": "RA_kwDOBPZW984I1chW", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3379505, + "download_count": 24, + "created_at": "2024-01-27T21:52:36Z", + "updated_at": "2024-01-27T21:52:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228161", + "id": 148228161, + "node_id": "RA_kwDOBPZW984I1chB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3292875, + "download_count": 8806, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228163", + "id": 148228163, + "node_id": "RA_kwDOBPZW984I1chD", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3588273, + "download_count": 776, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228155", + "id": 148228155, + "node_id": "RA_kwDOBPZW984I1cg7", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3735100, + "download_count": 7687, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228156", + "id": 148228156, + "node_id": "RA_kwDOBPZW984I1cg8", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3515665, + "download_count": 20, + "created_at": "2024-01-27T21:52:34Z", + "updated_at": "2024-01-27T21:52:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/148228168", + "id": 148228168, + "node_id": "RA_kwDOBPZW984I1chI", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3378196, + "download_count": 660, + "created_at": "2024-01-27T21:52:35Z", + "updated_at": "2024-01-27T21:52:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.34.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.34.1", + "body": "- Fixed prompt regression on [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles/) (#1486, #1487 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/138794464/reactions", + "total_count": 17, + "+1": 10, + "-1": 0, + "laugh": 0, + "hooray": 6, + "confused": 0, + "heart": 0, + "rocket": 1, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/138600410", + "assets_url": "https://api.github.com/repos/go-task/task/releases/138600410/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/138600410/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.34.0", + "id": 138600410, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984IQt_a", + "tag_name": "v3.34.0", + "target_commitish": "main", + "name": "v3.34.0", + "draft": false, + "prerelease": false, + "created_at": "2024-01-26T00:43:38Z", + "published_at": "2024-01-26T00:48:37Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877303", + "id": 147877303, + "node_id": "RA_kwDOBPZW984I0G23", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 3691, + "created_at": "2024-01-26T00:47:04Z", + "updated_at": "2024-01-26T00:47:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877260", + "id": 147877260, + "node_id": "RA_kwDOBPZW984I0G2M", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3734414, + "download_count": 476, + "created_at": "2024-01-26T00:46:59Z", + "updated_at": "2024-01-26T00:47:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877276", + "id": 147877276, + "node_id": "RA_kwDOBPZW984I0G2c", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3557892, + "download_count": 578, + "created_at": "2024-01-26T00:47:01Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877257", + "id": 147877257, + "node_id": "RA_kwDOBPZW984I0G2J", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3404156, + "download_count": 84, + "created_at": "2024-01-26T00:46:59Z", + "updated_at": "2024-01-26T00:47:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877267", + "id": 147877267, + "node_id": "RA_kwDOBPZW984I0G2T", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3589683, + "download_count": 86, + "created_at": "2024-01-26T00:47:00Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877266", + "id": 147877266, + "node_id": "RA_kwDOBPZW984I0G2S", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3391425, + "download_count": 8, + "created_at": "2024-01-26T00:47:00Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877272", + "id": 147877272, + "node_id": "RA_kwDOBPZW984I0G2Y", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3287506, + "download_count": 10, + "created_at": "2024-01-26T00:47:01Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877281", + "id": 147877281, + "node_id": "RA_kwDOBPZW984I0G2h", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3421268, + "download_count": 90, + "created_at": "2024-01-26T00:47:02Z", + "updated_at": "2024-01-26T00:47:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877292", + "id": 147877292, + "node_id": "RA_kwDOBPZW984I0G2s", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3527407, + "download_count": 111, + "created_at": "2024-01-26T00:47:03Z", + "updated_at": "2024-01-26T00:47:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877275", + "id": 147877275, + "node_id": "RA_kwDOBPZW984I0G2b", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3414398, + "download_count": 87, + "created_at": "2024-01-26T00:47:01Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877294", + "id": 147877294, + "node_id": "RA_kwDOBPZW984I0G2u", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3601736, + "download_count": 161, + "created_at": "2024-01-26T00:47:03Z", + "updated_at": "2024-01-26T00:47:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877297", + "id": 147877297, + "node_id": "RA_kwDOBPZW984I0G2x", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3713630, + "download_count": 121, + "created_at": "2024-01-26T00:47:03Z", + "updated_at": "2024-01-26T00:47:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877279", + "id": 147877279, + "node_id": "RA_kwDOBPZW984I0G2f", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3591972, + "download_count": 16382, + "created_at": "2024-01-26T00:47:02Z", + "updated_at": "2024-01-26T00:47:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877289", + "id": 147877289, + "node_id": "RA_kwDOBPZW984I0G2p", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3400594, + "download_count": 7, + "created_at": "2024-01-26T00:47:02Z", + "updated_at": "2024-01-26T00:47:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877300", + "id": 147877300, + "node_id": "RA_kwDOBPZW984I0G20", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3480635, + "download_count": 7, + "created_at": "2024-01-26T00:47:03Z", + "updated_at": "2024-01-26T00:47:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877278", + "id": 147877278, + "node_id": "RA_kwDOBPZW984I0G2e", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3395133, + "download_count": 14, + "created_at": "2024-01-26T00:47:02Z", + "updated_at": "2024-01-26T00:47:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877280", + "id": 147877280, + "node_id": "RA_kwDOBPZW984I0G2g", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3302176, + "download_count": 22, + "created_at": "2024-01-26T00:47:02Z", + "updated_at": "2024-01-26T00:47:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877301", + "id": 147877301, + "node_id": "RA_kwDOBPZW984I0G21", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3379504, + "download_count": 11, + "created_at": "2024-01-26T00:47:03Z", + "updated_at": "2024-01-26T00:47:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877268", + "id": 147877268, + "node_id": "RA_kwDOBPZW984I0G2U", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3292872, + "download_count": 263, + "created_at": "2024-01-26T00:47:00Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877265", + "id": 147877265, + "node_id": "RA_kwDOBPZW984I0G2R", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3588049, + "download_count": 744, + "created_at": "2024-01-26T00:47:00Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877273", + "id": 147877273, + "node_id": "RA_kwDOBPZW984I0G2Z", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3735108, + "download_count": 1107, + "created_at": "2024-01-26T00:47:01Z", + "updated_at": "2024-01-26T00:47:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877259", + "id": 147877259, + "node_id": "RA_kwDOBPZW984I0G2L", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3515713, + "download_count": 10, + "created_at": "2024-01-26T00:46:59Z", + "updated_at": "2024-01-26T00:47:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/147877258", + "id": 147877258, + "node_id": "RA_kwDOBPZW984I0G2K", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3378339, + "download_count": 655, + "created_at": "2024-01-26T00:46:59Z", + "updated_at": "2024-01-26T00:47:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.34.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.34.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.34.0", + "body": "- Removed support for `version: 2` schemas. See the [deprecation notice on our website](https://taskfile.dev/deprecations/version-2-schema) (#1197, #1447 by @pd93).\r\n- Fixed a couple of issues in the JSON Schema + added a CI step to ensure it's correct (#1471, #1474, #1476 by @sirosen).\r\n- Added [Any Variables experiment proposal 2](https://taskfile.dev/experiments/any-variables/?proposal=2) (#1415, #1444 by @pd93).\r\n- Updated the experiments and deprecations documentation format (#1445 by @pd93).\r\n- Added new template function: `spew`, which can be used to print variables for debugging purposes (#1452 by @pd93).\r\n- Added new template function: `merge`, which can be used to merge any number of map variables (#1438, #1464 by @pd93).\r\n- Small change on the API when using as a library: `call.Direct` became `call.Indirect` (#1459 by @pd93).\r\n- Refactored the public `read` and `taskfile` packages and introduced `taskfile/ast` (#1450 by @pd93).\r\n- `ast.IncludedTaskfiles` renamed to `ast.Includes` and `orderedmap` package renamed to `omap` plus some internal refactor work (#1456 by @pd93).\r\n- Fix zsh completion script to allow lowercase `taskfile` file names (#1482 by @xontab).\r\n- Improvements on how we check the Taskfile version (#1465 by @pd93).\r\n- Added a new `ROOT_TASKFILE` special variable (#1468, #1469 by @pd93).\r\n- Fix experiment flags in `.env` when the `--dir` or `--taskfile` flags were used (#1478 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/138600410/reactions", + "total_count": 16, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 13, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/134844901", + "assets_url": "https://api.github.com/repos/go-task/task/releases/134844901/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/134844901/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.33.1", + "id": 134844901, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984ICZHl", + "tag_name": "v3.33.1", + "target_commitish": "main", + "name": "v3.33.1", + "draft": false, + "prerelease": false, + "created_at": "2023-12-21T23:10:41Z", + "published_at": "2023-12-21T23:15:22Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888407", + "id": 141888407, + "node_id": "RA_kwDOBPZW984IdQuX", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 76194, + "created_at": "2023-12-21T23:14:14Z", + "updated_at": "2023-12-21T23:14:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888393", + "id": 141888393, + "node_id": "RA_kwDOBPZW984IdQuJ", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3704634, + "download_count": 8315, + "created_at": "2023-12-21T23:14:12Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888381", + "id": 141888381, + "node_id": "RA_kwDOBPZW984IdQt9", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3528281, + "download_count": 4321, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888392", + "id": 141888392, + "node_id": "RA_kwDOBPZW984IdQuI", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3380715, + "download_count": 85, + "created_at": "2023-12-21T23:14:12Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888395", + "id": 141888395, + "node_id": "RA_kwDOBPZW984IdQuL", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3562921, + "download_count": 91, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888384", + "id": 141888384, + "node_id": "RA_kwDOBPZW984IdQuA", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3362024, + "download_count": 8, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888387", + "id": 141888387, + "node_id": "RA_kwDOBPZW984IdQuD", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3260229, + "download_count": 8, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888397", + "id": 141888397, + "node_id": "RA_kwDOBPZW984IdQuN", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3394508, + "download_count": 134, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888402", + "id": 141888402, + "node_id": "RA_kwDOBPZW984IdQuS", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3499519, + "download_count": 423, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888383", + "id": 141888383, + "node_id": "RA_kwDOBPZW984IdQt_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3387053, + "download_count": 183, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888400", + "id": 141888400, + "node_id": "RA_kwDOBPZW984IdQuQ", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3574512, + "download_count": 2987, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888401", + "id": 141888401, + "node_id": "RA_kwDOBPZW984IdQuR", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3694070, + "download_count": 1656, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888380", + "id": 141888380, + "node_id": "RA_kwDOBPZW984IdQt8", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3565760, + "download_count": 196088, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888398", + "id": 141888398, + "node_id": "RA_kwDOBPZW984IdQuO", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3372608, + "download_count": 13, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888406", + "id": 141888406, + "node_id": "RA_kwDOBPZW984IdQuW", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3460521, + "download_count": 6, + "created_at": "2023-12-21T23:14:14Z", + "updated_at": "2023-12-21T23:14:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888385", + "id": 141888385, + "node_id": "RA_kwDOBPZW984IdQuB", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3366516, + "download_count": 62, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888396", + "id": 141888396, + "node_id": "RA_kwDOBPZW984IdQuM", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3272980, + "download_count": 55, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888405", + "id": 141888405, + "node_id": "RA_kwDOBPZW984IdQuV", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3357299, + "download_count": 16, + "created_at": "2023-12-21T23:14:13Z", + "updated_at": "2023-12-21T23:14:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888386", + "id": 141888386, + "node_id": "RA_kwDOBPZW984IdQuC", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3264834, + "download_count": 5888, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888382", + "id": 141888382, + "node_id": "RA_kwDOBPZW984IdQt-", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3563631, + "download_count": 752, + "created_at": "2023-12-21T23:14:11Z", + "updated_at": "2023-12-21T23:14:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888391", + "id": 141888391, + "node_id": "RA_kwDOBPZW984IdQuH", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3708123, + "download_count": 7269, + "created_at": "2023-12-21T23:14:12Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888389", + "id": 141888389, + "node_id": "RA_kwDOBPZW984IdQuF", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3489697, + "download_count": 10, + "created_at": "2023-12-21T23:14:12Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141888390", + "id": 141888390, + "node_id": "RA_kwDOBPZW984IdQuG", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3353754, + "download_count": 688, + "created_at": "2023-12-21T23:14:12Z", + "updated_at": "2023-12-21T23:14:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.33.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.33.1", + "body": "- Added support for looping over map variables with the [Any Variables experiment](https://taskfile.dev/experiments/any-variables) enabled (#1435, #1437 by @pd93).\r\n- Fixed a bug where dynamic variables were causing errors during fast compilation (#1435, #1437 by @pd93)", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/134844901/reactions", + "total_count": 8, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/134714287", + "assets_url": "https://api.github.com/repos/go-task/task/releases/134714287/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/134714287/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.33.0", + "id": 134714287, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984IB5Ov", + "tag_name": "v3.33.0", + "target_commitish": "main", + "name": "v3.33.0", + "draft": false, + "prerelease": false, + "created_at": "2023-12-21T02:20:06Z", + "published_at": "2023-12-21T02:27:15Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736705", + "id": 141736705, + "node_id": "RA_kwDOBPZW984IcrsB", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 9226, + "created_at": "2023-12-21T02:23:19Z", + "updated_at": "2023-12-21T02:23:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736685", + "id": 141736685, + "node_id": "RA_kwDOBPZW984Icrrt", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3703672, + "download_count": 304, + "created_at": "2023-12-21T02:23:16Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736684", + "id": 141736684, + "node_id": "RA_kwDOBPZW984Icrrs", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3528243, + "download_count": 326, + "created_at": "2023-12-21T02:23:16Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736693", + "id": 141736693, + "node_id": "RA_kwDOBPZW984Icrr1", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3380513, + "download_count": 74, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736690", + "id": 141736690, + "node_id": "RA_kwDOBPZW984Icrry", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3562549, + "download_count": 74, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736683", + "id": 141736683, + "node_id": "RA_kwDOBPZW984Icrrr", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3361839, + "download_count": 7, + "created_at": "2023-12-21T02:23:16Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736681", + "id": 141736681, + "node_id": "RA_kwDOBPZW984Icrrp", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3259869, + "download_count": 7, + "created_at": "2023-12-21T02:23:16Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736699", + "id": 141736699, + "node_id": "RA_kwDOBPZW984Icrr7", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3394198, + "download_count": 75, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736704", + "id": 141736704, + "node_id": "RA_kwDOBPZW984IcrsA", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3521657, + "download_count": 91, + "created_at": "2023-12-21T02:23:19Z", + "updated_at": "2023-12-21T02:23:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736676", + "id": 141736676, + "node_id": "RA_kwDOBPZW984Icrrk", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3386889, + "download_count": 79, + "created_at": "2023-12-21T02:23:15Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736702", + "id": 141736702, + "node_id": "RA_kwDOBPZW984Icrr-", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3574110, + "download_count": 118, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736703", + "id": 141736703, + "node_id": "RA_kwDOBPZW984Icrr_", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3690320, + "download_count": 138, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736694", + "id": 141736694, + "node_id": "RA_kwDOBPZW984Icrr2", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3565440, + "download_count": 16564, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736698", + "id": 141736698, + "node_id": "RA_kwDOBPZW984Icrr6", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3371482, + "download_count": 6, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736700", + "id": 141736700, + "node_id": "RA_kwDOBPZW984Icrr8", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3466601, + "download_count": 6, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736686", + "id": 141736686, + "node_id": "RA_kwDOBPZW984Icrru", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3365445, + "download_count": 8, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736696", + "id": 141736696, + "node_id": "RA_kwDOBPZW984Icrr4", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3272662, + "download_count": 12, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736701", + "id": 141736701, + "node_id": "RA_kwDOBPZW984Icrr9", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3361235, + "download_count": 6, + "created_at": "2023-12-21T02:23:18Z", + "updated_at": "2023-12-21T02:23:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736677", + "id": 141736677, + "node_id": "RA_kwDOBPZW984Icrrl", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3264028, + "download_count": 335, + "created_at": "2023-12-21T02:23:15Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736678", + "id": 141736678, + "node_id": "RA_kwDOBPZW984Icrrm", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3563380, + "download_count": 742, + "created_at": "2023-12-21T02:23:15Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736692", + "id": 141736692, + "node_id": "RA_kwDOBPZW984Icrr0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3707342, + "download_count": 865, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736679", + "id": 141736679, + "node_id": "RA_kwDOBPZW984Icrrn", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3489037, + "download_count": 7, + "created_at": "2023-12-21T02:23:15Z", + "updated_at": "2023-12-21T02:23:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/141736687", + "id": 141736687, + "node_id": "RA_kwDOBPZW984Icrrv", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3353404, + "download_count": 655, + "created_at": "2023-12-21T02:23:17Z", + "updated_at": "2023-12-21T02:23:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.33.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.33.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.33.0", + "body": "- Added [Any Variables experiment](https://taskfile.dev/experiments/any-variables) (#1415, #1421 by @pd93).\r\n- Updated Docusaurus to v3 (#1432 by @pd93).\r\n- Added `aliases` to `--json` flag output (#1430, #1431 by @pd93).\r\n- Added new `CLI_FORCE` special variable containing whether the `--force` or `--force-all` flags were set (#1412, #1434 by @pd93).\r\n\r\nMerry Christmas! :christmas_tree: :gift: :santa: :mrs_claus: ", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/134714287/reactions", + "total_count": 9, + "+1": 5, + "-1": 0, + "laugh": 0, + "hooray": 4, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/132014248", + "assets_url": "https://api.github.com/repos/go-task/task/releases/132014248/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/132014248/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.32.0", + "id": 132014248, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984H3mCo", + "tag_name": "v3.32.0", + "target_commitish": "main", + "name": "v3.32.0", + "draft": false, + "prerelease": false, + "created_at": "2023-11-30T01:40:04Z", + "published_at": "2023-11-30T01:44:41Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134636", + "id": 138134636, + "node_id": "RA_kwDOBPZW984IO8Rs", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 55935, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134613", + "id": 138134613, + "node_id": "RA_kwDOBPZW984IO8RV", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3700977, + "download_count": 4175, + "created_at": "2023-11-30T01:43:05Z", + "updated_at": "2023-11-30T01:43:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134624", + "id": 138134624, + "node_id": "RA_kwDOBPZW984IO8Rg", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3527279, + "download_count": 3037, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134625", + "id": 138134625, + "node_id": "RA_kwDOBPZW984IO8Rh", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3379053, + "download_count": 77, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134615", + "id": 138134615, + "node_id": "RA_kwDOBPZW984IO8RX", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3561155, + "download_count": 80, + "created_at": "2023-11-30T01:43:05Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134619", + "id": 138134619, + "node_id": "RA_kwDOBPZW984IO8Rb", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3360574, + "download_count": 10, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134617", + "id": 138134617, + "node_id": "RA_kwDOBPZW984IO8RZ", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3258331, + "download_count": 8, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134630", + "id": 138134630, + "node_id": "RA_kwDOBPZW984IO8Rm", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3392798, + "download_count": 111, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134633", + "id": 138134633, + "node_id": "RA_kwDOBPZW984IO8Rp", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3498017, + "download_count": 533, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134621", + "id": 138134621, + "node_id": "RA_kwDOBPZW984IO8Rd", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3385480, + "download_count": 138, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134631", + "id": 138134631, + "node_id": "RA_kwDOBPZW984IO8Rn", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3572590, + "download_count": 1616, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134635", + "id": 138134635, + "node_id": "RA_kwDOBPZW984IO8Rr", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3683310, + "download_count": 967, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134627", + "id": 138134627, + "node_id": "RA_kwDOBPZW984IO8Rj", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3563819, + "download_count": 386449, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134629", + "id": 138134629, + "node_id": "RA_kwDOBPZW984IO8Rl", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3369904, + "download_count": 11, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134632", + "id": 138134632, + "node_id": "RA_kwDOBPZW984IO8Ro", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3477324, + "download_count": 7, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134614", + "id": 138134614, + "node_id": "RA_kwDOBPZW984IO8RW", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3364187, + "download_count": 12, + "created_at": "2023-11-30T01:43:05Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134628", + "id": 138134628, + "node_id": "RA_kwDOBPZW984IO8Rk", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3271228, + "download_count": 168, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134634", + "id": 138134634, + "node_id": "RA_kwDOBPZW984IO8Rq", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3357355, + "download_count": 940, + "created_at": "2023-11-30T01:43:08Z", + "updated_at": "2023-11-30T01:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134626", + "id": 138134626, + "node_id": "RA_kwDOBPZW984IO8Ri", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3262720, + "download_count": 4952, + "created_at": "2023-11-30T01:43:07Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134612", + "id": 138134612, + "node_id": "RA_kwDOBPZW984IO8RU", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3561039, + "download_count": 847, + "created_at": "2023-11-30T01:43:05Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134620", + "id": 138134620, + "node_id": "RA_kwDOBPZW984IO8Rc", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3705836, + "download_count": 4689, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134616", + "id": 138134616, + "node_id": "RA_kwDOBPZW984IO8RY", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3486072, + "download_count": 7, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/138134618", + "id": 138134618, + "node_id": "RA_kwDOBPZW984IO8Ra", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3351782, + "download_count": 771, + "created_at": "2023-11-30T01:43:06Z", + "updated_at": "2023-11-30T01:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.32.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.32.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.32.0", + "body": "- Added ability to exclude some files from `sources:` by using `exclude:` (#225, #1324 by @pd93 and @andreynering).\r\n- The [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) now prefers remote files over cached ones by default (#1317, #1345 by @pd93).\r\n- Added `--timeout` flag to the [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) (#1317, #1345 by @pd93).\r\n- Fix bug where dynamic `vars:` and `env:` were being executed when they should actually be skipped by `platforms:` (#1273, #1377 by @andreynering).\r\n- Fix `schema.json` to make `silent` valid in `cmds` that use `for` (#1385, #1386 by @iainvm).\r\n- Add new `--no-status` flag to skip expensive status checks when running `task --list --json` (#1348, #1368 by @amancevice).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/132014248/reactions", + "total_count": 14, + "+1": 6, + "-1": 0, + "laugh": 0, + "hooray": 6, + "confused": 0, + "heart": 2, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 4 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/124156421", + "assets_url": "https://api.github.com/repos/go-task/task/releases/124156421/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/124156421/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.31.0", + "id": 124156421, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984HZnoF", + "tag_name": "v3.31.0", + "target_commitish": "main", + "name": "v3.31.0", + "draft": false, + "prerelease": false, + "created_at": "2023-10-07T22:10:57Z", + "published_at": "2023-10-07T22:17:52Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530276", + "id": 129530276, + "node_id": "RA_kwDOBPZW984HuHmk", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 246430, + "created_at": "2023-10-07T22:15:52Z", + "updated_at": "2023-10-07T22:15:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530263", + "id": 129530263, + "node_id": "RA_kwDOBPZW984HuHmX", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3701614, + "download_count": 11889, + "created_at": "2023-10-07T22:15:48Z", + "updated_at": "2023-10-07T22:15:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530266", + "id": 129530266, + "node_id": "RA_kwDOBPZW984HuHma", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3527149, + "download_count": 5893, + "created_at": "2023-10-07T22:15:49Z", + "updated_at": "2023-10-07T22:15:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530257", + "id": 129530257, + "node_id": "RA_kwDOBPZW984HuHmR", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3378944, + "download_count": 91, + "created_at": "2023-10-07T22:15:47Z", + "updated_at": "2023-10-07T22:15:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530267", + "id": 129530267, + "node_id": "RA_kwDOBPZW984HuHmb", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3560193, + "download_count": 113, + "created_at": "2023-10-07T22:15:49Z", + "updated_at": "2023-10-07T22:15:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530258", + "id": 129530258, + "node_id": "RA_kwDOBPZW984HuHmS", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3360595, + "download_count": 14, + "created_at": "2023-10-07T22:15:47Z", + "updated_at": "2023-10-07T22:15:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530260", + "id": 129530260, + "node_id": "RA_kwDOBPZW984HuHmU", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3258623, + "download_count": 12, + "created_at": "2023-10-07T22:15:48Z", + "updated_at": "2023-10-07T22:15:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530268", + "id": 129530268, + "node_id": "RA_kwDOBPZW984HuHmc", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3391760, + "download_count": 182, + "created_at": "2023-10-07T22:15:50Z", + "updated_at": "2023-10-07T22:15:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530272", + "id": 129530272, + "node_id": "RA_kwDOBPZW984HuHmg", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3500165, + "download_count": 407, + "created_at": "2023-10-07T22:15:51Z", + "updated_at": "2023-10-07T22:15:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530255", + "id": 129530255, + "node_id": "RA_kwDOBPZW984HuHmP", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3384417, + "download_count": 291, + "created_at": "2023-10-07T22:15:46Z", + "updated_at": "2023-10-07T22:15:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530269", + "id": 129530269, + "node_id": "RA_kwDOBPZW984HuHmd", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3572064, + "download_count": 13418, + "created_at": "2023-10-07T22:15:50Z", + "updated_at": "2023-10-07T22:15:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530273", + "id": 129530273, + "node_id": "RA_kwDOBPZW984HuHmh", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3682622, + "download_count": 21434, + "created_at": "2023-10-07T22:15:51Z", + "updated_at": "2023-10-07T22:15:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530254", + "id": 129530254, + "node_id": "RA_kwDOBPZW984HuHmO", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3563131, + "download_count": 606417, + "created_at": "2023-10-07T22:15:46Z", + "updated_at": "2023-10-07T22:15:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530271", + "id": 129530271, + "node_id": "RA_kwDOBPZW984HuHmf", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3369828, + "download_count": 21, + "created_at": "2023-10-07T22:15:51Z", + "updated_at": "2023-10-07T22:15:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530274", + "id": 129530274, + "node_id": "RA_kwDOBPZW984HuHmi", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3453454, + "download_count": 11, + "created_at": "2023-10-07T22:15:52Z", + "updated_at": "2023-10-07T22:15:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530265", + "id": 129530265, + "node_id": "RA_kwDOBPZW984HuHmZ", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3364542, + "download_count": 25, + "created_at": "2023-10-07T22:15:49Z", + "updated_at": "2023-10-07T22:15:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530270", + "id": 129530270, + "node_id": "RA_kwDOBPZW984HuHme", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3271180, + "download_count": 161, + "created_at": "2023-10-07T22:15:51Z", + "updated_at": "2023-10-07T22:15:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530275", + "id": 129530275, + "node_id": "RA_kwDOBPZW984HuHmj", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3353841, + "download_count": 408, + "created_at": "2023-10-07T22:15:52Z", + "updated_at": "2023-10-07T22:15:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530256", + "id": 129530256, + "node_id": "RA_kwDOBPZW984HuHmQ", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3262545, + "download_count": 12917, + "created_at": "2023-10-07T22:15:46Z", + "updated_at": "2023-10-07T22:15:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530261", + "id": 129530261, + "node_id": "RA_kwDOBPZW984HuHmV", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3561972, + "download_count": 934, + "created_at": "2023-10-07T22:15:48Z", + "updated_at": "2023-10-07T22:15:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530259", + "id": 129530259, + "node_id": "RA_kwDOBPZW984HuHmT", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3705630, + "download_count": 10499, + "created_at": "2023-10-07T22:15:47Z", + "updated_at": "2023-10-07T22:15:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530264", + "id": 129530264, + "node_id": "RA_kwDOBPZW984HuHmY", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3485517, + "download_count": 20, + "created_at": "2023-10-07T22:15:49Z", + "updated_at": "2023-10-07T22:15:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/129530262", + "id": 129530262, + "node_id": "RA_kwDOBPZW984HuHmW", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3351742, + "download_count": 819, + "created_at": "2023-10-07T22:15:48Z", + "updated_at": "2023-10-07T22:15:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.31.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.31.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.31.0", + "body": "- Enabled the `--yes` flag for the [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) (#1344 by @pd93).\r\n- Add ability to set `watch: true` in a task to automatically run it in watch mode (#231, #1361 by @andreynering).\r\n- Fixed a bug on the watch mode where paths that contained `.git` (like `.github`), for example, were also being ignored (#1356 by @butuzov).\r\n- Fixed a nil pointer error when running a Taskfile with no contents (#1341, #1342 by @pd93).\r\n- Added a new [exit code](https://taskfile.dev/api/#exit-codes) (107) for when a Taskfile does not contain a schema version (#1342 by @pd93).\r\n- Increased limit of maximum task calls from 100 to 1000 for now, as some people have been reaching this limit organically now that we have loops. This check exists to detect recursive calls, but will be removed in favor of a better algorithm soon (#1321, #1332).\r\n- Fixed templating on descriptions on `task --list` (#1343 by @blackjid).\r\n- Fixed a bug where precondition errors were incorrectly being printed when task execution was aborted (#1337, #1338 by @sylv-io).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/124156421/reactions", + "total_count": 20, + "+1": 13, + "-1": 0, + "laugh": 0, + "hooray": 4, + "confused": 0, + "heart": 3, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/121230749", + "assets_url": "https://api.github.com/repos/go-task/task/releases/121230749/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/121230749/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.30.1", + "id": 121230749, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984HOdWd", + "tag_name": "v3.30.1", + "target_commitish": "main", + "name": "v3.30.1", + "draft": false, + "prerelease": false, + "created_at": "2023-09-15T00:31:26Z", + "published_at": "2023-09-15T00:38:24Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106759", + "id": 126106759, + "node_id": "RA_kwDOBPZW984HhDyH", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 61689, + "created_at": "2023-09-15T00:36:45Z", + "updated_at": "2023-09-15T00:36:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106748", + "id": 126106748, + "node_id": "RA_kwDOBPZW984HhDx8", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3698429, + "download_count": 4914, + "created_at": "2023-09-15T00:36:42Z", + "updated_at": "2023-09-15T00:36:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106746", + "id": 126106746, + "node_id": "RA_kwDOBPZW984HhDx6", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3525575, + "download_count": 2591, + "created_at": "2023-09-15T00:36:41Z", + "updated_at": "2023-09-15T00:36:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106747", + "id": 126106747, + "node_id": "RA_kwDOBPZW984HhDx7", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3377699, + "download_count": 97, + "created_at": "2023-09-15T00:36:42Z", + "updated_at": "2023-09-15T00:36:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106744", + "id": 126106744, + "node_id": "RA_kwDOBPZW984HhDx4", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3558694, + "download_count": 107, + "created_at": "2023-09-15T00:36:41Z", + "updated_at": "2023-09-15T00:36:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106734", + "id": 126106734, + "node_id": "RA_kwDOBPZW984HhDxu", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3359862, + "download_count": 12, + "created_at": "2023-09-15T00:36:39Z", + "updated_at": "2023-09-15T00:36:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106749", + "id": 126106749, + "node_id": "RA_kwDOBPZW984HhDx9", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3258351, + "download_count": 13, + "created_at": "2023-09-15T00:36:42Z", + "updated_at": "2023-09-15T00:36:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106750", + "id": 126106750, + "node_id": "RA_kwDOBPZW984HhDx-", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3391288, + "download_count": 135, + "created_at": "2023-09-15T00:36:42Z", + "updated_at": "2023-09-15T00:36:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106756", + "id": 126106756, + "node_id": "RA_kwDOBPZW984HhDyE", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3495116, + "download_count": 98, + "created_at": "2023-09-15T00:36:44Z", + "updated_at": "2023-09-15T00:36:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106737", + "id": 126106737, + "node_id": "RA_kwDOBPZW984HhDxx", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3383915, + "download_count": 229, + "created_at": "2023-09-15T00:36:40Z", + "updated_at": "2023-09-15T00:36:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106751", + "id": 126106751, + "node_id": "RA_kwDOBPZW984HhDx_", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3571196, + "download_count": 1513, + "created_at": "2023-09-15T00:36:43Z", + "updated_at": "2023-09-15T00:36:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106757", + "id": 126106757, + "node_id": "RA_kwDOBPZW984HhDyF", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3680750, + "download_count": 1182, + "created_at": "2023-09-15T00:36:44Z", + "updated_at": "2023-09-15T00:36:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106733", + "id": 126106733, + "node_id": "RA_kwDOBPZW984HhDxt", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3562239, + "download_count": 281733, + "created_at": "2023-09-15T00:36:39Z", + "updated_at": "2023-09-15T00:36:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106752", + "id": 126106752, + "node_id": "RA_kwDOBPZW984HhDyA", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3369004, + "download_count": 29, + "created_at": "2023-09-15T00:36:43Z", + "updated_at": "2023-09-15T00:36:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106758", + "id": 126106758, + "node_id": "RA_kwDOBPZW984HhDyG", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3460441, + "download_count": 11, + "created_at": "2023-09-15T00:36:45Z", + "updated_at": "2023-09-15T00:36:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106742", + "id": 126106742, + "node_id": "RA_kwDOBPZW984HhDx2", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3363644, + "download_count": 18, + "created_at": "2023-09-15T00:36:40Z", + "updated_at": "2023-09-15T00:36:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106754", + "id": 126106754, + "node_id": "RA_kwDOBPZW984HhDyC", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3271150, + "download_count": 514, + "created_at": "2023-09-15T00:36:43Z", + "updated_at": "2023-09-15T00:36:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106755", + "id": 126106755, + "node_id": "RA_kwDOBPZW984HhDyD", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3357531, + "download_count": 12, + "created_at": "2023-09-15T00:36:44Z", + "updated_at": "2023-09-15T00:36:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106745", + "id": 126106745, + "node_id": "RA_kwDOBPZW984HhDx5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3261933, + "download_count": 3771, + "created_at": "2023-09-15T00:36:41Z", + "updated_at": "2023-09-15T00:36:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106732", + "id": 126106732, + "node_id": "RA_kwDOBPZW984HhDxs", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3560714, + "download_count": 899, + "created_at": "2023-09-15T00:36:39Z", + "updated_at": "2023-09-15T00:36:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106735", + "id": 126106735, + "node_id": "RA_kwDOBPZW984HhDxv", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3703964, + "download_count": 4341, + "created_at": "2023-09-15T00:36:39Z", + "updated_at": "2023-09-15T00:36:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106743", + "id": 126106743, + "node_id": "RA_kwDOBPZW984HhDx3", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3483976, + "download_count": 14, + "created_at": "2023-09-15T00:36:40Z", + "updated_at": "2023-09-15T00:36:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/126106736", + "id": 126106736, + "node_id": "RA_kwDOBPZW984HhDxw", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3350022, + "download_count": 809, + "created_at": "2023-09-15T00:36:40Z", + "updated_at": "2023-09-15T00:36:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.30.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.30.1", + "body": "- Fixed a regression where some special variables weren't being set correctly (#1331, #1334 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/121230749/reactions", + "total_count": 4, + "+1": 4, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/121055920", + "assets_url": "https://api.github.com/repos/go-task/task/releases/121055920/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/121055920/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.30.0", + "id": 121055920, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984HNyqw", + "tag_name": "v3.30.0", + "target_commitish": "main", + "name": "v3.30.0", + "draft": false, + "prerelease": false, + "created_at": "2023-09-14T01:04:45Z", + "published_at": "2023-09-14T01:14:06Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940022", + "id": 125940022, + "node_id": "RA_kwDOBPZW984HgbE2", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 3435, + "created_at": "2023-09-14T01:09:51Z", + "updated_at": "2023-09-14T01:09:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939993", + "id": 125939993, + "node_id": "RA_kwDOBPZW984HgbEZ", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3698493, + "download_count": 502, + "created_at": "2023-09-14T01:09:46Z", + "updated_at": "2023-09-14T01:09:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940000", + "id": 125940000, + "node_id": "RA_kwDOBPZW984HgbEg", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3525180, + "download_count": 296, + "created_at": "2023-09-14T01:09:48Z", + "updated_at": "2023-09-14T01:09:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939992", + "id": 125939992, + "node_id": "RA_kwDOBPZW984HgbEY", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3377896, + "download_count": 93, + "created_at": "2023-09-14T01:09:46Z", + "updated_at": "2023-09-14T01:09:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939990", + "id": 125939990, + "node_id": "RA_kwDOBPZW984HgbEW", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3559536, + "download_count": 94, + "created_at": "2023-09-14T01:09:46Z", + "updated_at": "2023-09-14T01:09:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939989", + "id": 125939989, + "node_id": "RA_kwDOBPZW984HgbEV", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3360273, + "download_count": 10, + "created_at": "2023-09-14T01:09:45Z", + "updated_at": "2023-09-14T01:09:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939995", + "id": 125939995, + "node_id": "RA_kwDOBPZW984HgbEb", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3258731, + "download_count": 9, + "created_at": "2023-09-14T01:09:47Z", + "updated_at": "2023-09-14T01:09:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940006", + "id": 125940006, + "node_id": "RA_kwDOBPZW984HgbEm", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3391460, + "download_count": 97, + "created_at": "2023-09-14T01:09:49Z", + "updated_at": "2023-09-14T01:09:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940015", + "id": 125940015, + "node_id": "RA_kwDOBPZW984HgbEv", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3493154, + "download_count": 93, + "created_at": "2023-09-14T01:09:51Z", + "updated_at": "2023-09-14T01:09:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939981", + "id": 125939981, + "node_id": "RA_kwDOBPZW984HgbEN", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3384331, + "download_count": 96, + "created_at": "2023-09-14T01:09:44Z", + "updated_at": "2023-09-14T01:09:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940008", + "id": 125940008, + "node_id": "RA_kwDOBPZW984HgbEo", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3571160, + "download_count": 157, + "created_at": "2023-09-14T01:09:49Z", + "updated_at": "2023-09-14T01:09:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940020", + "id": 125940020, + "node_id": "RA_kwDOBPZW984HgbE0", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3680090, + "download_count": 167, + "created_at": "2023-09-14T01:09:51Z", + "updated_at": "2023-09-14T01:09:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939988", + "id": 125939988, + "node_id": "RA_kwDOBPZW984HgbEU", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3562205, + "download_count": 14216, + "created_at": "2023-09-14T01:09:45Z", + "updated_at": "2023-09-14T01:09:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940010", + "id": 125940010, + "node_id": "RA_kwDOBPZW984HgbEq", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3369100, + "download_count": 9, + "created_at": "2023-09-14T01:09:50Z", + "updated_at": "2023-09-14T01:09:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940014", + "id": 125940014, + "node_id": "RA_kwDOBPZW984HgbEu", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3462531, + "download_count": 9, + "created_at": "2023-09-14T01:09:51Z", + "updated_at": "2023-09-14T01:09:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939987", + "id": 125939987, + "node_id": "RA_kwDOBPZW984HgbET", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3363693, + "download_count": 10, + "created_at": "2023-09-14T01:09:45Z", + "updated_at": "2023-09-14T01:09:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940005", + "id": 125940005, + "node_id": "RA_kwDOBPZW984HgbEl", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 3271044, + "download_count": 30, + "created_at": "2023-09-14T01:09:49Z", + "updated_at": "2023-09-14T01:09:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940011", + "id": 125940011, + "node_id": "RA_kwDOBPZW984HgbEr", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 3356555, + "download_count": 9, + "created_at": "2023-09-14T01:09:50Z", + "updated_at": "2023-09-14T01:09:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940004", + "id": 125940004, + "node_id": "RA_kwDOBPZW984HgbEk", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 3261756, + "download_count": 187, + "created_at": "2023-09-14T01:09:49Z", + "updated_at": "2023-09-14T01:09:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125940002", + "id": 125940002, + "node_id": "RA_kwDOBPZW984HgbEi", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3559745, + "download_count": 892, + "created_at": "2023-09-14T01:09:48Z", + "updated_at": "2023-09-14T01:09:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939998", + "id": 125939998, + "node_id": "RA_kwDOBPZW984HgbEe", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3704015, + "download_count": 1178, + "created_at": "2023-09-14T01:09:47Z", + "updated_at": "2023-09-14T01:09:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939997", + "id": 125939997, + "node_id": "RA_kwDOBPZW984HgbEd", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3484347, + "download_count": 10, + "created_at": "2023-09-14T01:09:47Z", + "updated_at": "2023-09-14T01:09:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/125939982", + "id": 125939982, + "node_id": "RA_kwDOBPZW984HgbEO", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 3348708, + "download_count": 785, + "created_at": "2023-09-14T01:09:44Z", + "updated_at": "2023-09-14T01:09:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.30.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.30.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.30.0", + "body": "- Prep work for Remote Taskfiles (#1316 by @pd93).\r\n- Added the [Remote Taskfiles experiment](https://taskfile.dev/experiments/remote-taskfiles) as a draft (#1152, #1317 by @pd93).\r\n- Improve performance of content checksuming on `sources:` by replacing md5 with [XXH3](https://xxhash.com/) which is much faster. This is a soft breaking change because checksums will be invalidated when upgrading to this release (#1325 by @ReillyBrogan).\r\n\r\nWe're looking for feedback on Remote Taskfile on #1317. Don't hesitate to add your opinion.\r\n\r\nIf you want to say \"thank you\" for the work done on this tool, consider sponsoring [@andreynering](https://github.com/sponsors/andreynering/) and [@pd93](https://github.com/sponsors/pd93/) via GitHub Sponsors.", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/121055920/reactions", + "total_count": 16, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 6, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 2 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/118820066", + "assets_url": "https://api.github.com/repos/go-task/task/releases/118820066/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/118820066/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.29.1", + "id": 118820066, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984HFQzi", + "tag_name": "v3.29.1", + "target_commitish": "main", + "name": "v3.29.1", + "draft": false, + "prerelease": false, + "created_at": "2023-08-26T21:45:48Z", + "published_at": "2023-08-26T22:08:07Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259965", + "id": 123259965, + "node_id": "RA_kwDOBPZW984HWMw9", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 53388, + "created_at": "2023-08-26T21:49:51Z", + "updated_at": "2023-08-26T21:49:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259954", + "id": 123259954, + "node_id": "RA_kwDOBPZW984HWMwy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2420241, + "download_count": 5243, + "created_at": "2023-08-26T21:49:48Z", + "updated_at": "2023-08-26T21:49:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259938", + "id": 123259938, + "node_id": "RA_kwDOBPZW984HWMwi", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2325420, + "download_count": 2234, + "created_at": "2023-08-26T21:49:46Z", + "updated_at": "2023-08-26T21:49:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259934", + "id": 123259934, + "node_id": "RA_kwDOBPZW984HWMwe", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2247855, + "download_count": 97, + "created_at": "2023-08-26T21:49:45Z", + "updated_at": "2023-08-26T21:49:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259946", + "id": 123259946, + "node_id": "RA_kwDOBPZW984HWMwq", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2324427, + "download_count": 99, + "created_at": "2023-08-26T21:49:47Z", + "updated_at": "2023-08-26T21:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259943", + "id": 123259943, + "node_id": "RA_kwDOBPZW984HWMwn", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2228586, + "download_count": 10, + "created_at": "2023-08-26T21:49:47Z", + "updated_at": "2023-08-26T21:49:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259948", + "id": 123259948, + "node_id": "RA_kwDOBPZW984HWMws", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2123947, + "download_count": 11, + "created_at": "2023-08-26T21:49:48Z", + "updated_at": "2023-08-26T21:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259955", + "id": 123259955, + "node_id": "RA_kwDOBPZW984HWMwz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2256690, + "download_count": 129, + "created_at": "2023-08-26T21:49:49Z", + "updated_at": "2023-08-26T21:49:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259960", + "id": 123259960, + "node_id": "RA_kwDOBPZW984HWMw4", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2314559, + "download_count": 103, + "created_at": "2023-08-26T21:49:50Z", + "updated_at": "2023-08-26T21:49:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259942", + "id": 123259942, + "node_id": "RA_kwDOBPZW984HWMwm", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2253401, + "download_count": 20457, + "created_at": "2023-08-26T21:49:46Z", + "updated_at": "2023-08-26T21:49:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259957", + "id": 123259957, + "node_id": "RA_kwDOBPZW984HWMw1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2331792, + "download_count": 12560, + "created_at": "2023-08-26T21:49:49Z", + "updated_at": "2023-08-26T21:49:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259961", + "id": 123259961, + "node_id": "RA_kwDOBPZW984HWMw5", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2396500, + "download_count": 925, + "created_at": "2023-08-26T21:49:50Z", + "updated_at": "2023-08-26T21:49:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259945", + "id": 123259945, + "node_id": "RA_kwDOBPZW984HWMwp", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2325733, + "download_count": 232394, + "created_at": "2023-08-26T21:49:47Z", + "updated_at": "2023-08-26T21:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259958", + "id": 123259958, + "node_id": "RA_kwDOBPZW984HWMw2", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2233722, + "download_count": 13, + "created_at": "2023-08-26T21:49:50Z", + "updated_at": "2023-08-26T21:49:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259962", + "id": 123259962, + "node_id": "RA_kwDOBPZW984HWMw6", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2282666, + "download_count": 13, + "created_at": "2023-08-26T21:49:51Z", + "updated_at": "2023-08-26T21:49:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259935", + "id": 123259935, + "node_id": "RA_kwDOBPZW984HWMwf", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2230514, + "download_count": 13, + "created_at": "2023-08-26T21:49:45Z", + "updated_at": "2023-08-26T21:49:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259959", + "id": 123259959, + "node_id": "RA_kwDOBPZW984HWMw3", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2133132, + "download_count": 231, + "created_at": "2023-08-26T21:49:50Z", + "updated_at": "2023-08-26T21:49:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259963", + "id": 123259963, + "node_id": "RA_kwDOBPZW984HWMw7", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2181233, + "download_count": 23, + "created_at": "2023-08-26T21:49:51Z", + "updated_at": "2023-08-26T21:49:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259944", + "id": 123259944, + "node_id": "RA_kwDOBPZW984HWMwo", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2127957, + "download_count": 3722, + "created_at": "2023-08-26T21:49:47Z", + "updated_at": "2023-08-26T21:49:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259950", + "id": 123259950, + "node_id": "RA_kwDOBPZW984HWMwu", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2410866, + "download_count": 899, + "created_at": "2023-08-26T21:49:48Z", + "updated_at": "2023-08-26T21:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259939", + "id": 123259939, + "node_id": "RA_kwDOBPZW984HWMwj", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2439590, + "download_count": 5469, + "created_at": "2023-08-26T21:49:46Z", + "updated_at": "2023-08-26T21:49:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259941", + "id": 123259941, + "node_id": "RA_kwDOBPZW984HWMwl", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2357035, + "download_count": 10, + "created_at": "2023-08-26T21:49:46Z", + "updated_at": "2023-08-26T21:49:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/123259953", + "id": 123259953, + "node_id": "RA_kwDOBPZW984HWMwx", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2229721, + "download_count": 805, + "created_at": "2023-08-26T21:49:48Z", + "updated_at": "2023-08-26T21:49:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.29.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.29.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.29.1", + "body": "- Update to Go 1.21 (bump minimum version to 1.20) (#1302 by @pd93)\r\n- Fix a missing a line break on log when using `--watch` mode (#1285, #1297 by @FilipSolich).\r\n- Fix `defer` on JSON Schema (#1288 by @calvinmclean and @andreynering).\r\n- Fix bug in usage of special variables like `{{.USER_WORKING_DIR}}` in combination with `includes` (#1046, #1205, #1250, #1293, #1312, #1274 by @andarto, #1309 by @andreynering).\r\n- Fix bug on `--status` flag. Running this flag should not have side-effects: it should not update the checksum on `.task`, only report its status (#1305, #1307 by @visciang, #1313 by @andreynering).\r\n\r\nNOTE: v3.29.0 was skipped because of an issue on the release process.", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/118820066/reactions", + "total_count": 17, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 1, + "rocket": 6, + "eyes": 0 + }, + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/113405837", + "assets_url": "https://api.github.com/repos/go-task/task/releases/113405837/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/113405837/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.28.0", + "id": 113405837, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Gwm-N", + "tag_name": "v3.28.0", + "target_commitish": "main", + "name": "v3.28.0", + "draft": false, + "prerelease": false, + "created_at": "2023-07-25T01:12:23Z", + "published_at": "2023-07-25T01:19:13Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452473", + "id": 118452473, + "node_id": "RA_kwDOBPZW984HD3D5", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 397750, + "created_at": "2023-07-25T01:17:03Z", + "updated_at": "2023-07-25T01:17:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452444", + "id": 118452444, + "node_id": "RA_kwDOBPZW984HD3Dc", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2419791, + "download_count": 5575, + "created_at": "2023-07-25T01:16:55Z", + "updated_at": "2023-07-25T01:16:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452445", + "id": 118452445, + "node_id": "RA_kwDOBPZW984HD3Dd", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2325378, + "download_count": 3296, + "created_at": "2023-07-25T01:16:55Z", + "updated_at": "2023-07-25T01:16:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452437", + "id": 118452437, + "node_id": "RA_kwDOBPZW984HD3DV", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2247540, + "download_count": 107, + "created_at": "2023-07-25T01:16:53Z", + "updated_at": "2023-07-25T01:16:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452447", + "id": 118452447, + "node_id": "RA_kwDOBPZW984HD3Df", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2324124, + "download_count": 118, + "created_at": "2023-07-25T01:16:56Z", + "updated_at": "2023-07-25T01:16:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452442", + "id": 118452442, + "node_id": "RA_kwDOBPZW984HD3Da", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2228286, + "download_count": 22, + "created_at": "2023-07-25T01:16:54Z", + "updated_at": "2023-07-25T01:16:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452452", + "id": 118452452, + "node_id": "RA_kwDOBPZW984HD3Dk", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2123897, + "download_count": 17, + "created_at": "2023-07-25T01:16:57Z", + "updated_at": "2023-07-25T01:16:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452453", + "id": 118452453, + "node_id": "RA_kwDOBPZW984HD3Dl", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2256180, + "download_count": 169, + "created_at": "2023-07-25T01:16:57Z", + "updated_at": "2023-07-25T01:17:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452463", + "id": 118452463, + "node_id": "RA_kwDOBPZW984HD3Dv", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2311817, + "download_count": 120, + "created_at": "2023-07-25T01:17:00Z", + "updated_at": "2023-07-25T01:17:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452446", + "id": 118452446, + "node_id": "RA_kwDOBPZW984HD3De", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2252904, + "download_count": 147, + "created_at": "2023-07-25T01:16:55Z", + "updated_at": "2023-07-25T01:16:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452455", + "id": 118452455, + "node_id": "RA_kwDOBPZW984HD3Dn", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2331436, + "download_count": 2847, + "created_at": "2023-07-25T01:16:58Z", + "updated_at": "2023-07-25T01:16:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452461", + "id": 118452461, + "node_id": "RA_kwDOBPZW984HD3Dt", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2395203, + "download_count": 404, + "created_at": "2023-07-25T01:17:00Z", + "updated_at": "2023-07-25T01:17:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452448", + "id": 118452448, + "node_id": "RA_kwDOBPZW984HD3Dg", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2325421, + "download_count": 749628, + "created_at": "2023-07-25T01:16:56Z", + "updated_at": "2023-07-25T01:16:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452457", + "id": 118452457, + "node_id": "RA_kwDOBPZW984HD3Dp", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2233354, + "download_count": 15, + "created_at": "2023-07-25T01:16:59Z", + "updated_at": "2023-07-25T01:16:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452467", + "id": 118452467, + "node_id": "RA_kwDOBPZW984HD3Dz", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2282126, + "download_count": 12, + "created_at": "2023-07-25T01:17:01Z", + "updated_at": "2023-07-25T01:17:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452449", + "id": 118452449, + "node_id": "RA_kwDOBPZW984HD3Dh", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2230109, + "download_count": 19, + "created_at": "2023-07-25T01:16:56Z", + "updated_at": "2023-07-25T01:16:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452460", + "id": 118452460, + "node_id": "RA_kwDOBPZW984HD3Ds", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2132530, + "download_count": 431, + "created_at": "2023-07-25T01:16:59Z", + "updated_at": "2023-07-25T01:16:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452471", + "id": 118452471, + "node_id": "RA_kwDOBPZW984HD3D3", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2181247, + "download_count": 18, + "created_at": "2023-07-25T01:17:02Z", + "updated_at": "2023-07-25T01:17:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452450", + "id": 118452450, + "node_id": "RA_kwDOBPZW984HD3Di", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2127486, + "download_count": 7861, + "created_at": "2023-07-25T01:16:57Z", + "updated_at": "2023-07-25T01:16:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452438", + "id": 118452438, + "node_id": "RA_kwDOBPZW984HD3DW", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2410483, + "download_count": 1519, + "created_at": "2023-07-25T01:16:53Z", + "updated_at": "2023-07-25T01:16:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452440", + "id": 118452440, + "node_id": "RA_kwDOBPZW984HD3DY", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2439422, + "download_count": 4403, + "created_at": "2023-07-25T01:16:54Z", + "updated_at": "2023-07-25T01:16:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452439", + "id": 118452439, + "node_id": "RA_kwDOBPZW984HD3DX", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2356727, + "download_count": 788, + "created_at": "2023-07-25T01:16:54Z", + "updated_at": "2023-07-25T01:16:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/118452443", + "id": 118452443, + "node_id": "RA_kwDOBPZW984HD3Db", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2229486, + "download_count": 800, + "created_at": "2023-07-25T01:16:54Z", + "updated_at": "2023-07-25T01:16:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.28.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.28.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.28.0", + "body": "- Added the ability to [loop over commands and tasks](https://taskfile.dev/usage/#looping-over-values) using `for` (#82, #1220 by @pd93).\r\n- Fixed variable propagation in multi-level includes (#778, #996, #1256 by @hudclark).\r\n- Fixed a bug where the `--exit-code` code flag was not returning the correct exit code when calling commands indirectly (#1266, #1270 by @pd93).\r\n- Fixed a `nil` panic when a dependency was commented out or left empty (#1263 by @neomantra).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/113405837/reactions", + "total_count": 28, + "+1": 10, + "-1": 0, + "laugh": 0, + "hooray": 13, + "confused": 0, + "heart": 5, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/110495018", + "assets_url": "https://api.github.com/repos/go-task/task/releases/110495018/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/110495018/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.27.1", + "id": 110495018, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984GlgUq", + "tag_name": "v3.27.1", + "target_commitish": "main", + "name": "v3.27.1", + "draft": false, + "prerelease": false, + "created_at": "2023-06-30T12:36:44Z", + "published_at": "2023-06-30T12:40:53Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012572", + "id": 115012572, + "node_id": "RA_kwDOBPZW984G2vPc", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 63355, + "created_at": "2023-06-30T12:40:20Z", + "updated_at": "2023-06-30T12:40:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012544", + "id": 115012544, + "node_id": "RA_kwDOBPZW984G2vPA", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2413860, + "download_count": 3248, + "created_at": "2023-06-30T12:40:15Z", + "updated_at": "2023-06-30T12:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012550", + "id": 115012550, + "node_id": "RA_kwDOBPZW984G2vPG", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2321956, + "download_count": 2189, + "created_at": "2023-06-30T12:40:16Z", + "updated_at": "2023-06-30T12:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012553", + "id": 115012553, + "node_id": "RA_kwDOBPZW984G2vPJ", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2241781, + "download_count": 111, + "created_at": "2023-06-30T12:40:17Z", + "updated_at": "2023-06-30T12:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012555", + "id": 115012555, + "node_id": "RA_kwDOBPZW984G2vPL", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2320290, + "download_count": 113, + "created_at": "2023-06-30T12:40:17Z", + "updated_at": "2023-06-30T12:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012546", + "id": 115012546, + "node_id": "RA_kwDOBPZW984G2vPC", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2223952, + "download_count": 16, + "created_at": "2023-06-30T12:40:15Z", + "updated_at": "2023-06-30T12:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012542", + "id": 115012542, + "node_id": "RA_kwDOBPZW984G2vO-", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2119630, + "download_count": 15, + "created_at": "2023-06-30T12:40:14Z", + "updated_at": "2023-06-30T12:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012557", + "id": 115012557, + "node_id": "RA_kwDOBPZW984G2vPN", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2252624, + "download_count": 150, + "created_at": "2023-06-30T12:40:18Z", + "updated_at": "2023-06-30T12:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012566", + "id": 115012566, + "node_id": "RA_kwDOBPZW984G2vPW", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2312576, + "download_count": 119, + "created_at": "2023-06-30T12:40:19Z", + "updated_at": "2023-06-30T12:40:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012541", + "id": 115012541, + "node_id": "RA_kwDOBPZW984G2vO9", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2248816, + "download_count": 367, + "created_at": "2023-06-30T12:40:14Z", + "updated_at": "2023-06-30T12:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012559", + "id": 115012559, + "node_id": "RA_kwDOBPZW984G2vPP", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2326684, + "download_count": 442, + "created_at": "2023-06-30T12:40:18Z", + "updated_at": "2023-06-30T12:40:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012567", + "id": 115012567, + "node_id": "RA_kwDOBPZW984G2vPX", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2392866, + "download_count": 24748, + "created_at": "2023-06-30T12:40:19Z", + "updated_at": "2023-06-30T12:40:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012552", + "id": 115012552, + "node_id": "RA_kwDOBPZW984G2vPI", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2321615, + "download_count": 153448, + "created_at": "2023-06-30T12:40:17Z", + "updated_at": "2023-06-30T12:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012562", + "id": 115012562, + "node_id": "RA_kwDOBPZW984G2vPS", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2229174, + "download_count": 16, + "created_at": "2023-06-30T12:40:18Z", + "updated_at": "2023-06-30T12:40:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012569", + "id": 115012569, + "node_id": "RA_kwDOBPZW984G2vPZ", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2286961, + "download_count": 14, + "created_at": "2023-06-30T12:40:20Z", + "updated_at": "2023-06-30T12:40:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012554", + "id": 115012554, + "node_id": "RA_kwDOBPZW984G2vPK", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2226274, + "download_count": 104, + "created_at": "2023-06-30T12:40:17Z", + "updated_at": "2023-06-30T12:40:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012564", + "id": 115012564, + "node_id": "RA_kwDOBPZW984G2vPU", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2127784, + "download_count": 49, + "created_at": "2023-06-30T12:40:19Z", + "updated_at": "2023-06-30T12:40:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012571", + "id": 115012571, + "node_id": "RA_kwDOBPZW984G2vPb", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2176757, + "download_count": 264, + "created_at": "2023-06-30T12:40:20Z", + "updated_at": "2023-06-30T12:40:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012545", + "id": 115012545, + "node_id": "RA_kwDOBPZW984G2vPB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2122868, + "download_count": 5644, + "created_at": "2023-06-30T12:40:15Z", + "updated_at": "2023-06-30T12:40:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012547", + "id": 115012547, + "node_id": "RA_kwDOBPZW984G2vPD", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2406135, + "download_count": 135, + "created_at": "2023-06-30T12:40:15Z", + "updated_at": "2023-06-30T12:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012539", + "id": 115012539, + "node_id": "RA_kwDOBPZW984G2vO7", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2434057, + "download_count": 2542, + "created_at": "2023-06-30T12:40:13Z", + "updated_at": "2023-06-30T12:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012549", + "id": 115012549, + "node_id": "RA_kwDOBPZW984G2vPF", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2352864, + "download_count": 18, + "created_at": "2023-06-30T12:40:16Z", + "updated_at": "2023-06-30T12:40:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/115012538", + "id": 115012538, + "node_id": "RA_kwDOBPZW984G2vO6", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2225508, + "download_count": 26, + "created_at": "2023-06-30T12:40:13Z", + "updated_at": "2023-06-30T12:40:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.27.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.27.1", + "body": "- Fix panic when a `.env` directory (not file) is present on current directory (#1244, #1245 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/110495018/reactions", + "total_count": 8, + "+1": 5, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 1 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/110437184", + "assets_url": "https://api.github.com/repos/go-task/task/releases/110437184/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/110437184/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.27.0", + "id": 110437184, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984GlSNA", + "tag_name": "v3.27.0", + "target_commitish": "main", + "name": "v3.27.0", + "draft": false, + "prerelease": false, + "created_at": "2023-06-30T01:44:13Z", + "published_at": "2023-06-30T01:49:09Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942199", + "id": 114942199, + "node_id": "RA_kwDOBPZW984G2eD3", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 1599, + "created_at": "2023-06-30T01:47:57Z", + "updated_at": "2023-06-30T01:47:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942166", + "id": 114942166, + "node_id": "RA_kwDOBPZW984G2eDW", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2414029, + "download_count": 224, + "created_at": "2023-06-30T01:47:52Z", + "updated_at": "2023-06-30T01:47:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942159", + "id": 114942159, + "node_id": "RA_kwDOBPZW984G2eDP", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2322044, + "download_count": 171, + "created_at": "2023-06-30T01:47:50Z", + "updated_at": "2023-06-30T01:47:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942177", + "id": 114942177, + "node_id": "RA_kwDOBPZW984G2eDh", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2241996, + "download_count": 111, + "created_at": "2023-06-30T01:47:54Z", + "updated_at": "2023-06-30T01:47:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942162", + "id": 114942162, + "node_id": "RA_kwDOBPZW984G2eDS", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2320342, + "download_count": 128, + "created_at": "2023-06-30T01:47:51Z", + "updated_at": "2023-06-30T01:47:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942169", + "id": 114942169, + "node_id": "RA_kwDOBPZW984G2eDZ", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2224098, + "download_count": 15, + "created_at": "2023-06-30T01:47:52Z", + "updated_at": "2023-06-30T01:47:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942172", + "id": 114942172, + "node_id": "RA_kwDOBPZW984G2eDc", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2119729, + "download_count": 17, + "created_at": "2023-06-30T01:47:53Z", + "updated_at": "2023-06-30T01:47:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942185", + "id": 114942185, + "node_id": "RA_kwDOBPZW984G2eDp", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2252728, + "download_count": 110, + "created_at": "2023-06-30T01:47:55Z", + "updated_at": "2023-06-30T01:47:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942190", + "id": 114942190, + "node_id": "RA_kwDOBPZW984G2eDu", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2311128, + "download_count": 110, + "created_at": "2023-06-30T01:47:56Z", + "updated_at": "2023-06-30T01:47:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942165", + "id": 114942165, + "node_id": "RA_kwDOBPZW984G2eDV", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2248959, + "download_count": 111, + "created_at": "2023-06-30T01:47:52Z", + "updated_at": "2023-06-30T01:47:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942186", + "id": 114942186, + "node_id": "RA_kwDOBPZW984G2eDq", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2326716, + "download_count": 123, + "created_at": "2023-06-30T01:47:55Z", + "updated_at": "2023-06-30T01:47:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942192", + "id": 114942192, + "node_id": "RA_kwDOBPZW984G2eDw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2392895, + "download_count": 115, + "created_at": "2023-06-30T01:47:56Z", + "updated_at": "2023-06-30T01:47:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942184", + "id": 114942184, + "node_id": "RA_kwDOBPZW984G2eDo", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2321606, + "download_count": 4364, + "created_at": "2023-06-30T01:47:55Z", + "updated_at": "2023-06-30T01:47:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942188", + "id": 114942188, + "node_id": "RA_kwDOBPZW984G2eDs", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2229130, + "download_count": 14, + "created_at": "2023-06-30T01:47:55Z", + "updated_at": "2023-06-30T01:47:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942193", + "id": 114942193, + "node_id": "RA_kwDOBPZW984G2eDx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2287465, + "download_count": 14, + "created_at": "2023-06-30T01:47:57Z", + "updated_at": "2023-06-30T01:47:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942170", + "id": 114942170, + "node_id": "RA_kwDOBPZW984G2eDa", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2226205, + "download_count": 16, + "created_at": "2023-06-30T01:47:52Z", + "updated_at": "2023-06-30T01:47:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942189", + "id": 114942189, + "node_id": "RA_kwDOBPZW984G2eDt", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2127842, + "download_count": 16, + "created_at": "2023-06-30T01:47:56Z", + "updated_at": "2023-06-30T01:47:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942195", + "id": 114942195, + "node_id": "RA_kwDOBPZW984G2eDz", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2176831, + "download_count": 14, + "created_at": "2023-06-30T01:47:57Z", + "updated_at": "2023-06-30T01:47:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942158", + "id": 114942158, + "node_id": "RA_kwDOBPZW984G2eDO", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2122964, + "download_count": 83, + "created_at": "2023-06-30T01:47:50Z", + "updated_at": "2023-06-30T01:47:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942180", + "id": 114942180, + "node_id": "RA_kwDOBPZW984G2eDk", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2406186, + "download_count": 115, + "created_at": "2023-06-30T01:47:54Z", + "updated_at": "2023-06-30T01:47:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942174", + "id": 114942174, + "node_id": "RA_kwDOBPZW984G2eDe", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2434319, + "download_count": 220, + "created_at": "2023-06-30T01:47:53Z", + "updated_at": "2023-06-30T01:47:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942175", + "id": 114942175, + "node_id": "RA_kwDOBPZW984G2eDf", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2352889, + "download_count": 15, + "created_at": "2023-06-30T01:47:54Z", + "updated_at": "2023-06-30T01:47:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/114942161", + "id": 114942161, + "node_id": "RA_kwDOBPZW984G2eDR", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2225580, + "download_count": 17, + "created_at": "2023-06-30T01:47:51Z", + "updated_at": "2023-06-30T01:47:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.27.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.27.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.27.0", + "body": "- Allow Taskfiles starting with lowercase characters (#947, #1221 by @pd93).\r\n - e.g. `taskfile.yml`, `taskfile.yaml`, `taskfile.dist.yml` & `taskfile.dist.yaml`\r\n- Bug fixes were made to the [npm installation method](https://taskfile.dev/installation/#npm). (#1190, by @sounisi5011).\r\n- Added the [gentle force experiment](https://taskfile.dev/experiments) as a draft (#1200, #1216 by @pd93).\r\n- Added an `--experiments` flag to allow you to see which experiments are enabled (#1242 by @pd93).\r\n- Added ability to specify which variables are required in a task (#1203, #1204 by @benc-uk).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/110437184/reactions", + "total_count": 5, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 4, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/108123746", + "assets_url": "https://api.github.com/repos/go-task/task/releases/108123746/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/108123746/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.26.0", + "id": 108123746, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984GcdZi", + "tag_name": "v3.26.0", + "target_commitish": "main", + "name": "v3.26.0", + "draft": false, + "prerelease": false, + "created_at": "2023-06-11T01:27:06Z", + "published_at": "2023-06-11T01:32:24Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207915", + "id": 112207915, + "node_id": "RA_kwDOBPZW984GsCgr", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 82523, + "created_at": "2023-06-11T01:31:08Z", + "updated_at": "2023-06-11T01:31:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207897", + "id": 112207897, + "node_id": "RA_kwDOBPZW984GsCgZ", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2407499, + "download_count": 3509, + "created_at": "2023-06-11T01:31:04Z", + "updated_at": "2023-06-11T01:31:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207889", + "id": 112207889, + "node_id": "RA_kwDOBPZW984GsCgR", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2315203, + "download_count": 1820, + "created_at": "2023-06-11T01:31:01Z", + "updated_at": "2023-06-11T01:31:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207894", + "id": 112207894, + "node_id": "RA_kwDOBPZW984GsCgW", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2236242, + "download_count": 116, + "created_at": "2023-06-11T01:31:03Z", + "updated_at": "2023-06-11T01:31:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207902", + "id": 112207902, + "node_id": "RA_kwDOBPZW984GsCge", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2314966, + "download_count": 125, + "created_at": "2023-06-11T01:31:05Z", + "updated_at": "2023-06-11T01:31:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207890", + "id": 112207890, + "node_id": "RA_kwDOBPZW984GsCgS", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2216268, + "download_count": 17, + "created_at": "2023-06-11T01:31:02Z", + "updated_at": "2023-06-11T01:31:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207892", + "id": 112207892, + "node_id": "RA_kwDOBPZW984GsCgU", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2112761, + "download_count": 17, + "created_at": "2023-06-11T01:31:02Z", + "updated_at": "2023-06-11T01:31:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207904", + "id": 112207904, + "node_id": "RA_kwDOBPZW984GsCgg", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2323214, + "download_count": 165, + "created_at": "2023-06-11T01:31:05Z", + "updated_at": "2023-06-11T01:31:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207910", + "id": 112207910, + "node_id": "RA_kwDOBPZW984GsCgm", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2324685, + "download_count": 338, + "created_at": "2023-06-11T01:31:07Z", + "updated_at": "2023-06-11T01:31:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207900", + "id": 112207900, + "node_id": "RA_kwDOBPZW984GsCgc", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2240866, + "download_count": 140, + "created_at": "2023-06-11T01:31:04Z", + "updated_at": "2023-06-11T01:31:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207905", + "id": 112207905, + "node_id": "RA_kwDOBPZW984GsCgh", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2383838, + "download_count": 484, + "created_at": "2023-06-11T01:31:06Z", + "updated_at": "2023-06-11T01:31:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207912", + "id": 112207912, + "node_id": "RA_kwDOBPZW984GsCgo", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2385026, + "download_count": 151, + "created_at": "2023-06-11T01:31:07Z", + "updated_at": "2023-06-11T01:31:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207895", + "id": 112207895, + "node_id": "RA_kwDOBPZW984GsCgX", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2316190, + "download_count": 170455, + "created_at": "2023-06-11T01:31:03Z", + "updated_at": "2023-06-11T01:31:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207906", + "id": 112207906, + "node_id": "RA_kwDOBPZW984GsCgi", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2275580, + "download_count": 14, + "created_at": "2023-06-11T01:31:06Z", + "updated_at": "2023-06-11T01:31:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207914", + "id": 112207914, + "node_id": "RA_kwDOBPZW984GsCgq", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2276642, + "download_count": 15, + "created_at": "2023-06-11T01:31:08Z", + "updated_at": "2023-06-11T01:31:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207901", + "id": 112207901, + "node_id": "RA_kwDOBPZW984GsCgd", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2218258, + "download_count": 37, + "created_at": "2023-06-11T01:31:05Z", + "updated_at": "2023-06-11T01:31:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207911", + "id": 112207911, + "node_id": "RA_kwDOBPZW984GsCgn", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2170276, + "download_count": 84, + "created_at": "2023-06-11T01:31:07Z", + "updated_at": "2023-06-11T01:31:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207909", + "id": 112207909, + "node_id": "RA_kwDOBPZW984GsCgl", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2170667, + "download_count": 16, + "created_at": "2023-06-11T01:31:06Z", + "updated_at": "2023-06-11T01:31:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207887", + "id": 112207887, + "node_id": "RA_kwDOBPZW984GsCgP", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2116620, + "download_count": 3711, + "created_at": "2023-06-11T01:31:01Z", + "updated_at": "2023-06-11T01:31:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207896", + "id": 112207896, + "node_id": "RA_kwDOBPZW984GsCgY", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2400596, + "download_count": 138, + "created_at": "2023-06-11T01:31:03Z", + "updated_at": "2023-06-11T01:31:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207876", + "id": 112207876, + "node_id": "RA_kwDOBPZW984GsCgE", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2429345, + "download_count": 2702, + "created_at": "2023-06-11T01:31:00Z", + "updated_at": "2023-06-11T01:31:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207899", + "id": 112207899, + "node_id": "RA_kwDOBPZW984GsCgb", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2348063, + "download_count": 16, + "created_at": "2023-06-11T01:31:04Z", + "updated_at": "2023-06-11T01:31:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/112207875", + "id": 112207875, + "node_id": "RA_kwDOBPZW984GsCgD", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2219622, + "download_count": 31, + "created_at": "2023-06-11T01:31:00Z", + "updated_at": "2023-06-11T01:31:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.26.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.26.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.26.0", + "body": "- Only rewrite checksum files in `.task` if the checksum has changed (#1185, #1194 by @deviantintegral).\r\n- Added [experiments documentation](https://taskfile.dev/experiments) to the website (#1198 by @pd93).\r\n- Deprecated `version: 2` schema. This will be removed in the next major release (#1197, #1198, #1199 by @pd93).\r\n- Added a new `prompt:` prop to set a warning prompt to be shown before running a potential dangurous task (#100, #1163 by @MaxCheetham, [Documentation](https://taskfile.dev/usage/#warning-prompts)).\r\n- Added support for single command task syntax. With this change, it's now possible to declare just `cmd:` in a task, avoiding the more complex `cmds: []` when you have only a single command for that task (#1130, #1131 by @timdp).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/108123746/reactions", + "total_count": 9, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 8, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 4 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/103886463", + "assets_url": "https://api.github.com/repos/go-task/task/releases/103886463/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/103886463/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.25.0", + "id": 103886463, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984GMS5_", + "tag_name": "v3.25.0", + "target_commitish": "main", + "name": "v3.25.0", + "draft": false, + "prerelease": false, + "created_at": "2023-05-23T01:45:06Z", + "published_at": "2023-05-23T01:52:18Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351316", + "id": 109351316, + "node_id": "RA_kwDOBPZW984GhJGU", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1942, + "download_count": 49042, + "created_at": "2023-05-23T01:48:40Z", + "updated_at": "2023-05-23T01:48:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351286", + "id": 109351286, + "node_id": "RA_kwDOBPZW984GhJF2", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2402592, + "download_count": 3651, + "created_at": "2023-05-23T01:48:35Z", + "updated_at": "2023-05-23T01:48:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351285", + "id": 109351285, + "node_id": "RA_kwDOBPZW984GhJF1", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2307047, + "download_count": 1639, + "created_at": "2023-05-23T01:48:35Z", + "updated_at": "2023-05-23T01:48:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351298", + "id": 109351298, + "node_id": "RA_kwDOBPZW984GhJGC", + "name": "task_freebsd_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2233791, + "download_count": 108, + "created_at": "2023-05-23T01:48:37Z", + "updated_at": "2023-05-23T01:48:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_freebsd_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351288", + "id": 109351288, + "node_id": "RA_kwDOBPZW984GhJF4", + "name": "task_freebsd_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2311070, + "download_count": 112, + "created_at": "2023-05-23T01:48:35Z", + "updated_at": "2023-05-23T01:48:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_freebsd_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351290", + "id": 109351290, + "node_id": "RA_kwDOBPZW984GhJF6", + "name": "task_freebsd_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2212912, + "download_count": 6, + "created_at": "2023-05-23T01:48:36Z", + "updated_at": "2023-05-23T01:48:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_freebsd_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351300", + "id": 109351300, + "node_id": "RA_kwDOBPZW984GhJGE", + "name": "task_freebsd_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2110353, + "download_count": 6, + "created_at": "2023-05-23T01:48:37Z", + "updated_at": "2023-05-23T01:48:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_freebsd_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351310", + "id": 109351310, + "node_id": "RA_kwDOBPZW984GhJGO", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2305748, + "download_count": 137, + "created_at": "2023-05-23T01:48:39Z", + "updated_at": "2023-05-23T01:48:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351314", + "id": 109351314, + "node_id": "RA_kwDOBPZW984GhJGS", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2307552, + "download_count": 111, + "created_at": "2023-05-23T01:48:39Z", + "updated_at": "2023-05-23T01:48:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351305", + "id": 109351305, + "node_id": "RA_kwDOBPZW984GhJGJ", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2237913, + "download_count": 144, + "created_at": "2023-05-23T01:48:38Z", + "updated_at": "2023-05-23T01:48:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351308", + "id": 109351308, + "node_id": "RA_kwDOBPZW984GhJGM", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2381980, + "download_count": 1343, + "created_at": "2023-05-23T01:48:38Z", + "updated_at": "2023-05-23T01:48:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351315", + "id": 109351315, + "node_id": "RA_kwDOBPZW984GhJGT", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2383373, + "download_count": 121, + "created_at": "2023-05-23T01:48:40Z", + "updated_at": "2023-05-23T01:48:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351299", + "id": 109351299, + "node_id": "RA_kwDOBPZW984GhJGD", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2312547, + "download_count": 134154, + "created_at": "2023-05-23T01:48:37Z", + "updated_at": "2023-05-23T01:48:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351307", + "id": 109351307, + "node_id": "RA_kwDOBPZW984GhJGL", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2277960, + "download_count": 5, + "created_at": "2023-05-23T01:48:38Z", + "updated_at": "2023-05-23T01:48:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351311", + "id": 109351311, + "node_id": "RA_kwDOBPZW984GhJGP", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2278974, + "download_count": 7, + "created_at": "2023-05-23T01:48:39Z", + "updated_at": "2023-05-23T01:48:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351294", + "id": 109351294, + "node_id": "RA_kwDOBPZW984GhJF-", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2215248, + "download_count": 19, + "created_at": "2023-05-23T01:48:36Z", + "updated_at": "2023-05-23T01:48:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351309", + "id": 109351309, + "node_id": "RA_kwDOBPZW984GhJGN", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2168982, + "download_count": 82, + "created_at": "2023-05-23T01:48:39Z", + "updated_at": "2023-05-23T01:48:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351313", + "id": 109351313, + "node_id": "RA_kwDOBPZW984GhJGR", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2169574, + "download_count": 6, + "created_at": "2023-05-23T01:48:39Z", + "updated_at": "2023-05-23T01:48:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351287", + "id": 109351287, + "node_id": "RA_kwDOBPZW984GhJF3", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2112956, + "download_count": 3240, + "created_at": "2023-05-23T01:48:35Z", + "updated_at": "2023-05-23T01:48:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351291", + "id": 109351291, + "node_id": "RA_kwDOBPZW984GhJF7", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2395754, + "download_count": 913, + "created_at": "2023-05-23T01:48:36Z", + "updated_at": "2023-05-23T01:48:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351296", + "id": 109351296, + "node_id": "RA_kwDOBPZW984GhJGA", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2424262, + "download_count": 4505, + "created_at": "2023-05-23T01:48:37Z", + "updated_at": "2023-05-23T01:48:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351301", + "id": 109351301, + "node_id": "RA_kwDOBPZW984GhJGF", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2344165, + "download_count": 792, + "created_at": "2023-05-23T01:48:37Z", + "updated_at": "2023-05-23T01:48:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/109351303", + "id": 109351303, + "node_id": "RA_kwDOBPZW984GhJGH", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2213344, + "download_count": 809, + "created_at": "2023-05-23T01:48:38Z", + "updated_at": "2023-05-23T01:48:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.25.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.25.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.25.0", + "body": "- Support `silent:` when calling another tasks (#680, #1142 by @danquah).\r\n- Improve PowerShell completion script (#1168 by @trim21).\r\n- Add more languages to the website menu and show translation progress percentage (#1173 by @misitebao).\r\n- Starting on this release, official binaries for FreeBSD will be available to download (#1068 by @andreynering).\r\n- Fix some errors being unintendedly supressed (#1134 by @clintmod).\r\n- Fix a nil pointer error when `version` is omitted from a Taskfile (#1148, #1149 by @pd93).\r\n- Fix duplicate error message when a task does not exists (#1141, #1144 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/103886463/reactions", + "total_count": 13, + "+1": 10, + "-1": 0, + "laugh": 0, + "hooray": 3, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 6 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/99637725", + "assets_url": "https://api.github.com/repos/go-task/task/releases/99637725/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/99637725/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.24.0", + "id": 99637725, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984F8Fnd", + "tag_name": "v3.24.0", + "target_commitish": "main", + "name": "v3.24.0", + "draft": false, + "prerelease": false, + "created_at": "2023-04-15T21:01:35Z", + "published_at": "2023-04-15T21:06:42Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859498", + "id": 103859498, + "node_id": "RA_kwDOBPZW984GMMUq", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 137539, + "created_at": "2023-04-15T21:04:33Z", + "updated_at": "2023-04-15T21:04:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859479", + "id": 103859479, + "node_id": "RA_kwDOBPZW984GMMUX", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2402556, + "download_count": 6307, + "created_at": "2023-04-15T21:04:29Z", + "updated_at": "2023-04-15T21:04:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859478", + "id": 103859478, + "node_id": "RA_kwDOBPZW984GMMUW", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2307516, + "download_count": 2170, + "created_at": "2023-04-15T21:04:28Z", + "updated_at": "2023-04-15T21:04:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859490", + "id": 103859490, + "node_id": "RA_kwDOBPZW984GMMUi", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2298796, + "download_count": 131, + "created_at": "2023-04-15T21:04:30Z", + "updated_at": "2023-04-15T21:04:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859494", + "id": 103859494, + "node_id": "RA_kwDOBPZW984GMMUm", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2300443, + "download_count": 129, + "created_at": "2023-04-15T21:04:32Z", + "updated_at": "2023-04-15T21:04:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859487", + "id": 103859487, + "node_id": "RA_kwDOBPZW984GMMUf", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2237556, + "download_count": 138, + "created_at": "2023-04-15T21:04:30Z", + "updated_at": "2023-04-15T21:04:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859491", + "id": 103859491, + "node_id": "RA_kwDOBPZW984GMMUj", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2382394, + "download_count": 2590, + "created_at": "2023-04-15T21:04:31Z", + "updated_at": "2023-04-15T21:04:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859495", + "id": 103859495, + "node_id": "RA_kwDOBPZW984GMMUn", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2381271, + "download_count": 303, + "created_at": "2023-04-15T21:04:32Z", + "updated_at": "2023-04-15T21:04:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859489", + "id": 103859489, + "node_id": "RA_kwDOBPZW984GMMUh", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2312466, + "download_count": 295085, + "created_at": "2023-04-15T21:04:30Z", + "updated_at": "2023-04-15T21:04:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859493", + "id": 103859493, + "node_id": "RA_kwDOBPZW984GMMUl", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2269220, + "download_count": 27, + "created_at": "2023-04-15T21:04:31Z", + "updated_at": "2023-04-15T21:04:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859496", + "id": 103859496, + "node_id": "RA_kwDOBPZW984GMMUo", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2269170, + "download_count": 15, + "created_at": "2023-04-15T21:04:32Z", + "updated_at": "2023-04-15T21:04:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859480", + "id": 103859480, + "node_id": "RA_kwDOBPZW984GMMUY", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2214351, + "download_count": 23, + "created_at": "2023-04-15T21:04:29Z", + "updated_at": "2023-04-15T21:04:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859492", + "id": 103859492, + "node_id": "RA_kwDOBPZW984GMMUk", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2166658, + "download_count": 100, + "created_at": "2023-04-15T21:04:31Z", + "updated_at": "2023-04-15T21:04:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859497", + "id": 103859497, + "node_id": "RA_kwDOBPZW984GMMUp", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2166883, + "download_count": 17, + "created_at": "2023-04-15T21:04:32Z", + "updated_at": "2023-04-15T21:04:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859482", + "id": 103859482, + "node_id": "RA_kwDOBPZW984GMMUa", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2111897, + "download_count": 5394, + "created_at": "2023-04-15T21:04:29Z", + "updated_at": "2023-04-15T21:04:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859477", + "id": 103859477, + "node_id": "RA_kwDOBPZW984GMMUV", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2395929, + "download_count": 949, + "created_at": "2023-04-15T21:04:28Z", + "updated_at": "2023-04-15T21:04:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859485", + "id": 103859485, + "node_id": "RA_kwDOBPZW984GMMUd", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2424128, + "download_count": 5603, + "created_at": "2023-04-15T21:04:29Z", + "updated_at": "2023-04-15T21:04:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859476", + "id": 103859476, + "node_id": "RA_kwDOBPZW984GMMUU", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2344088, + "download_count": 819, + "created_at": "2023-04-15T21:04:28Z", + "updated_at": "2023-04-15T21:04:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/103859486", + "id": 103859486, + "node_id": "RA_kwDOBPZW984GMMUe", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2213647, + "download_count": 835, + "created_at": "2023-04-15T21:04:30Z", + "updated_at": "2023-04-15T21:04:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.24.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.24.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.24.0", + "body": "- Fix Fish shell completion for tasks with aliases (#1113 by @patricksjackson).\r\n- The default branch was renamed from `master` to `main` (#1049, #1048 by @pd93).\r\n- Fix bug where \"up-to-date\" logs were not being omitted for silent tasks (#546, #1107 by @danquah).\r\n- Add `.hg` (Mercurial) to the list of ignored directories when using `--watch` (#1098 by @misery).\r\n- More improvements to the release tool (#1096 by @pd93).\r\n- Enforce [gofumpt](https://github.com/mvdan/gofumpt) linter (#1099 by @pd93)\r\n- Add `--sort` flag for use with `--list` and `--list-all` (#946, #1105 by @pd93).\r\n- Task now has [custom exit codes](https://taskfile.dev/api/#exit-codes) depending on the error (#1114 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/99637725/reactions", + "total_count": 12, + "+1": 5, + "-1": 0, + "laugh": 0, + "hooray": 7, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 4 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/96960090", + "assets_url": "https://api.github.com/repos/go-task/task/releases/96960090/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/96960090/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.23.0", + "id": 96960090, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Fx35a", + "tag_name": "v3.23.0", + "target_commitish": "master", + "name": "v3.23.0", + "draft": false, + "prerelease": false, + "created_at": "2023-03-27T00:42:54Z", + "published_at": "2023-03-27T00:47:54Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077584", + "id": 101077584, + "node_id": "RA_kwDOBPZW984GBlJQ", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 48189, + "created_at": "2023-03-27T00:45:52Z", + "updated_at": "2023-03-27T00:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077569", + "id": 101077569, + "node_id": "RA_kwDOBPZW984GBlJB", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2382308, + "download_count": 4704, + "created_at": "2023-03-27T00:45:49Z", + "updated_at": "2023-03-27T00:45:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077565", + "id": 101077565, + "node_id": "RA_kwDOBPZW984GBlI9", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2271340, + "download_count": 2659, + "created_at": "2023-03-27T00:45:48Z", + "updated_at": "2023-03-27T00:45:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077570", + "id": 101077570, + "node_id": "RA_kwDOBPZW984GBlJC", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2278474, + "download_count": 127, + "created_at": "2023-03-27T00:45:50Z", + "updated_at": "2023-03-27T00:45:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077574", + "id": 101077574, + "node_id": "RA_kwDOBPZW984GBlJG", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2279520, + "download_count": 127, + "created_at": "2023-03-27T00:45:51Z", + "updated_at": "2023-03-27T00:45:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077564", + "id": 101077564, + "node_id": "RA_kwDOBPZW984GBlI8", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2220081, + "download_count": 131, + "created_at": "2023-03-27T00:45:48Z", + "updated_at": "2023-03-27T00:45:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077571", + "id": 101077571, + "node_id": "RA_kwDOBPZW984GBlJD", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2359418, + "download_count": 790, + "created_at": "2023-03-27T00:45:50Z", + "updated_at": "2023-03-27T00:45:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077576", + "id": 101077576, + "node_id": "RA_kwDOBPZW984GBlJI", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2361616, + "download_count": 181, + "created_at": "2023-03-27T00:45:51Z", + "updated_at": "2023-03-27T00:45:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077567", + "id": 101077567, + "node_id": "RA_kwDOBPZW984GBlI_", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2293500, + "download_count": 142796, + "created_at": "2023-03-27T00:45:49Z", + "updated_at": "2023-03-27T00:45:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077572", + "id": 101077572, + "node_id": "RA_kwDOBPZW984GBlJE", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2247158, + "download_count": 19, + "created_at": "2023-03-27T00:45:50Z", + "updated_at": "2023-03-27T00:45:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077580", + "id": 101077580, + "node_id": "RA_kwDOBPZW984GBlJM", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2248184, + "download_count": 16, + "created_at": "2023-03-27T00:45:51Z", + "updated_at": "2023-03-27T00:45:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077562", + "id": 101077562, + "node_id": "RA_kwDOBPZW984GBlI6", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2198310, + "download_count": 30, + "created_at": "2023-03-27T00:45:47Z", + "updated_at": "2023-03-27T00:45:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077573", + "id": 101077573, + "node_id": "RA_kwDOBPZW984GBlJF", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2151112, + "download_count": 453, + "created_at": "2023-03-27T00:45:50Z", + "updated_at": "2023-03-27T00:45:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077582", + "id": 101077582, + "node_id": "RA_kwDOBPZW984GBlJO", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2152132, + "download_count": 16, + "created_at": "2023-03-27T00:45:51Z", + "updated_at": "2023-03-27T00:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077556", + "id": 101077556, + "node_id": "RA_kwDOBPZW984GBlI0", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2097475, + "download_count": 2180, + "created_at": "2023-03-27T00:45:47Z", + "updated_at": "2023-03-27T00:45:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077566", + "id": 101077566, + "node_id": "RA_kwDOBPZW984GBlI-", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2376898, + "download_count": 964, + "created_at": "2023-03-27T00:45:49Z", + "updated_at": "2023-03-27T00:45:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077555", + "id": 101077555, + "node_id": "RA_kwDOBPZW984GBlIz", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2406098, + "download_count": 10453, + "created_at": "2023-03-27T00:45:47Z", + "updated_at": "2023-03-27T00:45:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077568", + "id": 101077568, + "node_id": "RA_kwDOBPZW984GBlJA", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2322787, + "download_count": 840, + "created_at": "2023-03-27T00:45:49Z", + "updated_at": "2023-03-27T00:45:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/101077563", + "id": 101077563, + "node_id": "RA_kwDOBPZW984GBlI7", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2197960, + "download_count": 858, + "created_at": "2023-03-27T00:45:48Z", + "updated_at": "2023-03-27T00:45:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.23.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.23.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.23.0", + "body": "Task now has an [official extension for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=task.vscode-task) contributed by @pd93! :tada: The extension is maintained in a [new repository](https://github.com/go-task/vscode-task) under the `go-task` organization. We're looking to gather feedback from the community so please give it a go and let us know what you think via a [discussion](https://github.com/go-task/vscode-task/discussions), [issue](https://github.com/go-task/vscode-task/issues) or on our [Discord](https://discord.gg/6TY36E39UK)!\r\n\r\n> **NOTE:**\r\n> The extension _requires_ v3.23.0 to be installed in order to work.\r\n\r\n- The website was integrated with [Crowdin](https://crowdin.com/project/taskfile) to allow the community to contribute with translations! [Chinese](https://taskfile.dev/zh-Hans/) is the first language available (#1057, #1058 by @misitebao).\r\n- Added task location data to the `--json` flag output (#1056 by @pd93)\r\n- Change the name of the file generated by `task --init` from `Taskfile.yaml` to `Taskfile.yml` (#1062 by @misitebao).\r\n- Added new `splitArgs` template function (`{{splitArgs \"foo bar 'foo bar baz'\"}}`) to ensure string is split as arguments (#1040, #1059 by @dhanusaputra).\r\n- Fix the value of `{{.CHECKSUM}}` variable in status (#1076, #1080 by @pd93).\r\n- Fixed deep copy implementation (#1072 by @pd93)\r\n- Created a tool to assist with releases (#1086 by @pd93).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/96960090/reactions", + "total_count": 18, + "+1": 7, + "-1": 0, + "laugh": 0, + "hooray": 8, + "confused": 0, + "heart": 0, + "rocket": 3, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/95242673", + "assets_url": "https://api.github.com/repos/go-task/task/releases/95242673/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/95242673/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.22.0", + "id": 95242673, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984FrUmx", + "tag_name": "v3.22.0", + "target_commitish": "master", + "name": "v3.22.0", + "draft": false, + "prerelease": false, + "created_at": "2023-03-10T18:36:05Z", + "published_at": "2023-03-10T18:43:33Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876250", + "id": 98876250, + "node_id": "RA_kwDOBPZW984F5Lta", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 35640, + "created_at": "2023-03-10T18:38:58Z", + "updated_at": "2023-03-10T18:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876236", + "id": 98876236, + "node_id": "RA_kwDOBPZW984F5LtM", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2370957, + "download_count": 4657, + "created_at": "2023-03-10T18:38:55Z", + "updated_at": "2023-03-10T18:38:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876230", + "id": 98876230, + "node_id": "RA_kwDOBPZW984F5LtG", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2257623, + "download_count": 1827, + "created_at": "2023-03-10T18:38:54Z", + "updated_at": "2023-03-10T18:38:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876242", + "id": 98876242, + "node_id": "RA_kwDOBPZW984F5LtS", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2275192, + "download_count": 125, + "created_at": "2023-03-10T18:38:56Z", + "updated_at": "2023-03-10T18:38:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876246", + "id": 98876246, + "node_id": "RA_kwDOBPZW984F5LtW", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2276993, + "download_count": 124, + "created_at": "2023-03-10T18:38:57Z", + "updated_at": "2023-03-10T18:38:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876228", + "id": 98876228, + "node_id": "RA_kwDOBPZW984F5LtE", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2209991, + "download_count": 136, + "created_at": "2023-03-10T18:38:54Z", + "updated_at": "2023-03-10T18:38:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876243", + "id": 98876243, + "node_id": "RA_kwDOBPZW984F5LtT", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2351054, + "download_count": 385, + "created_at": "2023-03-10T18:38:56Z", + "updated_at": "2023-03-10T18:38:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876247", + "id": 98876247, + "node_id": "RA_kwDOBPZW984F5LtX", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2351788, + "download_count": 143, + "created_at": "2023-03-10T18:38:57Z", + "updated_at": "2023-03-10T18:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876237", + "id": 98876237, + "node_id": "RA_kwDOBPZW984F5LtN", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2282181, + "download_count": 115760, + "created_at": "2023-03-10T18:38:55Z", + "updated_at": "2023-03-10T18:38:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876245", + "id": 98876245, + "node_id": "RA_kwDOBPZW984F5LtV", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2237852, + "download_count": 19, + "created_at": "2023-03-10T18:38:57Z", + "updated_at": "2023-03-10T18:38:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876248", + "id": 98876248, + "node_id": "RA_kwDOBPZW984F5LtY", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2237720, + "download_count": 15, + "created_at": "2023-03-10T18:38:57Z", + "updated_at": "2023-03-10T18:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876239", + "id": 98876239, + "node_id": "RA_kwDOBPZW984F5LtP", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2184683, + "download_count": 240, + "created_at": "2023-03-10T18:38:56Z", + "updated_at": "2023-03-10T18:38:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876240", + "id": 98876240, + "node_id": "RA_kwDOBPZW984F5LtQ", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2141126, + "download_count": 104, + "created_at": "2023-03-10T18:38:56Z", + "updated_at": "2023-03-10T18:38:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876249", + "id": 98876249, + "node_id": "RA_kwDOBPZW984F5LtZ", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2142125, + "download_count": 18, + "created_at": "2023-03-10T18:38:58Z", + "updated_at": "2023-03-10T18:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876232", + "id": 98876232, + "node_id": "RA_kwDOBPZW984F5LtI", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2086814, + "download_count": 990, + "created_at": "2023-03-10T18:38:54Z", + "updated_at": "2023-03-10T18:38:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876224", + "id": 98876224, + "node_id": "RA_kwDOBPZW984F5LtA", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2339492, + "download_count": 974, + "created_at": "2023-03-10T18:38:53Z", + "updated_at": "2023-03-10T18:38:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876227", + "id": 98876227, + "node_id": "RA_kwDOBPZW984F5LtD", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2366550, + "download_count": 4032, + "created_at": "2023-03-10T18:38:53Z", + "updated_at": "2023-03-10T18:38:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876231", + "id": 98876231, + "node_id": "RA_kwDOBPZW984F5LtH", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2286612, + "download_count": 854, + "created_at": "2023-03-10T18:38:54Z", + "updated_at": "2023-03-10T18:38:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/98876235", + "id": 98876235, + "node_id": "RA_kwDOBPZW984F5LtL", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2164885, + "download_count": 856, + "created_at": "2023-03-10T18:38:55Z", + "updated_at": "2023-03-10T18:38:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.22.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.22.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.22.0", + "body": "- Add a brand new `--global` (`-g`) flag that will run a Taskfile from your `$HOME` directory. This is useful to have automation that you can run from anywhere in your system! ([Documentation](https://taskfile.dev/usage/#running-a-global-taskfile), [#1029](https://github.com/go-task/task/pull/1029) by @andreynering).\r\n- Add ability to set `error_only: true` on the `group` output mode. This will instruct Task to only print a command output if it returned with a non-zero exit code ([#664](https://github.com/go-task/task/issues/664), [#1022](https://github.com/go-task/task/pull/1022) by @jaedle).\r\n- Fixed bug where `.task/checksum` file was sometimes not being created when task also declares a `status:` ([#840](https://github.com/go-task/task/issues/840), [#1035](https://github.com/go-task/task/pull/1035) by @harelwa, [#1037](https://github.com/go-task/task/pull/1037) by @pd93).\r\n- Refactored and decoupled fingerprinting from the main Task executor ([#1039](https://github.com/go-task/task/issues/1039) by @pd93).\r\n- Fixed deadlock issue when using `run: once` ([#715](https://github.com/go-task/task/issues/715), [#1025](https://github.com/go-task/task/pull/1025) by @theunrepentantgeek).\r\n\r\nIf Task is useful to you or your company, consider [becoming a sponsor](https://taskfile.dev/donate/).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/95242673/reactions", + "total_count": 11, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 10, + "eyes": 1 + }, + "mentions_count": 5 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/93381285", + "assets_url": "https://api.github.com/repos/go-task/task/releases/93381285/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/93381285/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.21.0", + "id": 93381285, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984FkOKl", + "tag_name": "v3.21.0", + "target_commitish": "master", + "name": "v3.21.0", + "draft": false, + "prerelease": false, + "created_at": "2023-02-23T01:12:53Z", + "published_at": "2023-02-23T01:16:22Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735679", + "id": 96735679, + "node_id": "RA_kwDOBPZW984FxBG_", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 41386, + "created_at": "2023-02-23T01:15:34Z", + "updated_at": "2023-02-23T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735661", + "id": 96735661, + "node_id": "RA_kwDOBPZW984FxBGt", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2351726, + "download_count": 3797, + "created_at": "2023-02-23T01:15:31Z", + "updated_at": "2023-02-23T01:15:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735654", + "id": 96735654, + "node_id": "RA_kwDOBPZW984FxBGm", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2239900, + "download_count": 1867, + "created_at": "2023-02-23T01:15:29Z", + "updated_at": "2023-02-23T01:15:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735667", + "id": 96735667, + "node_id": "RA_kwDOBPZW984FxBGz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2253370, + "download_count": 127, + "created_at": "2023-02-23T01:15:32Z", + "updated_at": "2023-02-23T01:15:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735674", + "id": 96735674, + "node_id": "RA_kwDOBPZW984FxBG6", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2252225, + "download_count": 122, + "created_at": "2023-02-23T01:15:33Z", + "updated_at": "2023-02-23T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735656", + "id": 96735656, + "node_id": "RA_kwDOBPZW984FxBGo", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2193746, + "download_count": 130, + "created_at": "2023-02-23T01:15:30Z", + "updated_at": "2023-02-23T01:15:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735668", + "id": 96735668, + "node_id": "RA_kwDOBPZW984FxBG0", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2335506, + "download_count": 16901, + "created_at": "2023-02-23T01:15:32Z", + "updated_at": "2023-02-23T01:15:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735672", + "id": 96735672, + "node_id": "RA_kwDOBPZW984FxBG4", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2336250, + "download_count": 159, + "created_at": "2023-02-23T01:15:33Z", + "updated_at": "2023-02-23T01:15:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735662", + "id": 96735662, + "node_id": "RA_kwDOBPZW984FxBGu", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2263112, + "download_count": 109558, + "created_at": "2023-02-23T01:15:31Z", + "updated_at": "2023-02-23T01:15:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735669", + "id": 96735669, + "node_id": "RA_kwDOBPZW984FxBG1", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2218662, + "download_count": 15, + "created_at": "2023-02-23T01:15:32Z", + "updated_at": "2023-02-23T01:15:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735673", + "id": 96735673, + "node_id": "RA_kwDOBPZW984FxBG5", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2220204, + "download_count": 14, + "created_at": "2023-02-23T01:15:33Z", + "updated_at": "2023-02-23T01:15:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735663", + "id": 96735663, + "node_id": "RA_kwDOBPZW984FxBGv", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2168562, + "download_count": 21, + "created_at": "2023-02-23T01:15:31Z", + "updated_at": "2023-02-23T01:15:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735671", + "id": 96735671, + "node_id": "RA_kwDOBPZW984FxBG3", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2123642, + "download_count": 31, + "created_at": "2023-02-23T01:15:33Z", + "updated_at": "2023-02-23T01:15:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735677", + "id": 96735677, + "node_id": "RA_kwDOBPZW984FxBG9", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2124114, + "download_count": 12, + "created_at": "2023-02-23T01:15:34Z", + "updated_at": "2023-02-23T01:15:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735664", + "id": 96735664, + "node_id": "RA_kwDOBPZW984FxBGw", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2068397, + "download_count": 1834, + "created_at": "2023-02-23T01:15:32Z", + "updated_at": "2023-02-23T01:15:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735653", + "id": 96735653, + "node_id": "RA_kwDOBPZW984FxBGl", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2320743, + "download_count": 993, + "created_at": "2023-02-23T01:15:29Z", + "updated_at": "2023-02-23T01:15:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735657", + "id": 96735657, + "node_id": "RA_kwDOBPZW984FxBGp", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2346842, + "download_count": 3516, + "created_at": "2023-02-23T01:15:30Z", + "updated_at": "2023-02-23T01:15:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735658", + "id": 96735658, + "node_id": "RA_kwDOBPZW984FxBGq", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2266628, + "download_count": 864, + "created_at": "2023-02-23T01:15:30Z", + "updated_at": "2023-02-23T01:15:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/96735659", + "id": 96735659, + "node_id": "RA_kwDOBPZW984FxBGr", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2145837, + "download_count": 865, + "created_at": "2023-02-23T01:15:30Z", + "updated_at": "2023-02-23T01:15:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.21.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.21.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.21.0", + "body": "- Added new `TASK_VERSION` special variable ([#990](https://github.com/go-task/task/issues/990), [#1014](https://github.com/go-task/task/pull/1014) by @ja1code).\r\n- Fixed a bug where tasks were sometimes incorrectly marked as internal ([#1007](https://github.com/go-task/task/pull/1007) by @pd93).\r\n- Update to Go 1.20 (bump minimum version to 1.19) ([#1010](https://github.com/go-task/task/pull/1010) by @pd93)\r\n- Added environment variable `FORCE_COLOR` support to force color output. Usefull for environments without TTY ([#1003](https://github.com/go-task/task/pull/1003) by @automation-stack)", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/93381285/reactions", + "total_count": 9, + "+1": 6, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 0, + "rocket": 1, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/88987622", + "assets_url": "https://api.github.com/repos/go-task/task/releases/88987622/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/88987622/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.20.0", + "id": 88987622, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984FTdfm", + "tag_name": "v3.20.0", + "target_commitish": "master", + "name": "v3.20.0", + "draft": false, + "prerelease": false, + "created_at": "2023-01-14T20:34:27Z", + "published_at": "2023-01-14T20:38:29Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701375", + "id": 91701375, + "node_id": "RA_kwDOBPZW984Fd0B_", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 97581, + "created_at": "2023-01-14T20:37:16Z", + "updated_at": "2023-01-14T20:37:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701355", + "id": 91701355, + "node_id": "RA_kwDOBPZW984Fd0Br", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2306752, + "download_count": 9324, + "created_at": "2023-01-14T20:37:12Z", + "updated_at": "2023-01-14T20:37:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701362", + "id": 91701362, + "node_id": "RA_kwDOBPZW984Fd0By", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2206713, + "download_count": 3671, + "created_at": "2023-01-14T20:37:14Z", + "updated_at": "2023-01-14T20:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701368", + "id": 91701368, + "node_id": "RA_kwDOBPZW984Fd0B4", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2209906, + "download_count": 147, + "created_at": "2023-01-14T20:37:15Z", + "updated_at": "2023-01-14T20:37:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701374", + "id": 91701374, + "node_id": "RA_kwDOBPZW984Fd0B-", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2210832, + "download_count": 126, + "created_at": "2023-01-14T20:37:16Z", + "updated_at": "2023-01-14T20:37:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701364", + "id": 91701364, + "node_id": "RA_kwDOBPZW984Fd0B0", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2152189, + "download_count": 138, + "created_at": "2023-01-14T20:37:14Z", + "updated_at": "2023-01-14T20:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701367", + "id": 91701367, + "node_id": "RA_kwDOBPZW984Fd0B3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2293246, + "download_count": 6927, + "created_at": "2023-01-14T20:37:15Z", + "updated_at": "2023-01-14T20:37:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701371", + "id": 91701371, + "node_id": "RA_kwDOBPZW984Fd0B7", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2294301, + "download_count": 246, + "created_at": "2023-01-14T20:37:16Z", + "updated_at": "2023-01-14T20:37:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701357", + "id": 91701357, + "node_id": "RA_kwDOBPZW984Fd0Bt", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2226291, + "download_count": 323165, + "created_at": "2023-01-14T20:37:13Z", + "updated_at": "2023-01-14T20:37:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701369", + "id": 91701369, + "node_id": "RA_kwDOBPZW984Fd0B5", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2177418, + "download_count": 37, + "created_at": "2023-01-14T20:37:15Z", + "updated_at": "2023-01-14T20:37:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701372", + "id": 91701372, + "node_id": "RA_kwDOBPZW984Fd0B8", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2178596, + "download_count": 19, + "created_at": "2023-01-14T20:37:16Z", + "updated_at": "2023-01-14T20:37:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701365", + "id": 91701365, + "node_id": "RA_kwDOBPZW984Fd0B1", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2125140, + "download_count": 24, + "created_at": "2023-01-14T20:37:14Z", + "updated_at": "2023-01-14T20:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701370", + "id": 91701370, + "node_id": "RA_kwDOBPZW984Fd0B6", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2084932, + "download_count": 610, + "created_at": "2023-01-14T20:37:15Z", + "updated_at": "2023-01-14T20:37:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701373", + "id": 91701373, + "node_id": "RA_kwDOBPZW984Fd0B9", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2085540, + "download_count": 21, + "created_at": "2023-01-14T20:37:16Z", + "updated_at": "2023-01-14T20:37:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701366", + "id": 91701366, + "node_id": "RA_kwDOBPZW984Fd0B2", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2032716, + "download_count": 3587, + "created_at": "2023-01-14T20:37:14Z", + "updated_at": "2023-01-14T20:37:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701356", + "id": 91701356, + "node_id": "RA_kwDOBPZW984Fd0Bs", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2303905, + "download_count": 157, + "created_at": "2023-01-14T20:37:12Z", + "updated_at": "2023-01-14T20:37:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701358", + "id": 91701358, + "node_id": "RA_kwDOBPZW984Fd0Bu", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2335774, + "download_count": 6902, + "created_at": "2023-01-14T20:37:13Z", + "updated_at": "2023-01-14T20:37:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701360", + "id": 91701360, + "node_id": "RA_kwDOBPZW984Fd0Bw", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2252202, + "download_count": 21, + "created_at": "2023-01-14T20:37:13Z", + "updated_at": "2023-01-14T20:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/91701361", + "id": 91701361, + "node_id": "RA_kwDOBPZW984Fd0Bx", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2135376, + "download_count": 36, + "created_at": "2023-01-14T20:37:13Z", + "updated_at": "2023-01-14T20:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.20.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.20.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.20.0", + "body": "- Improve behavior and performance of status checking when using the `timestamp` mode ([#976](https://github.com/go-task/task/issues/976), [#977](https://github.com/go-task/task/pull/977) by @aminya).\r\n- Performance optimizations were made for large Taskfiles ([#982](https://github.com/go-task/task/pull/982) by @pd93).\r\n- Add ability to configure options for the [`set`](https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) and [`shopt`](https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html) builtins ([#908](https://github.com/go-task/task/issues/908), [#929](https://github.com/go-task/task/pull/929) by @pd93, [Documentation](http://taskfile.dev/usage/#set-and-shopt)).\r\n- Add new `platforms:` attribute to `task` and `cmd`, so it's now possible to choose in which platforms that given task or command will be run on. Possible values are operating system (GOOS), architecture (GOARCH) or a combination of the two. Example: `platforms: [linux]`, `platforms: [amd64]` or `platforms: [linux/amd64]`. Other platforms will be skipped ([#978](https://github.com/go-task/task/issues/978), [#980](https://github.com/go-task/task/pull/980) by @leaanthony).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/88987622/reactions", + "total_count": 10, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 9, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/87636138", + "assets_url": "https://api.github.com/repos/go-task/task/releases/87636138/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/87636138/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.19.1", + "id": 87636138, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984FOTiq", + "tag_name": "v3.19.1", + "target_commitish": "master", + "name": "v3.19.1 - Holidays edition", + "draft": false, + "prerelease": false, + "created_at": "2022-12-31T17:03:59Z", + "published_at": "2022-12-31T17:12:38Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081101", + "id": 90081101, + "node_id": "RA_kwDOBPZW984FXodN", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 107392, + "created_at": "2022-12-31T17:07:41Z", + "updated_at": "2022-12-31T17:07:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081075", + "id": 90081075, + "node_id": "RA_kwDOBPZW984FXocz", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2292730, + "download_count": 2910, + "created_at": "2022-12-31T17:07:36Z", + "updated_at": "2022-12-31T17:07:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081089", + "id": 90081089, + "node_id": "RA_kwDOBPZW984FXodB", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2192382, + "download_count": 1842, + "created_at": "2022-12-31T17:07:38Z", + "updated_at": "2022-12-31T17:07:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081092", + "id": 90081092, + "node_id": "RA_kwDOBPZW984FXodE", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2193790, + "download_count": 128, + "created_at": "2022-12-31T17:07:39Z", + "updated_at": "2022-12-31T17:07:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081095", + "id": 90081095, + "node_id": "RA_kwDOBPZW984FXodH", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2195243, + "download_count": 127, + "created_at": "2022-12-31T17:07:40Z", + "updated_at": "2022-12-31T17:07:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081079", + "id": 90081079, + "node_id": "RA_kwDOBPZW984FXoc3", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2138140, + "download_count": 152, + "created_at": "2022-12-31T17:07:37Z", + "updated_at": "2022-12-31T17:07:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081090", + "id": 90081090, + "node_id": "RA_kwDOBPZW984FXodC", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2281134, + "download_count": 2440, + "created_at": "2022-12-31T17:07:38Z", + "updated_at": "2022-12-31T17:07:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081097", + "id": 90081097, + "node_id": "RA_kwDOBPZW984FXodJ", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2281962, + "download_count": 128, + "created_at": "2022-12-31T17:07:40Z", + "updated_at": "2022-12-31T17:07:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081076", + "id": 90081076, + "node_id": "RA_kwDOBPZW984FXoc0", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2212958, + "download_count": 169789, + "created_at": "2022-12-31T17:07:36Z", + "updated_at": "2022-12-31T17:07:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081093", + "id": 90081093, + "node_id": "RA_kwDOBPZW984FXodF", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2167084, + "download_count": 15, + "created_at": "2022-12-31T17:07:39Z", + "updated_at": "2022-12-31T17:07:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081098", + "id": 90081098, + "node_id": "RA_kwDOBPZW984FXodK", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2167380, + "download_count": 15, + "created_at": "2022-12-31T17:07:41Z", + "updated_at": "2022-12-31T17:07:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081078", + "id": 90081078, + "node_id": "RA_kwDOBPZW984FXoc2", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2114399, + "download_count": 20, + "created_at": "2022-12-31T17:07:37Z", + "updated_at": "2022-12-31T17:07:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081094", + "id": 90081094, + "node_id": "RA_kwDOBPZW984FXodG", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2074734, + "download_count": 84, + "created_at": "2022-12-31T17:07:40Z", + "updated_at": "2022-12-31T17:07:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081099", + "id": 90081099, + "node_id": "RA_kwDOBPZW984FXodL", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2074883, + "download_count": 13, + "created_at": "2022-12-31T17:07:41Z", + "updated_at": "2022-12-31T17:07:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081072", + "id": 90081072, + "node_id": "RA_kwDOBPZW984FXocw", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2023222, + "download_count": 1426, + "created_at": "2022-12-31T17:07:35Z", + "updated_at": "2022-12-31T17:07:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081071", + "id": 90081071, + "node_id": "RA_kwDOBPZW984FXocv", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2290621, + "download_count": 140, + "created_at": "2022-12-31T17:07:35Z", + "updated_at": "2022-12-31T17:07:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081083", + "id": 90081083, + "node_id": "RA_kwDOBPZW984FXoc7", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2321968, + "download_count": 1772, + "created_at": "2022-12-31T17:07:38Z", + "updated_at": "2022-12-31T17:07:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081081", + "id": 90081081, + "node_id": "RA_kwDOBPZW984FXoc5", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2239480, + "download_count": 15, + "created_at": "2022-12-31T17:07:37Z", + "updated_at": "2022-12-31T17:07:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/90081084", + "id": 90081084, + "node_id": "RA_kwDOBPZW984FXoc8", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2122636, + "download_count": 21, + "created_at": "2022-12-31T17:07:38Z", + "updated_at": "2022-12-31T17:07:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.19.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.19.1", + "body": "I hope everyone had a great Christmas 🎄 and I wish all an incredible 2023 as well 🌟 🎆 \r\n\r\nThis release includes mostly small bug fixes, but it also included support to the brand new `--json` flag.\r\n\r\n---\r\n\r\n- Small bug fix: closing `Taskfile.yml` once we're done reading it ([#963](https://github.com/go-task/task/issues/963), [#964](https://github.com/go-task/task/pull/964) by @HeCorr).\r\n- Fixes a bug in v2 that caused a panic when using a `Taskfile_{{OS}}.yml` file ([#961](https://github.com/go-task/task/issues/961), [#971](https://github.com/go-task/task/pull/971) by @pd93).\r\n- Fixed a bug where watch intervals set in the Taskfile were not being respected ([#969](https://github.com/go-task/task/pull/969), [#970](https://github.com/go-task/task/pull/970) by @pd93)\r\n- Add `--json` flag (alias `-j`) with the intent to improve support for code editors and add room to other possible integrations. This is basic for now, but we plan to add more info in the near future ([#936](https://github.com/go-task/task/pull/936) by @davidalpert, [#764](https://github.com/go-task/task/issues/764)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/87636138/reactions", + "total_count": 14, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 14, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/85078612", + "assets_url": "https://api.github.com/repos/go-task/task/releases/85078612/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/85078612/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.19.0", + "id": 85078612, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984FEjJU", + "tag_name": "v3.19.0", + "target_commitish": "master", + "name": "v3.19.0", + "draft": false, + "prerelease": false, + "created_at": "2022-12-06T01:28:26Z", + "published_at": "2022-12-06T01:46:14Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134313", + "id": 87134313, + "node_id": "RA_kwDOBPZW984FMZBp", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 61387, + "created_at": "2022-12-06T01:31:25Z", + "updated_at": "2022-12-06T01:31:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134304", + "id": 87134304, + "node_id": "RA_kwDOBPZW984FMZBg", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2286366, + "download_count": 4581, + "created_at": "2022-12-06T01:31:23Z", + "updated_at": "2022-12-06T01:31:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134295", + "id": 87134295, + "node_id": "RA_kwDOBPZW984FMZBX", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2188235, + "download_count": 2438, + "created_at": "2022-12-06T01:31:20Z", + "updated_at": "2022-12-06T01:31:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134306", + "id": 87134306, + "node_id": "RA_kwDOBPZW984FMZBi", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2194626, + "download_count": 160, + "created_at": "2022-12-06T01:31:23Z", + "updated_at": "2022-12-06T01:31:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134309", + "id": 87134309, + "node_id": "RA_kwDOBPZW984FMZBl", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2195964, + "download_count": 146, + "created_at": "2022-12-06T01:31:24Z", + "updated_at": "2022-12-06T01:31:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134294", + "id": 87134294, + "node_id": "RA_kwDOBPZW984FMZBW", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2133247, + "download_count": 4365, + "created_at": "2022-12-06T01:31:20Z", + "updated_at": "2022-12-06T01:31:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134305", + "id": 87134305, + "node_id": "RA_kwDOBPZW984FMZBh", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2275278, + "download_count": 1032, + "created_at": "2022-12-06T01:31:23Z", + "updated_at": "2022-12-06T01:31:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134310", + "id": 87134310, + "node_id": "RA_kwDOBPZW984FMZBm", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2276432, + "download_count": 168, + "created_at": "2022-12-06T01:31:24Z", + "updated_at": "2022-12-06T01:31:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134298", + "id": 87134298, + "node_id": "RA_kwDOBPZW984FMZBa", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2207615, + "download_count": 144620, + "created_at": "2022-12-06T01:31:21Z", + "updated_at": "2022-12-06T01:31:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134308", + "id": 87134308, + "node_id": "RA_kwDOBPZW984FMZBk", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2172104, + "download_count": 52, + "created_at": "2022-12-06T01:31:24Z", + "updated_at": "2022-12-06T01:31:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134311", + "id": 87134311, + "node_id": "RA_kwDOBPZW984FMZBn", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2172455, + "download_count": 36, + "created_at": "2022-12-06T01:31:24Z", + "updated_at": "2022-12-06T01:31:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134297", + "id": 87134297, + "node_id": "RA_kwDOBPZW984FMZBZ", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2110854, + "download_count": 16, + "created_at": "2022-12-06T01:31:20Z", + "updated_at": "2022-12-06T01:31:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134307", + "id": 87134307, + "node_id": "RA_kwDOBPZW984FMZBj", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2072672, + "download_count": 89, + "created_at": "2022-12-06T01:31:23Z", + "updated_at": "2022-12-06T01:31:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134312", + "id": 87134312, + "node_id": "RA_kwDOBPZW984FMZBo", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2072939, + "download_count": 32, + "created_at": "2022-12-06T01:31:24Z", + "updated_at": "2022-12-06T01:31:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134300", + "id": 87134300, + "node_id": "RA_kwDOBPZW984FMZBc", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2018729, + "download_count": 2182, + "created_at": "2022-12-06T01:31:22Z", + "updated_at": "2022-12-06T01:31:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134299", + "id": 87134299, + "node_id": "RA_kwDOBPZW984FMZBb", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2285699, + "download_count": 141, + "created_at": "2022-12-06T01:31:22Z", + "updated_at": "2022-12-06T01:31:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134302", + "id": 87134302, + "node_id": "RA_kwDOBPZW984FMZBe", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2315979, + "download_count": 2529, + "created_at": "2022-12-06T01:31:22Z", + "updated_at": "2022-12-06T01:31:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134301", + "id": 87134301, + "node_id": "RA_kwDOBPZW984FMZBd", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2234869, + "download_count": 16, + "created_at": "2022-12-06T01:31:22Z", + "updated_at": "2022-12-06T01:31:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/87134303", + "id": 87134303, + "node_id": "RA_kwDOBPZW984FMZBf", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2118069, + "download_count": 26, + "created_at": "2022-12-06T01:31:22Z", + "updated_at": "2022-12-06T01:31:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.19.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.19.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.19.0", + "body": "- Installation via npm now supports [pnpm](https://pnpm.io/) as well ([go-task/go-npm#2](https://github.com/go-task/go-npm/issues/2), [go-task/go-npm#3](https://github.com/go-task/go-npm/pull/3)).\r\n- It's now possible to run Taskfiles from subdirectories! A new `USER_WORKING_DIR` special variable was added to add even more flexibility for monorepos ([#289](https://github.com/go-task/task/issues/289), [#920](https://github.com/go-task/task/pull/920)).\r\n- Add task-level `dotenv` support ([#389](https://github.com/go-task/task/issues/389), [#904](https://github.com/go-task/task/pull/904)).\r\n- It's now possible to use global level variables on `includes` ([#942](https://github.com/go-task/task/issues/942), [#943](https://github.com/go-task/task/pull/943)).\r\n- The website got a brand new [translation to Chinese](https://task-zh.readthedocs.io/zh_CN/latest/) by @DeronW. Thanks!\r\n\r\nSpecial thanks to @pd93 for working on 3 of the topics above. Some other important contributions in recent releases were from him as well.\r\n\r\nAlso, thanks @appwrite for [sponsoring Task](https://twitter.com/appwrite/status/1595808355733606402) as part of their [OSS Fund Program](https://appwrite.io/oss-fund).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/85078612/reactions", + "total_count": 13, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 12, + "eyes": 0 + }, + "mentions_count": 3 + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/82884292", + "assets_url": "https://api.github.com/repos/go-task/task/releases/82884292/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/82884292/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.18.0", + "id": 82884292, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984E8LbE", + "tag_name": "v3.18.0", + "target_commitish": "master", + "name": "v3.18.0", + "draft": false, + "prerelease": false, + "created_at": "2022-11-12T16:37:02Z", + "published_at": "2022-11-12T16:47:06Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378429", + "id": 84378429, + "node_id": "RA_kwDOBPZW984FB4M9", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 40547, + "created_at": "2022-11-12T16:40:27Z", + "updated_at": "2022-11-12T16:40:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378418", + "id": 84378418, + "node_id": "RA_kwDOBPZW984FB4My", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2283578, + "download_count": 5612, + "created_at": "2022-11-12T16:40:24Z", + "updated_at": "2022-11-12T16:40:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378413", + "id": 84378413, + "node_id": "RA_kwDOBPZW984FB4Mt", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2186743, + "download_count": 2513, + "created_at": "2022-11-12T16:40:22Z", + "updated_at": "2022-11-12T16:40:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378420", + "id": 84378420, + "node_id": "RA_kwDOBPZW984FB4M0", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2192278, + "download_count": 126, + "created_at": "2022-11-12T16:40:25Z", + "updated_at": "2022-11-12T16:40:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378426", + "id": 84378426, + "node_id": "RA_kwDOBPZW984FB4M6", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2193350, + "download_count": 151, + "created_at": "2022-11-12T16:40:26Z", + "updated_at": "2022-11-12T16:40:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378412", + "id": 84378412, + "node_id": "RA_kwDOBPZW984FB4Ms", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2131516, + "download_count": 126, + "created_at": "2022-11-12T16:40:22Z", + "updated_at": "2022-11-12T16:40:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378421", + "id": 84378421, + "node_id": "RA_kwDOBPZW984FB4M1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2274064, + "download_count": 730, + "created_at": "2022-11-12T16:40:25Z", + "updated_at": "2022-11-12T16:40:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378427", + "id": 84378427, + "node_id": "RA_kwDOBPZW984FB4M7", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2273980, + "download_count": 24821, + "created_at": "2022-11-12T16:40:27Z", + "updated_at": "2022-11-12T16:40:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378414", + "id": 84378414, + "node_id": "RA_kwDOBPZW984FB4Mu", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2204713, + "download_count": 104488, + "created_at": "2022-11-12T16:40:23Z", + "updated_at": "2022-11-12T16:40:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378422", + "id": 84378422, + "node_id": "RA_kwDOBPZW984FB4M2", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2172244, + "download_count": 16, + "created_at": "2022-11-12T16:40:25Z", + "updated_at": "2022-11-12T16:40:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378424", + "id": 84378424, + "node_id": "RA_kwDOBPZW984FB4M4", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2171693, + "download_count": 14, + "created_at": "2022-11-12T16:40:26Z", + "updated_at": "2022-11-12T16:40:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378417", + "id": 84378417, + "node_id": "RA_kwDOBPZW984FB4Mx", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2109287, + "download_count": 15, + "created_at": "2022-11-12T16:40:24Z", + "updated_at": "2022-11-12T16:40:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378423", + "id": 84378423, + "node_id": "RA_kwDOBPZW984FB4M3", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2069964, + "download_count": 37, + "created_at": "2022-11-12T16:40:25Z", + "updated_at": "2022-11-12T16:40:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378425", + "id": 84378425, + "node_id": "RA_kwDOBPZW984FB4M5", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2070221, + "download_count": 484, + "created_at": "2022-11-12T16:40:26Z", + "updated_at": "2022-11-12T16:40:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378419", + "id": 84378419, + "node_id": "RA_kwDOBPZW984FB4Mz", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2016447, + "download_count": 1003, + "created_at": "2022-11-12T16:40:24Z", + "updated_at": "2022-11-12T16:40:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378411", + "id": 84378411, + "node_id": "RA_kwDOBPZW984FB4Mr", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2284027, + "download_count": 139, + "created_at": "2022-11-12T16:40:21Z", + "updated_at": "2022-11-12T16:40:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378415", + "id": 84378415, + "node_id": "RA_kwDOBPZW984FB4Mv", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2314299, + "download_count": 3686, + "created_at": "2022-11-12T16:40:23Z", + "updated_at": "2022-11-12T16:40:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378416", + "id": 84378416, + "node_id": "RA_kwDOBPZW984FB4Mw", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2232546, + "download_count": 14, + "created_at": "2022-11-12T16:40:23Z", + "updated_at": "2022-11-12T16:40:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/84378410", + "id": 84378410, + "node_id": "RA_kwDOBPZW984FB4Mq", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2116617, + "download_count": 46, + "created_at": "2022-11-12T16:40:21Z", + "updated_at": "2022-11-12T16:40:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.18.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.18.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.18.0", + "body": "- Show aliases on `task --list --silent` (`task --ls`). This means that aliases will be completed by the completion scripts ([#919](https://github.com/go-task/task/pull/919)).\r\n- Tasks in the root Taskfile will now be displayed first in `--list`/`--list-all` output ([#806](https://github.com/go-task/task/pull/806), [#890](https://github.com/go-task/task/pull/890)).\r\n- It's now possible to call a `default` task in an included Taskfile by using just the namespace. For example: `docs:default` is now automatically aliased to `docs` ([#661](https://github.com/go-task/task/issues/661), [#815](https://github.com/go-task/task/pull/815)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/82884292/reactions", + "total_count": 11, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 6, + "confused": 0, + "heart": 5, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/79970830", + "assets_url": "https://api.github.com/repos/go-task/task/releases/79970830/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/79970830/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.17.0", + "id": 79970830, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984ExEIO", + "tag_name": "v3.17.0", + "target_commitish": "master", + "name": "v3.17.0", + "draft": false, + "prerelease": false, + "created_at": "2022-10-15T00:12:01Z", + "published_at": "2022-10-15T00:16:28Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068384", + "id": 81068384, + "node_id": "RA_kwDOBPZW984E1QFg", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 47403, + "created_at": "2022-10-15T00:15:10Z", + "updated_at": "2022-10-15T00:15:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068365", + "id": 81068365, + "node_id": "RA_kwDOBPZW984E1QFN", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2281229, + "download_count": 6724, + "created_at": "2022-10-15T00:15:06Z", + "updated_at": "2022-10-15T00:15:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068366", + "id": 81068366, + "node_id": "RA_kwDOBPZW984E1QFO", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2181609, + "download_count": 2231, + "created_at": "2022-10-15T00:15:06Z", + "updated_at": "2022-10-15T00:15:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068378", + "id": 81068378, + "node_id": "RA_kwDOBPZW984E1QFa", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2186636, + "download_count": 131, + "created_at": "2022-10-15T00:15:09Z", + "updated_at": "2022-10-15T00:15:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068381", + "id": 81068381, + "node_id": "RA_kwDOBPZW984E1QFd", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2187567, + "download_count": 122, + "created_at": "2022-10-15T00:15:09Z", + "updated_at": "2022-10-15T00:15:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068367", + "id": 81068367, + "node_id": "RA_kwDOBPZW984E1QFP", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2127825, + "download_count": 138, + "created_at": "2022-10-15T00:15:06Z", + "updated_at": "2022-10-15T00:15:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068376", + "id": 81068376, + "node_id": "RA_kwDOBPZW984E1QFY", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2271584, + "download_count": 28649, + "created_at": "2022-10-15T00:15:09Z", + "updated_at": "2022-10-15T00:15:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068382", + "id": 81068382, + "node_id": "RA_kwDOBPZW984E1QFe", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2271807, + "download_count": 144, + "created_at": "2022-10-15T00:15:10Z", + "updated_at": "2022-10-15T00:15:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068373", + "id": 81068373, + "node_id": "RA_kwDOBPZW984E1QFV", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2201603, + "download_count": 271551, + "created_at": "2022-10-15T00:15:08Z", + "updated_at": "2022-10-15T00:15:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068375", + "id": 81068375, + "node_id": "RA_kwDOBPZW984E1QFX", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2156178, + "download_count": 24, + "created_at": "2022-10-15T00:15:08Z", + "updated_at": "2022-10-15T00:15:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068383", + "id": 81068383, + "node_id": "RA_kwDOBPZW984E1QFf", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2156639, + "download_count": 13, + "created_at": "2022-10-15T00:15:10Z", + "updated_at": "2022-10-15T00:15:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068368", + "id": 81068368, + "node_id": "RA_kwDOBPZW984E1QFQ", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2103618, + "download_count": 17, + "created_at": "2022-10-15T00:15:06Z", + "updated_at": "2022-10-15T00:15:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068377", + "id": 81068377, + "node_id": "RA_kwDOBPZW984E1QFZ", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2071356, + "download_count": 252, + "created_at": "2022-10-15T00:15:09Z", + "updated_at": "2022-10-15T00:15:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068380", + "id": 81068380, + "node_id": "RA_kwDOBPZW984E1QFc", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2069798, + "download_count": 12, + "created_at": "2022-10-15T00:15:09Z", + "updated_at": "2022-10-15T00:15:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068370", + "id": 81068370, + "node_id": "RA_kwDOBPZW984E1QFS", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2012839, + "download_count": 84112, + "created_at": "2022-10-15T00:15:07Z", + "updated_at": "2022-10-15T00:15:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068369", + "id": 81068369, + "node_id": "RA_kwDOBPZW984E1QFR", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2278413, + "download_count": 144, + "created_at": "2022-10-15T00:15:07Z", + "updated_at": "2022-10-15T00:15:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068374", + "id": 81068374, + "node_id": "RA_kwDOBPZW984E1QFW", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2308935, + "download_count": 3368, + "created_at": "2022-10-15T00:15:08Z", + "updated_at": "2022-10-15T00:15:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068371", + "id": 81068371, + "node_id": "RA_kwDOBPZW984E1QFT", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2227934, + "download_count": 14, + "created_at": "2022-10-15T00:15:07Z", + "updated_at": "2022-10-15T00:15:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/81068372", + "id": 81068372, + "node_id": "RA_kwDOBPZW984E1QFU", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2112972, + "download_count": 30, + "created_at": "2022-10-15T00:15:08Z", + "updated_at": "2022-10-15T00:15:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.17.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.17.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.17.0", + "body": "- Add a \"Did you mean ...?\" suggestion when a task does not exits another one with a similar name is found ([#867](https://github.com/go-task/task/issues/867), [#880](https://github.com/go-task/task/pull/880)).\r\n- Now YAML parse errors will print which Taskfile failed to parse ([#885](https://github.com/go-task/task/issues/885), [#887](https://github.com/go-task/task/pull/887)).\r\n- Add ability to set `aliases` for tasks and namespaces ([#268](https://github.com/go-task/task/pull/268), [#340](https://github.com/go-task/task/pull/340), [#879](https://github.com/go-task/task/pull/879)).\r\n- Improvements to Fish shell completion ([#897](https://github.com/go-task/task/pull/897)).\r\n- Added ability to set a different watch interval by setting `interval: '500ms'` or using the `--interval=500ms` flag ([#813](https://github.com/go-task/task/issues/813), [#865](https://github.com/go-task/task/pull/865)).\r\n- Add colored output to `--list`, `--list-all` and `--summary` flags ([#845](https://github.com/go-task/task/pull/845), [#874](https://github.com/go-task/task/pull/874)).\r\n- Fix unexpected behavior where `label:` was being shown instead of the task name on `--list` ([#603](https://github.com/go-task/task/issues/603), [#877](https://github.com/go-task/task/pull/877)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/79970830/reactions", + "total_count": 8, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 8, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/78646338", + "assets_url": "https://api.github.com/repos/go-task/task/releases/78646338/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/78646338/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.16.0", + "id": 78646338, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984EsAxC", + "tag_name": "v3.16.0", + "target_commitish": "master", + "name": "v3.16.0", + "draft": false, + "prerelease": false, + "created_at": "2022-09-30T01:01:31Z", + "published_at": "2022-09-30T01:06:02Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477774", + "id": 79477774, + "node_id": "RA_kwDOBPZW984EvLwO", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 25117, + "created_at": "2022-09-30T01:05:01Z", + "updated_at": "2022-09-30T01:05:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477756", + "id": 79477756, + "node_id": "RA_kwDOBPZW984EvLv8", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2247408, + "download_count": 3791, + "created_at": "2022-09-30T01:04:55Z", + "updated_at": "2022-09-30T01:04:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477751", + "id": 79477751, + "node_id": "RA_kwDOBPZW984EvLv3", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2149551, + "download_count": 1188, + "created_at": "2022-09-30T01:04:52Z", + "updated_at": "2022-09-30T01:04:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477763", + "id": 79477763, + "node_id": "RA_kwDOBPZW984EvLwD", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2156098, + "download_count": 126, + "created_at": "2022-09-30T01:04:57Z", + "updated_at": "2022-09-30T01:04:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477770", + "id": 79477770, + "node_id": "RA_kwDOBPZW984EvLwK", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2158409, + "download_count": 122, + "created_at": "2022-09-30T01:04:59Z", + "updated_at": "2022-09-30T01:04:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477750", + "id": 79477750, + "node_id": "RA_kwDOBPZW984EvLv2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2092993, + "download_count": 389, + "created_at": "2022-09-30T01:04:52Z", + "updated_at": "2022-09-30T01:04:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477765", + "id": 79477765, + "node_id": "RA_kwDOBPZW984EvLwF", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2240708, + "download_count": 505, + "created_at": "2022-09-30T01:04:57Z", + "updated_at": "2022-09-30T01:04:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477771", + "id": 79477771, + "node_id": "RA_kwDOBPZW984EvLwL", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2241408, + "download_count": 148, + "created_at": "2022-09-30T01:05:00Z", + "updated_at": "2022-09-30T01:05:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477759", + "id": 79477759, + "node_id": "RA_kwDOBPZW984EvLv_", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2168742, + "download_count": 57344, + "created_at": "2022-09-30T01:04:56Z", + "updated_at": "2022-09-30T01:04:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477766", + "id": 79477766, + "node_id": "RA_kwDOBPZW984EvLwG", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2126568, + "download_count": 20, + "created_at": "2022-09-30T01:04:57Z", + "updated_at": "2022-09-30T01:04:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477773", + "id": 79477773, + "node_id": "RA_kwDOBPZW984EvLwN", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2128450, + "download_count": 12, + "created_at": "2022-09-30T01:05:00Z", + "updated_at": "2022-09-30T01:05:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477758", + "id": 79477758, + "node_id": "RA_kwDOBPZW984EvLv-", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2071562, + "download_count": 30, + "created_at": "2022-09-30T01:04:55Z", + "updated_at": "2022-09-30T01:04:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477768", + "id": 79477768, + "node_id": "RA_kwDOBPZW984EvLwI", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2040250, + "download_count": 70, + "created_at": "2022-09-30T01:04:58Z", + "updated_at": "2022-09-30T01:05:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477769", + "id": 79477769, + "node_id": "RA_kwDOBPZW984EvLwJ", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2042683, + "download_count": 2340, + "created_at": "2022-09-30T01:04:58Z", + "updated_at": "2022-09-30T01:04:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477761", + "id": 79477761, + "node_id": "RA_kwDOBPZW984EvLwB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1984955, + "download_count": 812, + "created_at": "2022-09-30T01:04:56Z", + "updated_at": "2022-09-30T01:04:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477757", + "id": 79477757, + "node_id": "RA_kwDOBPZW984EvLv9", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2241149, + "download_count": 134, + "created_at": "2022-09-30T01:04:55Z", + "updated_at": "2022-09-30T01:04:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477754", + "id": 79477754, + "node_id": "RA_kwDOBPZW984EvLv6", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2276933, + "download_count": 2296, + "created_at": "2022-09-30T01:04:54Z", + "updated_at": "2022-09-30T01:04:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477753", + "id": 79477753, + "node_id": "RA_kwDOBPZW984EvLv5", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2193622, + "download_count": 15, + "created_at": "2022-09-30T01:04:53Z", + "updated_at": "2022-09-30T01:04:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/79477755", + "id": 79477755, + "node_id": "RA_kwDOBPZW984EvLv7", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2082654, + "download_count": 19, + "created_at": "2022-09-30T01:04:54Z", + "updated_at": "2022-09-30T01:04:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.16.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.16.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.16.0", + "body": "- Add `npm` as new installation method: `npm i -g @go-task/cli` ([#870](https://github.com/go-task/task/issues/870), [#871](https://github.com/go-task/task/pull/871), [npm package](https://www.npmjs.com/package/@go-task/cli)).\r\n- Add support to marking tasks and includes as internal, which will hide them from `--list` and `--list-all` ([#818](https://github.com/go-task/task/pull/818)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/78646338/reactions", + "total_count": 7, + "+1": 2, + "-1": 0, + "laugh": 0, + "hooray": 4, + "confused": 0, + "heart": 0, + "rocket": 1, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/76657592", + "assets_url": "https://api.github.com/repos/go-task/task/releases/76657592/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/76657592/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.15.2", + "id": 76657592, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984EkbO4", + "tag_name": "v3.15.2", + "target_commitish": "master", + "name": "v3.15.2", + "draft": false, + "prerelease": false, + "created_at": "2022-09-09T00:28:54Z", + "published_at": "2022-09-09T00:33:33Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301322", + "id": 77301322, + "node_id": "RA_kwDOBPZW984Em4ZK", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 34304, + "created_at": "2022-09-09T00:32:08Z", + "updated_at": "2022-09-09T00:32:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301306", + "id": 77301306, + "node_id": "RA_kwDOBPZW984Em4Y6", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2246906, + "download_count": 4629, + "created_at": "2022-09-09T00:32:05Z", + "updated_at": "2022-09-09T00:32:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301307", + "id": 77301307, + "node_id": "RA_kwDOBPZW984Em4Y7", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2148327, + "download_count": 1370, + "created_at": "2022-09-09T00:32:05Z", + "updated_at": "2022-09-09T00:32:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301316", + "id": 77301316, + "node_id": "RA_kwDOBPZW984Em4ZE", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2152810, + "download_count": 126, + "created_at": "2022-09-09T00:32:07Z", + "updated_at": "2022-09-09T00:32:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301317", + "id": 77301317, + "node_id": "RA_kwDOBPZW984Em4ZF", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2155223, + "download_count": 120, + "created_at": "2022-09-09T00:32:07Z", + "updated_at": "2022-09-09T00:32:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301299", + "id": 77301299, + "node_id": "RA_kwDOBPZW984Em4Yz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2092192, + "download_count": 161, + "created_at": "2022-09-09T00:32:03Z", + "updated_at": "2022-09-09T00:32:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301315", + "id": 77301315, + "node_id": "RA_kwDOBPZW984Em4ZD", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2240226, + "download_count": 793, + "created_at": "2022-09-09T00:32:07Z", + "updated_at": "2022-09-09T00:32:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301318", + "id": 77301318, + "node_id": "RA_kwDOBPZW984Em4ZG", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2241004, + "download_count": 162, + "created_at": "2022-09-09T00:32:07Z", + "updated_at": "2022-09-09T00:32:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301301", + "id": 77301301, + "node_id": "RA_kwDOBPZW984Em4Y1", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2168479, + "download_count": 91698, + "created_at": "2022-09-09T00:32:04Z", + "updated_at": "2022-09-09T00:32:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301313", + "id": 77301313, + "node_id": "RA_kwDOBPZW984Em4ZB", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2127970, + "download_count": 15, + "created_at": "2022-09-09T00:32:06Z", + "updated_at": "2022-09-09T00:32:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301321", + "id": 77301321, + "node_id": "RA_kwDOBPZW984Em4ZJ", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2129817, + "download_count": 12, + "created_at": "2022-09-09T00:32:08Z", + "updated_at": "2022-09-09T00:32:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301308", + "id": 77301308, + "node_id": "RA_kwDOBPZW984Em4Y8", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2070437, + "download_count": 37, + "created_at": "2022-09-09T00:32:05Z", + "updated_at": "2022-09-09T00:32:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301311", + "id": 77301311, + "node_id": "RA_kwDOBPZW984Em4Y_", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2039120, + "download_count": 69, + "created_at": "2022-09-09T00:32:06Z", + "updated_at": "2022-09-09T00:32:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301320", + "id": 77301320, + "node_id": "RA_kwDOBPZW984Em4ZI", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2040019, + "download_count": 61, + "created_at": "2022-09-09T00:32:08Z", + "updated_at": "2022-09-09T00:32:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301302", + "id": 77301302, + "node_id": "RA_kwDOBPZW984Em4Y2", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1982754, + "download_count": 1052, + "created_at": "2022-09-09T00:32:04Z", + "updated_at": "2022-09-09T00:32:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301303", + "id": 77301303, + "node_id": "RA_kwDOBPZW984Em4Y3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2240515, + "download_count": 143, + "created_at": "2022-09-09T00:32:04Z", + "updated_at": "2022-09-09T00:32:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301304", + "id": 77301304, + "node_id": "RA_kwDOBPZW984Em4Y4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2276601, + "download_count": 2392, + "created_at": "2022-09-09T00:32:04Z", + "updated_at": "2022-09-09T00:32:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301305", + "id": 77301305, + "node_id": "RA_kwDOBPZW984Em4Y5", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2192523, + "download_count": 22, + "created_at": "2022-09-09T00:32:05Z", + "updated_at": "2022-09-09T00:32:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/77301300", + "id": 77301300, + "node_id": "RA_kwDOBPZW984Em4Y0", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2080274, + "download_count": 28, + "created_at": "2022-09-09T00:32:03Z", + "updated_at": "2022-09-09T00:32:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.2/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.15.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.15.2", + "body": "- Fix error when using variable in `env:` introduced in the previous release ([#858](https://github.com/go-task/task/issues/858), [#866](https://github.com/go-task/task/pull/866)).\r\n- Fix handling of `CLI_ARGS` (`--`) in Bash completion ([#863](https://github.com/go-task/task/pull/863)).\r\n- On zsh completion, add ability to replace `--list-all` with `--list` as already possible on the Bash completion ([#861](https://github.com/go-task/task/pull/861)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/76657592/reactions", + "total_count": 4, + "+1": 4, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/76214284", + "assets_url": "https://api.github.com/repos/go-task/task/releases/76214284/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/76214284/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.15.0", + "id": 76214284, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984EivAM", + "tag_name": "v3.15.0", + "target_commitish": "master", + "name": "v3.15.0", + "draft": false, + "prerelease": false, + "created_at": "2022-09-03T21:21:48Z", + "published_at": "2022-09-03T21:25:41Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786328", + "id": 76786328, + "node_id": "RA_kwDOBPZW984Ek6qY", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 7677, + "created_at": "2022-09-03T21:24:28Z", + "updated_at": "2022-09-03T21:24:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786303", + "id": 76786303, + "node_id": "RA_kwDOBPZW984Ek6p_", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2246670, + "download_count": 1311, + "created_at": "2022-09-03T21:24:24Z", + "updated_at": "2022-09-03T21:24:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786302", + "id": 76786302, + "node_id": "RA_kwDOBPZW984Ek6p-", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2148062, + "download_count": 596, + "created_at": "2022-09-03T21:24:24Z", + "updated_at": "2022-09-03T21:24:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786322", + "id": 76786322, + "node_id": "RA_kwDOBPZW984Ek6qS", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2152700, + "download_count": 122, + "created_at": "2022-09-03T21:24:27Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786324", + "id": 76786324, + "node_id": "RA_kwDOBPZW984Ek6qU", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2154927, + "download_count": 122, + "created_at": "2022-09-03T21:24:27Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786309", + "id": 76786309, + "node_id": "RA_kwDOBPZW984Ek6qF", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2091984, + "download_count": 131, + "created_at": "2022-09-03T21:24:26Z", + "updated_at": "2022-09-03T21:24:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786323", + "id": 76786323, + "node_id": "RA_kwDOBPZW984Ek6qT", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2240040, + "download_count": 723, + "created_at": "2022-09-03T21:24:27Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786326", + "id": 76786326, + "node_id": "RA_kwDOBPZW984Ek6qW", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2240736, + "download_count": 133, + "created_at": "2022-09-03T21:24:27Z", + "updated_at": "2022-09-03T21:24:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786318", + "id": 76786318, + "node_id": "RA_kwDOBPZW984Ek6qO", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2168338, + "download_count": 17960, + "created_at": "2022-09-03T21:24:26Z", + "updated_at": "2022-09-03T21:24:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786320", + "id": 76786320, + "node_id": "RA_kwDOBPZW984Ek6qQ", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2127808, + "download_count": 13, + "created_at": "2022-09-03T21:24:26Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786325", + "id": 76786325, + "node_id": "RA_kwDOBPZW984Ek6qV", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2129573, + "download_count": 13, + "created_at": "2022-09-03T21:24:27Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786317", + "id": 76786317, + "node_id": "RA_kwDOBPZW984Ek6qN", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2070214, + "download_count": 19, + "created_at": "2022-09-03T21:24:26Z", + "updated_at": "2022-09-03T21:24:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786319", + "id": 76786319, + "node_id": "RA_kwDOBPZW984Ek6qP", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2038936, + "download_count": 20, + "created_at": "2022-09-03T21:24:26Z", + "updated_at": "2022-09-03T21:24:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786327", + "id": 76786327, + "node_id": "RA_kwDOBPZW984Ek6qX", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2039990, + "download_count": 15, + "created_at": "2022-09-03T21:24:28Z", + "updated_at": "2022-09-03T21:24:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786305", + "id": 76786305, + "node_id": "RA_kwDOBPZW984Ek6qB", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1982534, + "download_count": 326, + "created_at": "2022-09-03T21:24:24Z", + "updated_at": "2022-09-03T21:24:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786304", + "id": 76786304, + "node_id": "RA_kwDOBPZW984Ek6qA", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2240290, + "download_count": 137, + "created_at": "2022-09-03T21:24:24Z", + "updated_at": "2022-09-03T21:24:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786307", + "id": 76786307, + "node_id": "RA_kwDOBPZW984Ek6qD", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2276373, + "download_count": 654, + "created_at": "2022-09-03T21:24:25Z", + "updated_at": "2022-09-03T21:24:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786306", + "id": 76786306, + "node_id": "RA_kwDOBPZW984Ek6qC", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2192282, + "download_count": 35, + "created_at": "2022-09-03T21:24:25Z", + "updated_at": "2022-09-03T21:24:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/76786308", + "id": 76786308, + "node_id": "RA_kwDOBPZW984Ek6qE", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2080043, + "download_count": 18, + "created_at": "2022-09-03T21:24:25Z", + "updated_at": "2022-09-03T21:24:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.15.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.15.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.15.0", + "body": "- Add new special variables `ROOT_DIR` and `TASKFILE_DIR`. This was a highly requested feature ([#215](https://github.com/go-task/task/issues/215), [#857](https://github.com/go-task/task/pull/857), [Documentation](https://taskfile.dev/api/#special-variables)).\r\n- Follow symlinks on `sources` ([#826](https://github.com/go-task/task/issues/826), [#831](https://github.com/go-task/task/pull/831)).\r\n- Improvements and fixes to Bash completion ([#835](https://github.com/go-task/task/pull/835), [#844](https://github.com/go-task/task/pull/844)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/76214284/reactions", + "total_count": 10, + "+1": 10, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/73596056", + "assets_url": "https://api.github.com/repos/go-task/task/releases/73596056/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/73596056/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.14.1", + "id": 73596056, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984EYvyY", + "tag_name": "v3.14.1", + "target_commitish": "master", + "name": "v3.14.1", + "draft": false, + "prerelease": false, + "created_at": "2022-08-04T01:08:23Z", + "published_at": "2022-08-04T01:18:13Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620547", + "id": 73620547, + "node_id": "RA_kwDOBPZW984EY1xD", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 63183, + "created_at": "2022-08-04T01:11:07Z", + "updated_at": "2022-08-04T01:11:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620525", + "id": 73620525, + "node_id": "RA_kwDOBPZW984EY1wt", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2246683, + "download_count": 6154, + "created_at": "2022-08-04T01:11:02Z", + "updated_at": "2022-08-04T01:11:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620534", + "id": 73620534, + "node_id": "RA_kwDOBPZW984EY1w2", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2149081, + "download_count": 1509, + "created_at": "2022-08-04T01:11:03Z", + "updated_at": "2022-08-04T01:11:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620539", + "id": 73620539, + "node_id": "RA_kwDOBPZW984EY1w7", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2153004, + "download_count": 137, + "created_at": "2022-08-04T01:11:05Z", + "updated_at": "2022-08-04T01:11:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620543", + "id": 73620543, + "node_id": "RA_kwDOBPZW984EY1w_", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2154375, + "download_count": 125, + "created_at": "2022-08-04T01:11:06Z", + "updated_at": "2022-08-04T01:11:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620536", + "id": 73620536, + "node_id": "RA_kwDOBPZW984EY1w4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2092272, + "download_count": 168, + "created_at": "2022-08-04T01:11:04Z", + "updated_at": "2022-08-04T01:11:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620540", + "id": 73620540, + "node_id": "RA_kwDOBPZW984EY1w8", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2238086, + "download_count": 951, + "created_at": "2022-08-04T01:11:05Z", + "updated_at": "2022-08-04T01:11:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620546", + "id": 73620546, + "node_id": "RA_kwDOBPZW984EY1xC", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2238657, + "download_count": 163, + "created_at": "2022-08-04T01:11:06Z", + "updated_at": "2022-08-04T01:11:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620535", + "id": 73620535, + "node_id": "RA_kwDOBPZW984EY1w3", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2168750, + "download_count": 216726, + "created_at": "2022-08-04T01:11:04Z", + "updated_at": "2022-08-04T01:11:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620541", + "id": 73620541, + "node_id": "RA_kwDOBPZW984EY1w9", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2124778, + "download_count": 16, + "created_at": "2022-08-04T01:11:05Z", + "updated_at": "2022-08-04T01:11:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620544", + "id": 73620544, + "node_id": "RA_kwDOBPZW984EY1xA", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2125877, + "download_count": 13, + "created_at": "2022-08-04T01:11:06Z", + "updated_at": "2022-08-04T01:11:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620528", + "id": 73620528, + "node_id": "RA_kwDOBPZW984EY1ww", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2070505, + "download_count": 42, + "created_at": "2022-08-04T01:11:03Z", + "updated_at": "2022-08-04T01:11:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620542", + "id": 73620542, + "node_id": "RA_kwDOBPZW984EY1w-", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2038570, + "download_count": 68, + "created_at": "2022-08-04T01:11:05Z", + "updated_at": "2022-08-04T01:11:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620545", + "id": 73620545, + "node_id": "RA_kwDOBPZW984EY1xB", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2039915, + "download_count": 17, + "created_at": "2022-08-04T01:11:06Z", + "updated_at": "2022-08-04T01:11:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620537", + "id": 73620537, + "node_id": "RA_kwDOBPZW984EY1w5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1982808, + "download_count": 5847, + "created_at": "2022-08-04T01:11:04Z", + "updated_at": "2022-08-04T01:11:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620538", + "id": 73620538, + "node_id": "RA_kwDOBPZW984EY1w6", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2239841, + "download_count": 145, + "created_at": "2022-08-04T01:11:04Z", + "updated_at": "2022-08-04T01:11:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620533", + "id": 73620533, + "node_id": "RA_kwDOBPZW984EY1w1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2276065, + "download_count": 3203, + "created_at": "2022-08-04T01:11:03Z", + "updated_at": "2022-08-04T01:11:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620526", + "id": 73620526, + "node_id": "RA_kwDOBPZW984EY1wu", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2193122, + "download_count": 20, + "created_at": "2022-08-04T01:11:02Z", + "updated_at": "2022-08-04T01:11:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/73620529", + "id": 73620529, + "node_id": "RA_kwDOBPZW984EY1wx", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2080047, + "download_count": 29, + "created_at": "2022-08-04T01:11:03Z", + "updated_at": "2022-08-04T01:11:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.14.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.14.1", + "body": "- Always resolve relative include paths relative to the including Taskfile ([#822](https://github.com/go-task/task/issues/822), [#823](https://github.com/go-task/task/pull/823)).\r\n- Fix ZSH and PowerShell completions to consider all tasks instead of just the public ones (those with descriptions) ([#803](https://github.com/go-task/task/pull/803)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/73596056/reactions", + "total_count": 4, + "+1": 4, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/71592888", + "assets_url": "https://api.github.com/repos/go-task/task/releases/71592888/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/71592888/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.14.0", + "id": 71592888, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984ERGu4", + "tag_name": "v3.14.0", + "target_commitish": "master", + "name": "v3.14.0", + "draft": false, + "prerelease": false, + "created_at": "2022-07-08T18:19:42Z", + "published_at": "2022-07-08T18:24:27Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995378", + "id": 70995378, + "node_id": "RA_kwDOBPZW984EO02y", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 651346, + "created_at": "2022-07-08T18:22:29Z", + "updated_at": "2022-07-08T18:22:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995359", + "id": 70995359, + "node_id": "RA_kwDOBPZW984EO02f", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2194096, + "download_count": 5285, + "created_at": "2022-07-08T18:22:26Z", + "updated_at": "2022-07-08T18:22:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995360", + "id": 70995360, + "node_id": "RA_kwDOBPZW984EO02g", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2108518, + "download_count": 1214, + "created_at": "2022-07-08T18:22:26Z", + "updated_at": "2022-07-08T18:22:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995367", + "id": 70995367, + "node_id": "RA_kwDOBPZW984EO02n", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2103720, + "download_count": 137, + "created_at": "2022-07-08T18:22:27Z", + "updated_at": "2022-07-08T18:22:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995372", + "id": 70995372, + "node_id": "RA_kwDOBPZW984EO02s", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2107065, + "download_count": 126, + "created_at": "2022-07-08T18:22:28Z", + "updated_at": "2022-07-08T18:22:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995350", + "id": 70995350, + "node_id": "RA_kwDOBPZW984EO02W", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2044308, + "download_count": 159, + "created_at": "2022-07-08T18:22:24Z", + "updated_at": "2022-07-08T18:22:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995366", + "id": 70995366, + "node_id": "RA_kwDOBPZW984EO02m", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2186486, + "download_count": 5235, + "created_at": "2022-07-08T18:22:27Z", + "updated_at": "2022-07-08T18:22:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995373", + "id": 70995373, + "node_id": "RA_kwDOBPZW984EO02t", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2186739, + "download_count": 477, + "created_at": "2022-07-08T18:22:28Z", + "updated_at": "2022-07-08T18:22:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995364", + "id": 70995364, + "node_id": "RA_kwDOBPZW984EO02k", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2118880, + "download_count": 1458042, + "created_at": "2022-07-08T18:22:27Z", + "updated_at": "2022-07-08T18:22:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995370", + "id": 70995370, + "node_id": "RA_kwDOBPZW984EO02q", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2086040, + "download_count": 19, + "created_at": "2022-07-08T18:22:27Z", + "updated_at": "2022-07-08T18:22:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995376", + "id": 70995376, + "node_id": "RA_kwDOBPZW984EO02w", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2086266, + "download_count": 12, + "created_at": "2022-07-08T18:22:28Z", + "updated_at": "2022-07-08T18:22:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995362", + "id": 70995362, + "node_id": "RA_kwDOBPZW984EO02i", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2026842, + "download_count": 276, + "created_at": "2022-07-08T18:22:26Z", + "updated_at": "2022-07-08T18:22:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995369", + "id": 70995369, + "node_id": "RA_kwDOBPZW984EO02p", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2000624, + "download_count": 94, + "created_at": "2022-07-08T18:22:27Z", + "updated_at": "2022-07-08T18:22:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995375", + "id": 70995375, + "node_id": "RA_kwDOBPZW984EO02v", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2001806, + "download_count": 19, + "created_at": "2022-07-08T18:22:28Z", + "updated_at": "2022-07-08T18:22:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995353", + "id": 70995353, + "node_id": "RA_kwDOBPZW984EO02Z", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1943374, + "download_count": 2199, + "created_at": "2022-07-08T18:22:25Z", + "updated_at": "2022-07-08T18:22:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995354", + "id": 70995354, + "node_id": "RA_kwDOBPZW984EO02a", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2013484, + "download_count": 247, + "created_at": "2022-07-08T18:22:25Z", + "updated_at": "2022-07-08T18:22:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995349", + "id": 70995349, + "node_id": "RA_kwDOBPZW984EO02V", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2051686, + "download_count": 2519, + "created_at": "2022-07-08T18:22:24Z", + "updated_at": "2022-07-08T18:22:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995356", + "id": 70995356, + "node_id": "RA_kwDOBPZW984EO02c", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1975628, + "download_count": 15, + "created_at": "2022-07-08T18:22:25Z", + "updated_at": "2022-07-08T18:22:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/70995357", + "id": 70995357, + "node_id": "RA_kwDOBPZW984EO02d", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1881689, + "download_count": 38, + "created_at": "2022-07-08T18:22:26Z", + "updated_at": "2022-07-08T18:22:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.14.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.14.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.14.0", + "body": "- Add ability to override the `.task` directory location with the `TASK_TEMP_DIR` environment variable.\r\n- Allow to override Task colors using environment variables: `TASK_COLOR_RESET`, `TASK_COLOR_BLUE`, `TASK_COLOR_GREEN`, `TASK_COLOR_CYAN`, `TASK_COLOR_YELLOW`, `TASK_COLOR_MAGENTA` and `TASK_COLOR_RED` ([#568](https://github.com/go-task/task/pull/568), [#792](https://github.com/go-task/task/pull/792)).\r\n- Fixed bug when using the `output: group` mode where STDOUT and STDERR were being print in separated blocks instead of in the right order ([#779](https://github.com/go-task/task/issues/779)).\r\n- Starting on this release, ARM architecture binaries are been released to Snap as well ([#795](https://github.com/go-task/task/issues/795)).\r\n- i386 binaries won't be available anymore on Snap because Ubuntu removed the support for this architecture.\r\n- Upgrade mvdan.cc/sh, which fixes a bug with associative arrays ([#785](https://github.com/go-task/task/issues/785), [mvdan/sh#884](https://github.com/mvdan/sh/issues/884), [mvdan/sh#893](https://github.com/mvdan/sh/pull/893)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/71592888/reactions", + "total_count": 6, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 6, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/69349352", + "assets_url": "https://api.github.com/repos/go-task/task/releases/69349352/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/69349352/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.13.0", + "id": 69349352, + "author": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984EIi_o", + "tag_name": "v3.13.0", + "target_commitish": "master", + "name": "v3.13.0", + "draft": false, + "prerelease": false, + "created_at": "2022-06-14T00:08:49Z", + "published_at": "2022-06-14T00:16:05Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388789", + "id": 68388789, + "node_id": "RA_kwDOBPZW984EE4e1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 26126, + "created_at": "2022-06-14T00:11:51Z", + "updated_at": "2022-06-14T00:11:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388797", + "id": 68388797, + "node_id": "RA_kwDOBPZW984EE4e9", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2186333, + "download_count": 4170, + "created_at": "2022-06-14T00:11:53Z", + "updated_at": "2022-06-14T00:11:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388809", + "id": 68388809, + "node_id": "RA_kwDOBPZW984EE4fJ", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2101269, + "download_count": 1055, + "created_at": "2022-06-14T00:11:56Z", + "updated_at": "2022-06-14T00:11:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388804", + "id": 68388804, + "node_id": "RA_kwDOBPZW984EE4fE", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2095086, + "download_count": 131, + "created_at": "2022-06-14T00:11:55Z", + "updated_at": "2022-06-14T00:11:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388802", + "id": 68388802, + "node_id": "RA_kwDOBPZW984EE4fC", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2094655, + "download_count": 123, + "created_at": "2022-06-14T00:11:54Z", + "updated_at": "2022-06-14T00:11:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388788", + "id": 68388788, + "node_id": "RA_kwDOBPZW984EE4e0", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2036346, + "download_count": 127, + "created_at": "2022-06-14T00:11:51Z", + "updated_at": "2022-06-14T00:11:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388805", + "id": 68388805, + "node_id": "RA_kwDOBPZW984EE4fF", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2179836, + "download_count": 7196, + "created_at": "2022-06-14T00:11:55Z", + "updated_at": "2022-06-14T00:11:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388800", + "id": 68388800, + "node_id": "RA_kwDOBPZW984EE4fA", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2181219, + "download_count": 185, + "created_at": "2022-06-14T00:11:54Z", + "updated_at": "2022-06-14T00:11:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388794", + "id": 68388794, + "node_id": "RA_kwDOBPZW984EE4e6", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2111613, + "download_count": 60103, + "created_at": "2022-06-14T00:11:53Z", + "updated_at": "2022-06-14T00:11:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388806", + "id": 68388806, + "node_id": "RA_kwDOBPZW984EE4fG", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2072700, + "download_count": 15, + "created_at": "2022-06-14T00:11:55Z", + "updated_at": "2022-06-14T00:11:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388801", + "id": 68388801, + "node_id": "RA_kwDOBPZW984EE4fB", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2072167, + "download_count": 13, + "created_at": "2022-06-14T00:11:54Z", + "updated_at": "2022-06-14T00:11:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388790", + "id": 68388790, + "node_id": "RA_kwDOBPZW984EE4e2", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2020024, + "download_count": 17, + "created_at": "2022-06-14T00:11:52Z", + "updated_at": "2022-06-14T00:11:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388803", + "id": 68388803, + "node_id": "RA_kwDOBPZW984EE4fD", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1994912, + "download_count": 84, + "created_at": "2022-06-14T00:11:54Z", + "updated_at": "2022-06-14T00:11:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388807", + "id": 68388807, + "node_id": "RA_kwDOBPZW984EE4fH", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1995161, + "download_count": 13, + "created_at": "2022-06-14T00:11:55Z", + "updated_at": "2022-06-14T00:11:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388796", + "id": 68388796, + "node_id": "RA_kwDOBPZW984EE4e8", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1938476, + "download_count": 1129, + "created_at": "2022-06-14T00:11:53Z", + "updated_at": "2022-06-14T00:11:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388795", + "id": 68388795, + "node_id": "RA_kwDOBPZW984EE4e7", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2006349, + "download_count": 143, + "created_at": "2022-06-14T00:11:53Z", + "updated_at": "2022-06-14T00:11:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388793", + "id": 68388793, + "node_id": "RA_kwDOBPZW984EE4e5", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2044429, + "download_count": 2709, + "created_at": "2022-06-14T00:11:52Z", + "updated_at": "2022-06-14T00:11:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388792", + "id": 68388792, + "node_id": "RA_kwDOBPZW984EE4e4", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1970853, + "download_count": 19, + "created_at": "2022-06-14T00:11:52Z", + "updated_at": "2022-06-14T00:11:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/68388791", + "id": 68388791, + "node_id": "RA_kwDOBPZW984EE4e3", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "task-bot", + "id": 106601941, + "node_id": "U_kgDOBlqd1Q", + "avatar_url": "https://avatars.githubusercontent.com/u/106601941?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/task-bot", + "html_url": "https://github.com/task-bot", + "followers_url": "https://api.github.com/users/task-bot/followers", + "following_url": "https://api.github.com/users/task-bot/following{/other_user}", + "gists_url": "https://api.github.com/users/task-bot/gists{/gist_id}", + "starred_url": "https://api.github.com/users/task-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/task-bot/subscriptions", + "organizations_url": "https://api.github.com/users/task-bot/orgs", + "repos_url": "https://api.github.com/users/task-bot/repos", + "events_url": "https://api.github.com/users/task-bot/events{/privacy}", + "received_events_url": "https://api.github.com/users/task-bot/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1878240, + "download_count": 36, + "created_at": "2022-06-14T00:11:52Z", + "updated_at": "2022-06-14T00:11:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.13.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.13.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.13.0", + "body": "- Added `-n` as an alias to `--dry` ([#776](https://github.com/go-task/task/issues/776), [#777](https://github.com/go-task/task/pull/777)).\r\n- Fix behavior of interrupt (SIGINT, SIGTERM) signals. Task will now give time for the processes running to do cleanup work ([#458](https://github.com/go-task/task/issues/458), [#479](https://github.com/go-task/task/pull/479), [#728](https://github.com/go-task/task/issues/728)).\r\n- Add new `--exit-code` (`-x`) flag that will pass-through the exit form the command being ran ([#755](https://github.com/go-task/task/pull/755)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/69349352/reactions", + "total_count": 7, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 7, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/66516728", + "assets_url": "https://api.github.com/repos/go-task/task/releases/66516728/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/66516728/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.12.1", + "id": 66516728, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984D9vb4", + "tag_name": "v3.12.1", + "target_commitish": "master", + "name": "v3.12.1", + "draft": false, + "prerelease": false, + "created_at": "2022-05-10T21:00:56Z", + "published_at": "2022-05-10T21:04:05Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100469", + "id": 65100469, + "node_id": "RA_kwDOBPZW984D4Vq1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 33820, + "created_at": "2022-05-10T21:03:12Z", + "updated_at": "2022-05-10T21:03:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100470", + "id": 65100470, + "node_id": "RA_kwDOBPZW984D4Vq2", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2130183, + "download_count": 6174, + "created_at": "2022-05-10T21:03:12Z", + "updated_at": "2022-05-10T21:03:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100476", + "id": 65100476, + "node_id": "RA_kwDOBPZW984D4Vq8", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2042304, + "download_count": 1062, + "created_at": "2022-05-10T21:03:14Z", + "updated_at": "2022-05-10T21:03:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100489", + "id": 65100489, + "node_id": "RA_kwDOBPZW984D4VrJ", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2045204, + "download_count": 131, + "created_at": "2022-05-10T21:03:16Z", + "updated_at": "2022-05-10T21:03:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100486", + "id": 65100486, + "node_id": "RA_kwDOBPZW984D4VrG", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2049225, + "download_count": 125, + "created_at": "2022-05-10T21:03:16Z", + "updated_at": "2022-05-10T21:03:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100479", + "id": 65100479, + "node_id": "RA_kwDOBPZW984D4Vq_", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1983892, + "download_count": 135, + "created_at": "2022-05-10T21:03:14Z", + "updated_at": "2022-05-10T21:03:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100484", + "id": 65100484, + "node_id": "RA_kwDOBPZW984D4VrE", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2127090, + "download_count": 139959, + "created_at": "2022-05-10T21:03:15Z", + "updated_at": "2022-05-10T21:03:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100485", + "id": 65100485, + "node_id": "RA_kwDOBPZW984D4VrF", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2128346, + "download_count": 11922, + "created_at": "2022-05-10T21:03:15Z", + "updated_at": "2022-05-10T21:03:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100478", + "id": 65100478, + "node_id": "RA_kwDOBPZW984D4Vq-", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2056529, + "download_count": 97616, + "created_at": "2022-05-10T21:03:14Z", + "updated_at": "2022-05-10T21:03:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100488", + "id": 65100488, + "node_id": "RA_kwDOBPZW984D4VrI", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2023314, + "download_count": 22, + "created_at": "2022-05-10T21:03:16Z", + "updated_at": "2022-05-10T21:03:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100474", + "id": 65100474, + "node_id": "RA_kwDOBPZW984D4Vq6", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2024455, + "download_count": 16, + "created_at": "2022-05-10T21:03:14Z", + "updated_at": "2022-05-10T21:03:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100477", + "id": 65100477, + "node_id": "RA_kwDOBPZW984D4Vq9", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1967500, + "download_count": 738, + "created_at": "2022-05-10T21:03:14Z", + "updated_at": "2022-05-10T21:03:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100487", + "id": 65100487, + "node_id": "RA_kwDOBPZW984D4VrH", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1939514, + "download_count": 88, + "created_at": "2022-05-10T21:03:16Z", + "updated_at": "2022-05-10T21:03:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100490", + "id": 65100490, + "node_id": "RA_kwDOBPZW984D4VrK", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1941157, + "download_count": 228, + "created_at": "2022-05-10T21:03:17Z", + "updated_at": "2022-05-10T21:03:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100473", + "id": 65100473, + "node_id": "RA_kwDOBPZW984D4Vq5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1881713, + "download_count": 1710, + "created_at": "2022-05-10T21:03:13Z", + "updated_at": "2022-05-10T21:03:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100482", + "id": 65100482, + "node_id": "RA_kwDOBPZW984D4VrC", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1949437, + "download_count": 146, + "created_at": "2022-05-10T21:03:15Z", + "updated_at": "2022-05-10T21:03:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100472", + "id": 65100472, + "node_id": "RA_kwDOBPZW984D4Vq4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1983437, + "download_count": 3145, + "created_at": "2022-05-10T21:03:13Z", + "updated_at": "2022-05-10T21:03:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100471", + "id": 65100471, + "node_id": "RA_kwDOBPZW984D4Vq3", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1912769, + "download_count": 18, + "created_at": "2022-05-10T21:03:13Z", + "updated_at": "2022-05-10T21:03:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/65100481", + "id": 65100481, + "node_id": "RA_kwDOBPZW984D4VrB", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1820117, + "download_count": 36, + "created_at": "2022-05-10T21:03:15Z", + "updated_at": "2022-05-10T21:03:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.12.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.12.1", + "body": "- Fixed bug where, on Windows, variables were ending with `\\r` because we were only removing the final `\\n` but not `\\r\\n` ([#717](https://github.com/go-task/task/issues/717)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/66516728/reactions", + "total_count": 5, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 2, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/63334399", + "assets_url": "https://api.github.com/repos/go-task/task/releases/63334399/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/63334399/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.12.0", + "id": 63334399, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Dxmf_", + "tag_name": "v3.12.0", + "target_commitish": "master", + "name": "v3.12.0", + "draft": false, + "prerelease": false, + "created_at": "2022-04-01T00:45:05Z", + "published_at": "2022-04-01T00:55:50Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210594", + "id": 61210594, + "node_id": "RA_kwDOBPZW984Dpf_i", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 38558, + "created_at": "2022-04-01T00:48:17Z", + "updated_at": "2022-04-01T00:48:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210615", + "id": 61210615, + "node_id": "RA_kwDOBPZW984Dpf_3", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2129546, + "download_count": 5696, + "created_at": "2022-04-01T00:48:21Z", + "updated_at": "2022-04-01T00:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210620", + "id": 61210620, + "node_id": "RA_kwDOBPZW984Dpf_8", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2041895, + "download_count": 1030, + "created_at": "2022-04-01T00:48:22Z", + "updated_at": "2022-04-01T00:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210602", + "id": 61210602, + "node_id": "RA_kwDOBPZW984Dpf_q", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2046472, + "download_count": 134, + "created_at": "2022-04-01T00:48:19Z", + "updated_at": "2022-04-01T00:48:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210606", + "id": 61210606, + "node_id": "RA_kwDOBPZW984Dpf_u", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2049210, + "download_count": 130, + "created_at": "2022-04-01T00:48:20Z", + "updated_at": "2022-04-01T00:48:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210619", + "id": 61210619, + "node_id": "RA_kwDOBPZW984Dpf_7", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1983656, + "download_count": 152, + "created_at": "2022-04-01T00:48:22Z", + "updated_at": "2022-04-01T00:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210600", + "id": 61210600, + "node_id": "RA_kwDOBPZW984Dpf_o", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2126628, + "download_count": 8380, + "created_at": "2022-04-01T00:48:19Z", + "updated_at": "2022-04-01T00:48:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210605", + "id": 61210605, + "node_id": "RA_kwDOBPZW984Dpf_t", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2128373, + "download_count": 179, + "created_at": "2022-04-01T00:48:20Z", + "updated_at": "2022-04-01T00:48:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210608", + "id": 61210608, + "node_id": "RA_kwDOBPZW984Dpf_w", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2056117, + "download_count": 80854, + "created_at": "2022-04-01T00:48:20Z", + "updated_at": "2022-04-01T00:48:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210603", + "id": 61210603, + "node_id": "RA_kwDOBPZW984Dpf_r", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 2022378, + "download_count": 24, + "created_at": "2022-04-01T00:48:19Z", + "updated_at": "2022-04-01T00:48:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210599", + "id": 61210599, + "node_id": "RA_kwDOBPZW984Dpf_n", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 2024139, + "download_count": 16, + "created_at": "2022-04-01T00:48:18Z", + "updated_at": "2022-04-01T00:48:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210614", + "id": 61210614, + "node_id": "RA_kwDOBPZW984Dpf_2", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1967205, + "download_count": 23, + "created_at": "2022-04-01T00:48:21Z", + "updated_at": "2022-04-01T00:48:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210597", + "id": 61210597, + "node_id": "RA_kwDOBPZW984Dpf_l", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1938954, + "download_count": 141, + "created_at": "2022-04-01T00:48:18Z", + "updated_at": "2022-04-01T00:48:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210604", + "id": 61210604, + "node_id": "RA_kwDOBPZW984Dpf_s", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1940501, + "download_count": 32, + "created_at": "2022-04-01T00:48:20Z", + "updated_at": "2022-04-01T00:48:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210593", + "id": 61210593, + "node_id": "RA_kwDOBPZW984Dpf_h", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1881202, + "download_count": 431, + "created_at": "2022-04-01T00:48:17Z", + "updated_at": "2022-04-01T00:48:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210611", + "id": 61210611, + "node_id": "RA_kwDOBPZW984Dpf_z", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1949194, + "download_count": 253, + "created_at": "2022-04-01T00:48:20Z", + "updated_at": "2022-04-01T00:48:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210596", + "id": 61210596, + "node_id": "RA_kwDOBPZW984Dpf_k", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1983200, + "download_count": 2151, + "created_at": "2022-04-01T00:48:18Z", + "updated_at": "2022-04-01T00:48:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210617", + "id": 61210617, + "node_id": "RA_kwDOBPZW984Dpf_5", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1912671, + "download_count": 19, + "created_at": "2022-04-01T00:48:22Z", + "updated_at": "2022-04-01T00:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/61210613", + "id": 61210613, + "node_id": "RA_kwDOBPZW984Dpf_1", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1819959, + "download_count": 43, + "created_at": "2022-04-01T00:48:21Z", + "updated_at": "2022-04-01T00:48:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.12.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.12.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.12.0", + "body": "- The `--list` and `--list-all` flags can now be combined with the `--silent` flag to print the task names only, without their description ([#691](https://github.com/go-task/task/pull/691)).\r\n- Added support for multi-level inclusion of Taskfiles. This means that included Taskfiles can also include other Taskfiles. Before this was limited to one level ([#390](https://github.com/go-task/task/issues/390), [#623](https://github.com/go-task/task/discussions/623), [#656](https://github.com/go-task/task/pull/656)).\r\n- Add ability to specify vars when including a Taskfile. [Check out the documentation](https://taskfile.dev/#/usage?id=vars-of-included-taskfiles) for more information ([#677](https://github.com/go-task/task/pull/677)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/63334399/reactions", + "total_count": 20, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 3, + "rocket": 9, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/59979443", + "assets_url": "https://api.github.com/repos/go-task/task/releases/59979443/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/59979443/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.11.0", + "id": 59979443, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984Dkzaz", + "tag_name": "v3.11.0", + "target_commitish": "master", + "name": "v3.11.0", + "draft": false, + "prerelease": false, + "created_at": "2022-02-19T22:40:51Z", + "published_at": "2022-02-19T22:45:12Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367697", + "id": 57367697, + "node_id": "RA_kwDOBPZW984Da1yR", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 50470, + "created_at": "2022-02-19T22:43:06Z", + "updated_at": "2022-02-19T22:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367708", + "id": 57367708, + "node_id": "RA_kwDOBPZW984Da1yc", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2020557, + "download_count": 5571, + "created_at": "2022-02-19T22:43:08Z", + "updated_at": "2022-02-19T22:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367700", + "id": 57367700, + "node_id": "RA_kwDOBPZW984Da1yU", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1985722, + "download_count": 825, + "created_at": "2022-02-19T22:43:06Z", + "updated_at": "2022-02-19T22:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367710", + "id": 57367710, + "node_id": "RA_kwDOBPZW984Da1ye", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1851150, + "download_count": 139, + "created_at": "2022-02-19T22:43:09Z", + "updated_at": "2022-02-19T22:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367714", + "id": 57367714, + "node_id": "RA_kwDOBPZW984Da1yi", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1848654, + "download_count": 132, + "created_at": "2022-02-19T22:43:10Z", + "updated_at": "2022-02-19T22:43:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367707", + "id": 57367707, + "node_id": "RA_kwDOBPZW984Da1yb", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1848818, + "download_count": 139, + "created_at": "2022-02-19T22:43:08Z", + "updated_at": "2022-02-19T22:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367713", + "id": 57367713, + "node_id": "RA_kwDOBPZW984Da1yh", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1949894, + "download_count": 2167, + "created_at": "2022-02-19T22:43:09Z", + "updated_at": "2022-02-19T22:43:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367716", + "id": 57367716, + "node_id": "RA_kwDOBPZW984Da1yk", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1947551, + "download_count": 281, + "created_at": "2022-02-19T22:43:10Z", + "updated_at": "2022-02-19T22:43:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367701", + "id": 57367701, + "node_id": "RA_kwDOBPZW984Da1yV", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1945804, + "download_count": 116248, + "created_at": "2022-02-19T22:43:07Z", + "updated_at": "2022-02-19T22:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367712", + "id": 57367712, + "node_id": "RA_kwDOBPZW984Da1yg", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1841112, + "download_count": 18, + "created_at": "2022-02-19T22:43:09Z", + "updated_at": "2022-02-19T22:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367711", + "id": 57367711, + "node_id": "RA_kwDOBPZW984Da1yf", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1839998, + "download_count": 19, + "created_at": "2022-02-19T22:43:09Z", + "updated_at": "2022-02-19T22:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367702", + "id": 57367702, + "node_id": "RA_kwDOBPZW984Da1yW", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1839101, + "download_count": 50, + "created_at": "2022-02-19T22:43:07Z", + "updated_at": "2022-02-19T22:43:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367709", + "id": 57367709, + "node_id": "RA_kwDOBPZW984Da1yd", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1794502, + "download_count": 181, + "created_at": "2022-02-19T22:43:08Z", + "updated_at": "2022-02-19T22:43:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367715", + "id": 57367715, + "node_id": "RA_kwDOBPZW984Da1yj", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1791146, + "download_count": 18, + "created_at": "2022-02-19T22:43:10Z", + "updated_at": "2022-02-19T22:43:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367704", + "id": 57367704, + "node_id": "RA_kwDOBPZW984Da1yY", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1790476, + "download_count": 546, + "created_at": "2022-02-19T22:43:07Z", + "updated_at": "2022-02-19T22:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367698", + "id": 57367698, + "node_id": "RA_kwDOBPZW984Da1yS", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1881655, + "download_count": 172, + "created_at": "2022-02-19T22:43:06Z", + "updated_at": "2022-02-19T22:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367705", + "id": 57367705, + "node_id": "RA_kwDOBPZW984Da1yZ", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1935652, + "download_count": 2326, + "created_at": "2022-02-19T22:43:07Z", + "updated_at": "2022-02-19T22:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367706", + "id": 57367706, + "node_id": "RA_kwDOBPZW984Da1ya", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1850340, + "download_count": 22, + "created_at": "2022-02-19T22:43:08Z", + "updated_at": "2022-02-19T22:43:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/57367699", + "id": 57367699, + "node_id": "RA_kwDOBPZW984Da1yT", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1781782, + "download_count": 46, + "created_at": "2022-02-19T22:43:06Z", + "updated_at": "2022-02-19T22:43:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.11.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.11.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.11.0", + "body": "- Task now supports printing begin and end messages when using the `group` output mode, useful for grouping tasks in CI systems. [Check out the documentation](http://taskfile.dev/#/usage?id=output-syntax) for more information ([#647](https://github.com/go-task/task/issues/647), [#651](https://github.com/go-task/task/pull/651)).\r\n- Add `Taskfile.dist.yml` and `Taskfile.dist.yaml` to the supported file name list. [Check out the documentation](https://taskfile.dev/#/usage?id=supported-file-names) for more information ([#498](https://github.com/go-task/task/issues/498), [#666](https://github.com/go-task/task/pull/666)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/59979443/reactions", + "total_count": 7, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 5, + "rocket": 2, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/56410899", + "assets_url": "https://api.github.com/repos/go-task/task/releases/56410899/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/56410899/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.10.0", + "id": 56410899, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984DXMMT", + "tag_name": "v3.10.0", + "target_commitish": "master", + "name": "v3.10.0", + "draft": false, + "prerelease": false, + "created_at": "2022-01-04T21:20:03Z", + "published_at": "2022-01-04T21:26:56Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205677", + "id": 53205677, + "node_id": "RA_kwDOBPZW984DK9qt", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 49665, + "created_at": "2022-01-04T21:22:42Z", + "updated_at": "2022-01-04T21:22:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205685", + "id": 53205685, + "node_id": "RA_kwDOBPZW984DK9q1", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2016268, + "download_count": 4559, + "created_at": "2022-01-04T21:22:44Z", + "updated_at": "2022-01-04T21:22:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205687", + "id": 53205687, + "node_id": "RA_kwDOBPZW984DK9q3", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1983235, + "download_count": 739, + "created_at": "2022-01-04T21:22:45Z", + "updated_at": "2022-01-04T21:22:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205698", + "id": 53205698, + "node_id": "RA_kwDOBPZW984DK9rC", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1845380, + "download_count": 138, + "created_at": "2022-01-04T21:22:47Z", + "updated_at": "2022-01-04T21:22:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205691", + "id": 53205691, + "node_id": "RA_kwDOBPZW984DK9q7", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1842708, + "download_count": 132, + "created_at": "2022-01-04T21:22:46Z", + "updated_at": "2022-01-04T21:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205678", + "id": 53205678, + "node_id": "RA_kwDOBPZW984DK9qu", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1845004, + "download_count": 533, + "created_at": "2022-01-04T21:22:43Z", + "updated_at": "2022-01-04T21:22:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205697", + "id": 53205697, + "node_id": "RA_kwDOBPZW984DK9rB", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1945264, + "download_count": 10187, + "created_at": "2022-01-04T21:22:47Z", + "updated_at": "2022-01-04T21:22:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205696", + "id": 53205696, + "node_id": "RA_kwDOBPZW984DK9rA", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1941267, + "download_count": 187, + "created_at": "2022-01-04T21:22:47Z", + "updated_at": "2022-01-04T21:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205686", + "id": 53205686, + "node_id": "RA_kwDOBPZW984DK9q2", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1943178, + "download_count": 132460, + "created_at": "2022-01-04T21:22:45Z", + "updated_at": "2022-01-04T21:22:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205689", + "id": 53205689, + "node_id": "RA_kwDOBPZW984DK9q5", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1836018, + "download_count": 26, + "created_at": "2022-01-04T21:22:45Z", + "updated_at": "2022-01-04T21:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205693", + "id": 53205693, + "node_id": "RA_kwDOBPZW984DK9q9", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1834020, + "download_count": 20, + "created_at": "2022-01-04T21:22:46Z", + "updated_at": "2022-01-04T21:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205690", + "id": 53205690, + "node_id": "RA_kwDOBPZW984DK9q6", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1835973, + "download_count": 27, + "created_at": "2022-01-04T21:22:46Z", + "updated_at": "2022-01-04T21:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205694", + "id": 53205694, + "node_id": "RA_kwDOBPZW984DK9q-", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1789300, + "download_count": 36, + "created_at": "2022-01-04T21:22:47Z", + "updated_at": "2022-01-04T21:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205699", + "id": 53205699, + "node_id": "RA_kwDOBPZW984DK9rD", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1786006, + "download_count": 24, + "created_at": "2022-01-04T21:22:48Z", + "updated_at": "2022-01-04T21:22:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205681", + "id": 53205681, + "node_id": "RA_kwDOBPZW984DK9qx", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1787330, + "download_count": 293, + "created_at": "2022-01-04T21:22:43Z", + "updated_at": "2022-01-04T21:22:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205682", + "id": 53205682, + "node_id": "RA_kwDOBPZW984DK9qy", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1878577, + "download_count": 182, + "created_at": "2022-01-04T21:22:44Z", + "updated_at": "2022-01-04T21:22:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205688", + "id": 53205688, + "node_id": "RA_kwDOBPZW984DK9q4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1931938, + "download_count": 2228, + "created_at": "2022-01-04T21:22:45Z", + "updated_at": "2022-01-04T21:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205684", + "id": 53205684, + "node_id": "RA_kwDOBPZW984DK9q0", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1848007, + "download_count": 25, + "created_at": "2022-01-04T21:22:44Z", + "updated_at": "2022-01-04T21:22:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/53205676", + "id": 53205676, + "node_id": "RA_kwDOBPZW984DK9qs", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1777739, + "download_count": 41, + "created_at": "2022-01-04T21:22:42Z", + "updated_at": "2022-01-04T21:22:44Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.10.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.10.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.10.0", + "body": "- A new `--list-all` (alias `-a`) flag is now available. It's similar to the existing `--list` (`-l`) but prints all tasks, even those without a description ([#383](https://github.com/go-task/task/issues/383), [#401](https://github.com/go-task/task/pull/401)).\r\n- It's now possible to schedule cleanup commands to run once a task finishes with the `defer:` keyword ([Documentation](https://taskfile.dev/#/usage?id=doing-task-cleanup-with-defer), [#475](https://github.com/go-task/task/issues/475), [#626](https://github.com/go-task/task/pull/626)).\r\n- Remove long deprecated and undocumented `$` variable prefix and `^` command prefix ([#642](https://github.com/go-task/task/issues/642), [#644](https://github.com/go-task/task/issues/644), [#645](https://github.com/go-task/task/pull/645)).\r\n- Add support for `.yaml` extension (as an alternative to `.yml`). This was requested multiple times throughout the years. Enjoy! ([#183](https://github.com/go-task/task/issues/183), [#184](https://github.com/go-task/task/pull/184), [#369](https://github.com/go-task/task/issues/369), [#584](https://github.com/go-task/task/issues/584), [#621](https://github.com/go-task/task/pull/621)).\r\n- Fixed error when computing a variable when the task directory do not exist yet ([#481](https://github.com/go-task/task/issues/481), [#579](https://github.com/go-task/task/pull/579)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/56410899/reactions", + "total_count": 6, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 4, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/54492225", + "assets_url": "https://api.github.com/repos/go-task/task/releases/54492225/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/54492225/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.9.2", + "id": 54492225, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984DP3xB", + "tag_name": "v3.9.2", + "target_commitish": "master", + "name": "v3.9.2", + "draft": false, + "prerelease": false, + "created_at": "2021-12-02T12:48:36Z", + "published_at": "2021-12-02T12:52:58Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828228", + "id": 50828228, + "node_id": "RA_kwDOBPZW984DB5PE", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 25594, + "created_at": "2021-12-02T12:50:55Z", + "updated_at": "2021-12-02T12:50:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828251", + "id": 50828251, + "node_id": "RA_kwDOBPZW984DB5Pb", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2014774, + "download_count": 2922, + "created_at": "2021-12-02T12:50:58Z", + "updated_at": "2021-12-02T12:50:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828244", + "id": 50828244, + "node_id": "RA_kwDOBPZW984DB5PU", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1982170, + "download_count": 427, + "created_at": "2021-12-02T12:50:58Z", + "updated_at": "2021-12-02T12:50:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828236", + "id": 50828236, + "node_id": "RA_kwDOBPZW984DB5PM", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1844374, + "download_count": 133, + "created_at": "2021-12-02T12:50:56Z", + "updated_at": "2021-12-02T12:50:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828234", + "id": 50828234, + "node_id": "RA_kwDOBPZW984DB5PK", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1841525, + "download_count": 131, + "created_at": "2021-12-02T12:50:56Z", + "updated_at": "2021-12-02T12:50:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828254", + "id": 50828254, + "node_id": "RA_kwDOBPZW984DB5Pe", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1844208, + "download_count": 140, + "created_at": "2021-12-02T12:50:59Z", + "updated_at": "2021-12-02T12:50:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828237", + "id": 50828237, + "node_id": "RA_kwDOBPZW984DB5PN", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1943820, + "download_count": 302, + "created_at": "2021-12-02T12:50:57Z", + "updated_at": "2021-12-02T12:50:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828238", + "id": 50828238, + "node_id": "RA_kwDOBPZW984DB5PO", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1939541, + "download_count": 151, + "created_at": "2021-12-02T12:50:57Z", + "updated_at": "2021-12-02T12:50:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828249", + "id": 50828249, + "node_id": "RA_kwDOBPZW984DB5PZ", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1941661, + "download_count": 59066, + "created_at": "2021-12-02T12:50:58Z", + "updated_at": "2021-12-02T12:50:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828239", + "id": 50828239, + "node_id": "RA_kwDOBPZW984DB5PP", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1835058, + "download_count": 27, + "created_at": "2021-12-02T12:50:57Z", + "updated_at": "2021-12-02T12:50:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828231", + "id": 50828231, + "node_id": "RA_kwDOBPZW984DB5PH", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1832953, + "download_count": 23, + "created_at": "2021-12-02T12:50:55Z", + "updated_at": "2021-12-02T12:50:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828255", + "id": 50828255, + "node_id": "RA_kwDOBPZW984DB5Pf", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1835178, + "download_count": 23, + "created_at": "2021-12-02T12:50:59Z", + "updated_at": "2021-12-02T12:51:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828235", + "id": 50828235, + "node_id": "RA_kwDOBPZW984DB5PL", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1787822, + "download_count": 28, + "created_at": "2021-12-02T12:50:56Z", + "updated_at": "2021-12-02T12:50:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828232", + "id": 50828232, + "node_id": "RA_kwDOBPZW984DB5PI", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1784660, + "download_count": 24, + "created_at": "2021-12-02T12:50:56Z", + "updated_at": "2021-12-02T12:50:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828247", + "id": 50828247, + "node_id": "RA_kwDOBPZW984DB5PX", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1786139, + "download_count": 123, + "created_at": "2021-12-02T12:50:58Z", + "updated_at": "2021-12-02T12:50:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828229", + "id": 50828229, + "node_id": "RA_kwDOBPZW984DB5PF", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1876973, + "download_count": 160, + "created_at": "2021-12-02T12:50:55Z", + "updated_at": "2021-12-02T12:50:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828253", + "id": 50828253, + "node_id": "RA_kwDOBPZW984DB5Pd", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1930860, + "download_count": 1192, + "created_at": "2021-12-02T12:50:59Z", + "updated_at": "2021-12-02T12:50:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828240", + "id": 50828240, + "node_id": "RA_kwDOBPZW984DB5PQ", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1846881, + "download_count": 25, + "created_at": "2021-12-02T12:50:57Z", + "updated_at": "2021-12-02T12:50:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50828243", + "id": 50828243, + "node_id": "RA_kwDOBPZW984DB5PT", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1776494, + "download_count": 33, + "created_at": "2021-12-02T12:50:58Z", + "updated_at": "2021-12-02T12:50:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.2/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.9.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.9.2", + "body": "- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains a fix a for a important regression on Windows ([#619](https://github.com/go-task/task/issues/619), [mvdan/sh#768](https://github.com/mvdan/sh/issues/768), [mvdan/sh#769](https://github.com/mvdan/sh/pull/769)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/54492225/reactions", + "total_count": 5, + "+1": 3, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 2, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/54199183", + "assets_url": "https://api.github.com/repos/go-task/task/releases/54199183/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/54199183/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.9.1", + "id": 54199183, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984DOwOP", + "tag_name": "v3.9.1", + "target_commitish": "master", + "name": "v3.9.1", + "draft": false, + "prerelease": false, + "created_at": "2021-11-28T19:19:37Z", + "published_at": "2021-11-28T19:24:19Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503247", + "id": 50503247, + "node_id": "RA_kwDOBPZW984DAp5P", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 4196, + "created_at": "2021-11-28T19:22:06Z", + "updated_at": "2021-11-28T19:22:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503273", + "id": 50503273, + "node_id": "RA_kwDOBPZW984DAp5p", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2014768, + "download_count": 697, + "created_at": "2021-11-28T19:22:09Z", + "updated_at": "2021-11-28T19:22:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503249", + "id": 50503249, + "node_id": "RA_kwDOBPZW984DAp5R", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1982006, + "download_count": 122, + "created_at": "2021-11-28T19:22:06Z", + "updated_at": "2021-11-28T19:22:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503266", + "id": 50503266, + "node_id": "RA_kwDOBPZW984DAp5i", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1844432, + "download_count": 128, + "created_at": "2021-11-28T19:22:08Z", + "updated_at": "2021-11-28T19:22:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503253", + "id": 50503253, + "node_id": "RA_kwDOBPZW984DAp5V", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1841611, + "download_count": 127, + "created_at": "2021-11-28T19:22:07Z", + "updated_at": "2021-11-28T19:22:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503275", + "id": 50503275, + "node_id": "RA_kwDOBPZW984DAp5r", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1844239, + "download_count": 127, + "created_at": "2021-11-28T19:22:10Z", + "updated_at": "2021-11-28T19:22:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503267", + "id": 50503267, + "node_id": "RA_kwDOBPZW984DAp5j", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1943716, + "download_count": 158, + "created_at": "2021-11-28T19:22:08Z", + "updated_at": "2021-11-28T19:22:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503264", + "id": 50503264, + "node_id": "RA_kwDOBPZW984DAp5g", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1939439, + "download_count": 128, + "created_at": "2021-11-28T19:22:07Z", + "updated_at": "2021-11-28T19:22:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503251", + "id": 50503251, + "node_id": "RA_kwDOBPZW984DAp5T", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1941562, + "download_count": 9417, + "created_at": "2021-11-28T19:22:07Z", + "updated_at": "2021-11-28T19:22:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503268", + "id": 50503268, + "node_id": "RA_kwDOBPZW984DAp5k", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1835026, + "download_count": 20, + "created_at": "2021-11-28T19:22:08Z", + "updated_at": "2021-11-28T19:22:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503269", + "id": 50503269, + "node_id": "RA_kwDOBPZW984DAp5l", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1832961, + "download_count": 19, + "created_at": "2021-11-28T19:22:08Z", + "updated_at": "2021-11-28T19:22:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503252", + "id": 50503252, + "node_id": "RA_kwDOBPZW984DAp5U", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1835090, + "download_count": 18, + "created_at": "2021-11-28T19:22:07Z", + "updated_at": "2021-11-28T19:22:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503254", + "id": 50503254, + "node_id": "RA_kwDOBPZW984DAp5W", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1787974, + "download_count": 19, + "created_at": "2021-11-28T19:22:07Z", + "updated_at": "2021-11-28T19:22:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503270", + "id": 50503270, + "node_id": "RA_kwDOBPZW984DAp5m", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1784806, + "download_count": 19, + "created_at": "2021-11-28T19:22:08Z", + "updated_at": "2021-11-28T19:22:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503272", + "id": 50503272, + "node_id": "RA_kwDOBPZW984DAp5o", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1786204, + "download_count": 36, + "created_at": "2021-11-28T19:22:09Z", + "updated_at": "2021-11-28T19:22:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503246", + "id": 50503246, + "node_id": "RA_kwDOBPZW984DAp5O", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1877726, + "download_count": 133, + "created_at": "2021-11-28T19:22:06Z", + "updated_at": "2021-11-28T19:22:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503274", + "id": 50503274, + "node_id": "RA_kwDOBPZW984DAp5q", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1931228, + "download_count": 283, + "created_at": "2021-11-28T19:22:09Z", + "updated_at": "2021-11-28T19:22:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503271", + "id": 50503271, + "node_id": "RA_kwDOBPZW984DAp5n", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1847262, + "download_count": 22, + "created_at": "2021-11-28T19:22:09Z", + "updated_at": "2021-11-28T19:22:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/50503248", + "id": 50503248, + "node_id": "RA_kwDOBPZW984DAp5Q", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1777087, + "download_count": 23, + "created_at": "2021-11-28T19:22:06Z", + "updated_at": "2021-11-28T19:22:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.1/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.9.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.9.1", + "body": "- Add logging in verbose mode for when a task starts and finishes ([#533](https://github.com/go-task/task/issues/533), [#588](https://github.com/go-task/task/pull/588)).\r\n- Fix an issue with preconditions and context errors ([#597](https://github.com/go-task/task/issues/597), [#598](https://github.com/go-task/task/pull/598)).\r\n- Quote each `{{.CLI_ARGS}}` argument to prevent one with spaces to become many ([#613](https://github.com/go-task/task/pull/613)).\r\n- Fix nil pointer when `cmd:` was left empty ([#612](https://github.com/go-task/task/issues/612), [#614](https://github.com/go-task/task/pull/614)).\r\n- Upgrade [mvdan/sh](https://github.com/mvdan/sh) which contains two relevant fixes:\r\n - Fix quote of empty strings in `shellQuote` ([#609](https://github.com/go-task/task/issues/609), [mvdan/sh#763](https://github.com/mvdan/sh/issues/763)).\r\n - Fix issue of wrong environment variable being picked when there's another very similar one ([#586](https://github.com/go-task/task/issues/586), [mvdan/sh#745](https://github.com/mvdan/sh/pull/745)).\r\n- Install shell completions automatically when installing via Homebrew ([#264](https://github.com/go-task/task/issues/264), [#592](https://github.com/go-task/task/pull/592), [go-task/homebrew-tap#2](https://github.com/go-task/homebrew-tap/pull/2)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/54199183/reactions", + "total_count": 3, + "+1": 0, + "-1": 0, + "laugh": 1, + "hooray": 2, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/50686341", + "assets_url": "https://api.github.com/repos/go-task/task/releases/50686341/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/50686341/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.9.0", + "id": 50686341, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984DBWmF", + "tag_name": "v3.9.0", + "target_commitish": "master", + "name": "v3.9.0", + "draft": false, + "prerelease": false, + "created_at": "2021-10-02T21:47:40Z", + "published_at": "2021-10-02T21:51:23Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109537", + "id": 46109537, + "node_id": "RA_kwDOBPZW984Cv5Nh", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 48698, + "created_at": "2021-10-02T21:49:59Z", + "updated_at": "2021-10-02T21:49:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109541", + "id": 46109541, + "node_id": "RA_kwDOBPZW984Cv5Nl", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2019453, + "download_count": 3940, + "created_at": "2021-10-02T21:49:59Z", + "updated_at": "2021-10-02T21:50:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109542", + "id": 46109542, + "node_id": "RA_kwDOBPZW984Cv5Nm", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1986137, + "download_count": 480, + "created_at": "2021-10-02T21:50:00Z", + "updated_at": "2021-10-02T21:50:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109548", + "id": 46109548, + "node_id": "RA_kwDOBPZW984Cv5Ns", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1842042, + "download_count": 144, + "created_at": "2021-10-02T21:50:01Z", + "updated_at": "2021-10-02T21:50:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109550", + "id": 46109550, + "node_id": "RA_kwDOBPZW984Cv5Nu", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1839869, + "download_count": 420, + "created_at": "2021-10-02T21:50:01Z", + "updated_at": "2021-10-02T21:50:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109546", + "id": 46109546, + "node_id": "RA_kwDOBPZW984Cv5Nq", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1848352, + "download_count": 142, + "created_at": "2021-10-02T21:50:00Z", + "updated_at": "2021-10-02T21:50:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109555", + "id": 46109555, + "node_id": "RA_kwDOBPZW984Cv5Nz", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1941720, + "download_count": 27195, + "created_at": "2021-10-02T21:50:02Z", + "updated_at": "2021-10-02T21:50:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109552", + "id": 46109552, + "node_id": "RA_kwDOBPZW984Cv5Nw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1937565, + "download_count": 8898, + "created_at": "2021-10-02T21:50:02Z", + "updated_at": "2021-10-02T21:50:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109536", + "id": 46109536, + "node_id": "RA_kwDOBPZW984Cv5Ng", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1944242, + "download_count": 144204, + "created_at": "2021-10-02T21:49:59Z", + "updated_at": "2021-10-02T21:49:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109558", + "id": 46109558, + "node_id": "RA_kwDOBPZW984Cv5N2", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1832818, + "download_count": 22, + "created_at": "2021-10-02T21:50:03Z", + "updated_at": "2021-10-02T21:50:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109553", + "id": 46109553, + "node_id": "RA_kwDOBPZW984Cv5Nx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1830346, + "download_count": 22, + "created_at": "2021-10-02T21:50:02Z", + "updated_at": "2021-10-02T21:50:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109547", + "id": 46109547, + "node_id": "RA_kwDOBPZW984Cv5Nr", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1839142, + "download_count": 26, + "created_at": "2021-10-02T21:50:00Z", + "updated_at": "2021-10-02T21:50:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109556", + "id": 46109556, + "node_id": "RA_kwDOBPZW984Cv5N0", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1786206, + "download_count": 49, + "created_at": "2021-10-02T21:50:02Z", + "updated_at": "2021-10-02T21:50:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109557", + "id": 46109557, + "node_id": "RA_kwDOBPZW984Cv5N1", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1782105, + "download_count": 24, + "created_at": "2021-10-02T21:50:03Z", + "updated_at": "2021-10-02T21:50:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109539", + "id": 46109539, + "node_id": "RA_kwDOBPZW984Cv5Nj", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1790496, + "download_count": 201, + "created_at": "2021-10-02T21:49:59Z", + "updated_at": "2021-10-02T21:49:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109538", + "id": 46109538, + "node_id": "RA_kwDOBPZW984Cv5Ni", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1879899, + "download_count": 194, + "created_at": "2021-10-02T21:49:59Z", + "updated_at": "2021-10-02T21:49:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109543", + "id": 46109543, + "node_id": "RA_kwDOBPZW984Cv5Nn", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1934416, + "download_count": 2514, + "created_at": "2021-10-02T21:50:00Z", + "updated_at": "2021-10-02T21:50:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109549", + "id": 46109549, + "node_id": "RA_kwDOBPZW984Cv5Nt", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1850345, + "download_count": 29, + "created_at": "2021-10-02T21:50:01Z", + "updated_at": "2021-10-02T21:50:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/46109545", + "id": 46109545, + "node_id": "RA_kwDOBPZW984Cv5Np", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1779596, + "download_count": 56, + "created_at": "2021-10-02T21:50:00Z", + "updated_at": "2021-10-02T21:50:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.9.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.9.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.9.0", + "body": "- A new `shellQuote` function was added to the template system (`{{shellQuote \"a string\"}}`) to ensure a string is safe for use in shell ([mvdan/sh#727](https://github.com/mvdan/sh/pull/727), [mvdan/sh#737](https://github.com/mvdan/sh/pull/737), [Documentation](https://pkg.go.dev/mvdan.cc/sh/v3@v3.4.0/syntax#Quote))\r\n- In this version [mvdan.cc/sh](https://github.com/mvdan/sh) was upgraded with some small fixes and features\r\n - The `read -p` flag is now supported ([#314](https://github.com/go-task/task/issues/314), [mvdan/sh#551](https://github.com/mvdan/sh/issues/551), [mvdan/sh#772](https://github.com/mvdan/sh/pull/722))\r\n - The `pwd -P` and `pwd -L` flags are now supported ([#553](https://github.com/go-task/task/issues/553), [mvdan/sh#724](https://github.com/mvdan/sh/issues/724), [mvdan/sh#728](https://github.com/mvdan/sh/pull/728))\r\n - The `$GID` environment variable is now correctly being set ([#561](https://github.com/go-task/task/issues/561), [mvdan/sh#723](https://github.com/mvdan/sh/pull/723))", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/50686341/reactions", + "total_count": 6, + "+1": 6, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/50285635", + "assets_url": "https://api.github.com/repos/go-task/task/releases/50285635/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/50285635/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.8.0", + "id": 50285635, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOBPZW984C_0xD", + "tag_name": "v3.8.0", + "target_commitish": "master", + "name": "v3.8.0", + "draft": false, + "prerelease": false, + "created_at": "2021-09-27T01:32:07Z", + "published_at": "2021-09-27T01:35:48Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675389", + "id": 45675389, + "node_id": "RA_kwDOBPZW984CuPN9", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 5464, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675407", + "id": 45675407, + "node_id": "RA_kwDOBPZW984CuPOP", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2011423, + "download_count": 540, + "created_at": "2021-09-27T01:34:48Z", + "updated_at": "2021-09-27T01:34:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675403", + "id": 45675403, + "node_id": "RA_kwDOBPZW984CuPOL", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1978196, + "download_count": 66, + "created_at": "2021-09-27T01:34:47Z", + "updated_at": "2021-09-27T01:34:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675397", + "id": 45675397, + "node_id": "RA_kwDOBPZW984CuPOF", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1836818, + "download_count": 129, + "created_at": "2021-09-27T01:34:46Z", + "updated_at": "2021-09-27T01:34:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675394", + "id": 45675394, + "node_id": "RA_kwDOBPZW984CuPOC", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1835647, + "download_count": 130, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675408", + "id": 45675408, + "node_id": "RA_kwDOBPZW984CuPOQ", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1842424, + "download_count": 129, + "created_at": "2021-09-27T01:34:48Z", + "updated_at": "2021-09-27T01:34:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675396", + "id": 45675396, + "node_id": "RA_kwDOBPZW984CuPOE", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1934936, + "download_count": 149, + "created_at": "2021-09-27T01:34:46Z", + "updated_at": "2021-09-27T01:34:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675393", + "id": 45675393, + "node_id": "RA_kwDOBPZW984CuPOB", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1931891, + "download_count": 130, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675402", + "id": 45675402, + "node_id": "RA_kwDOBPZW984CuPOK", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1939204, + "download_count": 11771, + "created_at": "2021-09-27T01:34:47Z", + "updated_at": "2021-09-27T01:34:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675399", + "id": 45675399, + "node_id": "RA_kwDOBPZW984CuPOH", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1826444, + "download_count": 21, + "created_at": "2021-09-27T01:34:47Z", + "updated_at": "2021-09-27T01:34:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675392", + "id": 45675392, + "node_id": "RA_kwDOBPZW984CuPOA", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1825944, + "download_count": 21, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675390", + "id": 45675390, + "node_id": "RA_kwDOBPZW984CuPN-", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1831956, + "download_count": 20, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675395", + "id": 45675395, + "node_id": "RA_kwDOBPZW984CuPOD", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1779962, + "download_count": 21, + "created_at": "2021-09-27T01:34:46Z", + "updated_at": "2021-09-27T01:34:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675398", + "id": 45675398, + "node_id": "RA_kwDOBPZW984CuPOG", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1777387, + "download_count": 23, + "created_at": "2021-09-27T01:34:46Z", + "updated_at": "2021-09-27T01:34:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675400", + "id": 45675400, + "node_id": "RA_kwDOBPZW984CuPOI", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1783247, + "download_count": 37, + "created_at": "2021-09-27T01:34:47Z", + "updated_at": "2021-09-27T01:34:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675404", + "id": 45675404, + "node_id": "RA_kwDOBPZW984CuPOM", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1874055, + "download_count": 138, + "created_at": "2021-09-27T01:34:48Z", + "updated_at": "2021-09-27T01:34:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675401", + "id": 45675401, + "node_id": "RA_kwDOBPZW984CuPOJ", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1926069, + "download_count": 373, + "created_at": "2021-09-27T01:34:47Z", + "updated_at": "2021-09-27T01:34:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675406", + "id": 45675406, + "node_id": "RA_kwDOBPZW984CuPOO", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1845006, + "download_count": 19, + "created_at": "2021-09-27T01:34:48Z", + "updated_at": "2021-09-27T01:34:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/45675391", + "id": 45675391, + "node_id": "RA_kwDOBPZW984CuPN_", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1772012, + "download_count": 22, + "created_at": "2021-09-27T01:34:45Z", + "updated_at": "2021-09-27T01:34:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.8.0/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.8.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.8.0", + "body": "- Add `interactive: true` setting to improve support for interactive CLI apps ([#217](https://github.com/go-task/task/issues/217), [#563](https://github.com/go-task/task/pull/563)).\r\n- Fix some `nil` errors ([#534](https://github.com/go-task/task/issues/534), [#573](https://github.com/go-task/task/pull/573)).\r\n- Add ability to declare an included Taskfile as optional ([#519](https://github.com/go-task/task/issues/519), [#552](https://github.com/go-task/task/pull/552)).\r\n- Add support for including Taskfiles in the home directory by using `~` ([#539](https://github.com/go-task/task/issues/539), [#557](https://github.com/go-task/task/pull/557)).", + "reactions": { + "url": "https://api.github.com/repos/go-task/task/releases/50285635/reactions", + "total_count": 8, + "+1": 8, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/49020419", + "assets_url": "https://api.github.com/repos/go-task/task/releases/49020419/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/49020419/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.7.3", + "id": 49020419, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQ5MDIwNDE5", + "tag_name": "v3.7.3", + "target_commitish": "master", + "name": "v3.7.3", + "draft": false, + "prerelease": false, + "created_at": "2021-09-05T01:07:15Z", + "published_at": "2021-09-05T01:16:20Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063080", + "id": 44063080, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDgw", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1578, + "download_count": 14841, + "created_at": "2021-09-05T01:14:59Z", + "updated_at": "2021-09-05T01:14:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063086", + "id": 44063086, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDg2", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2009348, + "download_count": 1249, + "created_at": "2021-09-05T01:15:00Z", + "updated_at": "2021-09-05T01:15:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063083", + "id": 44063083, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDgz", + "name": "task_darwin_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1977596, + "download_count": 106, + "created_at": "2021-09-05T01:14:59Z", + "updated_at": "2021-09-05T01:15:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_darwin_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063099", + "id": 44063099, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDk5", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1836266, + "download_count": 130, + "created_at": "2021-09-05T01:15:03Z", + "updated_at": "2021-09-05T01:15:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063096", + "id": 44063096, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDk2", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1834849, + "download_count": 130, + "created_at": "2021-09-05T01:15:02Z", + "updated_at": "2021-09-05T01:15:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063088", + "id": 44063088, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDg4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1841362, + "download_count": 134, + "created_at": "2021-09-05T01:15:00Z", + "updated_at": "2021-09-05T01:15:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063097", + "id": 44063097, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDk3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1934180, + "download_count": 1058, + "created_at": "2021-09-05T01:15:03Z", + "updated_at": "2021-09-05T01:15:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063091", + "id": 44063091, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDkx", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1931203, + "download_count": 202, + "created_at": "2021-09-05T01:15:01Z", + "updated_at": "2021-09-05T01:15:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063087", + "id": 44063087, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDg3", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1938233, + "download_count": 47842, + "created_at": "2021-09-05T01:15:00Z", + "updated_at": "2021-09-05T01:15:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063100", + "id": 44063100, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMTAw", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1826318, + "download_count": 22, + "created_at": "2021-09-05T01:15:04Z", + "updated_at": "2021-09-05T01:15:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063093", + "id": 44063093, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDkz", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1825410, + "download_count": 22, + "created_at": "2021-09-05T01:15:02Z", + "updated_at": "2021-09-05T01:15:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063089", + "id": 44063089, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDg5", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1831127, + "download_count": 22, + "created_at": "2021-09-05T01:15:01Z", + "updated_at": "2021-09-05T01:15:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063098", + "id": 44063098, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDk4", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1779472, + "download_count": 22, + "created_at": "2021-09-05T01:15:03Z", + "updated_at": "2021-09-05T01:15:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063094", + "id": 44063094, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDk0", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1777377, + "download_count": 22, + "created_at": "2021-09-05T01:15:02Z", + "updated_at": "2021-09-05T01:15:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063090", + "id": 44063090, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDkw", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1782686, + "download_count": 94, + "created_at": "2021-09-05T01:15:01Z", + "updated_at": "2021-09-05T01:15:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063085", + "id": 44063085, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDg1", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1872476, + "download_count": 157, + "created_at": "2021-09-05T01:15:00Z", + "updated_at": "2021-09-05T01:15:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063081", + "id": 44063081, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDgx", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1925396, + "download_count": 775, + "created_at": "2021-09-05T01:14:59Z", + "updated_at": "2021-09-05T01:14:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063092", + "id": 44063092, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDky", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1843881, + "download_count": 24, + "created_at": "2021-09-05T01:15:01Z", + "updated_at": "2021-09-05T01:15:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_windows_arm.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/44063082", + "id": 44063082, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0MDYzMDgy", + "name": "task_windows_arm64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1770893, + "download_count": 42, + "created_at": "2021-09-05T01:14:59Z", + "updated_at": "2021-09-05T01:14:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.3/task_windows_arm64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.7.3", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.7.3", + "body": "- Add official support to Apple M1 ([#564](https://github.com/go-task/task/pull/564), [#567](https://github.com/go-task/task/pull/567))\r\n- Our [official Homebrew tap](https://github.com/go-task/homebrew-tap) will support more platforms, including Apple M1" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/47101591", + "assets_url": "https://api.github.com/repos/go-task/task/releases/47101591/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/47101591/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.7.0", + "id": 47101591, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQ3MTAxNTkx", + "tag_name": "v3.7.0", + "target_commitish": "master", + "name": "v3.7.0", + "draft": false, + "prerelease": false, + "created_at": "2021-08-01T00:36:10Z", + "published_at": "2021-08-01T00:40:16Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455230", + "id": 41455230, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjMw", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 48940, + "created_at": "2021-08-01T00:38:10Z", + "updated_at": "2021-08-01T00:38:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455239", + "id": 41455239, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM5", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2328067, + "download_count": 3447, + "created_at": "2021-08-01T00:38:12Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455247", + "id": 41455247, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQ3", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2091126, + "download_count": 136, + "created_at": "2021-08-01T00:38:13Z", + "updated_at": "2021-08-01T00:38:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455242", + "id": 41455242, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQy", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2088855, + "download_count": 130, + "created_at": "2021-08-01T00:38:12Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455236", + "id": 41455236, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2095582, + "download_count": 132, + "created_at": "2021-08-01T00:38:11Z", + "updated_at": "2021-08-01T00:38:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455250", + "id": 41455250, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjUw", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2234546, + "download_count": 759, + "created_at": "2021-08-01T00:38:13Z", + "updated_at": "2021-08-01T00:38:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455240", + "id": 41455240, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2226419, + "download_count": 7858, + "created_at": "2021-08-01T00:38:12Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455234", + "id": 41455234, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM0", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2234555, + "download_count": 74092, + "created_at": "2021-08-01T00:38:10Z", + "updated_at": "2021-08-01T00:38:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455245", + "id": 41455245, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQ1", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2063656, + "download_count": 24, + "created_at": "2021-08-01T00:38:13Z", + "updated_at": "2021-08-01T00:38:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455241", + "id": 41455241, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2062434, + "download_count": 19, + "created_at": "2021-08-01T00:38:12Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455237", + "id": 41455237, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM3", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2068254, + "download_count": 52, + "created_at": "2021-08-01T00:38:11Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455249", + "id": 41455249, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQ5", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2036482, + "download_count": 27, + "created_at": "2021-08-01T00:38:13Z", + "updated_at": "2021-08-01T00:38:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455244", + "id": 41455244, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjQ0", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2032021, + "download_count": 242, + "created_at": "2021-08-01T00:38:12Z", + "updated_at": "2021-08-01T00:38:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455233", + "id": 41455233, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjMz", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2038018, + "download_count": 889, + "created_at": "2021-08-01T00:38:10Z", + "updated_at": "2021-08-01T00:38:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455229", + "id": 41455229, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjI5", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2085586, + "download_count": 149, + "created_at": "2021-08-01T00:38:10Z", + "updated_at": "2021-08-01T00:38:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455238", + "id": 41455238, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2167687, + "download_count": 1688, + "created_at": "2021-08-01T00:38:11Z", + "updated_at": "2021-08-01T00:38:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/41455235", + "id": 41455235, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxNDU1MjM1", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2044695, + "download_count": 24, + "created_at": "2021-08-01T00:38:11Z", + "updated_at": "2021-08-01T00:38:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.7.0/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.7.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.7.0", + "body": "- Add `run:` setting to control if tasks should run multiple times or not. Available options are `always` (the default), `when_changed` (if a variable modified the task) and `once` (run only once no matter what). This is a long time requested feature. Enjoy! ([#53](https://github.com/go-task/task/issues/53), [#359](https://github.com/go-task/task/pull/359)).", + "discussion_url": "https://github.com/go-task/task/discussions/538" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/46012991", + "assets_url": "https://api.github.com/repos/go-task/task/releases/46012991/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/46012991/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.6.0", + "id": 46012991, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQ2MDEyOTkx", + "tag_name": "v3.6.0", + "target_commitish": "master", + "name": "v3.6.0", + "draft": false, + "prerelease": false, + "created_at": "2021-07-11T02:13:09Z", + "published_at": "2021-07-11T02:16:52Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070296", + "id": 40070296, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMjk2", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 13490, + "created_at": "2021-07-11T02:14:52Z", + "updated_at": "2021-07-11T02:14:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070299", + "id": 40070299, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMjk5", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2305284, + "download_count": 1453, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070311", + "id": 40070311, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzEx", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2068186, + "download_count": 131, + "created_at": "2021-07-11T02:14:55Z", + "updated_at": "2021-07-11T02:14:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070312", + "id": 40070312, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzEy", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2066104, + "download_count": 129, + "created_at": "2021-07-11T02:14:55Z", + "updated_at": "2021-07-11T02:14:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070298", + "id": 40070298, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMjk4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2072568, + "download_count": 47241, + "created_at": "2021-07-11T02:14:52Z", + "updated_at": "2021-07-11T02:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070306", + "id": 40070306, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzA2", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2212252, + "download_count": 2934, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070313", + "id": 40070313, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzEz", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2205751, + "download_count": 133, + "created_at": "2021-07-11T02:14:55Z", + "updated_at": "2021-07-11T02:14:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070303", + "id": 40070303, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzAz", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2211351, + "download_count": 21091, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070310", + "id": 40070310, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzEw", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2041356, + "download_count": 25, + "created_at": "2021-07-11T02:14:54Z", + "updated_at": "2021-07-11T02:14:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070307", + "id": 40070307, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzA3", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2039820, + "download_count": 20, + "created_at": "2021-07-11T02:14:54Z", + "updated_at": "2021-07-11T02:14:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070300", + "id": 40070300, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzAw", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2046539, + "download_count": 21, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070308", + "id": 40070308, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzA4", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2014758, + "download_count": 21, + "created_at": "2021-07-11T02:14:54Z", + "updated_at": "2021-07-11T02:14:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070309", + "id": 40070309, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzA5", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2010689, + "download_count": 19, + "created_at": "2021-07-11T02:14:54Z", + "updated_at": "2021-07-11T02:14:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070301", + "id": 40070301, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzAx", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2017017, + "download_count": 225, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070305", + "id": 40070305, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMzA1", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2061927, + "download_count": 144, + "created_at": "2021-07-11T02:14:53Z", + "updated_at": "2021-07-11T02:14:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070295", + "id": 40070295, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMjk1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2145198, + "download_count": 637, + "created_at": "2021-07-11T02:14:52Z", + "updated_at": "2021-07-11T02:14:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/40070297", + "id": 40070297, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQwMDcwMjk3", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2020903, + "download_count": 25, + "created_at": "2021-07-11T02:14:52Z", + "updated_at": "2021-07-11T02:14:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.6.0/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.6.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.6.0", + "body": "- Allow using both `sources:` and `status:` in the same task ([#411](https://github.com/go-task/task/issues/411), [#427](https://github.com/go-task/task/issues/427), [#477](https://github.com/go-task/task/pull/477)).\r\n- Small optimization and bug fix: don't compute variables if not needed for `dotenv:` ([#517](https://github.com/go-task/task/issues/517)).", + "discussion_url": "https://github.com/go-task/task/discussions/518" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/45685493", + "assets_url": "https://api.github.com/repos/go-task/task/releases/45685493/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/45685493/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.5.0", + "id": 45685493, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQ1Njg1NDkz", + "tag_name": "v3.5.0", + "target_commitish": "master", + "name": "v3.5.0", + "draft": false, + "prerelease": false, + "created_at": "2021-07-05T00:53:34Z", + "published_at": "2021-07-05T00:57:26Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730813", + "id": 39730813, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODEz", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 3935, + "created_at": "2021-07-05T00:55:46Z", + "updated_at": "2021-07-05T00:55:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730814", + "id": 39730814, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE0", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2305062, + "download_count": 714, + "created_at": "2021-07-05T00:55:46Z", + "updated_at": "2021-07-05T00:55:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730818", + "id": 39730818, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE4", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2067796, + "download_count": 129, + "created_at": "2021-07-05T00:55:47Z", + "updated_at": "2021-07-05T00:55:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730822", + "id": 39730822, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODIy", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2065675, + "download_count": 126, + "created_at": "2021-07-05T00:55:49Z", + "updated_at": "2021-07-05T00:55:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730827", + "id": 39730827, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI3", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2071988, + "download_count": 127, + "created_at": "2021-07-05T00:55:50Z", + "updated_at": "2021-07-05T00:55:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730819", + "id": 39730819, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE5", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2212136, + "download_count": 326, + "created_at": "2021-07-05T00:55:48Z", + "updated_at": "2021-07-05T00:55:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730821", + "id": 39730821, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODIx", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2205660, + "download_count": 126, + "created_at": "2021-07-05T00:55:49Z", + "updated_at": "2021-07-05T00:55:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730823", + "id": 39730823, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODIz", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2211137, + "download_count": 6633, + "created_at": "2021-07-05T00:55:49Z", + "updated_at": "2021-07-05T00:55:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730815", + "id": 39730815, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE1", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2041266, + "download_count": 16, + "created_at": "2021-07-05T00:55:46Z", + "updated_at": "2021-07-05T00:55:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730816", + "id": 39730816, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE2", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2039733, + "download_count": 14, + "created_at": "2021-07-05T00:55:47Z", + "updated_at": "2021-07-05T00:55:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730825", + "id": 39730825, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI1", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2046348, + "download_count": 19, + "created_at": "2021-07-05T00:55:50Z", + "updated_at": "2021-07-05T00:55:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730817", + "id": 39730817, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODE3", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2014848, + "download_count": 17, + "created_at": "2021-07-05T00:55:47Z", + "updated_at": "2021-07-05T00:55:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730820", + "id": 39730820, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODIw", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2010805, + "download_count": 15, + "created_at": "2021-07-05T00:55:48Z", + "updated_at": "2021-07-05T00:55:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730829", + "id": 39730829, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2016990, + "download_count": 32, + "created_at": "2021-07-05T00:55:51Z", + "updated_at": "2021-07-05T00:55:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730824", + "id": 39730824, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2061644, + "download_count": 136, + "created_at": "2021-07-05T00:55:49Z", + "updated_at": "2021-07-05T00:55:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730826", + "id": 39730826, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI2", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2144707, + "download_count": 359, + "created_at": "2021-07-05T00:55:50Z", + "updated_at": "2021-07-05T00:55:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/39730828", + "id": 39730828, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM5NzMwODI4", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2020774, + "download_count": 17, + "created_at": "2021-07-05T00:55:50Z", + "updated_at": "2021-07-05T00:55:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.5.0/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.5.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.5.0", + "body": "- Add support for interpolation in `dotenv:` ([#433](https://github.com/go-task/task/discussions/433), [#434](https://github.com/go-task/task/issues/434), [#453](https://github.com/go-task/task/pull/453)).", + "discussion_url": "https://github.com/go-task/task/discussions/516" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/43830260", + "assets_url": "https://api.github.com/repos/go-task/task/releases/43830260/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/43830260/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.4.3", + "id": 43830260, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQzODMwMjYw", + "tag_name": "v3.4.3", + "target_commitish": "master", + "name": "v3.4.3", + "draft": false, + "prerelease": false, + "created_at": "2021-05-31T02:03:15Z", + "published_at": "2021-05-31T02:06:45Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806898", + "id": 37806898, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2ODk4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 20701, + "created_at": "2021-05-31T02:05:15Z", + "updated_at": "2021-05-31T02:05:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806914", + "id": 37806914, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTE0", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2303563, + "download_count": 2113, + "created_at": "2021-05-31T02:05:19Z", + "updated_at": "2021-05-31T02:05:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806904", + "id": 37806904, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA0", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2066518, + "download_count": 126, + "created_at": "2021-05-31T02:05:16Z", + "updated_at": "2021-05-31T02:05:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806908", + "id": 37806908, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA4", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2064223, + "download_count": 125, + "created_at": "2021-05-31T02:05:17Z", + "updated_at": "2021-05-31T02:05:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806910", + "id": 37806910, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTEw", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2070344, + "download_count": 136, + "created_at": "2021-05-31T02:05:18Z", + "updated_at": "2021-05-31T02:05:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806905", + "id": 37806905, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2210218, + "download_count": 1612, + "created_at": "2021-05-31T02:05:17Z", + "updated_at": "2021-05-31T02:05:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806907", + "id": 37806907, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA3", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2203975, + "download_count": 139, + "created_at": "2021-05-31T02:05:17Z", + "updated_at": "2021-05-31T02:05:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806912", + "id": 37806912, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTEy", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2209157, + "download_count": 37689, + "created_at": "2021-05-31T02:05:18Z", + "updated_at": "2021-05-31T02:05:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806900", + "id": 37806900, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTAw", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2040016, + "download_count": 16, + "created_at": "2021-05-31T02:05:16Z", + "updated_at": "2021-05-31T02:05:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806901", + "id": 37806901, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTAx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2038474, + "download_count": 14, + "created_at": "2021-05-31T02:05:16Z", + "updated_at": "2021-05-31T02:05:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806909", + "id": 37806909, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA5", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2045037, + "download_count": 15, + "created_at": "2021-05-31T02:05:18Z", + "updated_at": "2021-05-31T02:05:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806902", + "id": 37806902, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTAy", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2012934, + "download_count": 20, + "created_at": "2021-05-31T02:05:16Z", + "updated_at": "2021-05-31T02:05:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806906", + "id": 37806906, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTA2", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2008735, + "download_count": 15, + "created_at": "2021-05-31T02:05:17Z", + "updated_at": "2021-05-31T02:05:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806915", + "id": 37806915, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTE1", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2014978, + "download_count": 201, + "created_at": "2021-05-31T02:05:19Z", + "updated_at": "2021-05-31T02:05:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806913", + "id": 37806913, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTEz", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2060909, + "download_count": 145, + "created_at": "2021-05-31T02:05:18Z", + "updated_at": "2021-05-31T02:05:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806899", + "id": 37806899, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2ODk5", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2143867, + "download_count": 1044, + "created_at": "2021-05-31T02:05:15Z", + "updated_at": "2021-05-31T02:05:16Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/37806911", + "id": 37806911, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3ODA2OTEx", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2020423, + "download_count": 21, + "created_at": "2021-05-31T02:05:18Z", + "updated_at": "2021-05-31T02:05:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.3/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.4.3", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.4.3", + "body": "- Add support for the `NO_COLOR` environment variable ([#459](https://github.com/go-task/task/issues/459), [fatih/color#137](https://github.com/fatih/color/pull/137)).\r\n- Fix bug where sources were not considering the right directory in `--watch` mode ([#484](https://github.com/go-task/task/issues/484), [#485](https://github.com/go-task/task/pull/485)).", + "discussion_url": "https://github.com/go-task/task/discussions/497" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/41926639", + "assets_url": "https://api.github.com/repos/go-task/task/releases/41926639/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/41926639/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.4.2", + "id": 41926639, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQxOTI2NjM5", + "tag_name": "v3.4.2", + "target_commitish": "master", + "name": "v3.4.2", + "draft": false, + "prerelease": false, + "created_at": "2021-04-23T21:11:39Z", + "published_at": "2021-04-23T21:15:39Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711145", + "id": 35711145, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTQ1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 22751, + "created_at": "2021-04-23T21:14:24Z", + "updated_at": "2021-04-23T21:14:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711152", + "id": 35711152, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTUy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2302631, + "download_count": 2189, + "created_at": "2021-04-23T21:14:26Z", + "updated_at": "2021-04-23T21:14:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711154", + "id": 35711154, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU0", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2065448, + "download_count": 125, + "created_at": "2021-04-23T21:14:26Z", + "updated_at": "2021-04-23T21:14:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711161", + "id": 35711161, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTYx", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2063058, + "download_count": 123, + "created_at": "2021-04-23T21:14:28Z", + "updated_at": "2021-04-23T21:14:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711147", + "id": 35711147, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTQ3", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2069078, + "download_count": 130, + "created_at": "2021-04-23T21:14:25Z", + "updated_at": "2021-04-23T21:14:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711159", + "id": 35711159, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU5", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2209232, + "download_count": 322, + "created_at": "2021-04-23T21:14:27Z", + "updated_at": "2021-04-23T21:14:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711160", + "id": 35711160, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTYw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2203855, + "download_count": 137, + "created_at": "2021-04-23T21:14:28Z", + "updated_at": "2021-04-23T21:14:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711150", + "id": 35711150, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTUw", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2208446, + "download_count": 43434, + "created_at": "2021-04-23T21:14:25Z", + "updated_at": "2021-04-23T21:14:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711155", + "id": 35711155, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU1", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2039260, + "download_count": 15, + "created_at": "2021-04-23T21:14:26Z", + "updated_at": "2021-04-23T21:14:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711156", + "id": 35711156, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU2", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2037792, + "download_count": 15, + "created_at": "2021-04-23T21:14:27Z", + "updated_at": "2021-04-23T21:14:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711144", + "id": 35711144, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTQ0", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2044192, + "download_count": 15, + "created_at": "2021-04-23T21:14:24Z", + "updated_at": "2021-04-23T21:14:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711157", + "id": 35711157, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU3", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2010688, + "download_count": 21, + "created_at": "2021-04-23T21:14:27Z", + "updated_at": "2021-04-23T21:14:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711158", + "id": 35711158, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTU4", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2006022, + "download_count": 15, + "created_at": "2021-04-23T21:14:27Z", + "updated_at": "2021-04-23T21:14:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711153", + "id": 35711153, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTUz", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2012564, + "download_count": 153, + "created_at": "2021-04-23T21:14:26Z", + "updated_at": "2021-04-23T21:14:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711149", + "id": 35711149, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTQ5", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2058194, + "download_count": 157, + "created_at": "2021-04-23T21:14:25Z", + "updated_at": "2021-04-23T21:14:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711148", + "id": 35711148, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTQ4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2141556, + "download_count": 1059, + "created_at": "2021-04-23T21:14:25Z", + "updated_at": "2021-04-23T21:14:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35711151", + "id": 35711151, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NzExMTUx", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2016466, + "download_count": 17, + "created_at": "2021-04-23T21:14:26Z", + "updated_at": "2021-04-23T21:14:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.2/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.4.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.4.2", + "body": "- On watch, report which file failed to read ([#472](https://github.com/go-task/task/pull/472)).\r\n- Do not try to catch SIGKILL signal, which are not actually possible ([#476](https://github.com/go-task/task/pull/476)).\r\n- Improve version reporting when building Task from source using Go Modules ([#462](https://github.com/go-task/task/pull/462), [#473](https://github.com/go-task/task/pull/473))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/41593210", + "assets_url": "https://api.github.com/repos/go-task/task/releases/41593210/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/41593210/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.4.1", + "id": 41593210, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQxNTkzMjEw", + "tag_name": "v3.4.1", + "target_commitish": "master", + "name": "v3.4.1", + "draft": false, + "prerelease": false, + "created_at": "2021-04-17T20:48:42Z", + "published_at": "2021-04-17T20:56:13Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280541", + "id": 35280541, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQx", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1398, + "download_count": 4205, + "created_at": "2021-04-17T20:50:37Z", + "updated_at": "2021-04-17T20:50:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280547", + "id": 35280547, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ3", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2299890, + "download_count": 4006, + "created_at": "2021-04-17T20:50:38Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280550", + "id": 35280550, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTUw", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2061930, + "download_count": 126, + "created_at": "2021-04-17T20:50:39Z", + "updated_at": "2021-04-17T20:50:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280555", + "id": 35280555, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTU1", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2059090, + "download_count": 122, + "created_at": "2021-04-17T20:50:39Z", + "updated_at": "2021-04-17T20:50:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280548", + "id": 35280548, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2065634, + "download_count": 126, + "created_at": "2021-04-17T20:50:38Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280554", + "id": 35280554, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTU0", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2206456, + "download_count": 361, + "created_at": "2021-04-17T20:50:39Z", + "updated_at": "2021-04-17T20:50:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280556", + "id": 35280556, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTU2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2200340, + "download_count": 222, + "created_at": "2021-04-17T20:50:40Z", + "updated_at": "2021-04-17T20:50:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280542", + "id": 35280542, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQy", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2205278, + "download_count": 14171, + "created_at": "2021-04-17T20:50:37Z", + "updated_at": "2021-04-17T20:50:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280551", + "id": 35280551, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTUx", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2036096, + "download_count": 16, + "created_at": "2021-04-17T20:50:39Z", + "updated_at": "2021-04-17T20:50:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280557", + "id": 35280557, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTU3", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2034324, + "download_count": 14, + "created_at": "2021-04-17T20:50:40Z", + "updated_at": "2021-04-17T20:50:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280543", + "id": 35280543, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQz", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2040719, + "download_count": 15, + "created_at": "2021-04-17T20:50:37Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280552", + "id": 35280552, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTUy", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2007196, + "download_count": 17, + "created_at": "2021-04-17T20:50:39Z", + "updated_at": "2021-04-17T20:50:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280558", + "id": 35280558, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTU4", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2003259, + "download_count": 14, + "created_at": "2021-04-17T20:50:40Z", + "updated_at": "2021-04-17T20:50:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280545", + "id": 35280545, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ1", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2009407, + "download_count": 24, + "created_at": "2021-04-17T20:50:38Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280546", + "id": 35280546, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ2", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2055677, + "download_count": 144, + "created_at": "2021-04-17T20:50:38Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280544", + "id": 35280544, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2138545, + "download_count": 3932, + "created_at": "2021-04-17T20:50:37Z", + "updated_at": "2021-04-17T20:50:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_windows_amd64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/35280549", + "id": 35280549, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1MjgwNTQ5", + "name": "task_windows_arm.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2013669, + "download_count": 17, + "created_at": "2021-04-17T20:50:38Z", + "updated_at": "2021-04-17T20:50:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.4.1/task_windows_arm.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.4.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.4.1", + "body": "- Improve error reporting when parsing YAML: in some situations where you would just see an generic error, you'll now see the actual error with more detail: the YAML line the failed to parse, for example ([#467](https://github.com/go-task/task/issues/467)).\r\n- A JSON Schema was published [here](https://json.schemastore.org/taskfile.json) and is automatically being used by some editors like Visual Studio Code ([#135](https://github.com/go-task/task/issues/135)).\r\n- Print task name before the command in the log output ([#398](https://github.com/go-task/task/pull/398))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/40105012", + "assets_url": "https://api.github.com/repos/go-task/task/releases/40105012/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/40105012/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.3.0", + "id": 40105012, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQwMTA1MDEy", + "tag_name": "v3.3.0", + "target_commitish": "master", + "name": "v3.3.0", + "draft": false, + "prerelease": false, + "created_at": "2021-03-20T16:21:08Z", + "published_at": "2021-03-20T16:25:31Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740473", + "id": 33740473, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDcz", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1311, + "download_count": 15430, + "created_at": "2021-03-20T16:22:48Z", + "updated_at": "2021-03-20T16:22:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740485", + "id": 33740485, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDg1", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2299118, + "download_count": 1600, + "created_at": "2021-03-20T16:22:50Z", + "updated_at": "2021-03-20T16:22:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740479", + "id": 33740479, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDc5", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2061174, + "download_count": 127, + "created_at": "2021-03-20T16:22:49Z", + "updated_at": "2021-03-20T16:22:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740480", + "id": 33740480, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDgw", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2058352, + "download_count": 122, + "created_at": "2021-03-20T16:22:49Z", + "updated_at": "2021-03-20T16:22:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740483", + "id": 33740483, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDgz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2065163, + "download_count": 667, + "created_at": "2021-03-20T16:22:50Z", + "updated_at": "2021-03-20T16:22:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740477", + "id": 33740477, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDc3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2205722, + "download_count": 3292, + "created_at": "2021-03-20T16:22:48Z", + "updated_at": "2021-03-20T16:22:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740482", + "id": 33740482, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDgy", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2199650, + "download_count": 134, + "created_at": "2021-03-20T16:22:49Z", + "updated_at": "2021-03-20T16:22:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740490", + "id": 33740490, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDkw", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2204294, + "download_count": 102013, + "created_at": "2021-03-20T16:22:51Z", + "updated_at": "2021-03-20T16:22:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740474", + "id": 33740474, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDc0", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2035494, + "download_count": 15, + "created_at": "2021-03-20T16:22:48Z", + "updated_at": "2021-03-20T16:22:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740481", + "id": 33740481, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDgx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2033573, + "download_count": 14, + "created_at": "2021-03-20T16:22:49Z", + "updated_at": "2021-03-20T16:22:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740487", + "id": 33740487, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDg3", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2039727, + "download_count": 16, + "created_at": "2021-03-20T16:22:50Z", + "updated_at": "2021-03-20T16:22:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740476", + "id": 33740476, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDc2", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2007082, + "download_count": 184, + "created_at": "2021-03-20T16:22:48Z", + "updated_at": "2021-03-20T16:22:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740478", + "id": 33740478, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDc4", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2003250, + "download_count": 16, + "created_at": "2021-03-20T16:22:49Z", + "updated_at": "2021-03-20T16:22:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740489", + "id": 33740489, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDg5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2009063, + "download_count": 54, + "created_at": "2021-03-20T16:22:51Z", + "updated_at": "2021-03-20T16:22:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740484", + "id": 33740484, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDg0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2053824, + "download_count": 143, + "created_at": "2021-03-20T16:22:50Z", + "updated_at": "2021-03-20T16:22:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/33740486", + "id": 33740486, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNzQwNDg2", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2135140, + "download_count": 625, + "created_at": "2021-03-20T16:22:50Z", + "updated_at": "2021-03-20T16:22:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.3.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.3.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.3.0", + "body": "- Add support for delegating CLI arguments to commands with `--` and a special `CLI_ARGS` variable ([#327](https://github.com/go-task/task/issues/327)).\r\n- Add a `--concurrency` (alias `-C`) flag, to limit the number of tasks that run concurrently. This is useful for heavy workloads ([#345](https://github.com/go-task/task/pull/345))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/36289146", + "assets_url": "https://api.github.com/repos/go-task/task/releases/36289146/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/36289146/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.2.2", + "id": 36289146, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM2Mjg5MTQ2", + "tag_name": "v3.2.2", + "target_commitish": "master", + "name": "v3.2.2", + "draft": false, + "prerelease": false, + "created_at": "2021-01-12T16:21:43Z", + "published_at": "2021-01-12T16:24:28Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592738", + "id": 30592738, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzM4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1311, + "download_count": 89850, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592743", + "id": 30592743, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQz", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2278789, + "download_count": 3299, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592747", + "id": 30592747, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQ3", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2044878, + "download_count": 139, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592751", + "id": 30592751, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzUx", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2042762, + "download_count": 196, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592736", + "id": 30592736, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzM2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2046909, + "download_count": 133, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592748", + "id": 30592748, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQ4", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2186476, + "download_count": 5644, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592756", + "id": 30592756, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzU2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2179960, + "download_count": 811, + "created_at": "2021-01-12T16:23:49Z", + "updated_at": "2021-01-12T16:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592742", + "id": 30592742, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQy", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2186137, + "download_count": 90776, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592749", + "id": 30592749, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQ5", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2017728, + "download_count": 21, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592750", + "id": 30592750, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzUw", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2016153, + "download_count": 17, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592739", + "id": 30592739, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzM5", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2020490, + "download_count": 20, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592752", + "id": 30592752, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzUy", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1991116, + "download_count": 703, + "created_at": "2021-01-12T16:23:48Z", + "updated_at": "2021-01-12T16:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592753", + "id": 30592753, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzUz", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1986336, + "download_count": 17, + "created_at": "2021-01-12T16:23:58Z", + "updated_at": "2021-01-12T16:23:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592737", + "id": 30592737, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzM3", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1992291, + "download_count": 19202, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592741", + "id": 30592741, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQx", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2034609, + "download_count": 170, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30592744", + "id": 30592744, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNTkyNzQ0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2117481, + "download_count": 1777, + "created_at": "2021-01-12T16:23:47Z", + "updated_at": "2021-01-12T16:23:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.2/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.2.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.2.2", + "body": "- Improve performance of `--list` and `--summary` by skipping running shell variables for these flags ([#332](https://github.com/go-task/task/issues/332)).\r\n- Fixed a bug where an environment in a Taskfile was not always overridable by the system environment ([#425](https://github.com/go-task/task/issues/425)).\r\n- Fixed environment from .env files not being available as variables ([#379](https://github.com/go-task/task/issues/379)).\r\n- The install script is now working for ARM platforms ([#428](https://github.com/go-task/task/pull/428))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/36181425", + "assets_url": "https://api.github.com/repos/go-task/task/releases/36181425/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/36181425/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.2.1", + "id": 36181425, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM2MTgxNDI1", + "tag_name": "v3.2.1", + "target_commitish": "master", + "name": "v3.2.1", + "draft": false, + "prerelease": false, + "created_at": "2021-01-09T16:57:30Z", + "published_at": "2021-01-09T17:01:36Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478908", + "id": 30478908, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTA4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1311, + "download_count": 1588, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478914", + "id": 30478914, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE0", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2277519, + "download_count": 405, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478922", + "id": 30478922, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTIy", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2043924, + "download_count": 126, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478917", + "id": 30478917, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE3", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2041487, + "download_count": 124, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478911", + "id": 30478911, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTEx", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2045481, + "download_count": 126, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478919", + "id": 30478919, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE5", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2185252, + "download_count": 74313, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478923", + "id": 30478923, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTIz", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2179029, + "download_count": 147, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478912", + "id": 30478912, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTEy", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2184792, + "download_count": 1973, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478921", + "id": 30478921, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTIx", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2016930, + "download_count": 16, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478918", + "id": 30478918, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE4", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2015384, + "download_count": 16, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478910", + "id": 30478910, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTEw", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2019510, + "download_count": 16, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478916", + "id": 30478916, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE2", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1990458, + "download_count": 15, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478920", + "id": 30478920, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTIw", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1985857, + "download_count": 15, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478909", + "id": 30478909, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTA5", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1991724, + "download_count": 20, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:21Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478913", + "id": 30478913, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTEz", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2033516, + "download_count": 139, + "created_at": "2021-01-09T16:59:21Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30478915", + "id": 30478915, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwNDc4OTE1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2116256, + "download_count": 268, + "created_at": "2021-01-09T16:59:22Z", + "updated_at": "2021-01-09T16:59:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.2.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.2.1", + "body": "- Fixed some bugs and regressions regarding dynamic variables and directories ([#426](https://github.com/go-task/task/issues/426)).\r\n- The [slim-sprig](https://github.com/go-task/slim-sprig) package was updated with the upstream [sprig](https://github.com/Masterminds/sprig)." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/36102197", + "assets_url": "https://api.github.com/repos/go-task/task/releases/36102197/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/36102197/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.2.0", + "id": 36102197, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM2MTAyMTk3", + "tag_name": "v3.2.0", + "target_commitish": "master", + "name": "v3.2.0", + "draft": false, + "prerelease": false, + "created_at": "2021-01-07T16:08:22Z", + "published_at": "2021-01-07T16:12:17Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394471", + "id": 30394471, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDcx", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1311, + "download_count": 955, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394477", + "id": 30394477, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc3", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2246950, + "download_count": 304, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394483", + "id": 30394483, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDgz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2014650, + "download_count": 125, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394484", + "id": 30394484, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDg0", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2012306, + "download_count": 126, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394472", + "id": 30394472, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDcy", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2018491, + "download_count": 126, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394482", + "id": 30394482, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDgy", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2157280, + "download_count": 146, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394486", + "id": 30394486, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDg2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2149936, + "download_count": 129, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394479", + "id": 30394479, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc5", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2155987, + "download_count": 2853, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394474", + "id": 30394474, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc0", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1989542, + "download_count": 17, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394480", + "id": 30394480, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDgw", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1987734, + "download_count": 16, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394478", + "id": 30394478, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc4", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1994849, + "download_count": 17, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394481", + "id": 30394481, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDgx", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1963914, + "download_count": 16, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394485", + "id": 30394485, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDg1", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1959805, + "download_count": 16, + "created_at": "2021-01-07T16:10:02Z", + "updated_at": "2021-01-07T16:10:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394473", + "id": 30394473, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDcz", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1964781, + "download_count": 22, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394475", + "id": 30394475, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc1", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2004210, + "download_count": 138, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30394476", + "id": 30394476, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMzk0NDc2", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2087153, + "download_count": 212, + "created_at": "2021-01-07T16:10:01Z", + "updated_at": "2021-01-07T16:10:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.2.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.2.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.2.0", + "body": "- Fix the `.task` directory being created in the task directory instead of the Taskfile directory ([#247](https://github.com/go-task/task/issues/247)).\r\n- Fix a bug where dynamic variables (those declared with `sh:`) were not running in the task directory when the task has a custom dir or it was in an included Taskfile ([#384](https://github.com/go-task/task/issues/384)).\r\n- The watch feature (via the `--watch` flag) got a few different bug fixes and should be more stable now ([#423](https://github.com/go-task/task/pull/423), [#365](https://github.com/go-task/task/issues/365))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/35931181", + "assets_url": "https://api.github.com/repos/go-task/task/releases/35931181/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/35931181/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.1.0", + "id": 35931181, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM1OTMxMTgx", + "tag_name": "v3.1.0", + "target_commitish": "master", + "name": "v3.1.0", + "draft": false, + "prerelease": false, + "created_at": "2021-01-03T22:37:17Z", + "published_at": "2021-01-03T22:40:01Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229368", + "id": 30229368, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5MzY4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 1311, + "download_count": 5195, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229382", + "id": 30229382, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzgy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2244575, + "download_count": 508, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229370", + "id": 30229370, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzcw", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2013090, + "download_count": 125, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229369", + "id": 30229369, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5MzY5", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2011036, + "download_count": 125, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229381", + "id": 30229381, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzgx", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2017094, + "download_count": 124, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229373", + "id": 30229373, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzcz", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2155524, + "download_count": 235, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229376", + "id": 30229376, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2148460, + "download_count": 127, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229377", + "id": 30229377, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc3", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2153992, + "download_count": 13966, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229372", + "id": 30229372, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzcy", + "name": "task_linux_arm.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1987650, + "download_count": 14, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229371", + "id": 30229371, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzcx", + "name": "task_linux_arm.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1986095, + "download_count": 15, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229378", + "id": 30229378, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc4", + "name": "task_linux_arm.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1992436, + "download_count": 16, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229374", + "id": 30229374, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc0", + "name": "task_linux_arm64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1961852, + "download_count": 16, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229375", + "id": 30229375, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc1", + "name": "task_linux_arm64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1957376, + "download_count": 15, + "created_at": "2021-01-03T22:38:58Z", + "updated_at": "2021-01-03T22:38:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229383", + "id": 30229383, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzgz", + "name": "task_linux_arm64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1962496, + "download_count": 63, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_linux_arm64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229379", + "id": 30229379, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzc5", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2002680, + "download_count": 139, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/30229380", + "id": 30229380, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMwMjI5Mzgw", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2085135, + "download_count": 295, + "created_at": "2021-01-03T22:38:59Z", + "updated_at": "2021-01-03T22:38:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.1.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.1.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.1.0", + "body": "- Fix a bug when the checksum up-to-date resolution is used by a task with a custom `label:` attribute ([#412](https://github.com/go-task/task/issues/412)).\r\n- Starting from this release, we're releasing official ARMv6 and ARM64 binaries for Linux ([#375](https://github.com/go-task/task/issues/375), [#418](https://github.com/go-task/task/issues/418)).\r\n- Task now respects the order of declaration of included Taskfiles when evaluating variables declaring by them ([#393](https://github.com/go-task/task/issues/393)).\r\n- `set -e` is now automatically set on every command. This was done to fix an issue where multiline string commands wouldn't really fail unless the sentence was in the last line ([#403](https://github.com/go-task/task/issues/403))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/35738129", + "assets_url": "https://api.github.com/repos/go-task/task/releases/35738129/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/35738129/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.1", + "id": 35738129, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM1NzM4MTI5", + "tag_name": "v3.0.1", + "target_commitish": "master", + "name": "v3.0.1", + "draft": false, + "prerelease": false, + "created_at": "2020-12-26T18:34:26Z", + "published_at": "2020-12-26T18:37:42Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995676", + "id": 29995676, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njc2", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 2193, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995680", + "id": 29995680, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njgw", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2243405, + "download_count": 450, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995682", + "id": 29995682, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njgy", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2011894, + "download_count": 128, + "created_at": "2020-12-26T18:36:04Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995683", + "id": 29995683, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njgz", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2009707, + "download_count": 126, + "created_at": "2020-12-26T18:36:04Z", + "updated_at": "2020-12-26T18:36:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995675", + "id": 29995675, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njc1", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2015512, + "download_count": 127, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995681", + "id": 29995681, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njgx", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2153926, + "download_count": 193, + "created_at": "2020-12-26T18:36:04Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995684", + "id": 29995684, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njg0", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2147189, + "download_count": 125, + "created_at": "2020-12-26T18:36:04Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995678", + "id": 29995678, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njc4", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2152283, + "download_count": 2626, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995677", + "id": 29995677, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njc3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2001104, + "download_count": 137, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/29995679", + "id": 29995679, + "node_id": "MDEyOlJlbGVhc2VBc3NldDI5OTk1Njc5", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2083318, + "download_count": 268, + "created_at": "2020-12-26T18:36:03Z", + "updated_at": "2020-12-26T18:36:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.1", + "body": "- Allow use as a library by moving the required packages out of the `internal` directory ([#358](https://github.com/go-task/task/pull/358)).\r\n- Do not error if a specified dotenv file does not exist ([#378](https://github.com/go-task/task/issues/378), [#385](https://github.com/go-task/task/pull/385)).\r\n- Fix panic when you have empty tasks in your Taskfile ([#338](https://github.com/go-task/task/issues/338), [#362](https://github.com/go-task/task/pull/362))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/29753209", + "assets_url": "https://api.github.com/repos/go-task/task/releases/29753209/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/29753209/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.0", + "id": 29753209, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI5NzUzMjA5", + "tag_name": "v3.0.0", + "target_commitish": "master", + "name": "v3.0.0", + "draft": false, + "prerelease": false, + "created_at": "2020-08-17T01:07:24Z", + "published_at": "2020-08-17T01:13:07Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989186", + "id": 23989186, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg2", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 225783, + "created_at": "2020-08-17T01:09:09Z", + "updated_at": "2020-08-17T01:09:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989185", + "id": 23989185, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg1", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2441077, + "download_count": 6921, + "created_at": "2020-08-17T01:09:09Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989191", + "id": 23989191, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTkx", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2248378, + "download_count": 148, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989192", + "id": 23989192, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTky", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2244836, + "download_count": 138, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989187", + "id": 23989187, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg3", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2249960, + "download_count": 292, + "created_at": "2020-08-17T01:09:09Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989189", + "id": 23989189, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg5", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2350438, + "download_count": 16397, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989193", + "id": 23989193, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTkz", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2342742, + "download_count": 10792, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989190", + "id": 23989190, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTkw", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2348803, + "download_count": 340948, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989184", + "id": 23989184, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2150051, + "download_count": 228, + "created_at": "2020-08-17T01:09:09Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/23989188", + "id": 23989188, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIzOTg5MTg4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2252762, + "download_count": 5120, + "created_at": "2020-08-17T01:09:10Z", + "updated_at": "2020-08-17T01:09:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.0", + "body": "## Changelog\r\n\r\n- On `v3`, all CLI variables will be considered global variables ([#336](https://github.com/go-task/task/issues/336), [#341](https://github.com/go-task/task/pull/341))\r\n- Add support to `.env` like files ([#324](https://github.com/go-task/task/issues/324), [#356](https://github.com/go-task/task/pull/356)).\r\n- Add `label:` to task so you can override the task name in the logs ([#321](https://github.com/go-task/task/issues/321]), [#337](https://github.com/go-task/task/pull/337)).\r\n- Refactor how variables work on version 3 ([#311](https://github.com/go-task/task/pull/311)).\r\n- Disallow `expansions` on v3 since it has no effect.\r\n- `Taskvars.yml` is not automatically included anymore.\r\n- `Taskfile_{{OS}}.yml` is not automatically included anymore.\r\n- Allow interpolation on `includes`, so you can manually include a Taskfile based on operation system, for example.\r\n- Expose `.TASK` variable in templates with the task name ([#252](https://github.com/go-task/task/issues/252)).\r\n- Implement short task syntax ([#194](https://github.com/go-task/task/issues/194), [#240](https://github.com/go-task/task/pull/240)).\r\n- Added option to make included Taskfile run commands on its own directory ([#260](https://github.com/go-task/task/issues/260), [#144](https://github.com/go-task/task/issues/144))\r\n- Taskfiles in version 1 are not supported anymore ([#237](https://github.com/go-task/task/pull/237)).\r\n- Added global `method:` option. With this option, you can set a default method to all tasks in a Taskfile ([#246](https://github.com/go-task/task/issues/246)).\r\n- Changed default method from `timestamp` to `checksum` ([#246](https://github.com/go-task/task/issues/246)).\r\n- New magic variables are now available when using `status:`: `.TIMESTAMP` which contains the greatest modification date from the files listed in `sources:`, and `.CHECKSUM`, which contains a checksum of all files listed in `status:`. This is useful for manual checking when using external, or even remote, artifacts when using `status:` ([#216](https://github.com/go-task/task/pull/216)).\r\n- We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of [sprig](https://github.com/Masterminds/sprig), which allowed a file size reduction of about 22% ([#219](https://github.com/go-task/task/pull/219)).\r\n- We now use some colors on Task output to better distinguish message types - commands are green, errors are red, etc ([#207](https://github.com/go-task/task/pull/207))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/26741645", + "assets_url": "https://api.github.com/repos/go-task/task/releases/26741645/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/26741645/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.0-preview4", + "id": 26741645, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI2NzQxNjQ1", + "tag_name": "v3.0.0-preview4", + "target_commitish": "master", + "name": "v3.0.0-preview4", + "draft": false, + "prerelease": true, + "created_at": "2020-05-21T01:32:51Z", + "published_at": "2020-05-21T01:37:18Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928084", + "id": 20928084, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDg0", + "name": "task_checksums.txt", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain", + "state": "uploaded", + "size": 789, + "download_count": 298, + "created_at": "2020-05-21T01:38:04Z", + "updated_at": "2020-05-21T01:38:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928031", + "id": 20928031, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDMx", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2432212, + "download_count": 140, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928028", + "id": 20928028, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDI4", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2240302, + "download_count": 131, + "created_at": "2020-05-21T01:34:50Z", + "updated_at": "2020-05-21T01:34:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928035", + "id": 20928035, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDM1", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2237188, + "download_count": 127, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928033", + "id": 20928033, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDMz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2243695, + "download_count": 128, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928036", + "id": 20928036, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDM2", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2341636, + "download_count": 155, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928037", + "id": 20928037, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDM3", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2335006, + "download_count": 137, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928034", + "id": 20928034, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDM0", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2340171, + "download_count": 979, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:34:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928030", + "id": 20928030, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDMw", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2140874, + "download_count": 138, + "created_at": "2020-05-21T01:34:50Z", + "updated_at": "2020-05-21T01:37:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20928032", + "id": 20928032, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI4MDMy", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2241560, + "download_count": 167, + "created_at": "2020-05-21T01:34:51Z", + "updated_at": "2020-05-21T01:37:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview4/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.0-preview4", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.0-preview4", + "body": "This is probably the last v3 preview release before it's released as stable.\r\n\r\n## Changelog\r\n\r\n- Refactor how variables work on version 3 ([#311](https://github.com/go-task/task/pull/311)).\r\n- Disallow `expansions` on v3 since it has no effect.\r\n- `Taskvars.yml` is not automatically included anymore.\r\n- `Taskfile_{{OS}}.yml` is not automatically included anymore.\r\n- Allow interpolation on `includes`, so you can manually include a Taskfile based on operation system, for example." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/26737635", + "assets_url": "https://api.github.com/repos/go-task/task/releases/26737635/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/26737635/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.8.1", + "id": 26737635, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI2NzM3NjM1", + "tag_name": "v2.8.1", + "target_commitish": "master", + "name": "v2.8.1", + "draft": false, + "prerelease": false, + "created_at": "2020-05-20T22:26:30Z", + "published_at": "2020-05-20T22:33:31Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925414", + "id": 20925414, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1NDE0", + "name": "task_checksums.txt", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain", + "state": "uploaded", + "size": 789, + "download_count": 337274, + "created_at": "2020-05-20T22:37:07Z", + "updated_at": "2020-05-20T22:37:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925218", + "id": 20925218, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjE4", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2745650, + "download_count": 11924, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925220", + "id": 20925220, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjIw", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2526254, + "download_count": 141, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925221", + "id": 20925221, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjIx", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2523864, + "download_count": 132, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925213", + "id": 20925213, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjEz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2526999, + "download_count": 189, + "created_at": "2020-05-20T22:29:22Z", + "updated_at": "2020-05-20T22:29:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925217", + "id": 20925217, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjE3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2621852, + "download_count": 361, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925222", + "id": 20925222, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjIy", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2614253, + "download_count": 234, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925219", + "id": 20925219, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjE5", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2618981, + "download_count": 399535, + "created_at": "2020-05-20T22:29:23Z", + "updated_at": "2020-05-20T22:29:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925215", + "id": 20925215, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjE1", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2581119, + "download_count": 202, + "created_at": "2020-05-20T22:29:22Z", + "updated_at": "2020-05-20T22:33:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/20925214", + "id": 20925214, + "node_id": "MDEyOlJlbGVhc2VBc3NldDIwOTI1MjE0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2687325, + "download_count": 9287, + "created_at": "2020-05-20T22:29:22Z", + "updated_at": "2020-05-20T22:33:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.8.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.8.1", + "body": "This is probably the last v2 release before v3 is considered stable. See https://github.com/go-task/task/issues/195 and https://github.com/go-task/task/pull/220.\r\n\r\n## Changelog\r\n\r\n- Fix error code for the `--help` flag ([#300](https://github.com/go-task/task/issues/300), [#330](https://github.com/go-task/task/pull/330)).\r\n- Print version to stdout instead of stderr ([#299](https://github.com/go-task/task/issues/299), [#329](https://github.com/go-task/task/pull/329)).\r\n- Supress `context` errors when using the `--watch` flag ([#313](https://github.com/go-task/task/issues/313), [#317](https://github.com/go-task/task/pull/317)).\r\n- Support templating on description ([#276](https://github.com/go-task/task/issues/276), [#283](https://github.com/go-task/task/pull/283))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/24959447", + "assets_url": "https://api.github.com/repos/go-task/task/releases/24959447/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/24959447/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.0-preview3", + "id": 24959447, + "author": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI0OTU5NDQ3", + "tag_name": "v3.0.0-preview3", + "target_commitish": "master", + "name": "v3.0.0-preview3", + "draft": false, + "prerelease": true, + "created_at": "2020-03-28T14:01:41Z", + "published_at": "2020-03-28T14:05:30Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088991", + "id": 19088991, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTkx", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 280, + "created_at": "2020-03-28T14:03:11Z", + "updated_at": "2020-03-28T14:03:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088993", + "id": 19088993, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTkz", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2368371, + "download_count": 139, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088994", + "id": 19088994, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTk0", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2177124, + "download_count": 129, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088996", + "id": 19088996, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTk2", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2174799, + "download_count": 130, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088989", + "id": 19088989, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTg5", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2181979, + "download_count": 129, + "created_at": "2020-03-28T14:03:11Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088995", + "id": 19088995, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTk1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2274202, + "download_count": 137, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088997", + "id": 19088997, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTk3", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2267381, + "download_count": 132, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088992", + "id": 19088992, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTky", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2278422, + "download_count": 291, + "created_at": "2020-03-28T14:03:12Z", + "updated_at": "2020-03-28T14:03:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088990", + "id": 19088990, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTkw", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2090645, + "download_count": 133, + "created_at": "2020-03-28T14:03:11Z", + "updated_at": "2020-03-28T14:03:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/19088988", + "id": 19088988, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE5MDg4OTg4", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "github-actions[bot]", + "id": 41898282, + "node_id": "MDM6Qm90NDE4OTgyODI=", + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github-actions%5Bbot%5D", + "html_url": "https://github.com/apps/github-actions", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "type": "Bot", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2196589, + "download_count": 150, + "created_at": "2020-03-28T14:03:11Z", + "updated_at": "2020-03-28T14:03:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview3/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.0-preview3", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.0-preview3", + "body": "## Changelog\r\n\r\n- Expose `.TASK` variable in templates with the task name ([#252](https://github.com/go-task/task/issues/252)).\r\n- Implement short task syntax ([#194](https://github.com/go-task/task/issues/194), [#240](https://github.com/go-task/task/pull/240)).\r\n- Added option to make included Taskfile run commands on its own directory ([#260](https://github.com/go-task/task/issues/260), [#144](https://github.com/go-task/task/issues/144))\r\n- Merged improvements from master into the `v3` branch" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/22051994", + "assets_url": "https://api.github.com/repos/go-task/task/releases/22051994/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/22051994/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.8.0", + "id": 22051994, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTIyMDUxOTk0", + "tag_name": "v2.8.0", + "target_commitish": "master", + "name": "v2.8.0", + "draft": false, + "prerelease": false, + "created_at": "2019-12-08T00:54:31Z", + "published_at": "2019-12-08T00:58:22Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659952", + "id": 16659952, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTUy", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 159513, + "created_at": "2019-12-08T00:56:10Z", + "updated_at": "2019-12-08T00:56:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659962", + "id": 16659962, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTYy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2706208, + "download_count": 5204, + "created_at": "2019-12-08T00:56:48Z", + "updated_at": "2019-12-08T00:57:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659958", + "id": 16659958, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTU4", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2472432, + "download_count": 804, + "created_at": "2019-12-08T00:56:31Z", + "updated_at": "2019-12-08T00:56:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659959", + "id": 16659959, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTU5", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2469299, + "download_count": 134, + "created_at": "2019-12-08T00:56:33Z", + "updated_at": "2019-12-08T00:56:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659953", + "id": 16659953, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTUz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2478462, + "download_count": 153, + "created_at": "2019-12-08T00:56:10Z", + "updated_at": "2019-12-08T00:56:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659957", + "id": 16659957, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTU3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2573218, + "download_count": 7210, + "created_at": "2019-12-08T00:56:10Z", + "updated_at": "2019-12-08T00:56:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659960", + "id": 16659960, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTYw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2566656, + "download_count": 167, + "created_at": "2019-12-08T00:56:36Z", + "updated_at": "2019-12-08T00:57:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659961", + "id": 16659961, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTYx", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2578960, + "download_count": 779245, + "created_at": "2019-12-08T00:56:43Z", + "updated_at": "2019-12-08T00:57:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659954", + "id": 16659954, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTU0", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2552501, + "download_count": 210, + "created_at": "2019-12-08T00:56:10Z", + "updated_at": "2019-12-08T00:56:43Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16659955", + "id": 16659955, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2NjU5OTU1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2678405, + "download_count": 1492, + "created_at": "2019-12-08T00:56:10Z", + "updated_at": "2019-12-08T00:56:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.8.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.8.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.8.0", + "body": "- Add `--parallel` flag (alias `-p`) to run tasks given by the command line in parallel ([#266](https://github.com/go-task/task/pull/266)).\r\n- Fixed bug where calling the `task` CLI only informing global vars would not execute the `default` task.\r\n- Add hability to silent all tasks by adding `silent: true` a the root of the Taskfile." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/21351566", + "assets_url": "https://api.github.com/repos/go-task/task/releases/21351566/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/21351566/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.7.1", + "id": 21351566, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTIxMzUxNTY2", + "tag_name": "v2.7.1", + "target_commitish": "master", + "name": "v2.7.1", + "draft": false, + "prerelease": false, + "created_at": "2019-11-10T23:36:28Z", + "published_at": "2019-11-10T23:42:15Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076682", + "id": 16076682, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njgy", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 23041, + "created_at": "2019-11-10T23:41:01Z", + "updated_at": "2019-11-10T23:41:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076680", + "id": 16076680, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njgw", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2702128, + "download_count": 723, + "created_at": "2019-11-10T23:41:01Z", + "updated_at": "2019-11-10T23:41:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076691", + "id": 16076691, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njkx", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2467504, + "download_count": 139, + "created_at": "2019-11-10T23:41:17Z", + "updated_at": "2019-11-10T23:41:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076681", + "id": 16076681, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njgx", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2465226, + "download_count": 172, + "created_at": "2019-11-10T23:41:01Z", + "updated_at": "2019-11-10T23:41:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076684", + "id": 16076684, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njg0", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2474123, + "download_count": 139, + "created_at": "2019-11-10T23:41:01Z", + "updated_at": "2019-11-10T23:41:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076683", + "id": 16076683, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njgz", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2569200, + "download_count": 1671, + "created_at": "2019-11-10T23:41:01Z", + "updated_at": "2019-11-10T23:41:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076688", + "id": 16076688, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njg4", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2562258, + "download_count": 135, + "created_at": "2019-11-10T23:41:14Z", + "updated_at": "2019-11-10T23:41:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076687", + "id": 16076687, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njg3", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2573711, + "download_count": 32708, + "created_at": "2019-11-10T23:41:12Z", + "updated_at": "2019-11-10T23:41:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076689", + "id": 16076689, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njg5", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2546822, + "download_count": 159, + "created_at": "2019-11-10T23:41:15Z", + "updated_at": "2019-11-10T23:41:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/16076685", + "id": 16076685, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE2MDc2Njg1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2671423, + "download_count": 2822, + "created_at": "2019-11-10T23:41:08Z", + "updated_at": "2019-11-10T23:41:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.7.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.7.1", + "body": "## Changelog\r\n\r\n- Fix error being raised when `exit 0` was called ([#251](https://github.com/go-task/task/issues/251))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/20166510", + "assets_url": "https://api.github.com/repos/go-task/task/releases/20166510/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/20166510/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.0-preview2", + "id": 20166510, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTIwMTY2NTEw", + "tag_name": "v3.0.0-preview2", + "target_commitish": "master", + "name": "v3.0.0-preview2", + "draft": false, + "prerelease": true, + "created_at": "2019-09-22T21:44:36Z", + "published_at": "2019-09-22T21:47:56Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060722", + "id": 15060722, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzIy", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 130, + "created_at": "2019-09-22T21:45:22Z", + "updated_at": "2019-09-22T21:45:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060729", + "id": 15060729, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI5", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2115929, + "download_count": 134, + "created_at": "2019-09-22T21:45:29Z", + "updated_at": "2019-09-22T21:45:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060723", + "id": 15060723, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzIz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1922648, + "download_count": 132, + "created_at": "2019-09-22T21:45:22Z", + "updated_at": "2019-09-22T21:45:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060730", + "id": 15060730, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzMw", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1872777, + "download_count": 133, + "created_at": "2019-09-22T21:45:32Z", + "updated_at": "2019-09-22T21:45:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060726", + "id": 15060726, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1929154, + "download_count": 133, + "created_at": "2019-09-22T21:45:23Z", + "updated_at": "2019-09-22T21:45:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060725", + "id": 15060725, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2012534, + "download_count": 133, + "created_at": "2019-09-22T21:45:22Z", + "updated_at": "2019-09-22T21:45:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060731", + "id": 15060731, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzMx", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1976714, + "download_count": 136, + "created_at": "2019-09-22T21:45:33Z", + "updated_at": "2019-09-22T21:45:37Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060728", + "id": 15060728, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI4", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2017025, + "download_count": 209, + "created_at": "2019-09-22T21:45:28Z", + "updated_at": "2019-09-22T21:45:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060727", + "id": 15060727, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2007549, + "download_count": 134, + "created_at": "2019-09-22T21:45:28Z", + "updated_at": "2019-09-22T21:45:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060724", + "id": 15060724, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNzI0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2116294, + "download_count": 155, + "created_at": "2019-09-22T21:45:22Z", + "updated_at": "2019-09-22T21:45:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview2/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.0-preview2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.0-preview2", + "body": "## Changelog\r\n\r\n- Taskfiles in version 1 are not supported anymore ([#237](https://github.com/go-task/task/pull/237)).\r\n- Added global `method:` option. With this option, you can set a default method to all tasks in a Taskfile ([#246](https://github.com/go-task/task/issues/246)).\r\n- Changed default method from `timestamp` to `checksum` ([#246](https://github.com/go-task/task/issues/246)).\r\n- New magic variables are now available when using `status:`: `.TIMESTAMP` which contains the greatest modification date from the files listed in `sources:`, and `.CHECKSUM`, which contains a checksum of all files listed in `status:`. This is useful for manual checking when using external, or even remote, artifacts when using `status:` ([#216](https://github.com/go-task/task/pull/216)).\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/20166448", + "assets_url": "https://api.github.com/repos/go-task/task/releases/20166448/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/20166448/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.7.0", + "id": 20166448, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTIwMTY2NDQ4", + "tag_name": "v2.7.0", + "target_commitish": "master", + "name": "v2.7.0", + "draft": false, + "prerelease": false, + "created_at": "2019-09-22T21:21:39Z", + "published_at": "2019-09-22T21:38:14Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060618", + "id": 15060618, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjE4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 37914, + "created_at": "2019-09-22T21:35:17Z", + "updated_at": "2019-09-22T21:35:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060622", + "id": 15060622, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjIy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2701796, + "download_count": 920, + "created_at": "2019-09-22T21:35:22Z", + "updated_at": "2019-09-22T21:35:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060621", + "id": 15060621, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjIx", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2466746, + "download_count": 134, + "created_at": "2019-09-22T21:35:17Z", + "updated_at": "2019-09-22T21:35:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060624", + "id": 15060624, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjI0", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2402136, + "download_count": 135, + "created_at": "2019-09-22T21:35:26Z", + "updated_at": "2019-09-22T21:35:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060623", + "id": 15060623, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjIz", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2472915, + "download_count": 138, + "created_at": "2019-09-22T21:35:25Z", + "updated_at": "2019-09-22T21:35:30Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060620", + "id": 15060620, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjIw", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2568710, + "download_count": 226, + "created_at": "2019-09-22T21:35:17Z", + "updated_at": "2019-09-22T21:35:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060626", + "id": 15060626, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjI2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2520890, + "download_count": 135, + "created_at": "2019-09-22T21:35:31Z", + "updated_at": "2019-09-22T21:35:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060619", + "id": 15060619, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjE5", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2573147, + "download_count": 63496, + "created_at": "2019-09-22T21:35:17Z", + "updated_at": "2019-09-22T21:35:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060617", + "id": 15060617, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjE3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2535293, + "download_count": 172, + "created_at": "2019-09-22T21:35:17Z", + "updated_at": "2019-09-22T21:35:26Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/15060625", + "id": 15060625, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE1MDYwNjI1", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2663651, + "download_count": 566, + "created_at": "2019-09-22T21:35:27Z", + "updated_at": "2019-09-22T21:35:33Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.7.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.7.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.7.0", + "body": "## Changelog\r\n\r\n- Fixed panic bug when assigning a global variable ([#229](https://github.com/go-task/task/issues/229), [#243](https://github.com/go-task/task/issues/234)).\r\n- A task with `method: checksum` will now re-run if generated files are deleted ([#228](https://github.com/go-task/task/pull/228), [#238](https://github.com/go-task/task/issues/238))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/19219428", + "assets_url": "https://api.github.com/repos/go-task/task/releases/19219428/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/19219428/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v3.0.0-preview1", + "id": 19219428, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE5MjE5NDI4", + "tag_name": "v3.0.0-preview1", + "target_commitish": "master", + "name": "v3.0.0-preview1", + "draft": false, + "prerelease": true, + "created_at": "2019-08-12T02:44:16Z", + "published_at": "2019-08-12T02:52:38Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326400", + "id": 14326400, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDAw", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 124, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326403", + "id": 14326403, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDAz", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 2007036, + "download_count": 3088, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326405", + "id": 14326405, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDA1", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1818594, + "download_count": 132, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326407", + "id": 14326407, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDA3", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1767821, + "download_count": 132, + "created_at": "2019-08-12T02:48:07Z", + "updated_at": "2019-08-12T02:48:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326398", + "id": 14326398, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2Mzk4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1822325, + "download_count": 132, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326404", + "id": 14326404, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDA0", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1910998, + "download_count": 138, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326406", + "id": 14326406, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDA2", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1875558, + "download_count": 133, + "created_at": "2019-08-12T02:48:07Z", + "updated_at": "2019-08-12T02:48:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326402", + "id": 14326402, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDAy", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1915131, + "download_count": 6497, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326401", + "id": 14326401, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2NDAx", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1892754, + "download_count": 136, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/14326399", + "id": 14326399, + "node_id": "MDEyOlJlbGVhc2VBc3NldDE0MzI2Mzk5", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2004689, + "download_count": 3727, + "created_at": "2019-08-12T02:48:06Z", + "updated_at": "2019-08-12T02:48:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v3.0.0-preview1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v3.0.0-preview1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v3.0.0-preview1", + "body": "## Changelog\r\n\r\n- We're now using [slim-sprig](https://github.com/go-task/slim-sprig) instead of [sprig](https://github.com/Masterminds/sprig), which allowed a file size reduction of about 22% ([#219](https://github.com/go-task/task/pull/219)).\r\n- We now use some colors on Task output to better distinguish message types - commands are green, errors are red, etc ([#207](https://github.com/go-task/task/pull/207))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/18757053", + "assets_url": "https://api.github.com/repos/go-task/task/releases/18757053/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/18757053/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.6.0", + "id": 18757053, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE4NzU3MDUz", + "tag_name": "v2.6.0", + "target_commitish": "master", + "name": "v2.6.0", + "draft": false, + "prerelease": false, + "created_at": "2019-07-21T14:11:42Z", + "published_at": "2019-07-21T14:16:30Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832028", + "id": 13832028, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDI4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 32915, + "created_at": "2019-07-21T14:14:52Z", + "updated_at": "2019-07-21T14:14:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832037", + "id": 13832037, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDM3", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2704963, + "download_count": 5295, + "created_at": "2019-07-21T14:14:53Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832032", + "id": 13832032, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDMy", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2438454, + "download_count": 138, + "created_at": "2019-07-21T14:14:52Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832034", + "id": 13832034, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDM0", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2369304, + "download_count": 133, + "created_at": "2019-07-21T14:14:53Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832030", + "id": 13832030, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDMw", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2444057, + "download_count": 139, + "created_at": "2019-07-21T14:14:52Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832033", + "id": 13832033, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDMz", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2557080, + "download_count": 177, + "created_at": "2019-07-21T14:14:53Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832035", + "id": 13832035, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDM1", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2505706, + "download_count": 147, + "created_at": "2019-07-21T14:14:53Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832036", + "id": 13832036, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDM2", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2562423, + "download_count": 62685, + "created_at": "2019-07-21T14:14:53Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832029", + "id": 13832029, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDI5", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2508638, + "download_count": 166, + "created_at": "2019-07-21T14:14:52Z", + "updated_at": "2019-07-21T14:14:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/13832031", + "id": 13832031, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEzODMyMDMx", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2652468, + "download_count": 5095, + "created_at": "2019-07-21T14:14:52Z", + "updated_at": "2019-07-21T14:14:53Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.6.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.6.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.6.0", + "body": "- Fixed some bugs regarding minor version checks on `version:`.\r\n- Add `preconditions:` to task ([#205](https://github.com/go-task/task/pull/205)).\r\n- Create directory informed on `dir:` if it doesn't exist ([#209](https://github.com/go-task/task/issues/209), [#211](https://github.com/go-task/task/pull/211)).\r\n- We now have a `--taskfile` flag (alias `-t`), which can be used to run another Taskfile (other than the default `Taskfile.yml`) ([#221](https://github.com/go-task/task/pull/221)).\r\n- It's now possible to install Task using Homebrew on Linux ([go-task/homebrew-tap#1](https://github.com/go-task/homebrew-tap/pull/1))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/17292253", + "assets_url": "https://api.github.com/repos/go-task/task/releases/17292253/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/17292253/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.5.2", + "id": 17292253, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE3MjkyMjUz", + "tag_name": "v2.5.2", + "target_commitish": "master", + "name": "v2.5.2", + "draft": false, + "prerelease": false, + "created_at": "2019-05-11T14:28:39Z", + "published_at": "2019-05-11T14:33:09Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574244", + "id": 12574244, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ0", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 31515, + "created_at": "2019-05-11T14:32:24Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574250", + "id": 12574250, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjUw", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2700327, + "download_count": 3757, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574242", + "id": 12574242, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQy", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2435312, + "download_count": 138, + "created_at": "2019-05-11T14:32:24Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574246", + "id": 12574246, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ2", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2365489, + "download_count": 139, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574249", + "id": 12574249, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ5", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2440057, + "download_count": 457, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574245", + "id": 12574245, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ1", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2552468, + "download_count": 160, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574247", + "id": 12574247, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ3", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2500563, + "download_count": 146, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574248", + "id": 12574248, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQ4", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2557597, + "download_count": 42548, + "created_at": "2019-05-11T14:32:25Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574243", + "id": 12574243, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQz", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2504330, + "download_count": 13881, + "created_at": "2019-05-11T14:32:24Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12574241", + "id": 12574241, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyNTc0MjQx", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2648276, + "download_count": 3898, + "created_at": "2019-05-11T14:32:24Z", + "updated_at": "2019-05-11T14:32:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.2/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.5.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.5.2", + "body": "## Changelog\r\n\r\n- Reverted YAML upgrade due issues with CRLF on Windows ([#201](https://github.com/go-task/task/issues/201), [go-yaml/yaml#450](https://github.com/go-yaml/yaml/issues/450)).\r\n- Allow setting global variables through the CLI ([#192](https://github.com/go-task/task/issues/192))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/17020310", + "assets_url": "https://api.github.com/repos/go-task/task/releases/17020310/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/17020310/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.5.1", + "id": 17020310, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE3MDIwMzEw", + "tag_name": "v2.5.1", + "target_commitish": "master", + "name": "v2.5.1", + "draft": false, + "prerelease": false, + "created_at": "2019-04-27T20:56:35Z", + "published_at": "2019-04-27T21:00:49Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271708", + "id": 12271708, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzA4", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 6375, + "created_at": "2019-04-27T20:59:47Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271717", + "id": 12271717, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzE3", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2560811, + "download_count": 299, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271709", + "id": 12271709, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzA5", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2317544, + "download_count": 140, + "created_at": "2019-04-27T20:59:47Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271713", + "id": 12271713, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzEz", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2249464, + "download_count": 137, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271716", + "id": 12271716, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzE2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2320797, + "download_count": 140, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271712", + "id": 12271712, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzEy", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2438362, + "download_count": 153, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271714", + "id": 12271714, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzE0", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2388436, + "download_count": 137, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271715", + "id": 12271715, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzE1", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2441671, + "download_count": 7402, + "created_at": "2019-04-27T20:59:48Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271710", + "id": 12271710, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzEw", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2377863, + "download_count": 141, + "created_at": "2019-04-27T20:59:47Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/12271711", + "id": 12271711, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEyMjcxNzEx", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2522424, + "download_count": 184, + "created_at": "2019-04-27T20:59:47Z", + "updated_at": "2019-04-27T20:59:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.5.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.5.1", + "body": "## Changelog\r\n\r\n- Fixed some issues with interactive command line tools, where sometimes the output were not being shown, and similar issues ([#114](https://github.com/go-task/task/issues/114), [#190](https://github.com/go-task/task/issues/190), [#200](https://github.com/go-task/task/pull/200)).\r\n- Upgraded [go-yaml/yaml](https://github.com/go-yaml/yaml) from v2 to v3." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/16156745", + "assets_url": "https://api.github.com/repos/go-task/task/releases/16156745/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/16156745/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.5.0", + "id": 16156745, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE2MTU2NzQ1", + "tag_name": "v2.5.0", + "target_commitish": "master", + "name": "v2.5.0", + "draft": false, + "prerelease": false, + "created_at": "2019-03-16T13:46:30Z", + "published_at": "2019-03-16T13:51:23Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571275", + "id": 11571275, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 19940, + "created_at": "2019-03-16T13:49:47Z", + "updated_at": "2019-03-16T13:49:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571273", + "id": 11571273, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjcz", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2542961, + "download_count": 759, + "created_at": "2019-03-16T13:49:47Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571279", + "id": 11571279, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc5", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2303664, + "download_count": 133, + "created_at": "2019-03-16T13:49:48Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571280", + "id": 11571280, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjgw", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2235927, + "download_count": 131, + "created_at": "2019-03-16T13:49:48Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571276", + "id": 11571276, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc2", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2307378, + "download_count": 164, + "created_at": "2019-03-16T13:49:47Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571277", + "id": 11571277, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2422410, + "download_count": 158, + "created_at": "2019-03-16T13:49:48Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571281", + "id": 11571281, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjgx", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2371031, + "download_count": 135, + "created_at": "2019-03-16T13:49:48Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571278", + "id": 11571278, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc4", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2426847, + "download_count": 23210, + "created_at": "2019-03-16T13:49:48Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571272", + "id": 11571272, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjcy", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2362306, + "download_count": 139, + "created_at": "2019-03-16T13:49:47Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11571274", + "id": 11571274, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExNTcxMjc0", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2505346, + "download_count": 209, + "created_at": "2019-03-16T13:49:47Z", + "updated_at": "2019-03-16T13:49:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.5.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.5.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.5.0", + "body": "## Changelog\r\n\r\n- We moved from the taskfile.org domain to the new fancy taskfile.dev domain. While stuff is being redirected, we strongly recommend to everyone that use [this install script](https://taskfile.dev/#/installation?id=install-script) to use the new taskfile.dev domain on scripts from now on.\r\n- Fixed to the ZSH completion ([#182](https://github.com/go-task/task/pull/182)).\r\n- Add [`--summary` flag along with `summary:` task attribute](https://taskfile.org/#/usage?id=display-summary-of-task) ([#180](https://github.com/go-task/task/pull/180))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/15707888", + "assets_url": "https://api.github.com/repos/go-task/task/releases/15707888/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/15707888/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.4.0", + "id": 15707888, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE1NzA3ODg4", + "tag_name": "v2.4.0", + "target_commitish": "master", + "name": "v2.4.0", + "draft": false, + "prerelease": false, + "created_at": "2019-02-22T00:39:45Z", + "published_at": "2019-02-22T00:45:55Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186610", + "id": 11186610, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjEw", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 8952, + "created_at": "2019-02-22T00:43:28Z", + "updated_at": "2019-02-22T00:43:28Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186612", + "id": 11186612, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjEy", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2539533, + "download_count": 383, + "created_at": "2019-02-22T00:43:28Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186618", + "id": 11186618, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjE4", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2301186, + "download_count": 139, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186619", + "id": 11186619, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjE5", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2233198, + "download_count": 131, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186614", + "id": 11186614, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjE0", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2304524, + "download_count": 135, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186617", + "id": 11186617, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjE3", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2419574, + "download_count": 315, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186620", + "id": 11186620, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjIw", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2368671, + "download_count": 134, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186616", + "id": 11186616, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjE2", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2423159, + "download_count": 9461, + "created_at": "2019-02-22T00:43:29Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186611", + "id": 11186611, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjEx", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2359651, + "download_count": 135, + "created_at": "2019-02-22T00:43:28Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/11186613", + "id": 11186613, + "node_id": "MDEyOlJlbGVhc2VBc3NldDExMTg2NjEz", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2502140, + "download_count": 182, + "created_at": "2019-02-22T00:43:28Z", + "updated_at": "2019-02-22T00:43:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.4.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.4.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.4.0", + "body": "## Changelog\r\n\r\n- Allow calling a task of the root Taskfile from an included Taskfile by prefixing it with `:` ([#161](https://github.com/go-task/task/issues/161), [#172](https://github.com/go-task/task/issues/172)),\r\n- Add flag to override the `output` option ([#173](https://github.com/go-task/task/pull/173));\r\n- Fix bug where Task was persisting the new checksum on the disk when the Dry Mode is enabled ([#166](https://github.com/go-task/task/issues/166));\r\n- Fix file timestamp issue when the file name has spaces ([#176](https://github.com/go-task/task/issues/176));\r\n- Mitigating path expanding issues on Windows ([#170](https://github.com/go-task/task/pull/170))." + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/14769031", + "assets_url": "https://api.github.com/repos/go-task/task/releases/14769031/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/14769031/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.3.0", + "id": 14769031, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE0NzY5MDMx", + "tag_name": "v2.3.0", + "target_commitish": "master", + "name": "v2.3.0", + "draft": false, + "prerelease": false, + "created_at": "2019-01-02T15:44:35Z", + "published_at": "2019-01-02T15:51:48Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382215", + "id": 10382215, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 9049, + "created_at": "2019-01-02T15:48:21Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382214", + "id": 10382214, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE0", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2538657, + "download_count": 658, + "created_at": "2019-01-02T15:48:21Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382223", + "id": 10382223, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjIz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2299498, + "download_count": 134, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382221", + "id": 10382221, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjIx", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2231979, + "download_count": 134, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382218", + "id": 10382218, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE4", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2302698, + "download_count": 142, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382220", + "id": 10382220, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjIw", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2418536, + "download_count": 163, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382222", + "id": 10382222, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjIy", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2367961, + "download_count": 137, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382219", + "id": 10382219, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE5", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2422038, + "download_count": 10853, + "created_at": "2019-01-02T15:48:22Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382217", + "id": 10382217, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE3", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2358423, + "download_count": 145, + "created_at": "2019-01-02T15:48:21Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10382216", + "id": 10382216, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMzgyMjE2", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2500543, + "download_count": 239, + "created_at": "2019-01-02T15:48:21Z", + "updated_at": "2019-01-02T15:48:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.3.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.3.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.3.0", + "body": "## Changelog\r\n\r\n- On Windows, Task can now be installed using [Scoop](https://scoop.sh/) ([#152](https://github.com/go-task/task/pull/152));\r\n- Fixed issue with file/directory globing ([#153](https://github.com/go-task/task/issues/153));\r\n- Added ability to globally set environment variables ([#138](https://github.com/go-task/task/pull/138), [#159](https://github.com/go-task/task/pull/159)).\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/14429965", + "assets_url": "https://api.github.com/repos/go-task/task/releases/14429965/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/14429965/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.2.1", + "id": 14429965, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE0NDI5OTY1", + "tag_name": "v2.2.1", + "target_commitish": "master", + "name": "v2.2.1", + "draft": false, + "prerelease": false, + "created_at": "2018-12-09T17:59:16Z", + "published_at": "2018-12-09T18:06:26Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071105", + "id": 10071105, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTA1", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 4854, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071099", + "id": 10071099, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMDk5", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2515916, + "download_count": 517, + "created_at": "2018-12-09T18:02:41Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071103", + "id": 10071103, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTAz", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2280460, + "download_count": 135, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071107", + "id": 10071107, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTA3", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2213132, + "download_count": 130, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071102", + "id": 10071102, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTAy", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2280598, + "download_count": 135, + "created_at": "2018-12-09T18:02:41Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071106", + "id": 10071106, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTA2", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2399694, + "download_count": 141, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071108", + "id": 10071108, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTA4", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 2348970, + "download_count": 130, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071104", + "id": 10071104, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTA0", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2399728, + "download_count": 43053, + "created_at": "2018-12-09T18:02:42Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071100", + "id": 10071100, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTAw", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2336070, + "download_count": 134, + "created_at": "2018-12-09T18:02:41Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/10071101", + "id": 10071101, + "node_id": "MDEyOlJlbGVhc2VBc3NldDEwMDcxMTAx", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2478763, + "download_count": 152, + "created_at": "2018-12-09T18:02:41Z", + "updated_at": "2018-12-09T18:02:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.2.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.2.1", + "body": "## Changelog\r\n\r\n- This repository now uses Go Modules (#143). We'll still keep the `vendor` directory in sync for some time, though;\r\n- Fixing a bug when the Taskfile has no tasks but includes another Taskfile (#150);\r\n- Fix a bug when calling another task or a dependency in an included Taskfile (#151).\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/13667346", + "assets_url": "https://api.github.com/repos/go-task/task/releases/13667346/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/13667346/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.2.0", + "id": 13667346, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEzNjY3MzQ2", + "tag_name": "v2.2.0", + "target_commitish": "master", + "name": "v2.2.0", + "draft": false, + "prerelease": false, + "created_at": "2018-10-25T23:19:44Z", + "published_at": "2018-10-25T23:31:13Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415560", + "id": 9415560, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjA=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 8227, + "created_at": "2018-10-25T23:22:46Z", + "updated_at": "2018-10-25T23:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415561", + "id": 9415561, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjE=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2141961, + "download_count": 679, + "created_at": "2018-10-25T23:22:46Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415559", + "id": 9415559, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NTk=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1942430, + "download_count": 137, + "created_at": "2018-10-25T23:22:46Z", + "updated_at": "2018-10-25T23:22:46Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415567", + "id": 9415567, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1Njc=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1877504, + "download_count": 133, + "created_at": "2018-10-25T23:22:47Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415563", + "id": 9415563, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjM=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1943324, + "download_count": 151, + "created_at": "2018-10-25T23:22:46Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415565", + "id": 9415565, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjU=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2034048, + "download_count": 502, + "created_at": "2018-10-25T23:22:47Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415568", + "id": 9415568, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1Njg=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1982996, + "download_count": 134, + "created_at": "2018-10-25T23:22:47Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415566", + "id": 9415566, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjY=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2034447, + "download_count": 9388, + "created_at": "2018-10-25T23:22:47Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415562", + "id": 9415562, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjI=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1988384, + "download_count": 145, + "created_at": "2018-10-25T23:22:46Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/9415564", + "id": 9415564, + "node_id": "MDEyOlJlbGVhc2VBc3NldDk0MTU1NjQ=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2099424, + "download_count": 171, + "created_at": "2018-10-25T23:22:47Z", + "updated_at": "2018-10-25T23:22:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.2.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.2.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.2.0", + "body": "## Changelog\r\n\r\n- Added support for [including other Taskfiles](https://taskfile.org/#/usage?id=including-other-taskfiles) (#98)\r\n - This should be considered experimental. For now, only including local files is supported, but support for including remote Taskfiles is being discussed. If you have any feedback, please comment on #98.\r\n- Task now have a dedicated documentation site: https://taskfile.org\r\n - Thanks to [Docsify](https://docsify.js.org/) for making this pretty easy. To check the source code, just take a look at the [docs](https://github.com/go-task/task/tree/master/docs) directory of this repository. Contributions to the documentation is really appreciated.\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/12925917", + "assets_url": "https://api.github.com/repos/go-task/task/releases/12925917/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/12925917/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.1.1", + "id": 12925917, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEyOTI1OTE3", + "tag_name": "v2.1.1", + "target_commitish": "master", + "name": "v2.1.1", + "draft": false, + "prerelease": false, + "created_at": "2018-09-17T01:18:03Z", + "published_at": "2018-09-17T01:27:17Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700198", + "id": 8700198, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAxOTg=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 1102, + "created_at": "2018-09-17T01:19:05Z", + "updated_at": "2018-09-17T01:19:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700200", + "id": 8700200, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMDA=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2519345, + "download_count": 485, + "created_at": "2018-09-17T01:19:05Z", + "updated_at": "2018-09-17T01:20:40Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700202", + "id": 8700202, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMDI=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2277182, + "download_count": 134, + "created_at": "2018-09-17T01:19:05Z", + "updated_at": "2018-09-17T01:20:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700213", + "id": 8700213, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMTM=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2213925, + "download_count": 134, + "created_at": "2018-09-17T01:20:13Z", + "updated_at": "2018-09-17T01:21:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700212", + "id": 8700212, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMTI=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2283247, + "download_count": 151, + "created_at": "2018-09-17T01:20:13Z", + "updated_at": "2018-09-17T01:21:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700199", + "id": 8700199, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAxOTk=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2395954, + "download_count": 241, + "created_at": "2018-09-17T01:19:05Z", + "updated_at": "2018-09-17T01:20:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700248", + "id": 8700248, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyNDg=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2350292, + "download_count": 137, + "created_at": "2018-09-17T01:21:29Z", + "updated_at": "2018-09-17T01:22:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700237", + "id": 8700237, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMzc=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2401542, + "download_count": 1223, + "created_at": "2018-09-17T01:20:41Z", + "updated_at": "2018-09-17T01:21:54Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700239", + "id": 8700239, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMzk=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2338185, + "download_count": 136, + "created_at": "2018-09-17T01:20:46Z", + "updated_at": "2018-09-17T01:21:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8700201", + "id": 8700201, + "node_id": "MDEyOlJlbGVhc2VBc3NldDg3MDAyMDE=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2482292, + "download_count": 177, + "created_at": "2018-09-17T01:19:05Z", + "updated_at": "2018-09-17T01:20:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.1.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.1.1", + "body": "## Changelog\r\n\r\n- Fix suggestion to use `task --init` not being shown anymore (when a `Taskfile.yml` is not found)\r\n- Fix error when using checksum method and no file exists for a source glob (#131)\r\n- Fix signal handling when the `--watch` flag is given (#132)\r\n\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/12472514", + "assets_url": "https://api.github.com/repos/go-task/task/releases/12472514/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/12472514/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.1.0", + "id": 12472514, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEyNDcyNTE0", + "tag_name": "v2.1.0", + "target_commitish": "master", + "name": "v2.1.0", + "draft": false, + "prerelease": false, + "created_at": "2018-08-19T18:53:11Z", + "published_at": "2018-08-19T18:59:18Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312370", + "id": 8312370, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzA=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 1269, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312373", + "id": 8312373, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzM=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2049414, + "download_count": 275, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312377", + "id": 8312377, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzc=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1816228, + "download_count": 135, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312378", + "id": 8312378, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzg=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1754008, + "download_count": 136, + "created_at": "2018-08-19T18:56:39Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312371", + "id": 8312371, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzE=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1822307, + "download_count": 134, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312376", + "id": 8312376, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzY=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1937058, + "download_count": 143, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312379", + "id": 8312379, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzk=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1892373, + "download_count": 140, + "created_at": "2018-08-19T18:56:39Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312375", + "id": 8312375, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzU=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1944801, + "download_count": 1410, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312372", + "id": 8312372, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzI=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1868114, + "download_count": 140, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:38Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/8312374", + "id": 8312374, + "node_id": "MDEyOlJlbGVhc2VBc3NldDgzMTIzNzQ=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2011992, + "download_count": 157, + "created_at": "2018-08-19T18:56:38Z", + "updated_at": "2018-08-19T18:56:39Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.1.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.1.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.1.0", + "body": "## Changelog\r\n\r\n- Add a `ignore_error` option to task and command (#123)\r\n- Add a dry run mode (`--dry` flag) (#126)\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/11622551", + "assets_url": "https://api.github.com/repos/go-task/task/releases/11622551/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/11622551/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.0.3", + "id": 11622551, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTExNjIyNTUx", + "tag_name": "v2.0.3", + "target_commitish": "master", + "name": "v2.0.3", + "draft": false, + "prerelease": false, + "created_at": "2018-06-24T13:52:33Z", + "published_at": "2018-06-24T14:00:07Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645720", + "id": 7645720, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MjA=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 1268, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645715", + "id": 7645715, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTU=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2046210, + "download_count": 341, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645717", + "id": 7645717, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTc=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1812034, + "download_count": 136, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645718", + "id": 7645718, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTg=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1750659, + "download_count": 139, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645712", + "id": 7645712, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTI=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1818467, + "download_count": 148, + "created_at": "2018-06-24T13:54:50Z", + "updated_at": "2018-06-24T13:54:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645716", + "id": 7645716, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTY=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1933472, + "download_count": 149, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645719", + "id": 7645719, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTk=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1888755, + "download_count": 158, + "created_at": "2018-06-24T13:54:51Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645714", + "id": 7645714, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTQ=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1940955, + "download_count": 1527, + "created_at": "2018-06-24T13:54:50Z", + "updated_at": "2018-06-24T13:54:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645711", + "id": 7645711, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTE=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 4410625, + "download_count": 142, + "created_at": "2018-06-24T13:54:50Z", + "updated_at": "2018-06-24T13:54:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7645713", + "id": 7645713, + "node_id": "MDEyOlJlbGVhc2VBc3NldDc2NDU3MTM=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 5406977, + "download_count": 169, + "created_at": "2018-06-24T13:54:50Z", + "updated_at": "2018-06-24T13:54:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.3/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.0.3", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.0.3", + "body": "## Changelog\r\n\r\n- Expand environment variables on \"dir\", \"sources\" and \"generates\" (#116)\r\n- Fix YAML merging syntax (#112)\r\n- Add ZSH completion (#111)\r\n- Implement new `output` option. Please check out the [documentation](https://github.com/go-task/task#output-syntax)\r\n\r\nThanks to everyone that contributed with code, documentation, tools or reporting issues!\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/10791399", + "assets_url": "https://api.github.com/repos/go-task/task/releases/10791399/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/10791399/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.0.2", + "id": 10791399, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEwNzkxMzk5", + "tag_name": "v2.0.2", + "target_commitish": "master", + "name": "v2.0.2", + "draft": false, + "prerelease": false, + "created_at": "2018-05-01T00:55:16Z", + "published_at": "2018-05-01T01:00:51Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028227", + "id": 7028227, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjc=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 658, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028222", + "id": 7028222, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjI=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2123127, + "download_count": 278, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028223", + "id": 7028223, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjM=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1925622, + "download_count": 139, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028225", + "id": 7028225, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjU=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1858977, + "download_count": 133, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028221", + "id": 7028221, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjE=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1930946, + "download_count": 139, + "created_at": "2018-05-01T00:57:35Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028224", + "id": 7028224, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjQ=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2022334, + "download_count": 153, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028226", + "id": 7028226, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjY=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1973579, + "download_count": 138, + "created_at": "2018-05-01T00:57:36Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028219", + "id": 7028219, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMTk=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2029840, + "download_count": 1348, + "created_at": "2018-05-01T00:57:35Z", + "updated_at": "2018-05-01T00:57:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028218", + "id": 7028218, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMTg=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1972696, + "download_count": 141, + "created_at": "2018-05-01T00:57:35Z", + "updated_at": "2018-05-01T00:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/7028220", + "id": 7028220, + "node_id": "MDEyOlJlbGVhc2VBc3NldDcwMjgyMjA=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2084958, + "download_count": 212, + "created_at": "2018-05-01T00:57:35Z", + "updated_at": "2018-05-01T00:57:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.2/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.0.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.0.2", + "body": "## Changelog\r\n\r\n- Fix merging of YAML anchors (#112)" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/10035098", + "assets_url": "https://api.github.com/repos/go-task/task/releases/10035098/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/10035098/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.0.1", + "id": 10035098, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEwMDM1MDk4", + "tag_name": "v2.0.1", + "target_commitish": "master", + "name": "v2.0.1", + "draft": false, + "prerelease": false, + "created_at": "2018-03-11T18:38:33Z", + "published_at": "2018-03-11T18:45:52Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476375", + "id": 6476375, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzU=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 813, + "download_count": 195, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476370", + "id": 6476370, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzA=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2123136, + "download_count": 247, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:41:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476371", + "id": 6476371, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzE=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1925626, + "download_count": 137, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476374", + "id": 6476374, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzQ=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1858760, + "download_count": 136, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476368", + "id": 6476368, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNjg=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1930946, + "download_count": 157, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:41:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476372", + "id": 6476372, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzI=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 2022334, + "download_count": 153, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476373", + "id": 6476373, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNzM=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1973344, + "download_count": 666, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:45:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476366", + "id": 6476366, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNjY=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2029848, + "download_count": 2651, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:41:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476369", + "id": 6476369, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNjk=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1972712, + "download_count": 142, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:41:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6476367", + "id": 6476367, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NzYzNjc=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2084965, + "download_count": 181, + "created_at": "2018-03-11T18:41:42Z", + "updated_at": "2018-03-11T18:41:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.0.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.0.1", + "body": "## Changelog\r\n\r\n- Fixes panic on `task --list`" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/9990851", + "assets_url": "https://api.github.com/repos/go-task/task/releases/9990851/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/9990851/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v2.0.0", + "id": 9990851, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTk5OTA4NTE=", + "tag_name": "v2.0.0", + "target_commitish": "master", + "name": "v2.0.0", + "draft": false, + "prerelease": false, + "created_at": "2018-03-08T01:56:27Z", + "published_at": "2018-03-08T02:21:11Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441523", + "id": 6441523, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjM=", + "name": "task_checksums.txt", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain", + "state": "uploaded", + "size": 717, + "download_count": 169, + "created_at": "2018-03-08T02:17:02Z", + "updated_at": "2018-03-08T02:21:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441520", + "id": 6441520, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjA=", + "name": "task_darwin_amd64.tar.gz", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-gzip", + "state": "uploaded", + "size": 2127851, + "download_count": 150, + "created_at": "2018-03-08T02:17:02Z", + "updated_at": "2018-03-08T02:17:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441524", + "id": 6441524, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjQ=", + "name": "task_linux_386.deb", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 1925614, + "download_count": 133, + "created_at": "2018-03-08T02:17:03Z", + "updated_at": "2018-03-08T02:21:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441521", + "id": 6441521, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjE=", + "name": "task_linux_386.tar.gz", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-gzip", + "state": "uploaded", + "size": 1930901, + "download_count": 134, + "created_at": "2018-03-08T02:17:02Z", + "updated_at": "2018-03-08T02:17:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441525", + "id": 6441525, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjU=", + "name": "task_linux_amd64.deb", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/octet-stream", + "state": "uploaded", + "size": 2015316, + "download_count": 144, + "created_at": "2018-03-08T02:17:03Z", + "updated_at": "2018-03-08T02:21:11Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441522", + "id": 6441522, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjI=", + "name": "task_linux_amd64.tar.gz", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-gzip", + "state": "uploaded", + "size": 2022502, + "download_count": 295, + "created_at": "2018-03-08T02:17:02Z", + "updated_at": "2018-03-08T02:18:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441526", + "id": 6441526, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1MjY=", + "name": "task_windows_386.zip", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1972901, + "download_count": 134, + "created_at": "2018-03-08T02:17:03Z", + "updated_at": "2018-03-08T02:19:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/6441527", + "id": 6441527, + "node_id": "MDEyOlJlbGVhc2VBc3NldDY0NDE1Mjc=", + "name": "task_windows_amd64.zip", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 2084952, + "download_count": 151, + "created_at": "2018-03-08T02:17:04Z", + "updated_at": "2018-03-08T02:19:25Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v2.0.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v2.0.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v2.0.0", + "body": "Version 2.0.0 is here, with a new Taskfile format.\r\n\r\nPlease, make sure to read the [Taskfile versions](https://github.com/go-task/task/blob/master/TASKFILE_VERSIONS.md) document, since it describes in depth what changed for this version.\r\n\r\n* New Taskfile version 2 (https://github.com/go-task/task/issues/77)\r\n* Possibility to have global variables in the `Taskfile.yml` instead of `Taskvars.yml` (https://github.com/go-task/task/issues/66)\r\n* Small improvements and fixes" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/8579360", + "assets_url": "https://api.github.com/repos/go-task/task/releases/8579360/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/8579360/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.4.4", + "id": 8579360, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTg1NzkzNjA=", + "tag_name": "v1.4.4", + "target_commitish": "master", + "name": "v1.4.4", + "draft": false, + "prerelease": false, + "created_at": "2017-11-19T21:26:10Z", + "published_at": "2017-11-19T21:39:08Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392874", + "id": 5392874, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NzQ=", + "name": "task_1.4.4_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 125, + "created_at": "2017-11-19T21:33:47Z", + "updated_at": "2017-11-19T21:33:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_1.4.4_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392869", + "id": 5392869, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4Njk=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1972988, + "download_count": 209, + "created_at": "2017-11-19T21:33:35Z", + "updated_at": "2017-11-19T21:33:50Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392870", + "id": 5392870, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NzA=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1699656, + "download_count": 142, + "created_at": "2017-11-19T21:33:35Z", + "updated_at": "2017-11-19T21:33:47Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392872", + "id": 5392872, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NzI=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1688974, + "download_count": 133, + "created_at": "2017-11-19T21:33:37Z", + "updated_at": "2017-11-19T21:33:49Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392868", + "id": 5392868, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4Njg=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1751040, + "download_count": 298, + "created_at": "2017-11-19T21:33:24Z", + "updated_at": "2017-11-19T21:33:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392871", + "id": 5392871, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NzE=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1849834, + "download_count": 571, + "created_at": "2017-11-19T21:33:36Z", + "updated_at": "2017-11-19T21:33:42Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392873", + "id": 5392873, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NzM=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1835359, + "download_count": 322, + "created_at": "2017-11-19T21:33:42Z", + "updated_at": "2017-11-19T21:33:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392866", + "id": 5392866, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NjY=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1881638, + "download_count": 4348, + "created_at": "2017-11-19T21:33:24Z", + "updated_at": "2017-11-19T21:33:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392865", + "id": 5392865, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4NjU=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1800108, + "download_count": 141, + "created_at": "2017-11-19T21:33:24Z", + "updated_at": "2017-11-19T21:33:34Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/5392867", + "id": 5392867, + "node_id": "MDEyOlJlbGVhc2VBc3NldDUzOTI4Njc=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1938007, + "download_count": 400, + "created_at": "2017-11-19T21:33:24Z", + "updated_at": "2017-11-19T21:33:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.4/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.4.4", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.4.4", + "body": "## Changelog\r\n\r\n- Handle SIGINT and SIGTERM (#75);\r\n- List: print message with there's no task with description;\r\n- Expand home dir (\"~\" symbol) on paths (#74);\r\n- Add Snap as an installation method;\r\n- Move examples to its own repo;\r\n- Watch: also walk on tasks called on on \"cmds\", and not only on \"deps\";\r\n- Print logs to stderr instead of stdout (#68);\r\n- Remove deprecated `set` keyword;\r\n- Add checksum based status check, alternative to timestamp based.\r\n\r\n---\r\nAutomated with [GoReleaser](https://github.com/goreleaser)\r\nBuilt with go version go1.9.1 linux/amd64\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/7673436", + "assets_url": "https://api.github.com/repos/go-task/task/releases/7673436/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/7673436/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.4.3", + "id": 7673436, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTc2NzM0MzY=", + "tag_name": "v1.4.3", + "target_commitish": "master", + "name": "v1.4.3", + "draft": false, + "prerelease": false, + "created_at": "2017-09-07T17:40:59Z", + "published_at": "2017-09-07T17:56:37Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770246", + "id": 4770246, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyNDY=", + "name": "task_1.4.3_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 186, + "created_at": "2017-09-07T17:50:13Z", + "updated_at": "2017-09-07T17:50:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_1.4.3_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770231", + "id": 4770231, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMzE=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1852824, + "download_count": 148, + "created_at": "2017-09-07T17:48:52Z", + "updated_at": "2017-09-07T17:50:15Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770232", + "id": 4770232, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMzI=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1604176, + "download_count": 132, + "created_at": "2017-09-07T17:48:57Z", + "updated_at": "2017-09-07T17:50:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770234", + "id": 4770234, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMzQ=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1595046, + "download_count": 129, + "created_at": "2017-09-07T17:49:00Z", + "updated_at": "2017-09-07T17:50:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770224", + "id": 4770224, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMjQ=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1655096, + "download_count": 141, + "created_at": "2017-09-07T17:47:36Z", + "updated_at": "2017-09-07T17:49:00Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770233", + "id": 4770233, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMzM=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1747310, + "download_count": 223, + "created_at": "2017-09-07T17:48:59Z", + "updated_at": "2017-09-07T17:50:18Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770245", + "id": 4770245, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyNDU=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1731527, + "download_count": 134, + "created_at": "2017-09-07T17:50:06Z", + "updated_at": "2017-09-07T17:50:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770223", + "id": 4770223, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMjM=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1774775, + "download_count": 420, + "created_at": "2017-09-07T17:47:36Z", + "updated_at": "2017-09-07T17:48:52Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770221", + "id": 4770221, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMjE=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1686315, + "download_count": 133, + "created_at": "2017-09-07T17:47:36Z", + "updated_at": "2017-09-07T17:48:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4770222", + "id": 4770222, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ3NzAyMjI=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1811646, + "download_count": 281, + "created_at": "2017-09-07T17:47:36Z", + "updated_at": "2017-09-07T17:48:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.3/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.4.3", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.4.3", + "body": "## v1.4.3\r\n\r\n- Allow assigning variables to tasks at run time via CLI (#33)\r\n- Added suport for multiline variables from sh (#64)\r\n- Fixes env: remove square braces and evaluate shell (#62)\r\n- Watch: change watch library and few fixes and improvements\r\n- When use watching, cancel and restart long running process on file change (#59 and #60)\r\n\r\n---\r\nAutomated with [GoReleaser](https://github.com/goreleaser)\r\nBuilt with go version go1.9 linux/amd64\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/7222098", + "assets_url": "https://api.github.com/repos/go-task/task/releases/7222098/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/7222098/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.4.2", + "id": 7222098, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTcyMjIwOTg=", + "tag_name": "v1.4.2", + "target_commitish": "master", + "name": "v1.4.2", + "draft": false, + "prerelease": false, + "created_at": "2017-07-30T23:42:24Z", + "published_at": "2017-07-30T23:52:49Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461925", + "id": 4461925, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MjU=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 127, + "created_at": "2017-07-30T23:47:58Z", + "updated_at": "2017-07-30T23:47:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461918", + "id": 4461918, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MTg=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1785826, + "download_count": 153, + "created_at": "2017-07-30T23:46:23Z", + "updated_at": "2017-07-30T23:47:51Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461919", + "id": 4461919, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MTk=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1545548, + "download_count": 136, + "created_at": "2017-07-30T23:46:35Z", + "updated_at": "2017-07-30T23:47:57Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461923", + "id": 4461923, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MjM=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1539353, + "download_count": 129, + "created_at": "2017-07-30T23:47:31Z", + "updated_at": "2017-07-30T23:48:41Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461899", + "id": 4461899, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE4OTk=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1597563, + "download_count": 185, + "created_at": "2017-07-30T23:45:13Z", + "updated_at": "2017-07-30T23:46:23Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461922", + "id": 4461922, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MjI=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1687146, + "download_count": 137, + "created_at": "2017-07-30T23:47:24Z", + "updated_at": "2017-07-30T23:48:55Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461924", + "id": 4461924, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MjQ=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1673338, + "download_count": 135, + "created_at": "2017-07-30T23:47:52Z", + "updated_at": "2017-07-30T23:48:56Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461900", + "id": 4461900, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MDA=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1716195, + "download_count": 1915, + "created_at": "2017-07-30T23:45:13Z", + "updated_at": "2017-07-30T23:46:35Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461901", + "id": 4461901, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MDE=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1632796, + "download_count": 132, + "created_at": "2017-07-30T23:45:14Z", + "updated_at": "2017-07-30T23:47:24Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4461902", + "id": 4461902, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQ0NjE5MDI=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1755044, + "download_count": 144, + "created_at": "2017-07-30T23:45:14Z", + "updated_at": "2017-07-30T23:47:31Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.2/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.4.2", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.4.2", + "body": "## v1.4.2\r\n\r\n- Flag to set directory of execution\r\n- Always echo command if is verbose mode\r\n- Add silent mode to disable echoing of commands\r\n- Fixes and improvements of variables (#56)\r\n\r\n---\r\nAutomated with [GoReleaser](https://github.com/goreleaser)\r\nBuilt with go version go1.8.1 linux/amd64\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/7053404", + "assets_url": "https://api.github.com/repos/go-task/task/releases/7053404/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/7053404/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.4.1", + "id": 7053404, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTcwNTM0MDQ=", + "tag_name": "v1.4.1", + "target_commitish": "master", + "name": "v1.4.1", + "draft": false, + "prerelease": false, + "created_at": "2017-07-15T18:52:46Z", + "published_at": "2017-07-15T19:19:43Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336643", + "id": 4336643, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2NDM=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 125, + "created_at": "2017-07-15T18:57:20Z", + "updated_at": "2017-07-15T18:57:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336636", + "id": 4336636, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2MzY=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1779165, + "download_count": 152, + "created_at": "2017-07-15T18:56:01Z", + "updated_at": "2017-07-15T18:57:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336637", + "id": 4336637, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2Mzc=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1539330, + "download_count": 135, + "created_at": "2017-07-15T18:56:04Z", + "updated_at": "2017-07-15T18:57:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336641", + "id": 4336641, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2NDE=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1533273, + "download_count": 127, + "created_at": "2017-07-15T18:56:17Z", + "updated_at": "2017-07-15T18:57:27Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336632", + "id": 4336632, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2MzI=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1589687, + "download_count": 130, + "created_at": "2017-07-15T18:54:53Z", + "updated_at": "2017-07-15T18:56:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336638", + "id": 4336638, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2Mzg=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1680580, + "download_count": 134, + "created_at": "2017-07-15T18:56:05Z", + "updated_at": "2017-07-15T18:57:22Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336642", + "id": 4336642, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2NDI=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1665940, + "download_count": 131, + "created_at": "2017-07-15T18:57:01Z", + "updated_at": "2017-07-15T18:57:36Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336634", + "id": 4336634, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2MzQ=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1708033, + "download_count": 134, + "created_at": "2017-07-15T18:54:53Z", + "updated_at": "2017-07-15T18:56:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336635", + "id": 4336635, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2MzU=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1626143, + "download_count": 133, + "created_at": "2017-07-15T18:54:53Z", + "updated_at": "2017-07-15T18:56:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4336633", + "id": 4336633, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQzMzY2MzM=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1749452, + "download_count": 137, + "created_at": "2017-07-15T18:54:53Z", + "updated_at": "2017-07-15T18:56:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.1/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.4.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.4.1", + "body": "## Changelog\r\n\r\n### v1.4.1\r\n\r\n- Allow use of YAML for dynamic variables instead of $ prefix\r\n - `VAR: {sh: echo Hello}` instead of `VAR: $echo Hello`\r\n- Add `--list` (or `-l`) flag to print existing tasks\r\n- OS specific Taskvars file (e.g. `Taskvars_windows.yml`, `Taskvars_linux.yml`, etc)\r\n- Consider task up-to-date on equal timestamps (#49)\r\n- Allow absolute path in generates section (#48)\r\n- Bugfix: allow templating when calling deps (#42)\r\n- Fix panic for invalid task in cyclic dep detection\r\n- Better error output for dynamic variables in Taskvars.yml (#41)\r\n- Allow template evaluation in parameters\r\n\r\n---\r\nAutomated with [GoReleaser](https://github.com/goreleaser)\r\nBuilt with go version go1.8.1 linux/amd64\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/6944903", + "assets_url": "https://api.github.com/repos/go-task/task/releases/6944903/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/6944903/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.4.0", + "id": 6944903, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTY5NDQ5MDM=", + "tag_name": "v1.4.0", + "target_commitish": "master", + "name": "v1.4.0", + "draft": false, + "prerelease": false, + "created_at": "2017-07-06T00:32:44Z", + "published_at": "2017-07-06T00:43:57Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262101", + "id": 4262101, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIxMDE=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 789, + "download_count": 128, + "created_at": "2017-07-06T00:38:02Z", + "updated_at": "2017-07-06T00:38:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262096", + "id": 4262096, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTY=", + "name": "task_darwin_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1776589, + "download_count": 135, + "created_at": "2017-07-06T00:36:48Z", + "updated_at": "2017-07-06T00:38:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_darwin_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262097", + "id": 4262097, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTc=", + "name": "task_linux_386.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1536262, + "download_count": 131, + "created_at": "2017-07-06T00:36:59Z", + "updated_at": "2017-07-06T00:37:59Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262099", + "id": 4262099, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTk=", + "name": "task_linux_386.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1530602, + "download_count": 132, + "created_at": "2017-07-06T00:37:20Z", + "updated_at": "2017-07-06T00:38:01Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262095", + "id": 4262095, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTU=", + "name": "task_linux_386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1586111, + "download_count": 134, + "created_at": "2017-07-06T00:35:52Z", + "updated_at": "2017-07-06T00:36:58Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262098", + "id": 4262098, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTg=", + "name": "task_linux_amd64.deb", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-debian-package", + "state": "uploaded", + "size": 1677016, + "download_count": 130, + "created_at": "2017-07-06T00:37:14Z", + "updated_at": "2017-07-06T00:38:19Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262100", + "id": 4262100, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIxMDA=", + "name": "task_linux_amd64.rpm", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-redhat-package-manager", + "state": "uploaded", + "size": 1664029, + "download_count": 129, + "created_at": "2017-07-06T00:37:59Z", + "updated_at": "2017-07-06T00:38:32Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_amd64.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262094", + "id": 4262094, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTQ=", + "name": "task_linux_amd64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1704082, + "download_count": 131, + "created_at": "2017-07-06T00:35:52Z", + "updated_at": "2017-07-06T00:37:20Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_linux_amd64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262093", + "id": 4262093, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTM=", + "name": "task_windows_386.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1624270, + "download_count": 131, + "created_at": "2017-07-06T00:35:52Z", + "updated_at": "2017-07-06T00:36:48Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_windows_386.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4262092", + "id": 4262092, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjIwOTI=", + "name": "task_windows_amd64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1747407, + "download_count": 133, + "created_at": "2017-07-06T00:35:52Z", + "updated_at": "2017-07-06T00:37:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.4.0/task_windows_amd64.zip" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.4.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.4.0", + "body": "## Changelog\r\n\r\n- v1.4.0\r\n- Improve README documentation\r\n- Cache dynamic variables\r\n- Add verbose mode (`-v` flag)\r\n- Support to task parameters (overriding vars) (#31) (#32)\r\n- Print command, also when \"set:\" is specified (#35)\r\n- Improve task command help text (#35)\r\n\r\n---\r\nAutomated with [GoReleaser](https://github.com/goreleaser)\r\nBuilt with go version go1.8.1 linux/amd64\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/6715293", + "assets_url": "https://api.github.com/repos/go-task/task/releases/6715293/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/6715293/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.3.1", + "id": 6715293, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTY3MTUyOTM=", + "tag_name": "v1.3.1", + "target_commitish": "main", + "name": "v1.3.1", + "draft": false, + "prerelease": false, + "created_at": "2017-06-14T18:33:51Z", + "published_at": "2017-06-14T18:36:29Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101709", + "id": 4101709, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MDk=", + "name": "task_1.3.1_linux_x64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1733241, + "download_count": 155, + "created_at": "2017-06-14T18:36:29Z", + "updated_at": "2017-06-14T18:38:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_1.3.1_linux_x64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101712", + "id": 4101712, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MTI=", + "name": "task_1.3.1_linux_x86.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1613751, + "download_count": 131, + "created_at": "2017-06-14T18:36:30Z", + "updated_at": "2017-06-14T18:38:02Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_1.3.1_linux_x86.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101711", + "id": 4101711, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MTE=", + "name": "task_1.3.1_macOS_x64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1806888, + "download_count": 140, + "created_at": "2017-06-14T18:36:29Z", + "updated_at": "2017-06-14T18:38:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_1.3.1_macOS_x64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101710", + "id": 4101710, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MTA=", + "name": "task_1.3.1_windows_x64.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1773480, + "download_count": 132, + "created_at": "2017-06-14T18:36:29Z", + "updated_at": "2017-06-14T18:38:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_1.3.1_windows_x64.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101708", + "id": 4101708, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MDg=", + "name": "task_1.3.1_windows_x86.zip", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1648328, + "download_count": 125, + "created_at": "2017-06-14T18:36:29Z", + "updated_at": "2017-06-14T18:38:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_1.3.1_windows_x86.zip" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4101707", + "id": 4101707, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMDE3MDc=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 468, + "download_count": 117, + "created_at": "2017-06-14T18:36:29Z", + "updated_at": "2017-06-14T18:36:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4136000", + "id": 4136000, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMzYwMDA=", + "name": "task_linux_386.deb", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1568510, + "download_count": 127, + "created_at": "2017-06-19T23:49:51Z", + "updated_at": "2017-06-19T23:50:45Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_linux_386.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4135998", + "id": 4135998, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMzU5OTg=", + "name": "task_linux_386.rpm", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1559319, + "download_count": 122, + "created_at": "2017-06-19T23:49:51Z", + "updated_at": "2017-06-19T23:50:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_linux_386.rpm" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4135999", + "id": 4135999, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMzU5OTk=", + "name": "task_linux_amd64.deb", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/vnd.debian.binary-package", + "state": "uploaded", + "size": 1708572, + "download_count": 125, + "created_at": "2017-06-19T23:49:51Z", + "updated_at": "2017-06-19T23:50:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_linux_amd64.deb" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/4136001", + "id": 4136001, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQxMzYwMDE=", + "name": "task_linux_amd64.rpm", + "label": null, + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/x-rpm", + "state": "uploaded", + "size": 1694374, + "download_count": 123, + "created_at": "2017-06-19T23:49:52Z", + "updated_at": "2017-06-19T23:51:03Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.1/task_linux_amd64.rpm" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.3.1", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.3.1", + "body": "## Changelog\r\n\r\n### v1.3.1\r\n\r\n- Fix glob not working on commands (#28)\r\n- Add ExeExt template function\r\n- Add `--init` flag to create a new Taskfile\r\n- Add status option to prevent task from running (#27)\r\n- Allow interpolation on `generates` and `sources` attributes (#26)\r\n\r\n---\r\n\r\nAutomated with @goreleaser\r\nBuilt with go version go1.8.1 linux/amd64\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/6168713", + "assets_url": "https://api.github.com/repos/go-task/task/releases/6168713/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/6168713/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.3.0", + "id": 6168713, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTYxNjg3MTM=", + "tag_name": "v1.3.0", + "target_commitish": "main", + "name": "v1.3.0", + "draft": false, + "prerelease": false, + "created_at": "2017-04-24T13:47:02Z", + "published_at": "2017-04-24T13:52:29Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725009", + "id": 3725009, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMDk=", + "name": "task_checksums.txt", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "text/plain; charset=utf-8", + "state": "uploaded", + "size": 540, + "download_count": 118, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:52:29Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_checksums.txt" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725015", + "id": 3725015, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTU=", + "name": "task_Darwin_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1680863, + "download_count": 122, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Darwin_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725013", + "id": 3725013, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTM=", + "name": "task_Darwin_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1759610, + "download_count": 143, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Darwin_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725012", + "id": 3725012, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTI=", + "name": "task_Linux_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1590609, + "download_count": 125, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Linux_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725014", + "id": 3725014, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTQ=", + "name": "task_Linux_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1679527, + "download_count": 550, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Linux_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725010", + "id": 3725010, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTA=", + "name": "task_Windows_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1616360, + "download_count": 126, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Windows_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3725011", + "id": 3725011, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM3MjUwMTE=", + "name": "task_Windows_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1702419, + "download_count": 128, + "created_at": "2017-04-24T13:52:29Z", + "updated_at": "2017-04-24T13:54:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.3.0/task_Windows_x86_64.tar.gz" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.3.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.3.0", + "body": "## Changelog\r\n\r\n### v1.3.0\r\n\r\n- Migrate from os/exec.Cmd to a native Go sh/bash interpreter\r\n - This is a potentially breaking change if you use Windows.\r\n - Now, `cmd` is not used anymore on Windows. Always use Bash-like syntax for your commands, even on Windows.\r\n- Add \"ToSlash\" and \"FromSlash\" to template functions\r\n- Use functions defined on github.com/Masterminds/sprig\r\n- Do not redirect stdin while running variables commands\r\n- Using `context` and `errgroup` packages (this will make other tasks to be cancelled, if one returned an error)\r\n\r\n---\r\nAutomated with @goreleaser\r\nBuilt with go version go1.7.1 linux/amd64\r\n\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/5948970", + "assets_url": "https://api.github.com/repos/go-task/task/releases/5948970/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/5948970/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.2.0", + "id": 5948970, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTU5NDg5NzA=", + "tag_name": "v1.2.0", + "target_commitish": "main", + "name": "v1.2.0", + "draft": false, + "prerelease": false, + "created_at": "2017-04-02T13:03:10Z", + "published_at": "2017-04-02T13:05:49Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544874", + "id": 3544874, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzQ=", + "name": "task_Darwin_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1225172, + "download_count": 123, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Darwin_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544871", + "id": 3544871, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzE=", + "name": "task_Darwin_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1279414, + "download_count": 129, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Darwin_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544875", + "id": 3544875, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzU=", + "name": "task_Linux_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1155950, + "download_count": 124, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Linux_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544873", + "id": 3544873, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzM=", + "name": "task_Linux_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1212578, + "download_count": 132, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:05Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Linux_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544876", + "id": 3544876, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzY=", + "name": "task_Windows_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1172500, + "download_count": 126, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:04Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Windows_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3544872", + "id": 3544872, + "node_id": "MDEyOlJlbGVhc2VBc3NldDM1NDQ4NzI=", + "name": "task_Windows_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1233697, + "download_count": 128, + "created_at": "2017-04-02T13:05:50Z", + "updated_at": "2017-04-02T13:07:07Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.2.0/task_Windows_x86_64.tar.gz" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.2.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.2.0", + "body": "## Changelog\r\n- More tests and Travis integration\r\n- Watch a task (experimental)\r\n- Possibility to call another task\r\n- Fix \"=\" not being reconized in variables/environment variables\r\n- Tasks can now have a description, and help will print them (#10)\r\n- Task dependencies now run concurrently\r\n- Support for a default task (#16)\r\n\r\n--\r\nAutomated with @goreleaser\r\nBuilt with go version go1.7.1 linux/amd64\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/5683685", + "assets_url": "https://api.github.com/repos/go-task/task/releases/5683685/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/5683685/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.1.0", + "id": 5683685, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTU2ODM2ODU=", + "tag_name": "v1.1.0", + "target_commitish": "main", + "name": "v1.1.0", + "draft": false, + "prerelease": false, + "created_at": "2017-03-08T23:50:10Z", + "published_at": "2017-03-08T23:52:56Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350115", + "id": 3350115, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMTU=", + "name": "task_Darwin_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1196237, + "download_count": 122, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:06Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Darwin_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350118", + "id": 3350118, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMTg=", + "name": "task_Darwin_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1248907, + "download_count": 122, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Darwin_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350119", + "id": 3350119, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMTk=", + "name": "task_Linux_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1129778, + "download_count": 124, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Linux_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350120", + "id": 3350120, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMjA=", + "name": "task_Linux_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1188487, + "download_count": 138, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Linux_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350116", + "id": 3350116, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMTY=", + "name": "task_Windows_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1148869, + "download_count": 125, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:14Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Windows_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3350117", + "id": 3350117, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMzNTAxMTc=", + "name": "task_Windows_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 1208893, + "download_count": 125, + "created_at": "2017-03-08T23:52:57Z", + "updated_at": "2017-03-08T23:54:08Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.1.0/task_Windows_x86_64.tar.gz" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.1.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.1.0", + "body": "- Support for YAML, TOML and JSON (#1)\r\n- Support running command in another directory (#4)\r\n- `--force` or `-f` flag to force execution of task even when it's up-to-date\r\n- Detection of cyclic dependencies (#5)\r\n- Support for variables (#6, #9, #14)\r\n- Operation System specific commands and variables (#13)\r\n\r\n--\r\nAutomated with @goreleaser\r\nBuilt with go version go1.7.1 linux/amd64\r\n" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/5593474", + "assets_url": "https://api.github.com/repos/go-task/task/releases/5593474/assets", + "upload_url": "https://uploads.github.com/repos/go-task/task/releases/5593474/assets{?name,label}", + "html_url": "https://github.com/go-task/task/releases/tag/v1.0.0", + "id": 5593474, + "author": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTU1OTM0NzQ=", + "tag_name": "v1.0.0", + "target_commitish": "main", + "name": "v1.0.0", + "draft": false, + "prerelease": false, + "created_at": "2017-02-28T12:30:51Z", + "published_at": "2017-02-28T12:33:25Z", + "assets": [ + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291490", + "id": 3291490, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0OTA=", + "name": "task_Darwin_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 732447, + "download_count": 123, + "created_at": "2017-02-28T12:33:26Z", + "updated_at": "2017-02-28T12:34:17Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Darwin_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291491", + "id": 3291491, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0OTE=", + "name": "task_Darwin_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 769499, + "download_count": 123, + "created_at": "2017-02-28T12:33:27Z", + "updated_at": "2017-02-28T12:34:09Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Darwin_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291488", + "id": 3291488, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0ODg=", + "name": "task_Linux_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 694623, + "download_count": 124, + "created_at": "2017-02-28T12:33:26Z", + "updated_at": "2017-02-28T12:34:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Linux_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291487", + "id": 3291487, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0ODc=", + "name": "task_Linux_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 733716, + "download_count": 143, + "created_at": "2017-02-28T12:33:26Z", + "updated_at": "2017-02-28T12:34:12Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Linux_x86_64.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291486", + "id": 3291486, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0ODY=", + "name": "task_Windows_i386.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 720185, + "download_count": 126, + "created_at": "2017-02-28T12:33:26Z", + "updated_at": "2017-02-28T12:34:10Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Windows_i386.tar.gz" + }, + { + "url": "https://api.github.com/repos/go-task/task/releases/assets/3291489", + "id": 3291489, + "node_id": "MDEyOlJlbGVhc2VBc3NldDMyOTE0ODk=", + "name": "task_Windows_x86_64.tar.gz", + "label": "", + "uploader": { + "login": "andreynering", + "id": 7011819, + "node_id": "MDQ6VXNlcjcwMTE4MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/7011819?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/andreynering", + "html_url": "https://github.com/andreynering", + "followers_url": "https://api.github.com/users/andreynering/followers", + "following_url": "https://api.github.com/users/andreynering/following{/other_user}", + "gists_url": "https://api.github.com/users/andreynering/gists{/gist_id}", + "starred_url": "https://api.github.com/users/andreynering/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andreynering/subscriptions", + "organizations_url": "https://api.github.com/users/andreynering/orgs", + "repos_url": "https://api.github.com/users/andreynering/repos", + "events_url": "https://api.github.com/users/andreynering/events{/privacy}", + "received_events_url": "https://api.github.com/users/andreynering/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "content_type": "application/gzip", + "state": "uploaded", + "size": 764095, + "download_count": 131, + "created_at": "2017-02-28T12:33:26Z", + "updated_at": "2017-02-28T12:34:13Z", + "browser_download_url": "https://github.com/go-task/task/releases/download/v1.0.0/task_Windows_x86_64.tar.gz" + } + ], + "tarball_url": "https://api.github.com/repos/go-task/task/tarball/v1.0.0", + "zipball_url": "https://api.github.com/repos/go-task/task/zipball/v1.0.0", + "body": "## Changelog\n\n45c40cc MIT LICENS file\n\n## \n\nAutomated with @goreleaser\nBuilt with go version go1.7.1 linux/amd64\n" + } +] diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..a8c5c94 --- /dev/null +++ b/action.yml @@ -0,0 +1,23 @@ +name: "step-security/go-task-setup-task" +description: "Download Task and add it to the PATH" +author: "step-security" +branding: + icon: "box" + color: "blue" +inputs: + version: + description: "Version to use. Example: 3.4.2" + required: true + default: "3.x" + repo-token: + description: "Token with permissions to do repo things" + required: false + default: "${{ github.token }}" + max-retries: + description: "Maximum number of retry attempts for HTTP requests" + required: false + default: "3" + +runs: + using: "node24" + main: "dist/index.js" diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..4ca8d30 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,47474 @@ +import { createRequire as __WEBPACK_EXTERNAL_createRequire } from "module"; +/******/ var __webpack_modules__ = ({ + +/***/ 1324: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = +{ + parallel : __nccwpck_require__(3857), + serial : __nccwpck_require__(1054), + serialOrdered : __nccwpck_require__(3961) +}; + + +/***/ }), + +/***/ 4818: +/***/ ((module) => { + +// API +module.exports = abort; + +/** + * Aborts leftover active jobs + * + * @param {object} state - current state object + */ +function abort(state) +{ + Object.keys(state.jobs).forEach(clean.bind(state)); + + // reset leftover jobs + state.jobs = {}; +} + +/** + * Cleans up leftover job by invoking abort function for the provided job id + * + * @this state + * @param {string|number} key - job id to abort + */ +function clean(key) +{ + if (typeof this.jobs[key] == 'function') + { + this.jobs[key](); + } +} + + +/***/ }), + +/***/ 8452: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var defer = __nccwpck_require__(9200); + +// API +module.exports = async; + +/** + * Runs provided callback asynchronously + * even if callback itself is not + * + * @param {function} callback - callback to invoke + * @returns {function} - augmented callback + */ +function async(callback) +{ + var isAsync = false; + + // check if async happened + defer(function() { isAsync = true; }); + + return function async_callback(err, result) + { + if (isAsync) + { + callback(err, result); + } + else + { + defer(function nextTick_callback() + { + callback(err, result); + }); + } + }; +} + + +/***/ }), + +/***/ 9200: +/***/ ((module) => { + +module.exports = defer; + +/** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ +function defer(fn) +{ + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } +} + + +/***/ }), + +/***/ 4902: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var async = __nccwpck_require__(8452) + , abort = __nccwpck_require__(4818) + ; + +// API +module.exports = iterate; + +/** + * Iterates over each job object + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {object} state - current job status + * @param {function} callback - invoked when all elements processed + */ +function iterate(list, iterator, state, callback) +{ + // store current index + var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; + + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) + { + // don't repeat yourself + // skip secondary callbacks + if (!(key in state.jobs)) + { + return; + } + + // clean up jobs + delete state.jobs[key]; + + if (error) + { + // don't process rest of the results + // stop still active jobs + // and reset the list + abort(state); + } + else + { + state.results[key] = output; + } + + // return salvaged results + callback(error, state.results); + }); +} + +/** + * Runs iterator over provided job element + * + * @param {function} iterator - iterator to invoke + * @param {string|number} key - key/index of the element in the list of jobs + * @param {mixed} item - job description + * @param {function} callback - invoked after iterator is done with the job + * @returns {function|mixed} - job abort function or something else + */ +function runJob(iterator, key, item, callback) +{ + var aborter; + + // allow shortcut if iterator expects only two arguments + if (iterator.length == 2) + { + aborter = iterator(item, async(callback)); + } + // otherwise go with full three arguments + else + { + aborter = iterator(item, key, async(callback)); + } + + return aborter; +} + + +/***/ }), + +/***/ 1721: +/***/ ((module) => { + +// API +module.exports = state; + +/** + * Creates initial state object + * for iteration over list + * + * @param {array|object} list - list to iterate over + * @param {function|null} sortMethod - function to use for keys sort, + * or `null` to keep them as is + * @returns {object} - initial state object + */ +function state(list, sortMethod) +{ + var isNamedList = !Array.isArray(list) + , initState = + { + index : 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs : {}, + results : isNamedList ? {} : [], + size : isNamedList ? Object.keys(list).length : list.length + } + ; + + if (sortMethod) + { + // sort array keys based on it's values + // sort object's keys just on own merit + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) + { + return sortMethod(list[a], list[b]); + }); + } + + return initState; +} + + +/***/ }), + +/***/ 3351: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var abort = __nccwpck_require__(4818) + , async = __nccwpck_require__(8452) + ; + +// API +module.exports = terminator; + +/** + * Terminates jobs in the attached state context + * + * @this AsyncKitState# + * @param {function} callback - final callback to invoke after termination + */ +function terminator(callback) +{ + if (!Object.keys(this.jobs).length) + { + return; + } + + // fast forward iteration index + this.index = this.size; + + // abort jobs + abort(this); + + // send back results we have so far + async(callback)(null, this.results); +} + + +/***/ }), + +/***/ 3857: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var iterate = __nccwpck_require__(4902) + , initState = __nccwpck_require__(1721) + , terminator = __nccwpck_require__(3351) + ; + +// Public API +module.exports = parallel; + +/** + * Runs iterator over provided array elements in parallel + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function parallel(list, iterator, callback) +{ + var state = initState(list); + + while (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, function(error, result) + { + if (error) + { + callback(error, result); + return; + } + + // looks like it's the last one + if (Object.keys(state.jobs).length === 0) + { + callback(null, state.results); + return; + } + }); + + state.index++; + } + + return terminator.bind(state, callback); +} + + +/***/ }), + +/***/ 1054: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var serialOrdered = __nccwpck_require__(3961); + +// Public API +module.exports = serial; + +/** + * Runs iterator over provided array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serial(list, iterator, callback) +{ + return serialOrdered(list, iterator, null, callback); +} + + +/***/ }), + +/***/ 3961: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var iterate = __nccwpck_require__(4902) + , initState = __nccwpck_require__(1721) + , terminator = __nccwpck_require__(3351) + ; + +// Public API +module.exports = serialOrdered; +// sorting helpers +module.exports.ascending = ascending; +module.exports.descending = descending; + +/** + * Runs iterator over provided sorted array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serialOrdered(list, iterator, sortMethod, callback) +{ + var state = initState(list, sortMethod); + + iterate(list, iterator, state, function iteratorHandler(error, result) + { + if (error) + { + callback(error, result); + return; + } + + state.index++; + + // are we there yet? + if (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, iteratorHandler); + return; + } + + // done here + callback(null, state.results); + }); + + return terminator.bind(state, callback); +} + +/* + * -- Sort methods + */ + +/** + * sort helper to sort array elements in ascending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function ascending(a, b) +{ + return a < b ? -1 : a > b ? 1 : 0; +} + +/** + * sort helper to sort array elements in descending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function descending(a, b) +{ + return -1 * ascending(a, b); +} + + +/***/ }), + +/***/ 8089: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +const events_1 = __nccwpck_require__(4434); +const debug_1 = __importDefault(__nccwpck_require__(2830)); +const promisify_1 = __importDefault(__nccwpck_require__(4401)); +const debug = debug_1.default('agent-base'); +function isAgent(v) { + return Boolean(v) && typeof v.addRequest === 'function'; +} +function isSecureEndpoint() { + const { stack } = new Error(); + if (typeof stack !== 'string') + return false; + return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); +} +function createAgent(callback, opts) { + return new createAgent.Agent(callback, opts); +} +(function (createAgent) { + /** + * Base `http.Agent` implementation. + * No pooling/keep-alive is implemented by default. + * + * @param {Function} callback + * @api public + */ + class Agent extends events_1.EventEmitter { + constructor(callback, _opts) { + super(); + let opts = _opts; + if (typeof callback === 'function') { + this.callback = callback; + } + else if (callback) { + opts = callback; + } + // Timeout for the socket to be returned from the callback + this.timeout = null; + if (opts && typeof opts.timeout === 'number') { + this.timeout = opts.timeout; + } + // These aren't actually used by `agent-base`, but are required + // for the TypeScript definition files in `@types/node` :/ + this.maxFreeSockets = 1; + this.maxSockets = 1; + this.maxTotalSockets = Infinity; + this.sockets = {}; + this.freeSockets = {}; + this.requests = {}; + this.options = {}; + } + get defaultPort() { + if (typeof this.explicitDefaultPort === 'number') { + return this.explicitDefaultPort; + } + return isSecureEndpoint() ? 443 : 80; + } + set defaultPort(v) { + this.explicitDefaultPort = v; + } + get protocol() { + if (typeof this.explicitProtocol === 'string') { + return this.explicitProtocol; + } + return isSecureEndpoint() ? 'https:' : 'http:'; + } + set protocol(v) { + this.explicitProtocol = v; + } + callback(req, opts, fn) { + throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); + } + /** + * Called by node-core's "_http_client.js" module when creating + * a new HTTP request with this Agent instance. + * + * @api public + */ + addRequest(req, _opts) { + const opts = Object.assign({}, _opts); + if (typeof opts.secureEndpoint !== 'boolean') { + opts.secureEndpoint = isSecureEndpoint(); + } + if (opts.host == null) { + opts.host = 'localhost'; + } + if (opts.port == null) { + opts.port = opts.secureEndpoint ? 443 : 80; + } + if (opts.protocol == null) { + opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; + } + if (opts.host && opts.path) { + // If both a `host` and `path` are specified then it's most + // likely the result of a `url.parse()` call... we need to + // remove the `path` portion so that `net.connect()` doesn't + // attempt to open that as a unix socket file. + delete opts.path; + } + delete opts.agent; + delete opts.hostname; + delete opts._defaultAgent; + delete opts.defaultPort; + delete opts.createConnection; + // Hint to use "Connection: close" + // XXX: non-documented `http` module API :( + req._last = true; + req.shouldKeepAlive = false; + let timedOut = false; + let timeoutId = null; + const timeoutMs = opts.timeout || this.timeout; + const onerror = (err) => { + if (req._hadError) + return; + req.emit('error', err); + // For Safety. Some additional errors might fire later on + // and we need to make sure we don't double-fire the error event. + req._hadError = true; + }; + const ontimeout = () => { + timeoutId = null; + timedOut = true; + const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); + err.code = 'ETIMEOUT'; + onerror(err); + }; + const callbackError = (err) => { + if (timedOut) + return; + if (timeoutId !== null) { + clearTimeout(timeoutId); + timeoutId = null; + } + onerror(err); + }; + const onsocket = (socket) => { + if (timedOut) + return; + if (timeoutId != null) { + clearTimeout(timeoutId); + timeoutId = null; + } + if (isAgent(socket)) { + // `socket` is actually an `http.Agent` instance, so + // relinquish responsibility for this `req` to the Agent + // from here on + debug('Callback returned another Agent instance %o', socket.constructor.name); + socket.addRequest(req, opts); + return; + } + if (socket) { + socket.once('free', () => { + this.freeSocket(socket, opts); + }); + req.onSocket(socket); + return; + } + const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); + onerror(err); + }; + if (typeof this.callback !== 'function') { + onerror(new Error('`callback` is not defined')); + return; + } + if (!this.promisifiedCallback) { + if (this.callback.length >= 3) { + debug('Converting legacy callback function to promise'); + this.promisifiedCallback = promisify_1.default(this.callback); + } + else { + this.promisifiedCallback = this.callback; + } + } + if (typeof timeoutMs === 'number' && timeoutMs > 0) { + timeoutId = setTimeout(ontimeout, timeoutMs); + } + if ('port' in opts && typeof opts.port !== 'number') { + opts.port = Number(opts.port); + } + try { + debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); + Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); + } + catch (err) { + Promise.reject(err).catch(callbackError); + } + } + freeSocket(socket, opts) { + debug('Freeing socket %o %o', socket.constructor.name, opts); + socket.destroy(); + } + destroy() { + debug('Destroying agent %o', this.constructor.name); + } + } + createAgent.Agent = Agent; + // So that `instanceof` works correctly + createAgent.prototype = createAgent.Agent.prototype; +})(createAgent || (createAgent = {})); +module.exports = createAgent; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 4401: +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +function promisify(fn) { + return function (req, opts) { + return new Promise((resolve, reject) => { + fn.call(this, req, opts, (err, rtn) => { + if (err) { + reject(err); + } + else { + resolve(rtn); + } + }); + }); + }; +} +exports["default"] = promisify; +//# sourceMappingURL=promisify.js.map + +/***/ }), + +/***/ 5416: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var CombinedStream = __nccwpck_require__(5630); +var util = __nccwpck_require__(9023); +var path = __nccwpck_require__(6928); +var http = __nccwpck_require__(8611); +var https = __nccwpck_require__(5692); +var parseUrl = (__nccwpck_require__(7016).parse); +var fs = __nccwpck_require__(9896); +var Stream = (__nccwpck_require__(2203).Stream); +var crypto = __nccwpck_require__(6982); +var mime = __nccwpck_require__(4096); +var asynckit = __nccwpck_require__(1324); +var setToStringTag = __nccwpck_require__(8700); +var hasOwn = __nccwpck_require__(4076); +var populate = __nccwpck_require__(4957); + +/** + * Escape CR, LF, and `"` in a multipart `name`/`filename` parameter, so a field + * name or filename can not break out of its header line to inject headers or + * smuggle additional parts. Matches the WHATWG HTML multipart/form-data encoding. + * + * @param {string} str - the parameter value to escape + * @returns {string} the escaped value + */ +function escapeHeaderParam(str) { + return String(str).replace(/\r/g, '%0D').replace(/\n/g, '%0A').replace(/"/g, '%22'); +} + +/** + * Create readable "multipart/form-data" streams. + * Can be used to submit forms + * and file uploads to other web applications. + * + * @constructor + * @param {object} options - Properties to be added/overriden for FormData and CombinedStream + */ +function FormData(options) { + if (!(this instanceof FormData)) { + return new FormData(options); + } + + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + + CombinedStream.call(this); + + options = options || {}; // eslint-disable-line no-param-reassign + for (var option in options) { // eslint-disable-line no-restricted-syntax + this[option] = options[option]; + } +} + +// make it a Stream +util.inherits(FormData, CombinedStream); + +FormData.LINE_BREAK = '\r\n'; +FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; + +FormData.prototype.append = function (field, value, options) { + options = options || {}; // eslint-disable-line no-param-reassign + + // allow filename as single option + if (typeof options === 'string') { + options = { filename: options }; // eslint-disable-line no-param-reassign + } + + var append = CombinedStream.prototype.append.bind(this); + + // all that streamy business can't handle numbers + if (typeof value === 'number' || value == null) { + value = String(value); // eslint-disable-line no-param-reassign + } + + // https://github.com/felixge/node-form-data/issues/38 + if (Array.isArray(value)) { + /* + * Please convert your array into string + * the way web server expects it + */ + this._error(new Error('Arrays are not supported.')); + return; + } + + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + + append(header); + append(value); + append(footer); + + // pass along options.knownLength + this._trackLength(header, value, options); +}; + +FormData.prototype._trackLength = function (header, value, options) { + var valueLength = 0; + + /* + * used w/ getLengthSync(), when length is known. + * e.g. for streaming directly from a remote server, + * w/ a known file a size, and not wanting to wait for + * incoming file to finish to get its size. + */ + if (options.knownLength != null) { + valueLength += Number(options.knownLength); + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === 'string') { + valueLength = Buffer.byteLength(value); + } + + this._valueLength += valueLength; + + // @check why add CRLF? does this account for custom/multiple CRLFs? + this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length; + + // empty or either doesn't have path or not an http response or not a stream + if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) { + return; + } + + // no need to bother with the length + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } +}; + +FormData.prototype._lengthRetriever = function (value, callback) { + if (hasOwn(value, 'fd')) { + // take read range into a account + // `end` = Infinity –> read file till the end + // + // TODO: Looks like there is bug in Node fs.createReadStream + // it doesn't respect `end` options without `start` options + // Fix it when node fixes it. + // https://github.com/joyent/node/issues/7819 + if (value.end != undefined && value.end != Infinity && value.start != undefined) { + // when end specified + // no need to calculate range + // inclusive, starts with 0 + callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return + + // not that fast snoopy + } else { + // still need to fetch file size from fs + fs.stat(value.path, function (err, stat) { + if (err) { + callback(err); + return; + } + + // update final size based on the range options + var fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + + // or http response + } else if (hasOwn(value, 'httpVersion')) { + callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return + + // or request stream http://github.com/mikeal/request + } else if (hasOwn(value, 'httpModule')) { + // wait till response come back + value.on('response', function (response) { + value.pause(); + callback(null, Number(response.headers['content-length'])); + }); + value.resume(); + + // something else + } else { + callback('Unknown stream'); // eslint-disable-line callback-return + } +}; + +FormData.prototype._multiPartHeader = function (field, value, options) { + /* + * custom header specified (as string)? + * it becomes responsible for boundary + * (e.g. to handle extra CRLFs on .NET servers) + */ + if (typeof options.header === 'string') { + return options.header; + } + + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + + var contents = ''; + var headers = { + // add custom disposition as third element or keep it two elements if not + 'Content-Disposition': ['form-data', 'name="' + escapeHeaderParam(field) + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + 'Content-Type': [].concat(contentType || []) + }; + + // allow custom headers. + if (typeof options.header === 'object') { + populate(headers, options.header); + } + + var header; + for (var prop in headers) { // eslint-disable-line no-restricted-syntax + if (hasOwn(headers, prop)) { + header = headers[prop]; + + // skip nullish headers. + if (header == null) { + continue; // eslint-disable-line no-restricted-syntax, no-continue + } + + // convert all headers to arrays. + if (!Array.isArray(header)) { + header = [header]; + } + + // add non-empty headers. + if (header.length) { + contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; + } + } + } + + return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; +}; + +FormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return + var filename; + + if (typeof options.filepath === 'string') { + // custom filepath for relative paths + filename = path.normalize(options.filepath).replace(/\\/g, '/'); + } else if (options.filename || (value && (value.name || value.path))) { + /* + * custom filename take precedence + * formidable and the browser add a name property + * fs- and request- streams have path property + */ + filename = path.basename(options.filename || (value && (value.name || value.path))); + } else if (value && value.readable && hasOwn(value, 'httpVersion')) { + // or try http response + filename = path.basename(value.client._httpMessage.path || ''); + } + + if (filename) { + return 'filename="' + escapeHeaderParam(filename) + '"'; + } +}; + +FormData.prototype._getContentType = function (value, options) { + // use custom content-type above all + var contentType = options.contentType; + + // or try `name` from formidable, browser + if (!contentType && value && value.name) { + contentType = mime.lookup(value.name); + } + + // or try `path` from fs-, request- streams + if (!contentType && value && value.path) { + contentType = mime.lookup(value.path); + } + + // or if it's http-reponse + if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) { + contentType = value.headers['content-type']; + } + + // or guess it from the filepath or filename + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + + // fallback to the default content type if `value` is not simple value + if (!contentType && value && typeof value === 'object') { + contentType = FormData.DEFAULT_CONTENT_TYPE; + } + + return contentType; +}; + +FormData.prototype._multiPartFooter = function () { + return function (next) { + var footer = FormData.LINE_BREAK; + + var lastPart = this._streams.length === 0; + if (lastPart) { + footer += this._lastBoundary(); + } + + next(footer); + }.bind(this); +}; + +FormData.prototype._lastBoundary = function () { + return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; +}; + +FormData.prototype.getHeaders = function (userHeaders) { + var header; + var formHeaders = { + 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() + }; + + for (header in userHeaders) { // eslint-disable-line no-restricted-syntax + if (hasOwn(userHeaders, header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + + return formHeaders; +}; + +FormData.prototype.setBoundary = function (boundary) { + if (typeof boundary !== 'string') { + throw new TypeError('FormData boundary must be a string'); + } + this._boundary = boundary; +}; + +FormData.prototype.getBoundary = function () { + if (!this._boundary) { + this._generateBoundary(); + } + + return this._boundary; +}; + +FormData.prototype.getBuffer = function () { + var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap + var boundary = this.getBoundary(); + + // Create the form content. Add Line breaks to the end of data. + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== 'function') { + // Add content to the buffer. + if (Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]); + } else { + dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]); + } + + // Add break after content. + if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) { + dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]); + } + } + } + + // Add the footer and return the Buffer object. + return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]); +}; + +FormData.prototype._generateBoundary = function () { + // This generates a 50 character boundary similar to those used by Firefox. + + // They are optimized for boyer-moore parsing. + this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex'); +}; + +// Note: getLengthSync DOESN'T calculate streams length +// As workaround one can calculate file size manually and add it as knownLength option +FormData.prototype.getLengthSync = function () { + var knownLength = this._overheadLength + this._valueLength; + + // Don't get confused, there are 3 "internal" streams for each keyval pair so it basically checks if there is any value added to the form + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + // https://github.com/form-data/form-data/issues/40 + if (!this.hasKnownLength()) { + /* + * Some async length retrievers are present + * therefore synchronous length calculation is false. + * Please use getLength(callback) to get proper length + */ + this._error(new Error('Cannot calculate proper length in synchronous way.')); + } + + return knownLength; +}; + +// Public API to check if length of added values is known +// https://github.com/form-data/form-data/issues/196 +// https://github.com/form-data/form-data/issues/262 +FormData.prototype.hasKnownLength = function () { + var hasKnownLength = true; + + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + + return hasKnownLength; +}; + +FormData.prototype.getLength = function (cb) { + var knownLength = this._overheadLength + this._valueLength; + + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) { + if (err) { + cb(err); + return; + } + + values.forEach(function (length) { + knownLength += length; + }); + + cb(null, knownLength); + }); +}; + +FormData.prototype.submit = function (params, cb) { + var request; + var options; + var defaults = { method: 'post' }; + + // parse provided url if it's string or treat it as options object + if (typeof params === 'string') { + params = parseUrl(params); // eslint-disable-line no-param-reassign + /* eslint sort-keys: 0 */ + options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + } else { // use custom params + options = populate(params, defaults); + // if no port provided use default one + if (!options.port) { + options.port = options.protocol === 'https:' ? 443 : 80; + } + } + + // put that good code in getHeaders to some use + options.headers = this.getHeaders(params.headers); + + // https if specified, fallback to http in any other case + if (options.protocol === 'https:') { + request = https.request(options); + } else { + request = http.request(options); + } + + // get content length and fire away + this.getLength(function (err, length) { + if (err && err !== 'Unknown stream') { + this._error(err); + return; + } + + // add content length + if (length) { + request.setHeader('Content-Length', length); + } + + this.pipe(request); + if (cb) { + var onResponse; + + var callback = function (error, responce) { + request.removeListener('error', callback); + request.removeListener('response', onResponse); + + return cb.call(this, error, responce); + }; + + onResponse = callback.bind(this, null); + + request.on('error', callback); + request.on('response', onResponse); + } + }.bind(this)); + + return request; +}; + +FormData.prototype._error = function (err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit('error', err); + } +}; + +FormData.prototype.toString = function () { + return '[object FormData]'; +}; +setToStringTag(FormData.prototype, 'FormData'); + +// Public API +module.exports = FormData; + + +/***/ }), + +/***/ 4957: +/***/ ((module) => { + + + +// populates missing values +module.exports = function (dst, src) { + Object.keys(src).forEach(function (prop) { + dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign + }); + + return dst; +}; + + +/***/ }), + +/***/ 9870: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const net_1 = __importDefault(__nccwpck_require__(9278)); +const tls_1 = __importDefault(__nccwpck_require__(4756)); +const url_1 = __importDefault(__nccwpck_require__(7016)); +const assert_1 = __importDefault(__nccwpck_require__(2613)); +const debug_1 = __importDefault(__nccwpck_require__(2830)); +const agent_base_1 = __nccwpck_require__(8089); +const parse_proxy_response_1 = __importDefault(__nccwpck_require__(5989)); +const debug = debug_1.default('https-proxy-agent:agent'); +/** + * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to + * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. + * + * Outgoing HTTP requests are first tunneled through the proxy server using the + * `CONNECT` HTTP request method to establish a connection to the proxy server, + * and then the proxy server connects to the destination target and issues the + * HTTP request from the proxy server. + * + * `https:` requests have their socket connection upgraded to TLS once + * the connection to the proxy server has been established. + * + * @api public + */ +class HttpsProxyAgent extends agent_base_1.Agent { + constructor(_opts) { + let opts; + if (typeof _opts === 'string') { + opts = url_1.default.parse(_opts); + } + else { + opts = _opts; + } + if (!opts) { + throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); + } + debug('creating new HttpsProxyAgent instance: %o', opts); + super(opts); + const proxy = Object.assign({}, opts); + // If `true`, then connect to the proxy server over TLS. + // Defaults to `false`. + this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); + // Prefer `hostname` over `host`, and set the `port` if needed. + proxy.host = proxy.hostname || proxy.host; + if (typeof proxy.port === 'string') { + proxy.port = parseInt(proxy.port, 10); + } + if (!proxy.port && proxy.host) { + proxy.port = this.secureProxy ? 443 : 80; + } + // ALPN is supported by Node.js >= v5. + // attempt to negotiate http/1.1 for proxy servers that support http/2 + if (this.secureProxy && !('ALPNProtocols' in proxy)) { + proxy.ALPNProtocols = ['http 1.1']; + } + if (proxy.host && proxy.path) { + // If both a `host` and `path` are specified then it's most likely + // the result of a `url.parse()` call... we need to remove the + // `path` portion so that `net.connect()` doesn't attempt to open + // that as a Unix socket file. + delete proxy.path; + delete proxy.pathname; + } + this.proxy = proxy; + } + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + * + * @api protected + */ + callback(req, opts) { + return __awaiter(this, void 0, void 0, function* () { + const { proxy, secureProxy } = this; + // Create a socket connection to the proxy server. + let socket; + if (secureProxy) { + debug('Creating `tls.Socket`: %o', proxy); + socket = tls_1.default.connect(proxy); + } + else { + debug('Creating `net.Socket`: %o', proxy); + socket = net_1.default.connect(proxy); + } + const headers = Object.assign({}, proxy.headers); + const hostname = `${opts.host}:${opts.port}`; + let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; + // Inject the `Proxy-Authorization` header if necessary. + if (proxy.auth) { + headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; + } + // The `Host` header should only include the port + // number when it is not the default port. + let { host, port, secureEndpoint } = opts; + if (!isDefaultPort(port, secureEndpoint)) { + host += `:${port}`; + } + headers.Host = host; + headers.Connection = 'close'; + for (const name of Object.keys(headers)) { + payload += `${name}: ${headers[name]}\r\n`; + } + const proxyResponsePromise = parse_proxy_response_1.default(socket); + socket.write(`${payload}\r\n`); + const { statusCode, buffered } = yield proxyResponsePromise; + if (statusCode === 200) { + req.once('socket', resume); + if (opts.secureEndpoint) { + // The proxy is connecting to a TLS server, so upgrade + // this socket connection to a TLS connection. + debug('Upgrading socket connection to TLS'); + const servername = opts.servername || opts.host; + return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, + servername })); + } + return socket; + } + // Some other status code that's not 200... need to re-play the HTTP + // header "data" events onto the socket once the HTTP machinery is + // attached so that the node core `http` can parse and handle the + // error status code. + // Close the original socket, and a new "fake" socket is returned + // instead, so that the proxy doesn't get the HTTP request + // written to it (which may contain `Authorization` headers or other + // sensitive data). + // + // See: https://hackerone.com/reports/541502 + socket.destroy(); + const fakeSocket = new net_1.default.Socket({ writable: false }); + fakeSocket.readable = true; + // Need to wait for the "socket" event to re-play the "data" events. + req.once('socket', (s) => { + debug('replaying proxy buffer for failed request'); + assert_1.default(s.listenerCount('data') > 0); + // Replay the "buffered" Buffer onto the fake `socket`, since at + // this point the HTTP module machinery has been hooked up for + // the user. + s.push(buffered); + s.push(null); + }); + return fakeSocket; + }); + } +} +exports["default"] = HttpsProxyAgent; +function resume(socket) { + socket.resume(); +} +function isDefaultPort(port, secure) { + return Boolean((!secure && port === 80) || (secure && port === 443)); +} +function isHTTPS(protocol) { + return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; +} +function omit(obj, ...keys) { + const ret = {}; + let key; + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; +} +//# sourceMappingURL=agent.js.map + +/***/ }), + +/***/ 8996: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +const agent_1 = __importDefault(__nccwpck_require__(9870)); +function createHttpsProxyAgent(opts) { + return new agent_1.default(opts); +} +(function (createHttpsProxyAgent) { + createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; + createHttpsProxyAgent.prototype = agent_1.default.prototype; +})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); +module.exports = createHttpsProxyAgent; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 5989: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const debug_1 = __importDefault(__nccwpck_require__(2830)); +const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); +function parseProxyResponse(socket) { + return new Promise((resolve, reject) => { + // we need to buffer any HTTP traffic that happens with the proxy before we get + // the CONNECT response, so that if the response is anything other than an "200" + // response code, then we can re-play the "data" events on the socket once the + // HTTP parser is hooked up... + let buffersLength = 0; + const buffers = []; + function read() { + const b = socket.read(); + if (b) + ondata(b); + else + socket.once('readable', read); + } + function cleanup() { + socket.removeListener('end', onend); + socket.removeListener('error', onerror); + socket.removeListener('close', onclose); + socket.removeListener('readable', read); + } + function onclose(err) { + debug('onclose had error %o', err); + } + function onend() { + debug('onend'); + } + function onerror(err) { + cleanup(); + debug('onerror %o', err); + reject(err); + } + function ondata(b) { + buffers.push(b); + buffersLength += b.length; + const buffered = Buffer.concat(buffers, buffersLength); + const endOfHeaders = buffered.indexOf('\r\n\r\n'); + if (endOfHeaders === -1) { + // keep buffering + debug('have not received end of HTTP headers yet...'); + read(); + return; + } + const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); + const statusCode = +firstLine.split(' ')[1]; + debug('got proxy server response: %o', firstLine); + resolve({ + statusCode, + buffered + }); + } + socket.on('error', onerror); + socket.on('close', onclose); + socket.on('end', onend); + read(); + }); +} +exports["default"] = parseProxyResponse; +//# sourceMappingURL=parse-proxy-response.js.map + +/***/ }), + +/***/ 2639: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var bind = __nccwpck_require__(7564); + +var $apply = __nccwpck_require__(3945); +var $call = __nccwpck_require__(8093); +var $reflectApply = __nccwpck_require__(1330); + +/** @type {import('./actualApply')} */ +module.exports = $reflectApply || bind.call($call, $apply); + + +/***/ }), + +/***/ 3945: +/***/ ((module) => { + + + +/** @type {import('./functionApply')} */ +module.exports = Function.prototype.apply; + + +/***/ }), + +/***/ 8093: +/***/ ((module) => { + + + +/** @type {import('./functionCall')} */ +module.exports = Function.prototype.call; + + +/***/ }), + +/***/ 8705: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var bind = __nccwpck_require__(7564); +var $TypeError = __nccwpck_require__(3314); + +var $call = __nccwpck_require__(8093); +var $actualApply = __nccwpck_require__(2639); + +/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */ +module.exports = function callBindBasic(args) { + if (args.length < 1 || typeof args[0] !== 'function') { + throw new $TypeError('a function is required'); + } + return $actualApply(bind, $call, args); +}; + + +/***/ }), + +/***/ 1330: +/***/ ((module) => { + + + +/** @type {import('./reflectApply')} */ +module.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply; + + +/***/ }), + +/***/ 5630: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var util = __nccwpck_require__(9023); +var Stream = (__nccwpck_require__(2203).Stream); +var DelayedStream = __nccwpck_require__(2710); + +module.exports = CombinedStream; +function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + + this._released = false; + this._streams = []; + this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; +} +util.inherits(CombinedStream, Stream); + +CombinedStream.create = function(options) { + var combinedStream = new this(); + + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + + return combinedStream; +}; + +CombinedStream.isStreamLike = function(stream) { + return (typeof stream !== 'function') + && (typeof stream !== 'string') + && (typeof stream !== 'boolean') + && (typeof stream !== 'number') + && (!Buffer.isBuffer(stream)); +}; + +CombinedStream.prototype.append = function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + + if (isStreamLike) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams, + }); + stream.on('data', this._checkDataSize.bind(this)); + stream = newStream; + } + + this._handleErrors(stream); + + if (this.pauseStreams) { + stream.pause(); + } + } + + this._streams.push(stream); + return this; +}; + +CombinedStream.prototype.pipe = function(dest, options) { + Stream.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; +}; + +CombinedStream.prototype._getNext = function() { + this._currentStream = null; + + if (this._insideLoop) { + this._pendingNext = true; + return; // defer call + } + + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } +}; + +CombinedStream.prototype._realGetNext = function() { + var stream = this._streams.shift(); + + + if (typeof stream == 'undefined') { + this.end(); + return; + } + + if (typeof stream !== 'function') { + this._pipeNext(stream); + return; + } + + var getStream = stream; + getStream(function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('data', this._checkDataSize.bind(this)); + this._handleErrors(stream); + } + + this._pipeNext(stream); + }.bind(this)); +}; + +CombinedStream.prototype._pipeNext = function(stream) { + this._currentStream = stream; + + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('end', this._getNext.bind(this)); + stream.pipe(this, {end: false}); + return; + } + + var value = stream; + this.write(value); + this._getNext(); +}; + +CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on('error', function(err) { + self._emitError(err); + }); +}; + +CombinedStream.prototype.write = function(data) { + this.emit('data', data); +}; + +CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); + this.emit('pause'); +}; + +CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); + this.emit('resume'); +}; + +CombinedStream.prototype.end = function() { + this._reset(); + this.emit('end'); +}; + +CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit('close'); +}; + +CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; +}; + +CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this._emitError(new Error(message)); +}; + +CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + + var self = this; + this._streams.forEach(function(stream) { + if (!stream.dataSize) { + return; + } + + self.dataSize += stream.dataSize; + }); + + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } +}; + +CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit('error', err); +}; + + +/***/ }), + +/***/ 6110: +/***/ ((module, exports, __nccwpck_require__) => { + +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +exports.colors = [ + '#0000CC', + '#0000FF', + '#0033CC', + '#0033FF', + '#0066CC', + '#0066FF', + '#0099CC', + '#0099FF', + '#00CC00', + '#00CC33', + '#00CC66', + '#00CC99', + '#00CCCC', + '#00CCFF', + '#3300CC', + '#3300FF', + '#3333CC', + '#3333FF', + '#3366CC', + '#3366FF', + '#3399CC', + '#3399FF', + '#33CC00', + '#33CC33', + '#33CC66', + '#33CC99', + '#33CCCC', + '#33CCFF', + '#6600CC', + '#6600FF', + '#6633CC', + '#6633FF', + '#66CC00', + '#66CC33', + '#9900CC', + '#9900FF', + '#9933CC', + '#9933FF', + '#99CC00', + '#99CC33', + '#CC0000', + '#CC0033', + '#CC0066', + '#CC0099', + '#CC00CC', + '#CC00FF', + '#CC3300', + '#CC3333', + '#CC3366', + '#CC3399', + '#CC33CC', + '#CC33FF', + '#CC6600', + '#CC6633', + '#CC9900', + '#CC9933', + '#CCCC00', + '#CCCC33', + '#FF0000', + '#FF0033', + '#FF0066', + '#FF0099', + '#FF00CC', + '#FF00FF', + '#FF3300', + '#FF3333', + '#FF3366', + '#FF3399', + '#FF33CC', + '#FF33FF', + '#FF6600', + '#FF6633', + '#FF9900', + '#FF9933', + '#FFCC00', + '#FFCC33' +]; + +/** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + +// eslint-disable-next-line complexity +function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly + if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + + let m; + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + // eslint-disable-next-line no-return-assign + return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); +} + +/** + * Colorize log arguments if enabled. + * + * @api public + */ + +function formatArgs(args) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + args.splice(1, 0, c, 'color: inherit'); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + if (match === '%c') { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); +} + +/** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + try { + r = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== 'undefined' && 'env' in process) { + r = process.env.DEBUG; + } + + return r; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +module.exports = __nccwpck_require__(897)(exports); + +const {formatters} = module.exports; + +/** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + +formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return '[UnexpectedJSONParseError]: ' + error.message; + } +}; + + +/***/ }), + +/***/ 897: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +/** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + +function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = __nccwpck_require__(744); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = ((hash << 5) - hash) + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== 'string') { + // Anything else let's inspect with %O + args.unshift('%O'); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + const split = (typeof namespaces === 'string' ? namespaces : '') + .trim() + .replace(/\s+/g, ',') + .split(',') + .filter(Boolean); + + for (const ns of split) { + if (ns[0] === '-') { + createDebug.skips.push(ns.slice(1)); + } else { + createDebug.names.push(ns); + } + } + } + + /** + * Checks if the given string matches a namespace template, honoring + * asterisks as wildcards. + * + * @param {String} search + * @param {String} template + * @return {Boolean} + */ + function matchesTemplate(search, template) { + let searchIndex = 0; + let templateIndex = 0; + let starIndex = -1; + let matchIndex = 0; + + while (searchIndex < search.length) { + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) { + // Match character or proceed with wildcard + if (template[templateIndex] === '*') { + starIndex = templateIndex; + matchIndex = searchIndex; + templateIndex++; // Skip the '*' + } else { + searchIndex++; + templateIndex++; + } + } else if (starIndex !== -1) { // eslint-disable-line no-negated-condition + // Backtrack to the last '*' and try to match more characters + templateIndex = starIndex + 1; + matchIndex++; + searchIndex = matchIndex; + } else { + return false; // No match + } + } + + // Handle trailing '*' in template + while (templateIndex < template.length && template[templateIndex] === '*') { + templateIndex++; + } + + return templateIndex === template.length; + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names, + ...createDebug.skips.map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + for (const skip of createDebug.skips) { + if (matchesTemplate(name, skip)) { + return false; + } + } + + for (const ns of createDebug.names) { + if (matchesTemplate(name, ns)) { + return true; + } + } + + return false; + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; + + +/***/ }), + +/***/ 2830: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = __nccwpck_require__(6110); +} else { + module.exports = __nccwpck_require__(5108); +} + + +/***/ }), + +/***/ 5108: +/***/ ((module, exports, __nccwpck_require__) => { + +/** + * Module dependencies. + */ + +const tty = __nccwpck_require__(2018); +const util = __nccwpck_require__(9023); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * Colors. + */ + +exports.colors = [6, 2, 3, 4, 5, 1]; + +try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = __nccwpck_require__(75); + + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } +} catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. +} + +/** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + +exports.inspectOpts = Object.keys(process.env).filter(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === 'null') { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + args[0] = getDate() + name + ' ' + args[0]; + } +} + +function getDate() { + if (exports.inspectOpts.hideDate) { + return ''; + } + return new Date().toISOString() + ' '; +} + +/** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = __nccwpck_require__(897)(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => str.trim()) + .join(' '); +}; + +/** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + +formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); +}; + + +/***/ }), + +/***/ 2710: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var Stream = (__nccwpck_require__(2203).Stream); +var util = __nccwpck_require__(9023); + +module.exports = DelayedStream; +function DelayedStream() { + this.source = null; + this.dataSize = 0; + this.maxDataSize = 1024 * 1024; + this.pauseStream = true; + + this._maxDataSizeExceeded = false; + this._released = false; + this._bufferedEvents = []; +} +util.inherits(DelayedStream, Stream); + +DelayedStream.create = function(source, options) { + var delayedStream = new this(); + + options = options || {}; + for (var option in options) { + delayedStream[option] = options[option]; + } + + delayedStream.source = source; + + var realEmit = source.emit; + source.emit = function() { + delayedStream._handleEmit(arguments); + return realEmit.apply(source, arguments); + }; + + source.on('error', function() {}); + if (delayedStream.pauseStream) { + source.pause(); + } + + return delayedStream; +}; + +Object.defineProperty(DelayedStream.prototype, 'readable', { + configurable: true, + enumerable: true, + get: function() { + return this.source.readable; + } +}); + +DelayedStream.prototype.setEncoding = function() { + return this.source.setEncoding.apply(this.source, arguments); +}; + +DelayedStream.prototype.resume = function() { + if (!this._released) { + this.release(); + } + + this.source.resume(); +}; + +DelayedStream.prototype.pause = function() { + this.source.pause(); +}; + +DelayedStream.prototype.release = function() { + this._released = true; + + this._bufferedEvents.forEach(function(args) { + this.emit.apply(this, args); + }.bind(this)); + this._bufferedEvents = []; +}; + +DelayedStream.prototype.pipe = function() { + var r = Stream.prototype.pipe.apply(this, arguments); + this.resume(); + return r; +}; + +DelayedStream.prototype._handleEmit = function(args) { + if (this._released) { + this.emit.apply(this, args); + return; + } + + if (args[0] === 'data') { + this.dataSize += args[1].length; + this._checkIfMaxDataSizeExceeded(); + } + + this._bufferedEvents.push(args); +}; + +DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { + if (this._maxDataSizeExceeded) { + return; + } + + if (this.dataSize <= this.maxDataSize) { + return; + } + + this._maxDataSizeExceeded = true; + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' + this.emit('error', new Error(message)); +}; + + +/***/ }), + +/***/ 6669: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var callBind = __nccwpck_require__(8705); +var gOPD = __nccwpck_require__(3170); + +var hasProtoAccessor; +try { + // eslint-disable-next-line no-extra-parens, no-proto + hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype; +} catch (e) { + if (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') { + throw e; + } +} + +// eslint-disable-next-line no-extra-parens +var desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__')); + +var $Object = Object; +var $getPrototypeOf = $Object.getPrototypeOf; + +/** @type {import('./get')} */ +module.exports = desc && typeof desc.get === 'function' + ? callBind([desc.get]) + : typeof $getPrototypeOf === 'function' + ? /** @type {import('./get')} */ function getDunder(value) { + // eslint-disable-next-line eqeqeq + return $getPrototypeOf(value == null ? value : $Object(value)); + } + : false; + + +/***/ }), + +/***/ 9094: +/***/ ((module) => { + + + +/** @type {import('.')} */ +var $defineProperty = Object.defineProperty || false; +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = false; + } +} + +module.exports = $defineProperty; + + +/***/ }), + +/***/ 3056: +/***/ ((module) => { + + + +/** @type {import('./eval')} */ +module.exports = EvalError; + + +/***/ }), + +/***/ 1620: +/***/ ((module) => { + + + +/** @type {import('.')} */ +module.exports = Error; + + +/***/ }), + +/***/ 4585: +/***/ ((module) => { + + + +/** @type {import('./range')} */ +module.exports = RangeError; + + +/***/ }), + +/***/ 6905: +/***/ ((module) => { + + + +/** @type {import('./ref')} */ +module.exports = ReferenceError; + + +/***/ }), + +/***/ 105: +/***/ ((module) => { + + + +/** @type {import('./syntax')} */ +module.exports = SyntaxError; + + +/***/ }), + +/***/ 3314: +/***/ ((module) => { + + + +/** @type {import('./type')} */ +module.exports = TypeError; + + +/***/ }), + +/***/ 2578: +/***/ ((module) => { + + + +/** @type {import('./uri')} */ +module.exports = URIError; + + +/***/ }), + +/***/ 5399: +/***/ ((module) => { + + + +/** @type {import('.')} */ +module.exports = Object; + + +/***/ }), + +/***/ 8700: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var GetIntrinsic = __nccwpck_require__(470); + +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); + +var hasToStringTag = __nccwpck_require__(5479)(); +var hasOwn = __nccwpck_require__(4076); +var $TypeError = __nccwpck_require__(3314); + +var toStringTag = hasToStringTag ? Symbol.toStringTag : null; + +/** @type {import('.')} */ +module.exports = function setToStringTag(object, value) { + var overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force; + var nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable; + if ( + (typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean') + || (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean') + ) { + throw new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans'); + } + if (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) { + if ($defineProperty) { + $defineProperty(object, toStringTag, { + configurable: !nonConfigurable, + enumerable: false, + value: value, + writable: false + }); + } else { + object[toStringTag] = value; // eslint-disable-line no-param-reassign + } + } +}; + + +/***/ }), + +/***/ 4778: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var debug; + +module.exports = function () { + if (!debug) { + try { + /* eslint global-require: off */ + debug = __nccwpck_require__(2830)("follow-redirects"); + } + catch (error) { /* */ } + if (typeof debug !== "function") { + debug = function () { /* */ }; + } + } + debug.apply(null, arguments); +}; + + +/***/ }), + +/***/ 1573: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var url = __nccwpck_require__(7016); +var URL = url.URL; +var http = __nccwpck_require__(8611); +var https = __nccwpck_require__(5692); +var Writable = (__nccwpck_require__(2203).Writable); +var assert = __nccwpck_require__(2613); +var debug = __nccwpck_require__(4778); + +// Preventive platform detection +// istanbul ignore next +(function detectUnsupportedEnvironment() { + var looksLikeNode = typeof process !== "undefined"; + var looksLikeBrowser = typeof window !== "undefined" && typeof document !== "undefined"; + var looksLikeV8 = isFunction(Error.captureStackTrace); + if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) { + console.warn("The follow-redirects package should be excluded from browser builds."); + } +}()); + +// Whether to use the native URL object or the legacy url module +var useNativeURL = false; +try { + assert(new URL("")); +} +catch (error) { + useNativeURL = error.code === "ERR_INVALID_URL"; +} + +// HTTP headers to drop across HTTP/HTTPS and domain boundaries +var sensitiveHeaders = [ + "Authorization", + "Proxy-Authorization", + "Cookie", +]; + +// URL fields to preserve in copy operations +var preservedUrlFields = [ + "auth", + "host", + "hostname", + "href", + "path", + "pathname", + "port", + "protocol", + "query", + "search", + "hash", +]; + +// Create handlers that pass events from native requests +var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; +var eventHandlers = Object.create(null); +events.forEach(function (event) { + eventHandlers[event] = function (arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; +}); + +// Error types with codes +var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError +); +var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" +); +var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded", + RedirectionError +); +var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" +); +var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" +); + +// istanbul ignore next +var destroy = Writable.prototype.destroy || noop; + +// An HTTP(S) request that can be redirected +function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + try { + self._processResponse(response); + } + catch (cause) { + self.emit("error", cause instanceof RedirectionError ? + cause : new RedirectionError({ cause: cause })); + } + }; + + // Create filter for sensitive HTTP headers + this._headerFilter = new RegExp("^(?:" + + sensitiveHeaders.concat(options.sensitiveHeaders).map(escapeRegex).join("|") + + ")$", "i"); + + // Perform the first request + this._performRequest(); +} +RedirectableRequest.prototype = Object.create(Writable.prototype); + +RedirectableRequest.prototype.abort = function () { + destroyRequest(this._currentRequest); + this._currentRequest.abort(); + this.emit("abort"); +}; + +RedirectableRequest.prototype.destroy = function (error) { + destroyRequest(this._currentRequest, error); + destroy.call(this, error); + return this; +}; + +// Writes buffered data to the current native request +RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Writing is not allowed if end has been called + if (this._ending) { + throw new WriteAfterEndError(); + } + + // Validate input and shift parameters if necessary + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } +}; + +// Ends the current native request +RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (isFunction(data)) { + callback = data; + data = encoding = null; + } + else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Write data if needed and end + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } + else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function () { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } +}; + +// Sets a header value on the current native request +RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); +}; + +// Clears a header value on the current native request +RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); +}; + +// Global timeout for all underlying requests +RedirectableRequest.prototype.setTimeout = function (msecs, callback) { + var self = this; + + // Destroys the socket on timeout + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + + // Sets up a timer to trigger a timeout event + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function () { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + + // Stops a timeout from triggering + function clearTimer() { + // Clear the timeout + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + + // Clean up all attached listeners + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + self.removeListener("close", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + + // Attach callback if passed + if (callback) { + this.on("timeout", callback); + } + + // Start the timer if or when the socket is opened + if (this.socket) { + startTimer(this.socket); + } + else { + this._currentRequest.once("socket", startTimer); + } + + // Clean up on events + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + this.on("close", clearTimer); + + return this; +}; + +// Proxy all other public ClientRequest methods +[ + "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", +].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; +}); + +// Proxy all public ClientRequest properties +["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); +}); + +RedirectableRequest.prototype._sanitizeOptions = function (options) { + // Ensure headers are always present + if (!options.headers) { + options.headers = {}; + } + if (!isArray(options.sensitiveHeaders)) { + options.sensitiveHeaders = []; + } + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } +}; + + +// Executes the next native request (initial or redirect) +RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + throw new TypeError("Unsupported protocol " + protocol); + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request and set up its event handlers + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + + // RFC7230§5.3.1: When making a request directly to an origin server, […] + // a client MUST send only the absolute path […] as the request-target. + this._currentUrl = /^\//.test(this._options.path) ? + url.format(this._options) : + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path; + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + // Only write if this request has not been redirected yet + // istanbul ignore else + if (request === self._currentRequest) { + // Report any write errors + // istanbul ignore if + if (error) { + self.emit("error", error); + } + // Write the next buffer if there are still left + else if (i < buffers.length) { + var buffer = buffers[i++]; + // istanbul ignore else + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } + // End the request if `end` has been called on us + else if (self._ended) { + request.end(); + } + } + }()); + } +}; + +// Processes a response from the current native request +RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + + // If the response is not a redirect; return it as-is + var location = response.headers.location; + if (!location || this._options.followRedirects === false || + statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + return; + } + + // The response is a redirect, so abort the current request + destroyRequest(this._currentRequest); + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + throw new TooManyRedirectsError(); + } + + // Store the request headers if applicable + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host"), + }, this._options.headers); + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe, […] + // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change + // the request method from POST to GET for the subsequent request. + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || + // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + + // Drop the Host header, as the redirect might lead to a different host + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + + // If the redirect is relative, carry over the host of the last request + var currentUrlParts = parseUrl(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : + url.format(Object.assign(currentUrlParts, { host: currentHost })); + + // Create the redirected request + var redirectUrl = resolveUrl(location, currentUrl); + debug("redirecting to", redirectUrl.href); + this._isRedirect = true; + spreadUrlObject(redirectUrl, this._options); + + // Drop confidential headers when redirecting to a less secure protocol + // or to a different domain that is not a superdomain + if (redirectUrl.protocol !== currentUrlParts.protocol && + redirectUrl.protocol !== "https:" || + redirectUrl.host !== currentHost && + !isSubdomain(redirectUrl.host, currentHost)) { + removeMatchingHeaders(this._headerFilter, this._options.headers); + } + + // Evaluate the beforeRedirect callback + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode: statusCode, + }; + var requestDetails = { + url: currentUrl, + method: method, + headers: requestHeaders, + }; + beforeRedirect(this._options, responseDetails, requestDetails); + this._sanitizeOptions(this._options); + } + + // Perform the redirected request + this._performRequest(); +}; + +// Wraps the key/value object of protocols with redirect functionality +function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + function request(input, options, callback) { + // Parse parameters, ensuring that input is an object + if (isURL(input)) { + input = spreadUrlObject(input); + } + else if (isString(input)) { + input = spreadUrlObject(parseUrl(input)); + } + else { + callback = options; + options = validateUrl(input); + input = { protocol: protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + + // Set defaults + options = Object.assign({ + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + + // Executes a GET request, following redirects + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + + // Expose the properties on the wrapped protocol + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true }, + }); + }); + return exports; +} + +function noop() { /* empty */ } + +function parseUrl(input) { + var parsed; + // istanbul ignore else + if (useNativeURL) { + parsed = new URL(input); + } + else { + // Ensure the URL is valid and absolute + parsed = validateUrl(url.parse(input)); + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + } + return parsed; +} + +function resolveUrl(relative, base) { + // istanbul ignore next + return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative)); +} + +function validateUrl(input) { + if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) { + throw new InvalidUrlError({ input: input.href || input }); + } + if (/^\[/.test(input.host) && !/^\[[:0-9a-f]+\](:\d+)?$/i.test(input.host)) { + throw new InvalidUrlError({ input: input.href || input }); + } + return input; +} + +function spreadUrlObject(urlObject, target) { + var spread = target || {}; + for (var key of preservedUrlFields) { + spread[key] = urlObject[key]; + } + + // Fix IPv6 hostname + if (spread.hostname.startsWith("[")) { + spread.hostname = spread.hostname.slice(1, -1); + } + // Ensure port is a number + if (spread.port !== "") { + spread.port = Number(spread.port); + } + // Concatenate path + spread.path = spread.search ? spread.pathname + spread.search : spread.pathname; + + return spread; +} + +function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return (lastValue === null || typeof lastValue === "undefined") ? + undefined : String(lastValue).trim(); +} + +function createErrorType(code, message, baseClass) { + // Create constructor + function CustomError(properties) { + // istanbul ignore else + if (isFunction(Error.captureStackTrace)) { + Error.captureStackTrace(this, this.constructor); + } + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + + // Attach constructor and set default properties + CustomError.prototype = new (baseClass || Error)(); + Object.defineProperties(CustomError.prototype, { + constructor: { + value: CustomError, + enumerable: false, + }, + name: { + value: "Error [" + code + "]", + enumerable: false, + }, + }); + return CustomError; +} + +function destroyRequest(request, error) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.destroy(error); +} + +function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); +} + +function isArray(value) { + return value instanceof Array; +} + +function isString(value) { + return typeof value === "string" || value instanceof String; +} + +function isFunction(value) { + return typeof value === "function"; +} + +function isBuffer(value) { + return typeof value === "object" && ("length" in value); +} + +function isURL(value) { + return URL && value instanceof URL; +} + +function escapeRegex(regex) { + return regex.replace(/[\]\\/()*+?.$]/g, "\\$&"); +} + +// Exports +module.exports = wrap({ http: http, https: https }); +module.exports.wrap = wrap; + + +/***/ }), + +/***/ 9808: +/***/ ((module) => { + + + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var toStr = Object.prototype.toString; +var max = Math.max; +var funcType = '[object Function]'; + +var concatty = function concatty(a, b) { + var arr = []; + + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + + return arr; +}; + +var slicy = function slicy(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; +}; + +var joiny = function (arr, joiner) { + var str = ''; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; +}; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + + }; + + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = '$' + i; + } + + bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +/***/ }), + +/***/ 7564: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var implementation = __nccwpck_require__(9808); + +module.exports = Function.prototype.bind || implementation; + + +/***/ }), + +/***/ 470: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var undefined; + +var $Object = __nccwpck_require__(5399); + +var $Error = __nccwpck_require__(1620); +var $EvalError = __nccwpck_require__(3056); +var $RangeError = __nccwpck_require__(4585); +var $ReferenceError = __nccwpck_require__(6905); +var $SyntaxError = __nccwpck_require__(105); +var $TypeError = __nccwpck_require__(3314); +var $URIError = __nccwpck_require__(2578); + +var abs = __nccwpck_require__(5641); +var floor = __nccwpck_require__(6171); +var max = __nccwpck_require__(7147); +var min = __nccwpck_require__(1017); +var pow = __nccwpck_require__(6947); +var round = __nccwpck_require__(2621); +var sign = __nccwpck_require__(156); + +var $Function = Function; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = __nccwpck_require__(3170); +var $defineProperty = __nccwpck_require__(9094); + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = __nccwpck_require__(3336)(); + +var getProto = __nccwpck_require__(1967); +var $ObjectGPO = __nccwpck_require__(1311); +var $ReflectGPO = __nccwpck_require__(8681); + +var $apply = __nccwpck_require__(3945); +var $call = __nccwpck_require__(8093); + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + __proto__: null, + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': $Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': $EvalError, + '%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': $Object, + '%Object.getOwnPropertyDescriptor%': $gOPD, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': $RangeError, + '%ReferenceError%': $ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': $URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet, + + '%Function.prototype.call%': $call, + '%Function.prototype.apply%': $apply, + '%Object.defineProperty%': $defineProperty, + '%Object.getPrototypeOf%': $ObjectGPO, + '%Math.abs%': abs, + '%Math.floor%': floor, + '%Math.max%': max, + '%Math.min%': min, + '%Math.pow%': pow, + '%Math.round%': round, + '%Math.sign%': sign, + '%Reflect.getPrototypeOf%': $ReflectGPO +}; + +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + __proto__: null, + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = __nccwpck_require__(7564); +var hasOwn = __nccwpck_require__(4076); +var $concat = bind.call($call, Array.prototype.concat); +var $spliceApply = bind.call($apply, Array.prototype.splice); +var $replace = bind.call($call, String.prototype.replace); +var $strSlice = bind.call($call, String.prototype.slice); +var $exec = bind.call($call, RegExp.prototype.exec); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; + + +/***/ }), + +/***/ 1311: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var $Object = __nccwpck_require__(5399); + +/** @type {import('./Object.getPrototypeOf')} */ +module.exports = $Object.getPrototypeOf || null; + + +/***/ }), + +/***/ 8681: +/***/ ((module) => { + + + +/** @type {import('./Reflect.getPrototypeOf')} */ +module.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null; + + +/***/ }), + +/***/ 1967: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var reflectGetProto = __nccwpck_require__(8681); +var originalGetProto = __nccwpck_require__(1311); + +var getDunderProto = __nccwpck_require__(6669); + +/** @type {import('.')} */ +module.exports = reflectGetProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return reflectGetProto(O); + } + : originalGetProto + ? function getProto(O) { + if (!O || (typeof O !== 'object' && typeof O !== 'function')) { + throw new TypeError('getProto: not an object'); + } + // @ts-expect-error TS can't narrow inside a closure, for some reason + return originalGetProto(O); + } + : getDunderProto + ? function getProto(O) { + // @ts-expect-error TS can't narrow inside a closure, for some reason + return getDunderProto(O); + } + : null; + + +/***/ }), + +/***/ 1174: +/***/ ((module) => { + + + +/** @type {import('./gOPD')} */ +module.exports = Object.getOwnPropertyDescriptor; + + +/***/ }), + +/***/ 3170: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +/** @type {import('.')} */ +var $gOPD = __nccwpck_require__(1174); + +if ($gOPD) { + try { + $gOPD([], 'length'); + } catch (e) { + // IE 8 has a broken gOPD + $gOPD = null; + } +} + +module.exports = $gOPD; + + +/***/ }), + +/***/ 3336: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var origSymbol = typeof Symbol !== 'undefined' && Symbol; +var hasSymbolSham = __nccwpck_require__(1114); + +/** @type {import('.')} */ +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; + + +/***/ }), + +/***/ 1114: +/***/ ((module) => { + + + +/** @type {import('./shams')} */ +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + /** @type {{ [k in symbol]?: unknown }} */ + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + // eslint-disable-next-line no-extra-parens + var descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym)); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + + +/***/ }), + +/***/ 5479: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var hasSymbols = __nccwpck_require__(1114); + +/** @type {import('.')} */ +module.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; +}; + + +/***/ }), + +/***/ 4076: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var call = Function.prototype.call; +var $hasOwn = Object.prototype.hasOwnProperty; +var bind = __nccwpck_require__(7564); + +/** @type {import('.')} */ +module.exports = bind.call(call, $hasOwn); + + +/***/ }), + +/***/ 5641: +/***/ ((module) => { + + + +/** @type {import('./abs')} */ +module.exports = Math.abs; + + +/***/ }), + +/***/ 6171: +/***/ ((module) => { + + + +/** @type {import('./floor')} */ +module.exports = Math.floor; + + +/***/ }), + +/***/ 7044: +/***/ ((module) => { + + + +/** @type {import('./isNaN')} */ +module.exports = Number.isNaN || function isNaN(a) { + return a !== a; +}; + + +/***/ }), + +/***/ 7147: +/***/ ((module) => { + + + +/** @type {import('./max')} */ +module.exports = Math.max; + + +/***/ }), + +/***/ 1017: +/***/ ((module) => { + + + +/** @type {import('./min')} */ +module.exports = Math.min; + + +/***/ }), + +/***/ 6947: +/***/ ((module) => { + + + +/** @type {import('./pow')} */ +module.exports = Math.pow; + + +/***/ }), + +/***/ 2621: +/***/ ((module) => { + + + +/** @type {import('./round')} */ +module.exports = Math.round; + + +/***/ }), + +/***/ 156: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +var $isNaN = __nccwpck_require__(7044); + +/** @type {import('./sign')} */ +module.exports = function sign(number) { + if ($isNaN(number) || number === 0) { + return number; + } + return number < 0 ? -1 : +1; +}; + + +/***/ }), + +/***/ 9829: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + */ + +module.exports = __nccwpck_require__(1813) + + +/***/ }), + +/***/ 4096: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + + + +/** + * Module dependencies. + * @private + */ + +var db = __nccwpck_require__(9829) +var extname = (__nccwpck_require__(6928).extname) + +/** + * Module variables. + * @private + */ + +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i + +/** + * Module exports. + * @public + */ + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) + +/** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false +} + +/** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} + +/** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} + +/** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} + +/** + * Populate the extensions and types maps. + * @private + */ + +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} + + +/***/ }), + +/***/ 744: +/***/ ((module) => { + +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'weeks': + case 'week': + case 'w': + return n * w; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} + + +/***/ }), + +/***/ 9379: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const ANY = Symbol('SemVer ANY') +// hoisted class for cyclic dependency +class Comparator { + static get ANY () { + return ANY + } + + constructor (comp, options) { + options = parseOptions(options) + + if (comp instanceof Comparator) { + if (comp.loose === !!options.loose) { + return comp + } else { + comp = comp.value + } + } + + comp = comp.trim().split(/\s+/).join(' ') + debug('comparator', comp, options) + this.options = options + this.loose = !!options.loose + this.parse(comp) + + if (this.semver === ANY) { + this.value = '' + } else { + this.value = this.operator + this.semver.version + } + + debug('comp', this) + } + + parse (comp) { + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] + const m = comp.match(r) + + if (!m) { + throw new TypeError(`Invalid comparator: ${comp}`) + } + + this.operator = m[1] !== undefined ? m[1] : '' + if (this.operator === '=') { + this.operator = '' + } + + // if it literally is just '>' or '' then allow anything. + if (!m[2]) { + this.semver = ANY + } else { + this.semver = new SemVer(m[2], this.options.loose) + } + } + + toString () { + return this.value + } + + test (version) { + debug('Comparator.test', version, this.options.loose) + + if (this.semver === ANY || version === ANY) { + return true + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + return cmp(version, this.operator, this.semver, this.options) + } + + intersects (comp, options) { + if (!(comp instanceof Comparator)) { + throw new TypeError('a Comparator is required') + } + + if (this.operator === '') { + if (this.value === '') { + return true + } + return new Range(comp.value, options).test(this.value) + } else if (comp.operator === '') { + if (comp.value === '') { + return true + } + return new Range(this.value, options).test(comp.semver) + } + + options = parseOptions(options) + + // Special cases where nothing can possibly be lower + if (options.includePrerelease && + (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) { + return false + } + if (!options.includePrerelease && + (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) { + return false + } + + // Same direction increasing (> or >=) + if (this.operator.startsWith('>') && comp.operator.startsWith('>')) { + return true + } + // Same direction decreasing (< or <=) + if (this.operator.startsWith('<') && comp.operator.startsWith('<')) { + return true + } + // same SemVer and both sides are inclusive (<= or >=) + if ( + (this.semver.version === comp.semver.version) && + this.operator.includes('=') && comp.operator.includes('=')) { + return true + } + // opposite directions less than + if (cmp(this.semver, '<', comp.semver, options) && + this.operator.startsWith('>') && comp.operator.startsWith('<')) { + return true + } + // opposite directions greater than + if (cmp(this.semver, '>', comp.semver, options) && + this.operator.startsWith('<') && comp.operator.startsWith('>')) { + return true + } + return false + } +} + +module.exports = Comparator + +const parseOptions = __nccwpck_require__(356) +const { safeRe: re, t } = __nccwpck_require__(5471) +const cmp = __nccwpck_require__(8646) +const debug = __nccwpck_require__(1159) +const SemVer = __nccwpck_require__(7163) +const Range = __nccwpck_require__(6782) + + +/***/ }), + +/***/ 6782: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SPACE_CHARACTERS = /\s+/g + +// hoisted class for cyclic dependency +class Range { + constructor (range, options) { + options = parseOptions(options) + + if (range instanceof Range) { + if ( + range.loose === !!options.loose && + range.includePrerelease === !!options.includePrerelease + ) { + return range + } else { + return new Range(range.raw, options) + } + } + + if (range instanceof Comparator) { + // just put it in the set and return + this.raw = range.value + this.set = [[range]] + this.formatted = undefined + return this + } + + this.options = options + this.loose = !!options.loose + this.includePrerelease = !!options.includePrerelease + + // First reduce all whitespace as much as possible so we do not have to rely + // on potentially slow regexes like \s*. This is then stored and used for + // future error messages as well. + this.raw = range.trim().replace(SPACE_CHARACTERS, ' ') + + // First, split on || + this.set = this.raw + .split('||') + // map the range to a 2d array of comparators + .map(r => this.parseRange(r.trim())) + // throw out any comparator lists that are empty + // this generally means that it was not a valid range, which is allowed + // in loose mode, but will still throw if the WHOLE range is invalid. + .filter(c => c.length) + + if (!this.set.length) { + throw new TypeError(`Invalid SemVer Range: ${this.raw}`) + } + + // if we have any that are not the null set, throw out null sets. + if (this.set.length > 1) { + // keep the first one, in case they're all null sets + const first = this.set[0] + this.set = this.set.filter(c => !isNullSet(c[0])) + if (this.set.length === 0) { + this.set = [first] + } else if (this.set.length > 1) { + // if we have any that are *, then the range is just * + for (const c of this.set) { + if (c.length === 1 && isAny(c[0])) { + this.set = [c] + break + } + } + } + } + + this.formatted = undefined + } + + get range () { + if (this.formatted === undefined) { + this.formatted = '' + for (let i = 0; i < this.set.length; i++) { + if (i > 0) { + this.formatted += '||' + } + const comps = this.set[i] + for (let k = 0; k < comps.length; k++) { + if (k > 0) { + this.formatted += ' ' + } + this.formatted += comps[k].toString().trim() + } + } + } + return this.formatted + } + + format () { + return this.range + } + + toString () { + return this.range + } + + parseRange (range) { + // memoize range parsing for performance. + // this is a very hot path, and fully deterministic. + const memoOpts = + (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | + (this.options.loose && FLAG_LOOSE) + const memoKey = memoOpts + ':' + range + const cached = cache.get(memoKey) + if (cached) { + return cached + } + + const loose = this.options.loose + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] + range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) + debug('hyphen replace', range) + + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) + debug('comparator trim', range) + + // `~ 1.2.3` => `~1.2.3` + range = range.replace(re[t.TILDETRIM], tildeTrimReplace) + debug('tilde trim', range) + + // `^ 1.2.3` => `^1.2.3` + range = range.replace(re[t.CARETTRIM], caretTrimReplace) + debug('caret trim', range) + + // At this point, the range is completely trimmed and + // ready to be split into comparators. + + let rangeList = range + .split(' ') + .map(comp => parseComparator(comp, this.options)) + .join(' ') + .split(/\s+/) + // >=0.0.0 is equivalent to * + .map(comp => replaceGTE0(comp, this.options)) + + if (loose) { + // in loose mode, throw out any that are not valid comparators + rangeList = rangeList.filter(comp => { + debug('loose invalid filter', comp, this.options) + return !!comp.match(re[t.COMPARATORLOOSE]) + }) + } + debug('range list', rangeList) + + // if any comparators are the null set, then replace with JUST null set + // if more than one comparator, remove any * comparators + // also, don't include the same comparator more than once + const rangeMap = new Map() + const comparators = rangeList.map(comp => new Comparator(comp, this.options)) + for (const comp of comparators) { + if (isNullSet(comp)) { + return [comp] + } + rangeMap.set(comp.value, comp) + } + if (rangeMap.size > 1 && rangeMap.has('')) { + rangeMap.delete('') + } + + const result = [...rangeMap.values()] + cache.set(memoKey, result) + return result + } + + intersects (range, options) { + if (!(range instanceof Range)) { + throw new TypeError('a Range is required') + } + + return this.set.some((thisComparators) => { + return ( + isSatisfiable(thisComparators, options) && + range.set.some((rangeComparators) => { + return ( + isSatisfiable(rangeComparators, options) && + thisComparators.every((thisComparator) => { + return rangeComparators.every((rangeComparator) => { + return thisComparator.intersects(rangeComparator, options) + }) + }) + ) + }) + ) + }) + } + + // if ANY of the sets match ALL of its comparators, then pass + test (version) { + if (!version) { + return false + } + + if (typeof version === 'string') { + try { + version = new SemVer(version, this.options) + } catch (er) { + return false + } + } + + for (let i = 0; i < this.set.length; i++) { + if (testSet(this.set[i], version, this.options)) { + return true + } + } + return false + } +} + +module.exports = Range + +const LRU = __nccwpck_require__(1383) +const cache = new LRU() + +const parseOptions = __nccwpck_require__(356) +const Comparator = __nccwpck_require__(9379) +const debug = __nccwpck_require__(1159) +const SemVer = __nccwpck_require__(7163) +const { + safeRe: re, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace, +} = __nccwpck_require__(5471) +const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __nccwpck_require__(5101) + +const isNullSet = c => c.value === '<0.0.0-0' +const isAny = c => c.value === '' + +// take a set of comparators and determine whether there +// exists a version which can satisfy it +const isSatisfiable = (comparators, options) => { + let result = true + const remainingComparators = comparators.slice() + let testComparator = remainingComparators.pop() + + while (result && remainingComparators.length) { + result = remainingComparators.every((otherComparator) => { + return testComparator.intersects(otherComparator, options) + }) + + testComparator = remainingComparators.pop() + } + + return result +} + +// comprised of xranges, tildes, stars, and gtlt's at this point. +// already replaced the hyphen ranges +// turn into a set of JUST comparators. +const parseComparator = (comp, options) => { + comp = comp.replace(re[t.BUILD], '') + debug('comp', comp, options) + comp = replaceCarets(comp, options) + debug('caret', comp) + comp = replaceTildes(comp, options) + debug('tildes', comp) + comp = replaceXRanges(comp, options) + debug('xrange', comp) + comp = replaceStars(comp, options) + debug('stars', comp) + return comp +} + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*' + +// ~, ~> --> * (any, kinda silly) +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 +// ~0.0.1 --> >=0.0.1 <0.1.0-0 +const replaceTildes = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceTilde(c, options)) + .join(' ') +} + +const replaceTilde = (comp, options) => { + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] + return comp.replace(r, (_, M, m, p, pr) => { + debug('tilde', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0 <${+M + 1}.0.0-0` + } else if (isX(p)) { + // ~1.2 == >=1.2.0 <1.3.0-0 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` + } else if (pr) { + debug('replaceTilde pr', pr) + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } else { + // ~1.2.3 == >=1.2.3 <1.3.0-0 + ret = `>=${M}.${m}.${p + } <${M}.${+m + 1}.0-0` + } + + debug('tilde return', ret) + return ret + }) +} + +// ^ --> * (any, kinda silly) +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 +// ^1.2.3 --> >=1.2.3 <2.0.0-0 +// ^1.2.0 --> >=1.2.0 <2.0.0-0 +// ^0.0.1 --> >=0.0.1 <0.0.2-0 +// ^0.1.0 --> >=0.1.0 <0.2.0-0 +const replaceCarets = (comp, options) => { + return comp + .trim() + .split(/\s+/) + .map((c) => replaceCaret(c, options)) + .join(' ') +} + +const replaceCaret = (comp, options) => { + debug('caret', comp, options) + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] + const z = options.includePrerelease ? '-0' : '' + return comp.replace(r, (_, M, m, p, pr) => { + debug('caret', comp, _, M, m, p, pr) + let ret + + if (isX(M)) { + ret = '' + } else if (isX(m)) { + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` + } else if (isX(p)) { + if (M === '0') { + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` + } else { + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` + } + } else if (pr) { + debug('replaceCaret pr', pr) + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p}-${pr + } <${+M + 1}.0.0-0` + } + } else { + debug('no pr') + if (M === '0') { + if (m === '0') { + ret = `>=${M}.${m}.${p + }${z} <${M}.${m}.${+p + 1}-0` + } else { + ret = `>=${M}.${m}.${p + }${z} <${M}.${+m + 1}.0-0` + } + } else { + ret = `>=${M}.${m}.${p + } <${+M + 1}.0.0-0` + } + } + + debug('caret return', ret) + return ret + }) +} + +const replaceXRanges = (comp, options) => { + debug('replaceXRanges', comp, options) + return comp + .split(/\s+/) + .map((c) => replaceXRange(c, options)) + .join(' ') +} + +const replaceXRange = (comp, options) => { + comp = comp.trim() + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] + return comp.replace(r, (ret, gtlt, M, m, p, pr) => { + debug('xRange', comp, ret, gtlt, M, m, p, pr) + const xM = isX(M) + const xm = xM || isX(m) + const xp = xm || isX(p) + const anyX = xp + + if (gtlt === '=' && anyX) { + gtlt = '' + } + + // if we're including prereleases in the match, then we need + // to fix this to -0, the lowest possible prerelease value + pr = options.includePrerelease ? '-0' : '' + + if (xM) { + if (gtlt === '>' || gtlt === '<') { + // nothing is allowed + ret = '<0.0.0-0' + } else { + // nothing is forbidden + ret = '*' + } + } else if (gtlt && anyX) { + // we know patch is an x, because we have any x at all. + // replace X with 0 + if (xm) { + m = 0 + } + p = 0 + + if (gtlt === '>') { + // >1 => >=2.0.0 + // >1.2 => >=1.3.0 + gtlt = '>=' + if (xm) { + M = +M + 1 + m = 0 + p = 0 + } else { + m = +m + 1 + p = 0 + } + } else if (gtlt === '<=') { + // <=0.7.x is actually <0.8.0, since any 0.7.x should + // pass. Similarly, <=7.x is actually <8.0.0, etc. + gtlt = '<' + if (xm) { + M = +M + 1 + } else { + m = +m + 1 + } + } + + if (gtlt === '<') { + pr = '-0' + } + + ret = `${gtlt + M}.${m}.${p}${pr}` + } else if (xm) { + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` + } else if (xp) { + ret = `>=${M}.${m}.0${pr + } <${M}.${+m + 1}.0-0` + } + + debug('xRange return', ret) + + return ret + }) +} + +// Because * is AND-ed with everything else in the comparator, +// and '' means "any version", just remove the *s entirely. +const replaceStars = (comp, options) => { + debug('replaceStars', comp, options) + // Looseness is ignored here. star is always as loose as it gets! + return comp + .trim() + .replace(re[t.STAR], '') +} + +const replaceGTE0 = (comp, options) => { + debug('replaceGTE0', comp, options) + return comp + .trim() + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') +} + +// This function is passed to string.replace(re[t.HYPHENRANGE]) +// M, m, patch, prerelease, build +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 +// TODO build? +const hyphenReplace = incPr => ($0, + from, fM, fm, fp, fpr, fb, + to, tM, tm, tp, tpr) => { + if (isX(fM)) { + from = '' + } else if (isX(fm)) { + from = `>=${fM}.0.0${incPr ? '-0' : ''}` + } else if (isX(fp)) { + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` + } else if (fpr) { + from = `>=${from}` + } else { + from = `>=${from}${incPr ? '-0' : ''}` + } + + if (isX(tM)) { + to = '' + } else if (isX(tm)) { + to = `<${+tM + 1}.0.0-0` + } else if (isX(tp)) { + to = `<${tM}.${+tm + 1}.0-0` + } else if (tpr) { + to = `<=${tM}.${tm}.${tp}-${tpr}` + } else if (incPr) { + to = `<${tM}.${tm}.${+tp + 1}-0` + } else { + to = `<=${to}` + } + + return `${from} ${to}`.trim() +} + +const testSet = (set, version, options) => { + for (let i = 0; i < set.length; i++) { + if (!set[i].test(version)) { + return false + } + } + + if (version.prerelease.length && !options.includePrerelease) { + // Find the set of versions that are allowed to have prereleases + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 + // That should allow `1.2.3-pr.2` to pass. + // However, `1.2.4-alpha.notready` should NOT be allowed, + // even though it's within the range set by the comparators. + for (let i = 0; i < set.length; i++) { + debug(set[i].semver) + if (set[i].semver === Comparator.ANY) { + continue + } + + if (set[i].semver.prerelease.length > 0) { + const allowed = set[i].semver + if (allowed.major === version.major && + allowed.minor === version.minor && + allowed.patch === version.patch) { + return true + } + } + } + + // Version has a -pre, but it's not one of the ones we like. + return false + } + + return true +} + + +/***/ }), + +/***/ 7163: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const debug = __nccwpck_require__(1159) +const { MAX_LENGTH, MAX_SAFE_INTEGER } = __nccwpck_require__(5101) +const { safeRe: re, t } = __nccwpck_require__(5471) + +const parseOptions = __nccwpck_require__(356) +const { compareIdentifiers } = __nccwpck_require__(3348) +class SemVer { + constructor (version, options) { + options = parseOptions(options) + + if (version instanceof SemVer) { + if (version.loose === !!options.loose && + version.includePrerelease === !!options.includePrerelease) { + return version + } else { + version = version.version + } + } else if (typeof version !== 'string') { + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`) + } + + if (version.length > MAX_LENGTH) { + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ) + } + + debug('SemVer', version, options) + this.options = options + this.loose = !!options.loose + // this isn't actually relevant for versions, but keep it so that we + // don't run into trouble passing this.options around. + this.includePrerelease = !!options.includePrerelease + + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) + + if (!m) { + throw new TypeError(`Invalid Version: ${version}`) + } + + this.raw = version + + // these are actually numbers + this.major = +m[1] + this.minor = +m[2] + this.patch = +m[3] + + if (this.major > MAX_SAFE_INTEGER || this.major < 0) { + throw new TypeError('Invalid major version') + } + + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { + throw new TypeError('Invalid minor version') + } + + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { + throw new TypeError('Invalid patch version') + } + + // numberify any prerelease numeric ids + if (!m[4]) { + this.prerelease = [] + } else { + this.prerelease = m[4].split('.').map((id) => { + if (/^[0-9]+$/.test(id)) { + const num = +id + if (num >= 0 && num < MAX_SAFE_INTEGER) { + return num + } + } + return id + }) + } + + this.build = m[5] ? m[5].split('.') : [] + this.format() + } + + format () { + this.version = `${this.major}.${this.minor}.${this.patch}` + if (this.prerelease.length) { + this.version += `-${this.prerelease.join('.')}` + } + return this.version + } + + toString () { + return this.version + } + + compare (other) { + debug('SemVer.compare', this.version, this.options, other) + if (!(other instanceof SemVer)) { + if (typeof other === 'string' && other === this.version) { + return 0 + } + other = new SemVer(other, this.options) + } + + if (other.version === this.version) { + return 0 + } + + return this.compareMain(other) || this.comparePre(other) + } + + compareMain (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + if (this.major < other.major) { + return -1 + } + if (this.major > other.major) { + return 1 + } + if (this.minor < other.minor) { + return -1 + } + if (this.minor > other.minor) { + return 1 + } + if (this.patch < other.patch) { + return -1 + } + if (this.patch > other.patch) { + return 1 + } + return 0 + } + + comparePre (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + // NOT having a prerelease is > having one + if (this.prerelease.length && !other.prerelease.length) { + return -1 + } else if (!this.prerelease.length && other.prerelease.length) { + return 1 + } else if (!this.prerelease.length && !other.prerelease.length) { + return 0 + } + + let i = 0 + do { + const a = this.prerelease[i] + const b = other.prerelease[i] + debug('prerelease compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + compareBuild (other) { + if (!(other instanceof SemVer)) { + other = new SemVer(other, this.options) + } + + let i = 0 + do { + const a = this.build[i] + const b = other.build[i] + debug('build compare', i, a, b) + if (a === undefined && b === undefined) { + return 0 + } else if (b === undefined) { + return 1 + } else if (a === undefined) { + return -1 + } else if (a === b) { + continue + } else { + return compareIdentifiers(a, b) + } + } while (++i) + } + + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc (release, identifier, identifierBase) { + if (release.startsWith('pre')) { + if (!identifier && identifierBase === false) { + throw new Error('invalid increment argument: identifier is empty') + } + // Avoid an invalid semver results + if (identifier) { + const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]) + if (!match || match[1] !== identifier) { + throw new Error(`invalid identifier: ${identifier}`) + } + } + } + + switch (release) { + case 'premajor': + this.prerelease.length = 0 + this.patch = 0 + this.minor = 0 + this.major++ + this.inc('pre', identifier, identifierBase) + break + case 'preminor': + this.prerelease.length = 0 + this.patch = 0 + this.minor++ + this.inc('pre', identifier, identifierBase) + break + case 'prepatch': + // If this is already a prerelease, it will bump to the next version + // drop any prereleases that might already exist, since they are not + // relevant at this point. + this.prerelease.length = 0 + this.inc('patch', identifier, identifierBase) + this.inc('pre', identifier, identifierBase) + break + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case 'prerelease': + if (this.prerelease.length === 0) { + this.inc('patch', identifier, identifierBase) + } + this.inc('pre', identifier, identifierBase) + break + case 'release': + if (this.prerelease.length === 0) { + throw new Error(`version ${this.raw} is not a prerelease`) + } + this.prerelease.length = 0 + break + + case 'major': + // If this is a pre-major version, bump up to the same major version. + // Otherwise increment major. + // 1.0.0-5 bumps to 1.0.0 + // 1.1.0 bumps to 2.0.0 + if ( + this.minor !== 0 || + this.patch !== 0 || + this.prerelease.length === 0 + ) { + this.major++ + } + this.minor = 0 + this.patch = 0 + this.prerelease = [] + break + case 'minor': + // If this is a pre-minor version, bump up to the same minor version. + // Otherwise increment minor. + // 1.2.0-5 bumps to 1.2.0 + // 1.2.1 bumps to 1.3.0 + if (this.patch !== 0 || this.prerelease.length === 0) { + this.minor++ + } + this.patch = 0 + this.prerelease = [] + break + case 'patch': + // If this is not a pre-release version, it will increment the patch. + // If it is a pre-release it will bump up to the same patch version. + // 1.2.0-5 patches to 1.2.0 + // 1.2.0 patches to 1.2.1 + if (this.prerelease.length === 0) { + this.patch++ + } + this.prerelease = [] + break + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case 'pre': { + const base = Number(identifierBase) ? 1 : 0 + + if (this.prerelease.length === 0) { + this.prerelease = [base] + } else { + let i = this.prerelease.length + while (--i >= 0) { + if (typeof this.prerelease[i] === 'number') { + this.prerelease[i]++ + i = -2 + } + } + if (i === -1) { + // didn't increment anything + if (identifier === this.prerelease.join('.') && identifierBase === false) { + throw new Error('invalid increment argument: identifier already exists') + } + this.prerelease.push(base) + } + } + if (identifier) { + // 1.2.0-beta.1 bumps to 1.2.0-beta.2, + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 + let prerelease = [identifier, base] + if (identifierBase === false) { + prerelease = [identifier] + } + if (compareIdentifiers(this.prerelease[0], identifier) === 0) { + if (isNaN(this.prerelease[1])) { + this.prerelease = prerelease + } + } else { + this.prerelease = prerelease + } + } + break + } + default: + throw new Error(`invalid increment argument: ${release}`) + } + this.raw = this.format() + if (this.build.length) { + this.raw += `+${this.build.join('.')}` + } + return this + } +} + +module.exports = SemVer + + +/***/ }), + +/***/ 1799: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const parse = __nccwpck_require__(6353) +const clean = (version, options) => { + const s = parse(version.trim().replace(/^[=v]+/, ''), options) + return s ? s.version : null +} +module.exports = clean + + +/***/ }), + +/***/ 8646: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const eq = __nccwpck_require__(5082) +const neq = __nccwpck_require__(4974) +const gt = __nccwpck_require__(6599) +const gte = __nccwpck_require__(1236) +const lt = __nccwpck_require__(3872) +const lte = __nccwpck_require__(6717) + +const cmp = (a, op, b, loose) => { + switch (op) { + case '===': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a === b + + case '!==': + if (typeof a === 'object') { + a = a.version + } + if (typeof b === 'object') { + b = b.version + } + return a !== b + + case '': + case '=': + case '==': + return eq(a, b, loose) + + case '!=': + return neq(a, b, loose) + + case '>': + return gt(a, b, loose) + + case '>=': + return gte(a, b, loose) + + case '<': + return lt(a, b, loose) + + case '<=': + return lte(a, b, loose) + + default: + throw new TypeError(`Invalid operator: ${op}`) + } +} +module.exports = cmp + + +/***/ }), + +/***/ 5385: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const parse = __nccwpck_require__(6353) +const { safeRe: re, t } = __nccwpck_require__(5471) + +const coerce = (version, options) => { + if (version instanceof SemVer) { + return version + } + + if (typeof version === 'number') { + version = String(version) + } + + if (typeof version !== 'string') { + return null + } + + options = options || {} + + let match = null + if (!options.rtl) { + match = version.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]) + } else { + // Find the right-most coercible string that does not share + // a terminus with a more left-ward coercible string. + // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' + // With includePrerelease option set, '1.2.3.4-rc' wants to coerce '2.3.4-rc', not '2.3.4' + // + // Walk through the string checking with a /g regexp + // Manually set the index so as to pick up overlapping matches. + // Stop when we get a match that ends at the string end, since no + // coercible string can be more right-ward without the same terminus. + const coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL] + let next + while ((next = coerceRtlRegex.exec(version)) && + (!match || match.index + match[0].length !== version.length) + ) { + if (!match || + next.index + next[0].length !== match.index + match[0].length) { + match = next + } + coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length + } + // leave it in a clean state + coerceRtlRegex.lastIndex = -1 + } + + if (match === null) { + return null + } + + const major = match[2] + const minor = match[3] || '0' + const patch = match[4] || '0' + const prerelease = options.includePrerelease && match[5] ? `-${match[5]}` : '' + const build = options.includePrerelease && match[6] ? `+${match[6]}` : '' + + return parse(`${major}.${minor}.${patch}${prerelease}${build}`, options) +} +module.exports = coerce + + +/***/ }), + +/***/ 7648: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const compareBuild = (a, b, loose) => { + const versionA = new SemVer(a, loose) + const versionB = new SemVer(b, loose) + return versionA.compare(versionB) || versionA.compareBuild(versionB) +} +module.exports = compareBuild + + +/***/ }), + +/***/ 6874: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const compareLoose = (a, b) => compare(a, b, true) +module.exports = compareLoose + + +/***/ }), + +/***/ 8469: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const compare = (a, b, loose) => + new SemVer(a, loose).compare(new SemVer(b, loose)) + +module.exports = compare + + +/***/ }), + +/***/ 711: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const parse = __nccwpck_require__(6353) + +const diff = (version1, version2) => { + const v1 = parse(version1, null, true) + const v2 = parse(version2, null, true) + const comparison = v1.compare(v2) + + if (comparison === 0) { + return null + } + + const v1Higher = comparison > 0 + const highVersion = v1Higher ? v1 : v2 + const lowVersion = v1Higher ? v2 : v1 + const highHasPre = !!highVersion.prerelease.length + const lowHasPre = !!lowVersion.prerelease.length + + if (lowHasPre && !highHasPre) { + // Going from prerelease -> no prerelease requires some special casing + + // If the low version has only a major, then it will always be a major + // Some examples: + // 1.0.0-1 -> 1.0.0 + // 1.0.0-1 -> 1.1.1 + // 1.0.0-1 -> 2.0.0 + if (!lowVersion.patch && !lowVersion.minor) { + return 'major' + } + + // If the main part has no difference + if (lowVersion.compareMain(highVersion) === 0) { + if (lowVersion.minor && !lowVersion.patch) { + return 'minor' + } + return 'patch' + } + } + + // add the `pre` prefix if we are going to a prerelease version + const prefix = highHasPre ? 'pre' : '' + + if (v1.major !== v2.major) { + return prefix + 'major' + } + + if (v1.minor !== v2.minor) { + return prefix + 'minor' + } + + if (v1.patch !== v2.patch) { + return prefix + 'patch' + } + + // high and low are prereleases + return 'prerelease' +} + +module.exports = diff + + +/***/ }), + +/***/ 5082: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const eq = (a, b, loose) => compare(a, b, loose) === 0 +module.exports = eq + + +/***/ }), + +/***/ 6599: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const gt = (a, b, loose) => compare(a, b, loose) > 0 +module.exports = gt + + +/***/ }), + +/***/ 1236: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const gte = (a, b, loose) => compare(a, b, loose) >= 0 +module.exports = gte + + +/***/ }), + +/***/ 2338: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) + +const inc = (version, release, options, identifier, identifierBase) => { + if (typeof (options) === 'string') { + identifierBase = identifier + identifier = options + options = undefined + } + + try { + return new SemVer( + version instanceof SemVer ? version.version : version, + options + ).inc(release, identifier, identifierBase).version + } catch (er) { + return null + } +} +module.exports = inc + + +/***/ }), + +/***/ 3872: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const lt = (a, b, loose) => compare(a, b, loose) < 0 +module.exports = lt + + +/***/ }), + +/***/ 6717: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const lte = (a, b, loose) => compare(a, b, loose) <= 0 +module.exports = lte + + +/***/ }), + +/***/ 8511: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const major = (a, loose) => new SemVer(a, loose).major +module.exports = major + + +/***/ }), + +/***/ 2603: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const minor = (a, loose) => new SemVer(a, loose).minor +module.exports = minor + + +/***/ }), + +/***/ 4974: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const neq = (a, b, loose) => compare(a, b, loose) !== 0 +module.exports = neq + + +/***/ }), + +/***/ 6353: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const parse = (version, options, throwErrors = false) => { + if (version instanceof SemVer) { + return version + } + try { + return new SemVer(version, options) + } catch (er) { + if (!throwErrors) { + return null + } + throw er + } +} + +module.exports = parse + + +/***/ }), + +/***/ 8756: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const patch = (a, loose) => new SemVer(a, loose).patch +module.exports = patch + + +/***/ }), + +/***/ 5714: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const parse = __nccwpck_require__(6353) +const prerelease = (version, options) => { + const parsed = parse(version, options) + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null +} +module.exports = prerelease + + +/***/ }), + +/***/ 2173: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compare = __nccwpck_require__(8469) +const rcompare = (a, b, loose) => compare(b, a, loose) +module.exports = rcompare + + +/***/ }), + +/***/ 7192: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compareBuild = __nccwpck_require__(7648) +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) +module.exports = rsort + + +/***/ }), + +/***/ 8011: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Range = __nccwpck_require__(6782) +const satisfies = (version, range, options) => { + try { + range = new Range(range, options) + } catch (er) { + return false + } + return range.test(version) +} +module.exports = satisfies + + +/***/ }), + +/***/ 9872: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const compareBuild = __nccwpck_require__(7648) +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) +module.exports = sort + + +/***/ }), + +/***/ 6114: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const parse = __nccwpck_require__(6353) +const constants = __nccwpck_require__(5101) +const SemVer = __nccwpck_require__(7163) + +const truncate = (version, truncation, options) => { + if (!constants.RELEASE_TYPES.includes(truncation)) { + return null + } + + const clonedVersion = cloneInputVersion(version, options) + return clonedVersion && doTruncation(clonedVersion, truncation) +} + +const cloneInputVersion = (version, options) => { + const versionStringToParse = ( + version instanceof SemVer ? version.version : version + ) + + return parse(versionStringToParse, options) +} + +const doTruncation = (version, truncation) => { + if (isPrerelease(truncation)) { + return version.version + } + + version.prerelease = [] + + switch (truncation) { + case 'major': + version.minor = 0 + version.patch = 0 + break + case 'minor': + version.patch = 0 + break + } + + return version.format() +} + +const isPrerelease = (type) => { + return type.startsWith('pre') +} + +module.exports = truncate + + +/***/ }), + +/***/ 8780: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const parse = __nccwpck_require__(6353) +const valid = (version, options) => { + const v = parse(version, options) + return v ? v.version : null +} +module.exports = valid + + +/***/ }), + +/***/ 2088: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// just pre-load all the stuff that index.js lazily exports +const internalRe = __nccwpck_require__(5471) +const constants = __nccwpck_require__(5101) +const SemVer = __nccwpck_require__(7163) +const identifiers = __nccwpck_require__(3348) +const parse = __nccwpck_require__(6353) +const valid = __nccwpck_require__(8780) +const clean = __nccwpck_require__(1799) +const inc = __nccwpck_require__(2338) +const diff = __nccwpck_require__(711) +const major = __nccwpck_require__(8511) +const minor = __nccwpck_require__(2603) +const patch = __nccwpck_require__(8756) +const prerelease = __nccwpck_require__(5714) +const compare = __nccwpck_require__(8469) +const rcompare = __nccwpck_require__(2173) +const compareLoose = __nccwpck_require__(6874) +const compareBuild = __nccwpck_require__(7648) +const sort = __nccwpck_require__(9872) +const rsort = __nccwpck_require__(7192) +const gt = __nccwpck_require__(6599) +const lt = __nccwpck_require__(3872) +const eq = __nccwpck_require__(5082) +const neq = __nccwpck_require__(4974) +const gte = __nccwpck_require__(1236) +const lte = __nccwpck_require__(6717) +const cmp = __nccwpck_require__(8646) +const coerce = __nccwpck_require__(5385) +const truncate = __nccwpck_require__(6114) +const Comparator = __nccwpck_require__(9379) +const Range = __nccwpck_require__(6782) +const satisfies = __nccwpck_require__(8011) +const toComparators = __nccwpck_require__(4750) +const maxSatisfying = __nccwpck_require__(5574) +const minSatisfying = __nccwpck_require__(8595) +const minVersion = __nccwpck_require__(1866) +const validRange = __nccwpck_require__(4737) +const outside = __nccwpck_require__(280) +const gtr = __nccwpck_require__(2276) +const ltr = __nccwpck_require__(5213) +const intersects = __nccwpck_require__(3465) +const simplifyRange = __nccwpck_require__(2028) +const subset = __nccwpck_require__(1489) +module.exports = { + parse, + valid, + clean, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers, +} + + +/***/ }), + +/***/ 5101: +/***/ ((module) => { + + + +// Note: this is the semver.org version of the spec that it implements +// Not necessarily the package version of this code. +const SEMVER_SPEC_VERSION = '2.0.0' + +const MAX_LENGTH = 256 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || +/* istanbul ignore next */ 9007199254740991 + +// Max safe segment length for coercion. +const MAX_SAFE_COMPONENT_LENGTH = 16 + +// Max safe length for a build identifier. The max length minus 6 characters for +// the shortest version with a build 0.0.0+BUILD. +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6 + +const RELEASE_TYPES = [ + 'major', + 'premajor', + 'minor', + 'preminor', + 'patch', + 'prepatch', + 'prerelease', +] + +module.exports = { + MAX_LENGTH, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 0b001, + FLAG_LOOSE: 0b010, +} + + +/***/ }), + +/***/ 1159: +/***/ ((module) => { + + + +const debug = ( + typeof process === 'object' && + process.env && + process.env.NODE_DEBUG && + /\bsemver\b/i.test(process.env.NODE_DEBUG) +) ? (...args) => console.error('SEMVER', ...args) + : () => {} + +module.exports = debug + + +/***/ }), + +/***/ 3348: +/***/ ((module) => { + + + +const numeric = /^[0-9]+$/ +const compareIdentifiers = (a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a === b ? 0 : a < b ? -1 : 1 + } + + const anum = numeric.test(a) + const bnum = numeric.test(b) + + if (anum && bnum) { + a = +a + b = +b + } + + return a === b ? 0 + : (anum && !bnum) ? -1 + : (bnum && !anum) ? 1 + : a < b ? -1 + : 1 +} + +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) + +module.exports = { + compareIdentifiers, + rcompareIdentifiers, +} + + +/***/ }), + +/***/ 1383: +/***/ ((module) => { + + + +class LRUCache { + constructor () { + this.max = 1000 + this.map = new Map() + } + + get (key) { + const value = this.map.get(key) + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key) + this.map.set(key, value) + return value + } + } + + delete (key) { + return this.map.delete(key) + } + + set (key, value) { + const deleted = this.delete(key) + + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value + this.delete(firstKey) + } + + this.map.set(key, value) + } + + return this + } +} + +module.exports = LRUCache + + +/***/ }), + +/***/ 356: +/***/ ((module) => { + + + +// parse out just the options we care about +const looseOption = Object.freeze({ loose: true }) +const emptyOpts = Object.freeze({ }) +const parseOptions = options => { + if (!options) { + return emptyOpts + } + + if (typeof options !== 'object') { + return looseOption + } + + return options +} +module.exports = parseOptions + + +/***/ }), + +/***/ 5471: +/***/ ((module, exports, __nccwpck_require__) => { + + + +const { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH, +} = __nccwpck_require__(5101) +const debug = __nccwpck_require__(1159) +exports = module.exports = {} + +// The actual regexps go on exports.re +const re = exports.re = [] +const safeRe = exports.safeRe = [] +const src = exports.src = [] +const safeSrc = exports.safeSrc = [] +const t = exports.t = {} +let R = 0 + +const LETTERDASHNUMBER = '[a-zA-Z0-9-]' + +// Replace some greedy regex tokens to prevent regex dos issues. These regex are +// used internally via the safeRe object since all inputs in this library get +// normalized first to trim and collapse all extra whitespace. The original +// regexes are exported for userland consumption and lower level usage. A +// future breaking change could export the safer regex only with a note that +// all input should have extra whitespace removed. +const safeRegexReplacements = [ + ['\\s', 1], + ['\\d', MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH], +] + +const makeSafeRegex = (value) => { + for (const [token, max] of safeRegexReplacements) { + value = value + .split(`${token}*`).join(`${token}{0,${max}}`) + .split(`${token}+`).join(`${token}{1,${max}}`) + } + return value +} + +const createToken = (name, value, isGlobal) => { + const safe = makeSafeRegex(value) + const index = R++ + debug(name, index, value) + t[name] = index + src[index] = value + safeSrc[index] = safe + re[index] = new RegExp(value, isGlobal ? 'g' : undefined) + safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined) +} + +// The following Regular Expressions can be used for tokenizing, +// validating, and parsing SemVer version strings. + +// ## Numeric Identifier +// A single `0`, or a non-zero digit followed by zero or more digits. + +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') +createToken('NUMERICIDENTIFIERLOOSE', '\\d+') + +// ## Non-numeric Identifier +// Zero or more digits, followed by a letter or hyphen, and then zero or +// more letters, digits, or hyphens. + +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`) + +// ## Main Version +// Three dot-separated numeric identifiers. + +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})\\.` + + `(${src[t.NUMERICIDENTIFIER]})`) + +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + + `(${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version Identifier +// A numeric identifier, or a non-numeric identifier. +// Non-numeric identifiers include numeric identifiers but can be longer. +// Therefore non-numeric identifiers must go first. + +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIER]})`) + +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER] +}|${src[t.NUMERICIDENTIFIERLOOSE]})`) + +// ## Pre-release Version +// Hyphen, followed by one or more dot-separated pre-release version +// identifiers. + +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) + +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) + +// ## Build Metadata Identifier +// Any combination of digits, letters, or hyphens. + +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`) + +// ## Build Metadata +// Plus sign, followed by one or more period-separated build metadata +// identifiers. + +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) + +// ## Full Version String +// A main version, followed optionally by a pre-release version and +// build metadata. + +// Note that the only major, minor, patch, and pre-release sections of +// the version string are capturing groups. The build metadata is not a +// capturing group, because it should not ever be used in version +// comparison. + +createToken('FULLPLAIN', `v?${src[t.MAINVERSION] +}${src[t.PRERELEASE]}?${ + src[t.BUILD]}?`) + +createToken('FULL', `^${src[t.FULLPLAIN]}$`) + +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty +// common in the npm registry. +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] +}${src[t.PRERELEASELOOSE]}?${ + src[t.BUILD]}?`) + +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) + +createToken('GTLT', '((?:<|>)?=?)') + +// Something like "2.*" or "1.2.x". +// Note that "x.x" is a valid xRange identifier, meaning "any version" +// Only the first item is strictly required. +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) + +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + + `(?:${src[t.PRERELEASE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + + `(?:${src[t.PRERELEASELOOSE]})?${ + src[t.BUILD]}?` + + `)?)?`) + +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) + +// Coercion. +// Extract anything that could conceivably be a part of a valid semver +createToken('COERCEPLAIN', `${'(^|[^\\d])' + + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`) +createToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\d])`) +createToken('COERCEFULL', src[t.COERCEPLAIN] + + `(?:${src[t.PRERELEASE]})?` + + `(?:${src[t.BUILD]})?` + + `(?:$|[^\\d])`) +createToken('COERCERTL', src[t.COERCE], true) +createToken('COERCERTLFULL', src[t.COERCEFULL], true) + +// Tilde ranges. +// Meaning is "reasonably at or greater than" +createToken('LONETILDE', '(?:~>?)') + +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) +exports.tildeTrimReplace = '$1~' + +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) + +// Caret ranges. +// Meaning is "at least and backwards compatible with" +createToken('LONECARET', '(?:\\^)') + +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) +exports.caretTrimReplace = '$1^' + +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) + +// A simple gt/lt/eq thing, or just "" to indicate "any version" +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) + +// An expression to strip any whitespace between the gtlt and the thing +// it modifies, so that `> 1.2.3` ==> `>1.2.3` +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) +exports.comparatorTrimReplace = '$1$2$3' + +// Something like `1.2.3 - 1.2.4` +// Note that these all use the loose form, because they'll be +// checked against either the strict or loose comparator form +// later. +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAIN]})` + + `\\s*$`) + +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + + `\\s+-\\s+` + + `(${src[t.XRANGEPLAINLOOSE]})` + + `\\s*$`) + +// Star ranges basically just allow anything at all. +createToken('STAR', '(<|>)?=?\\s*\\*') +// >=0.0.0 is like a star +createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') +createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') + + +/***/ }), + +/***/ 2276: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// Determine if version is greater than all the versions possible in the range. +const outside = __nccwpck_require__(280) +const gtr = (version, range, options) => outside(version, range, '>', options) +module.exports = gtr + + +/***/ }), + +/***/ 3465: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Range = __nccwpck_require__(6782) +const intersects = (r1, r2, options) => { + r1 = new Range(r1, options) + r2 = new Range(r2, options) + return r1.intersects(r2, options) +} +module.exports = intersects + + +/***/ }), + +/***/ 5213: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const outside = __nccwpck_require__(280) +// Determine if version is less than all the versions possible in the range +const ltr = (version, range, options) => outside(version, range, '<', options) +module.exports = ltr + + +/***/ }), + +/***/ 5574: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const Range = __nccwpck_require__(6782) + +const maxSatisfying = (versions, range, options) => { + let max = null + let maxSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!max || maxSV.compare(v) === -1) { + // compare(max, v, true) + max = v + maxSV = new SemVer(max, options) + } + } + }) + return max +} +module.exports = maxSatisfying + + +/***/ }), + +/***/ 8595: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const Range = __nccwpck_require__(6782) +const minSatisfying = (versions, range, options) => { + let min = null + let minSV = null + let rangeObj = null + try { + rangeObj = new Range(range, options) + } catch (er) { + return null + } + versions.forEach((v) => { + if (rangeObj.test(v)) { + // satisfies(v, range, options) + if (!min || minSV.compare(v) === 1) { + // compare(min, v, true) + min = v + minSV = new SemVer(min, options) + } + } + }) + return min +} +module.exports = minSatisfying + + +/***/ }), + +/***/ 1866: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const Range = __nccwpck_require__(6782) +const gt = __nccwpck_require__(6599) + +const minVersion = (range, loose) => { + range = new Range(range, loose) + + let minver = new SemVer('0.0.0') + if (range.test(minver)) { + return minver + } + + minver = new SemVer('0.0.0-0') + if (range.test(minver)) { + return minver + } + + minver = null + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let setMin = null + comparators.forEach((comparator) => { + // Clone to avoid manipulating the comparator's semver object. + const compver = new SemVer(comparator.semver.version) + switch (comparator.operator) { + case '>': + if (compver.prerelease.length === 0) { + compver.patch++ + } else { + compver.prerelease.push(0) + } + compver.raw = compver.format() + /* fallthrough */ + case '': + case '>=': + if (!setMin || gt(compver, setMin)) { + setMin = compver + } + break + case '<': + case '<=': + /* Ignore maximum versions */ + break + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`) + } + }) + if (setMin && (!minver || gt(minver, setMin))) { + minver = setMin + } + } + + if (minver && range.test(minver)) { + return minver + } + + return null +} +module.exports = minVersion + + +/***/ }), + +/***/ 280: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const SemVer = __nccwpck_require__(7163) +const Comparator = __nccwpck_require__(9379) +const { ANY } = Comparator +const Range = __nccwpck_require__(6782) +const satisfies = __nccwpck_require__(8011) +const gt = __nccwpck_require__(6599) +const lt = __nccwpck_require__(3872) +const lte = __nccwpck_require__(6717) +const gte = __nccwpck_require__(1236) + +const outside = (version, range, hilo, options) => { + version = new SemVer(version, options) + range = new Range(range, options) + + let gtfn, ltefn, ltfn, comp, ecomp + switch (hilo) { + case '>': + gtfn = gt + ltefn = lte + ltfn = lt + comp = '>' + ecomp = '>=' + break + case '<': + gtfn = lt + ltefn = gte + ltfn = gt + comp = '<' + ecomp = '<=' + break + default: + throw new TypeError('Must provide a hilo val of "<" or ">"') + } + + // If it satisfies the range it is not outside + if (satisfies(version, range, options)) { + return false + } + + // From now on, variable terms are as if we're in "gtr" mode. + // but note that everything is flipped for the "ltr" function. + + for (let i = 0; i < range.set.length; ++i) { + const comparators = range.set[i] + + let high = null + let low = null + + comparators.forEach((comparator) => { + if (comparator.semver === ANY) { + comparator = new Comparator('>=0.0.0') + } + high = high || comparator + low = low || comparator + if (gtfn(comparator.semver, high.semver, options)) { + high = comparator + } else if (ltfn(comparator.semver, low.semver, options)) { + low = comparator + } + }) + + // If the edge version comparator has a operator then our version + // isn't outside it + if (high.operator === comp || high.operator === ecomp) { + return false + } + + // If the lowest version comparator has an operator and our version + // is less than it then it isn't higher than the range + if ((!low.operator || low.operator === comp) && + ltefn(version, low.semver)) { + return false + } else if (low.operator === ecomp && ltfn(version, low.semver)) { + return false + } + } + return true +} + +module.exports = outside + + +/***/ }), + +/***/ 2028: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// given a set of versions and a range, create a "simplified" range +// that includes the same versions that the original range does +// If the original range is shorter than the simplified one, return that. +const satisfies = __nccwpck_require__(8011) +const compare = __nccwpck_require__(8469) +module.exports = (versions, range, options) => { + const set = [] + let first = null + let prev = null + const v = versions.sort((a, b) => compare(a, b, options)) + for (const version of v) { + const included = satisfies(version, range, options) + if (included) { + prev = version + if (!first) { + first = version + } + } else { + if (prev) { + set.push([first, prev]) + } + prev = null + first = null + } + } + if (first) { + set.push([first, null]) + } + + const ranges = [] + for (const [min, max] of set) { + if (min === max) { + ranges.push(min) + } else if (!max && min === v[0]) { + ranges.push('*') + } else if (!max) { + ranges.push(`>=${min}`) + } else if (min === v[0]) { + ranges.push(`<=${max}`) + } else { + ranges.push(`${min} - ${max}`) + } + } + const simplified = ranges.join(' || ') + const original = typeof range.raw === 'string' ? range.raw : String(range) + return simplified.length < original.length ? simplified : range +} + + +/***/ }), + +/***/ 1489: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Range = __nccwpck_require__(6782) +const Comparator = __nccwpck_require__(9379) +const { ANY } = Comparator +const satisfies = __nccwpck_require__(8011) +const compare = __nccwpck_require__(8469) + +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: +// - Every simple range `r1, r2, ...` is a null set, OR +// - Every simple range `r1, r2, ...` which is not a null set is a subset of +// some `R1, R2, ...` +// +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: +// - If c is only the ANY comparator +// - If C is only the ANY comparator, return true +// - Else if in prerelease mode, return false +// - else replace c with `[>=0.0.0]` +// - If C is only the ANY comparator +// - if in prerelease mode, return true +// - else replace C with `[>=0.0.0]` +// - Let EQ be the set of = comparators in c +// - If EQ is more than one, return true (null set) +// - Let GT be the highest > or >= comparator in c +// - Let LT be the lowest < or <= comparator in c +// - If GT and LT, and GT.semver > LT.semver, return true (null set) +// - If any C is a = range, and GT or LT are set, return false +// - If EQ +// - If GT, and EQ does not satisfy GT, return true (null set) +// - If LT, and EQ does not satisfy LT, return true (null set) +// - If EQ satisfies every C, return true +// - Else return false +// - If GT +// - If GT.semver is lower than any > or >= comp in C, return false +// - If GT is >=, and GT.semver does not satisfy every C, return false +// - If GT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the GT.semver tuple, return false +// - If LT +// - If LT.semver is greater than any < or <= comp in C, return false +// - If LT is <=, and LT.semver does not satisfy every C, return false +// - If LT.semver has a prerelease, and not in prerelease mode +// - If no C has a prerelease and the LT.semver tuple, return false +// - Else return true + +const subset = (sub, dom, options = {}) => { + if (sub === dom) { + return true + } + + sub = new Range(sub, options) + dom = new Range(dom, options) + let sawNonNull = false + + OUTER: for (const simpleSub of sub.set) { + for (const simpleDom of dom.set) { + const isSub = simpleSubset(simpleSub, simpleDom, options) + sawNonNull = sawNonNull || isSub !== null + if (isSub) { + continue OUTER + } + } + // the null set is a subset of everything, but null simple ranges in + // a complex range should be ignored. so if we saw a non-null range, + // then we know this isn't a subset, but if EVERY simple range was null, + // then it is a subset. + if (sawNonNull) { + return false + } + } + return true +} + +const minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')] +const minimumVersion = [new Comparator('>=0.0.0')] + +const simpleSubset = (sub, dom, options) => { + if (sub === dom) { + return true + } + + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) { + return true + } else if (options.includePrerelease) { + sub = minimumVersionWithPreRelease + } else { + sub = minimumVersion + } + } + + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) { + return true + } else { + dom = minimumVersion + } + } + + const eqSet = new Set() + let gt, lt + for (const c of sub) { + if (c.operator === '>' || c.operator === '>=') { + gt = higherGT(gt, c, options) + } else if (c.operator === '<' || c.operator === '<=') { + lt = lowerLT(lt, c, options) + } else { + eqSet.add(c.semver) + } + } + + if (eqSet.size > 1) { + return null + } + + let gtltComp + if (gt && lt) { + gtltComp = compare(gt.semver, lt.semver, options) + if (gtltComp > 0) { + return null + } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { + return null + } + } + + // will iterate one or zero times + for (const eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options)) { + return null + } + + if (lt && !satisfies(eq, String(lt), options)) { + return null + } + + for (const c of dom) { + if (!satisfies(eq, String(c), options)) { + return false + } + } + + return true + } + + let higher, lower + let hasDomLT, hasDomGT + // if the subset has a prerelease, we need a comparator in the superset + // with the same tuple and a prerelease, or it's not a subset + let needDomLTPre = lt && + !options.includePrerelease && + lt.semver.prerelease.length ? lt.semver : false + let needDomGTPre = gt && + !options.includePrerelease && + gt.semver.prerelease.length ? gt.semver : false + // exception: <1.2.3-0 is the same as <1.2.3 + if (needDomLTPre && needDomLTPre.prerelease.length === 1 && + lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { + needDomLTPre = false + } + + for (const c of dom) { + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' + if (gt) { + if (needDomGTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomGTPre.major && + c.semver.minor === needDomGTPre.minor && + c.semver.patch === needDomGTPre.patch) { + needDomGTPre = false + } + } + if (c.operator === '>' || c.operator === '>=') { + higher = higherGT(gt, c, options) + if (higher === c && higher !== gt) { + return false + } + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { + return false + } + } + if (lt) { + if (needDomLTPre) { + if (c.semver.prerelease && c.semver.prerelease.length && + c.semver.major === needDomLTPre.major && + c.semver.minor === needDomLTPre.minor && + c.semver.patch === needDomLTPre.patch) { + needDomLTPre = false + } + } + if (c.operator === '<' || c.operator === '<=') { + lower = lowerLT(lt, c, options) + if (lower === c && lower !== lt) { + return false + } + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { + return false + } + } + if (!c.operator && (lt || gt) && gtltComp !== 0) { + return false + } + } + + // if there was a < or >, and nothing in the dom, then must be false + // UNLESS it was limited by another range in the other direction. + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 + if (gt && hasDomLT && !lt && gtltComp !== 0) { + return false + } + + if (lt && hasDomGT && !gt && gtltComp !== 0) { + return false + } + + // we needed a prerelease range in a specific tuple, but didn't get one + // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, + // because it includes prereleases in the 1.2.3 tuple + if (needDomGTPre || needDomLTPre) { + return false + } + + return true +} + +// >=1.2.3 is lower than >1.2.3 +const higherGT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp > 0 ? a + : comp < 0 ? b + : b.operator === '>' && a.operator === '>=' ? b + : a +} + +// <=1.2.3 is higher than <1.2.3 +const lowerLT = (a, b, options) => { + if (!a) { + return b + } + const comp = compare(a.semver, b.semver, options) + return comp < 0 ? a + : comp > 0 ? b + : b.operator === '<' && a.operator === '<=' ? b + : a +} + +module.exports = subset + + +/***/ }), + +/***/ 4750: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Range = __nccwpck_require__(6782) + +// Mostly just for testing and legacy API reasons +const toComparators = (range, options) => + new Range(range, options).set + .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) + +module.exports = toComparators + + +/***/ }), + +/***/ 4737: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Range = __nccwpck_require__(6782) +const validRange = (range, options) => { + try { + // Return '*' instead of '' so that truthiness works. + // This will throw if it's invalid anyway + return new Range(range, options).range || '*' + } catch (er) { + return null + } +} +module.exports = validRange + + +/***/ }), + +/***/ 770: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(218); + + +/***/ }), + +/***/ 218: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var __webpack_unused_export__; + + +var net = __nccwpck_require__(9278); +var tls = __nccwpck_require__(4756); +var http = __nccwpck_require__(8611); +var https = __nccwpck_require__(5692); +var events = __nccwpck_require__(4434); +var assert = __nccwpck_require__(2613); +var util = __nccwpck_require__(9023); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, options); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + socket.destroy(); + var error = new Error('tunneling socket could not be established, ' + + 'statusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} + + +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +__webpack_unused_export__ = debug; // for test + + +/***/ }), + +/***/ 6752: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var __webpack_unused_export__; + + +const Client = __nccwpck_require__(3701) +const Dispatcher = __nccwpck_require__(883) +const Pool = __nccwpck_require__(628) +const BalancedPool = __nccwpck_require__(837) +const Agent = __nccwpck_require__(7405) +const ProxyAgent = __nccwpck_require__(6672) +const EnvHttpProxyAgent = __nccwpck_require__(3137) +const RetryAgent = __nccwpck_require__(50) +const errors = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { InvalidArgumentError } = errors +const api = __nccwpck_require__(6615) +const buildConnector = __nccwpck_require__(9136) +const MockClient = __nccwpck_require__(7365) +const MockAgent = __nccwpck_require__(7501) +const MockPool = __nccwpck_require__(4004) +const mockErrors = __nccwpck_require__(2429) +const RetryHandler = __nccwpck_require__(7816) +const { getGlobalDispatcher, setGlobalDispatcher } = __nccwpck_require__(2581) +const DecoratorHandler = __nccwpck_require__(8155) +const RedirectHandler = __nccwpck_require__(8754) +const createRedirectInterceptor = __nccwpck_require__(5092) + +Object.assign(Dispatcher.prototype, api) + +__webpack_unused_export__ = Dispatcher +__webpack_unused_export__ = Client +__webpack_unused_export__ = Pool +__webpack_unused_export__ = BalancedPool +__webpack_unused_export__ = Agent +module.exports.kT = ProxyAgent +__webpack_unused_export__ = EnvHttpProxyAgent +__webpack_unused_export__ = RetryAgent +__webpack_unused_export__ = RetryHandler + +__webpack_unused_export__ = DecoratorHandler +__webpack_unused_export__ = RedirectHandler +__webpack_unused_export__ = createRedirectInterceptor +__webpack_unused_export__ = { + redirect: __nccwpck_require__(1514), + retry: __nccwpck_require__(2026), + dump: __nccwpck_require__(8060), + dns: __nccwpck_require__(379) +} + +__webpack_unused_export__ = buildConnector +__webpack_unused_export__ = errors +__webpack_unused_export__ = { + parseHeaders: util.parseHeaders, + headerNameToString: util.headerNameToString +} + +function makeDispatcher (fn) { + return (url, opts, handler) => { + if (typeof opts === 'function') { + handler = opts + opts = null + } + + if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) { + throw new InvalidArgumentError('invalid url') + } + + if (opts != null && typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (opts && opts.path != null) { + if (typeof opts.path !== 'string') { + throw new InvalidArgumentError('invalid opts.path') + } + + let path = opts.path + if (!opts.path.startsWith('/')) { + path = `/${path}` + } + + url = new URL(util.parseOrigin(url).origin + path) + } else { + if (!opts) { + opts = typeof url === 'object' ? url : {} + } + + url = util.parseURL(url) + } + + const { agent, dispatcher = getGlobalDispatcher() } = opts + + if (agent) { + throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?') + } + + return fn.call(dispatcher, { + ...opts, + origin: url.origin, + path: url.search ? `${url.pathname}${url.search}` : url.pathname, + method: opts.method || (opts.body ? 'PUT' : 'GET') + }, handler) + } +} + +__webpack_unused_export__ = setGlobalDispatcher +__webpack_unused_export__ = getGlobalDispatcher + +const fetchImpl = (__nccwpck_require__(4398).fetch) +__webpack_unused_export__ = async function fetch (init, options = undefined) { + try { + return await fetchImpl(init, options) + } catch (err) { + if (err && typeof err === 'object') { + Error.captureStackTrace(err) + } + + throw err + } +} +/* unused reexport */ __nccwpck_require__(660).Headers +/* unused reexport */ __nccwpck_require__(9051).Response +/* unused reexport */ __nccwpck_require__(9967).Request +/* unused reexport */ __nccwpck_require__(5910).FormData +__webpack_unused_export__ = globalThis.File ?? (__nccwpck_require__(4573).File) +/* unused reexport */ __nccwpck_require__(8355).FileReader + +const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(1059) + +__webpack_unused_export__ = setGlobalOrigin +__webpack_unused_export__ = getGlobalOrigin + +const { CacheStorage } = __nccwpck_require__(3245) +const { kConstruct } = __nccwpck_require__(109) + +// Cache & CacheStorage are tightly coupled with fetch. Even if it may run +// in an older version of Node, it doesn't have any use without fetch. +__webpack_unused_export__ = new CacheStorage(kConstruct) + +const { deleteCookie, getCookies, getSetCookies, setCookie } = __nccwpck_require__(9061) + +__webpack_unused_export__ = deleteCookie +__webpack_unused_export__ = getCookies +__webpack_unused_export__ = getSetCookies +__webpack_unused_export__ = setCookie + +const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(1900) + +__webpack_unused_export__ = parseMIMEType +__webpack_unused_export__ = serializeAMimeType + +const { CloseEvent, ErrorEvent, MessageEvent } = __nccwpck_require__(5188) +/* unused reexport */ __nccwpck_require__(3726).WebSocket +__webpack_unused_export__ = CloseEvent +__webpack_unused_export__ = ErrorEvent +__webpack_unused_export__ = MessageEvent + +__webpack_unused_export__ = makeDispatcher(api.request) +__webpack_unused_export__ = makeDispatcher(api.stream) +__webpack_unused_export__ = makeDispatcher(api.pipeline) +__webpack_unused_export__ = makeDispatcher(api.connect) +__webpack_unused_export__ = makeDispatcher(api.upgrade) + +__webpack_unused_export__ = MockClient +__webpack_unused_export__ = MockPool +__webpack_unused_export__ = MockAgent +__webpack_unused_export__ = mockErrors + +const { EventSource } = __nccwpck_require__(1238) + +__webpack_unused_export__ = EventSource + + +/***/ }), + +/***/ 158: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { addAbortListener } = __nccwpck_require__(3440) +const { RequestAbortedError } = __nccwpck_require__(8707) + +const kListener = Symbol('kListener') +const kSignal = Symbol('kSignal') + +function abort (self) { + if (self.abort) { + self.abort(self[kSignal]?.reason) + } else { + self.reason = self[kSignal]?.reason ?? new RequestAbortedError() + } + removeSignal(self) +} + +function addSignal (self, signal) { + self.reason = null + + self[kSignal] = null + self[kListener] = null + + if (!signal) { + return + } + + if (signal.aborted) { + abort(self) + return + } + + self[kSignal] = signal + self[kListener] = () => { + abort(self) + } + + addAbortListener(self[kSignal], self[kListener]) +} + +function removeSignal (self) { + if (!self[kSignal]) { + return + } + + if ('removeEventListener' in self[kSignal]) { + self[kSignal].removeEventListener('abort', self[kListener]) + } else { + self[kSignal].removeListener('abort', self[kListener]) + } + + self[kSignal] = null + self[kListener] = null +} + +module.exports = { + addSignal, + removeSignal +} + + +/***/ }), + +/***/ 2279: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { AsyncResource } = __nccwpck_require__(6698) +const { InvalidArgumentError, SocketError } = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { addSignal, removeSignal } = __nccwpck_require__(158) + +class ConnectHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_CONNECT') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.callback = callback + this.abort = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (this.reason) { + abort(this.reason) + return + } + + assert(this.callback) + + this.abort = abort + this.context = context + } + + onHeaders () { + throw new SocketError('bad connect', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this + + removeSignal(this) + + this.callback = null + + let headers = rawHeaders + // Indicates is an HTTP2Session + if (headers != null) { + headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + } + + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function connect (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + connect.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const connectHandler = new ConnectHandler(opts, callback) + this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts?.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = connect + + +/***/ }), + +/***/ 6862: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + Readable, + Duplex, + PassThrough +} = __nccwpck_require__(7075) +const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError +} = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { AsyncResource } = __nccwpck_require__(6698) +const { addSignal, removeSignal } = __nccwpck_require__(158) +const assert = __nccwpck_require__(4589) + +const kResume = Symbol('resume') + +class PipelineRequest extends Readable { + constructor () { + super({ autoDestroy: true }) + + this[kResume] = null + } + + _read () { + const { [kResume]: resume } = this + + if (resume) { + this[kResume] = null + resume() + } + } + + _destroy (err, callback) { + this._read() + + callback(err) + } +} + +class PipelineResponse extends Readable { + constructor (resume) { + super({ autoDestroy: true }) + this[kResume] = resume + } + + _read () { + this[kResume]() + } + + _destroy (err, callback) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + callback(err) + } +} + +class PipelineHandler extends AsyncResource { + constructor (opts, handler) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof handler !== 'function') { + throw new InvalidArgumentError('invalid handler') + } + + const { signal, method, opaque, onInfo, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_PIPELINE') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.handler = handler + this.abort = null + this.context = null + this.onInfo = onInfo || null + + this.req = new PipelineRequest().on('error', util.nop) + + this.ret = new Duplex({ + readableObjectMode: opts.objectMode, + autoDestroy: true, + read: () => { + const { body } = this + + if (body?.resume) { + body.resume() + } + }, + write: (chunk, encoding, callback) => { + const { req } = this + + if (req.push(chunk, encoding) || req._readableState.destroyed) { + callback() + } else { + req[kResume] = callback + } + }, + destroy: (err, callback) => { + const { body, req, res, ret, abort } = this + + if (!err && !ret._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (abort && err) { + abort() + } + + util.destroy(body, err) + util.destroy(req, err) + util.destroy(res, err) + + removeSignal(this) + + callback(err) + } + }).on('prefinish', () => { + const { req } = this + + // Node < 15 does not call _final in same tick. + req.push(null) + }) + + this.res = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + const { ret, res } = this + + if (this.reason) { + abort(this.reason) + return + } + + assert(!res, 'pipeline cannot be retried') + assert(!ret.destroyed) + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume) { + const { opaque, handler, context } = this + + if (statusCode < 200) { + if (this.onInfo) { + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.onInfo({ statusCode, headers }) + } + return + } + + this.res = new PipelineResponse(resume) + + let body + try { + this.handler = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + body = this.runInAsyncScope(handler, null, { + statusCode, + headers, + opaque, + body: this.res, + context + }) + } catch (err) { + this.res.on('error', util.nop) + throw err + } + + if (!body || typeof body.on !== 'function') { + throw new InvalidReturnValueError('expected Readable') + } + + body + .on('data', (chunk) => { + const { ret, body } = this + + if (!ret.push(chunk) && body.pause) { + body.pause() + } + }) + .on('error', (err) => { + const { ret } = this + + util.destroy(ret, err) + }) + .on('end', () => { + const { ret } = this + + ret.push(null) + }) + .on('close', () => { + const { ret } = this + + if (!ret._readableState.ended) { + util.destroy(ret, new RequestAbortedError()) + } + }) + + this.body = body + } + + onData (chunk) { + const { res } = this + return res.push(chunk) + } + + onComplete (trailers) { + const { res } = this + res.push(null) + } + + onError (err) { + const { ret } = this + this.handler = null + util.destroy(ret, err) + } +} + +function pipeline (opts, handler) { + try { + const pipelineHandler = new PipelineHandler(opts, handler) + this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) + return pipelineHandler.ret + } catch (err) { + return new PassThrough().destroy(err) + } +} + +module.exports = pipeline + + +/***/ }), + +/***/ 4043: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { Readable } = __nccwpck_require__(9927) +const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { getResolveErrorBodyCallback } = __nccwpck_require__(7655) +const { AsyncResource } = __nccwpck_require__(6698) + +class RequestHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { + throw new InvalidArgumentError('invalid highWaterMark') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_REQUEST') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.method = method + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.res = null + this.abort = null + this.body = body + this.trailers = {} + this.context = null + this.onInfo = onInfo || null + this.throwOnError = throwOnError + this.highWaterMark = highWaterMark + this.signal = signal + this.reason = null + this.removeAbortListener = null + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + if (this.signal) { + if (this.signal.aborted) { + this.reason = this.signal.reason ?? new RequestAbortedError() + } else { + this.removeAbortListener = util.addAbortListener(this.signal, () => { + this.reason = this.signal.reason ?? new RequestAbortedError() + if (this.res) { + util.destroy(this.res.on('error', util.nop), this.reason) + } else if (this.abort) { + this.abort(this.reason) + } + + if (this.removeAbortListener) { + this.res?.off('close', this.removeAbortListener) + this.removeAbortListener() + this.removeAbortListener = null + } + }) + } + } + } + + onConnect (abort, context) { + if (this.reason) { + abort(this.reason) + return + } + + assert(this.callback) + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + const contentLength = parsedHeaders['content-length'] + const res = new Readable({ + resume, + abort, + contentType, + contentLength: this.method !== 'HEAD' && contentLength + ? Number(contentLength) + : null, + highWaterMark + }) + + if (this.removeAbortListener) { + res.on('close', this.removeAbortListener) + } + + this.callback = null + this.res = res + if (callback !== null) { + if (this.throwOnError && statusCode >= 400) { + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body: res, contentType, statusCode, statusMessage, headers } + ) + } else { + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + trailers: this.trailers, + opaque, + body: res, + context + }) + } + } + } + + onData (chunk) { + return this.res.push(chunk) + } + + onComplete (trailers) { + util.parseHeaders(trailers, this.trailers) + this.res.push(null) + } + + onError (err) { + const { res, callback, body, opaque } = this + + if (callback) { + // TODO: Does this need queueMicrotask? + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (res) { + this.res = null + // Ensure all queued handlers are invoked before destroying res. + queueMicrotask(() => { + util.destroy(res, err) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + + if (this.removeAbortListener) { + res?.off('close', this.removeAbortListener) + this.removeAbortListener() + this.removeAbortListener = null + } + } +} + +function request (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + request.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new RequestHandler(opts, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts?.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = request +module.exports.RequestHandler = RequestHandler + + +/***/ }), + +/***/ 3560: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { finished, PassThrough } = __nccwpck_require__(7075) +const { InvalidArgumentError, InvalidReturnValueError } = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { getResolveErrorBodyCallback } = __nccwpck_require__(7655) +const { AsyncResource } = __nccwpck_require__(6698) +const { addSignal, removeSignal } = __nccwpck_require__(158) + +class StreamHandler extends AsyncResource { + constructor (opts, factory, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('invalid factory') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_STREAM') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.factory = factory + this.callback = callback + this.res = null + this.abort = null + this.context = null + this.trailers = null + this.body = body + this.onInfo = onInfo || null + this.throwOnError = throwOnError || false + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (this.reason) { + abort(this.reason) + return + } + + assert(this.callback) + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { factory, opaque, context, callback, responseHeaders } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + this.factory = null + + let res + + if (this.throwOnError && statusCode >= 400) { + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + res = new PassThrough() + + this.callback = null + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body: res, contentType, statusCode, statusMessage, headers } + ) + } else { + if (factory === null) { + return + } + + res = this.runInAsyncScope(factory, null, { + statusCode, + headers, + opaque, + context + }) + + if ( + !res || + typeof res.write !== 'function' || + typeof res.end !== 'function' || + typeof res.on !== 'function' + ) { + throw new InvalidReturnValueError('expected Writable') + } + + // TODO: Avoid finished. It registers an unnecessary amount of listeners. + finished(res, { readable: false }, (err) => { + const { callback, res, opaque, trailers, abort } = this + + this.res = null + if (err || !res.readable) { + util.destroy(res, err) + } + + this.callback = null + this.runInAsyncScope(callback, null, err || null, { opaque, trailers }) + + if (err) { + abort() + } + }) + } + + res.on('drain', resume) + + this.res = res + + const needDrain = res.writableNeedDrain !== undefined + ? res.writableNeedDrain + : res._writableState?.needDrain + + return needDrain !== true + } + + onData (chunk) { + const { res } = this + + return res ? res.write(chunk) : true + } + + onComplete (trailers) { + const { res } = this + + removeSignal(this) + + if (!res) { + return + } + + this.trailers = util.parseHeaders(trailers) + + res.end() + } + + onError (err) { + const { res, callback, opaque, body } = this + + removeSignal(this) + + this.factory = null + + if (res) { + this.res = null + util.destroy(res, err) + } else if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + } +} + +function stream (opts, factory, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + stream.call(this, opts, factory, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new StreamHandler(opts, factory, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts?.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = stream + + +/***/ }), + +/***/ 1882: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { InvalidArgumentError, SocketError } = __nccwpck_require__(8707) +const { AsyncResource } = __nccwpck_require__(6698) +const util = __nccwpck_require__(3440) +const { addSignal, removeSignal } = __nccwpck_require__(158) +const assert = __nccwpck_require__(4589) + +class UpgradeHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_UPGRADE') + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.abort = null + this.context = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (this.reason) { + abort(this.reason) + return + } + + assert(this.callback) + + this.abort = abort + this.context = null + } + + onHeaders () { + throw new SocketError('bad upgrade', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + assert(statusCode === 101) + + const { callback, opaque, context } = this + + removeSignal(this) + + this.callback = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.runInAsyncScope(callback, null, null, { + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function upgrade (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + upgrade.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const upgradeHandler = new UpgradeHandler(opts, callback) + this.dispatch({ + ...opts, + method: opts.method || 'GET', + upgrade: opts.protocol || 'Websocket' + }, upgradeHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts?.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = upgrade + + +/***/ }), + +/***/ 6615: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +module.exports.request = __nccwpck_require__(4043) +module.exports.stream = __nccwpck_require__(3560) +module.exports.pipeline = __nccwpck_require__(6862) +module.exports.upgrade = __nccwpck_require__(1882) +module.exports.connect = __nccwpck_require__(2279) + + +/***/ }), + +/***/ 9927: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// Ported from https://github.com/nodejs/undici/pull/907 + + + +const assert = __nccwpck_require__(4589) +const { Readable } = __nccwpck_require__(7075) +const { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { ReadableStreamFrom } = __nccwpck_require__(3440) + +const kConsume = Symbol('kConsume') +const kReading = Symbol('kReading') +const kBody = Symbol('kBody') +const kAbort = Symbol('kAbort') +const kContentType = Symbol('kContentType') +const kContentLength = Symbol('kContentLength') + +const noop = () => {} + +class BodyReadable extends Readable { + constructor ({ + resume, + abort, + contentType = '', + contentLength, + highWaterMark = 64 * 1024 // Same as nodejs fs streams. + }) { + super({ + autoDestroy: true, + read: resume, + highWaterMark + }) + + this._readableState.dataEmitted = false + + this[kAbort] = abort + this[kConsume] = null + this[kBody] = null + this[kContentType] = contentType + this[kContentLength] = contentLength + + // Is stream being consumed through Readable API? + // This is an optimization so that we avoid checking + // for 'data' and 'readable' listeners in the hot path + // inside push(). + this[kReading] = false + } + + destroy (err) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (err) { + this[kAbort]() + } + + return super.destroy(err) + } + + _destroy (err, callback) { + // Workaround for Node "bug". If the stream is destroyed in same + // tick as it is created, then a user who is waiting for a + // promise (i.e micro tick) for installing a 'error' listener will + // never get a chance and will always encounter an unhandled exception. + if (!this[kReading]) { + setImmediate(() => { + callback(err) + }) + } else { + callback(err) + } + } + + on (ev, ...args) { + if (ev === 'data' || ev === 'readable') { + this[kReading] = true + } + return super.on(ev, ...args) + } + + addListener (ev, ...args) { + return this.on(ev, ...args) + } + + off (ev, ...args) { + const ret = super.off(ev, ...args) + if (ev === 'data' || ev === 'readable') { + this[kReading] = ( + this.listenerCount('data') > 0 || + this.listenerCount('readable') > 0 + ) + } + return ret + } + + removeListener (ev, ...args) { + return this.off(ev, ...args) + } + + push (chunk) { + if (this[kConsume] && chunk !== null) { + consumePush(this[kConsume], chunk) + return this[kReading] ? super.push(chunk) : true + } + return super.push(chunk) + } + + // https://fetch.spec.whatwg.org/#dom-body-text + async text () { + return consume(this, 'text') + } + + // https://fetch.spec.whatwg.org/#dom-body-json + async json () { + return consume(this, 'json') + } + + // https://fetch.spec.whatwg.org/#dom-body-blob + async blob () { + return consume(this, 'blob') + } + + // https://fetch.spec.whatwg.org/#dom-body-bytes + async bytes () { + return consume(this, 'bytes') + } + + // https://fetch.spec.whatwg.org/#dom-body-arraybuffer + async arrayBuffer () { + return consume(this, 'arrayBuffer') + } + + // https://fetch.spec.whatwg.org/#dom-body-formdata + async formData () { + // TODO: Implement. + throw new NotSupportedError() + } + + // https://fetch.spec.whatwg.org/#dom-body-bodyused + get bodyUsed () { + return util.isDisturbed(this) + } + + // https://fetch.spec.whatwg.org/#dom-body-body + get body () { + if (!this[kBody]) { + this[kBody] = ReadableStreamFrom(this) + if (this[kConsume]) { + // TODO: Is this the best way to force a lock? + this[kBody].getReader() // Ensure stream is locked. + assert(this[kBody].locked) + } + } + return this[kBody] + } + + async dump (opts) { + let limit = Number.isFinite(opts?.limit) ? opts.limit : 128 * 1024 + const signal = opts?.signal + + if (signal != null && (typeof signal !== 'object' || !('aborted' in signal))) { + throw new InvalidArgumentError('signal must be an AbortSignal') + } + + signal?.throwIfAborted() + + if (this._readableState.closeEmitted) { + return null + } + + return await new Promise((resolve, reject) => { + if (this[kContentLength] > limit) { + this.destroy(new AbortError()) + } + + const onAbort = () => { + this.destroy(signal.reason ?? new AbortError()) + } + signal?.addEventListener('abort', onAbort) + + this + .on('close', function () { + signal?.removeEventListener('abort', onAbort) + if (signal?.aborted) { + reject(signal.reason ?? new AbortError()) + } else { + resolve(null) + } + }) + .on('error', noop) + .on('data', function (chunk) { + limit -= chunk.length + if (limit <= 0) { + this.destroy() + } + }) + .resume() + }) + } +} + +// https://streams.spec.whatwg.org/#readablestream-locked +function isLocked (self) { + // Consume is an implicit lock. + return (self[kBody] && self[kBody].locked === true) || self[kConsume] +} + +// https://fetch.spec.whatwg.org/#body-unusable +function isUnusable (self) { + return util.isDisturbed(self) || isLocked(self) +} + +async function consume (stream, type) { + assert(!stream[kConsume]) + + return new Promise((resolve, reject) => { + if (isUnusable(stream)) { + const rState = stream._readableState + if (rState.destroyed && rState.closeEmitted === false) { + stream + .on('error', err => { + reject(err) + }) + .on('close', () => { + reject(new TypeError('unusable')) + }) + } else { + reject(rState.errored ?? new TypeError('unusable')) + } + } else { + queueMicrotask(() => { + stream[kConsume] = { + type, + stream, + resolve, + reject, + length: 0, + body: [] + } + + stream + .on('error', function (err) { + consumeFinish(this[kConsume], err) + }) + .on('close', function () { + if (this[kConsume].body !== null) { + consumeFinish(this[kConsume], new RequestAbortedError()) + } + }) + + consumeStart(stream[kConsume]) + }) + } + }) +} + +function consumeStart (consume) { + if (consume.body === null) { + return + } + + const { _readableState: state } = consume.stream + + if (state.bufferIndex) { + const start = state.bufferIndex + const end = state.buffer.length + for (let n = start; n < end; n++) { + consumePush(consume, state.buffer[n]) + } + } else { + for (const chunk of state.buffer) { + consumePush(consume, chunk) + } + } + + if (state.endEmitted) { + consumeEnd(this[kConsume]) + } else { + consume.stream.on('end', function () { + consumeEnd(this[kConsume]) + }) + } + + consume.stream.resume() + + while (consume.stream.read() != null) { + // Loop + } +} + +/** + * @param {Buffer[]} chunks + * @param {number} length + */ +function chunksDecode (chunks, length) { + if (chunks.length === 0 || length === 0) { + return '' + } + const buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length) + const bufferLength = buffer.length + + // Skip BOM. + const start = + bufferLength > 2 && + buffer[0] === 0xef && + buffer[1] === 0xbb && + buffer[2] === 0xbf + ? 3 + : 0 + return buffer.utf8Slice(start, bufferLength) +} + +/** + * @param {Buffer[]} chunks + * @param {number} length + * @returns {Uint8Array} + */ +function chunksConcat (chunks, length) { + if (chunks.length === 0 || length === 0) { + return new Uint8Array(0) + } + if (chunks.length === 1) { + // fast-path + return new Uint8Array(chunks[0]) + } + const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer) + + let offset = 0 + for (let i = 0; i < chunks.length; ++i) { + const chunk = chunks[i] + buffer.set(chunk, offset) + offset += chunk.length + } + + return buffer +} + +function consumeEnd (consume) { + const { type, body, resolve, stream, length } = consume + + try { + if (type === 'text') { + resolve(chunksDecode(body, length)) + } else if (type === 'json') { + resolve(JSON.parse(chunksDecode(body, length))) + } else if (type === 'arrayBuffer') { + resolve(chunksConcat(body, length).buffer) + } else if (type === 'blob') { + resolve(new Blob(body, { type: stream[kContentType] })) + } else if (type === 'bytes') { + resolve(chunksConcat(body, length)) + } + + consumeFinish(consume) + } catch (err) { + stream.destroy(err) + } +} + +function consumePush (consume, chunk) { + consume.length += chunk.length + consume.body.push(chunk) +} + +function consumeFinish (consume, err) { + if (consume.body === null) { + return + } + + if (err) { + consume.reject(err) + } else { + consume.resolve() + } + + consume.type = null + consume.stream = null + consume.resolve = null + consume.reject = null + consume.length = 0 + consume.body = null +} + +module.exports = { Readable: BodyReadable, chunksDecode } + + +/***/ }), + +/***/ 7655: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(4589) +const { + ResponseStatusCodeError +} = __nccwpck_require__(8707) + +const { chunksDecode } = __nccwpck_require__(9927) +const CHUNK_LIMIT = 128 * 1024 + +async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) { + assert(body) + + let chunks = [] + let length = 0 + + try { + for await (const chunk of body) { + chunks.push(chunk) + length += chunk.length + if (length > CHUNK_LIMIT) { + chunks = [] + length = 0 + break + } + } + } catch { + chunks = [] + length = 0 + // Do nothing.... + } + + const message = `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}` + + if (statusCode === 204 || !contentType || !length) { + queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers))) + return + } + + const stackTraceLimit = Error.stackTraceLimit + Error.stackTraceLimit = 0 + let payload + + try { + if (isContentTypeApplicationJson(contentType)) { + payload = JSON.parse(chunksDecode(chunks, length)) + } else if (isContentTypeText(contentType)) { + payload = chunksDecode(chunks, length) + } + } catch { + // process in a callback to avoid throwing in the microtask queue + } finally { + Error.stackTraceLimit = stackTraceLimit + } + queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers, payload))) +} + +const isContentTypeApplicationJson = (contentType) => { + return ( + contentType.length > 15 && + contentType[11] === '/' && + contentType[0] === 'a' && + contentType[1] === 'p' && + contentType[2] === 'p' && + contentType[3] === 'l' && + contentType[4] === 'i' && + contentType[5] === 'c' && + contentType[6] === 'a' && + contentType[7] === 't' && + contentType[8] === 'i' && + contentType[9] === 'o' && + contentType[10] === 'n' && + contentType[12] === 'j' && + contentType[13] === 's' && + contentType[14] === 'o' && + contentType[15] === 'n' + ) +} + +const isContentTypeText = (contentType) => { + return ( + contentType.length > 4 && + contentType[4] === '/' && + contentType[0] === 't' && + contentType[1] === 'e' && + contentType[2] === 'x' && + contentType[3] === 't' + ) +} + +module.exports = { + getResolveErrorBodyCallback, + isContentTypeApplicationJson, + isContentTypeText +} + + +/***/ }), + +/***/ 9136: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const net = __nccwpck_require__(7030) +const assert = __nccwpck_require__(4589) +const util = __nccwpck_require__(3440) +const { InvalidArgumentError, ConnectTimeoutError } = __nccwpck_require__(8707) +const timers = __nccwpck_require__(6603) + +function noop () {} + +let tls // include tls conditionally since it is not always available + +// TODO: session re-use does not wait for the first +// connection to resolve the session and might therefore +// resolve the same servername multiple times even when +// re-use is enabled. + +let SessionCache +// FIXME: remove workaround when the Node bug is fixed +// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 +if (global.FinalizationRegistry && !(process.env.NODE_V8_COVERAGE || process.env.UNDICI_NO_FG)) { + SessionCache = class WeakSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + this._sessionRegistry = new global.FinalizationRegistry((key) => { + if (this._sessionCache.size < this._maxCachedSessions) { + return + } + + const ref = this._sessionCache.get(key) + if (ref !== undefined && ref.deref() === undefined) { + this._sessionCache.delete(key) + } + }) + } + + get (sessionKey) { + const ref = this._sessionCache.get(sessionKey) + return ref ? ref.deref() : null + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + this._sessionCache.set(sessionKey, new WeakRef(session)) + this._sessionRegistry.register(session, sessionKey) + } + } +} else { + SessionCache = class SimpleSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + } + + get (sessionKey) { + return this._sessionCache.get(sessionKey) + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + if (this._sessionCache.size >= this._maxCachedSessions) { + // remove the oldest session + const { value: oldestKey } = this._sessionCache.keys().next() + this._sessionCache.delete(oldestKey) + } + + this._sessionCache.set(sessionKey, session) + } + } +} + +function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) { + if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { + throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero') + } + + const options = { path: socketPath, ...opts } + const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions) + timeout = timeout == null ? 10e3 : timeout + allowH2 = allowH2 != null ? allowH2 : false + return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + let socket + if (protocol === 'https:') { + if (!tls) { + tls = __nccwpck_require__(1692) + } + servername = servername || options.servername || util.getServerName(host) || null + + const sessionKey = servername || hostname + assert(sessionKey) + + const session = customSession || sessionCache.get(sessionKey) || null + + port = port || 443 + + socket = tls.connect({ + highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... + ...options, + servername, + session, + localAddress, + // TODO(HTTP/2): Add support for h2c + ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], + socket: httpSocket, // upgrade socket connection + port, + host: hostname + }) + + socket + .on('session', function (session) { + // TODO (fix): Can a session become invalid once established? Don't think so? + sessionCache.set(sessionKey, session) + }) + } else { + assert(!httpSocket, 'httpSocket can only be sent on TLS update') + + port = port || 80 + + socket = net.connect({ + highWaterMark: 64 * 1024, // Same as nodejs fs streams. + ...options, + localAddress, + port, + host: hostname + }) + } + + // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket + if (options.keepAlive == null || options.keepAlive) { + const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay + socket.setKeepAlive(true, keepAliveInitialDelay) + } + + const clearConnectTimeout = setupConnectTimeout(new WeakRef(socket), { timeout, hostname, port }) + + socket + .setNoDelay(true) + .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () { + queueMicrotask(clearConnectTimeout) + + if (callback) { + const cb = callback + callback = null + cb(null, this) + } + }) + .on('error', function (err) { + queueMicrotask(clearConnectTimeout) + + if (callback) { + const cb = callback + callback = null + cb(err) + } + }) + + return socket + } +} + +/** + * @param {WeakRef} socketWeakRef + * @param {object} opts + * @param {number} opts.timeout + * @param {string} opts.hostname + * @param {number} opts.port + * @returns {() => void} + */ +const setupConnectTimeout = process.platform === 'win32' + ? (socketWeakRef, opts) => { + if (!opts.timeout) { + return noop + } + + let s1 = null + let s2 = null + const fastTimer = timers.setFastTimeout(() => { + // setImmediate is added to make sure that we prioritize socket error events over timeouts + s1 = setImmediate(() => { + // Windows needs an extra setImmediate probably due to implementation differences in the socket logic + s2 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts)) + }) + }, opts.timeout) + return () => { + timers.clearFastTimeout(fastTimer) + clearImmediate(s1) + clearImmediate(s2) + } + } + : (socketWeakRef, opts) => { + if (!opts.timeout) { + return noop + } + + let s1 = null + const fastTimer = timers.setFastTimeout(() => { + // setImmediate is added to make sure that we prioritize socket error events over timeouts + s1 = setImmediate(() => { + onConnectTimeout(socketWeakRef.deref(), opts) + }) + }, opts.timeout) + return () => { + timers.clearFastTimeout(fastTimer) + clearImmediate(s1) + } + } + +/** + * @param {net.Socket} socket + * @param {object} opts + * @param {number} opts.timeout + * @param {string} opts.hostname + * @param {number} opts.port + */ +function onConnectTimeout (socket, opts) { + // The socket could be already garbage collected + if (socket == null) { + return + } + + let message = 'Connect Timeout Error' + if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) { + message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(', ')},` + } else { + message += ` (attempted address: ${opts.hostname}:${opts.port},` + } + + message += ` timeout: ${opts.timeout}ms)` + + util.destroy(socket, new ConnectTimeoutError(message)) +} + +module.exports = buildConnector + + +/***/ }), + +/***/ 735: +/***/ ((module) => { + + + +/** @type {Record} */ +const headerNameLowerCasedRecord = {} + +// https://developer.mozilla.org/docs/Web/HTTP/Headers +const wellknownHeaderNames = [ + 'Accept', + 'Accept-Encoding', + 'Accept-Language', + 'Accept-Ranges', + 'Access-Control-Allow-Credentials', + 'Access-Control-Allow-Headers', + 'Access-Control-Allow-Methods', + 'Access-Control-Allow-Origin', + 'Access-Control-Expose-Headers', + 'Access-Control-Max-Age', + 'Access-Control-Request-Headers', + 'Access-Control-Request-Method', + 'Age', + 'Allow', + 'Alt-Svc', + 'Alt-Used', + 'Authorization', + 'Cache-Control', + 'Clear-Site-Data', + 'Connection', + 'Content-Disposition', + 'Content-Encoding', + 'Content-Language', + 'Content-Length', + 'Content-Location', + 'Content-Range', + 'Content-Security-Policy', + 'Content-Security-Policy-Report-Only', + 'Content-Type', + 'Cookie', + 'Cross-Origin-Embedder-Policy', + 'Cross-Origin-Opener-Policy', + 'Cross-Origin-Resource-Policy', + 'Date', + 'Device-Memory', + 'Downlink', + 'ECT', + 'ETag', + 'Expect', + 'Expect-CT', + 'Expires', + 'Forwarded', + 'From', + 'Host', + 'If-Match', + 'If-Modified-Since', + 'If-None-Match', + 'If-Range', + 'If-Unmodified-Since', + 'Keep-Alive', + 'Last-Modified', + 'Link', + 'Location', + 'Max-Forwards', + 'Origin', + 'Permissions-Policy', + 'Pragma', + 'Proxy-Authenticate', + 'Proxy-Authorization', + 'RTT', + 'Range', + 'Referer', + 'Referrer-Policy', + 'Refresh', + 'Retry-After', + 'Sec-WebSocket-Accept', + 'Sec-WebSocket-Extensions', + 'Sec-WebSocket-Key', + 'Sec-WebSocket-Protocol', + 'Sec-WebSocket-Version', + 'Server', + 'Server-Timing', + 'Service-Worker-Allowed', + 'Service-Worker-Navigation-Preload', + 'Set-Cookie', + 'SourceMap', + 'Strict-Transport-Security', + 'Supports-Loading-Mode', + 'TE', + 'Timing-Allow-Origin', + 'Trailer', + 'Transfer-Encoding', + 'Upgrade', + 'Upgrade-Insecure-Requests', + 'User-Agent', + 'Vary', + 'Via', + 'WWW-Authenticate', + 'X-Content-Type-Options', + 'X-DNS-Prefetch-Control', + 'X-Frame-Options', + 'X-Permitted-Cross-Domain-Policies', + 'X-Powered-By', + 'X-Requested-With', + 'X-XSS-Protection' +] + +for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = wellknownHeaderNames[i] + const lowerCasedKey = key.toLowerCase() + headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = + lowerCasedKey +} + +// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. +Object.setPrototypeOf(headerNameLowerCasedRecord, null) + +module.exports = { + wellknownHeaderNames, + headerNameLowerCasedRecord +} + + +/***/ }), + +/***/ 2414: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const diagnosticsChannel = __nccwpck_require__(3053) +const util = __nccwpck_require__(7975) + +const undiciDebugLog = util.debuglog('undici') +const fetchDebuglog = util.debuglog('fetch') +const websocketDebuglog = util.debuglog('websocket') +let isClientSet = false +const channels = { + // Client + beforeConnect: diagnosticsChannel.channel('undici:client:beforeConnect'), + connected: diagnosticsChannel.channel('undici:client:connected'), + connectError: diagnosticsChannel.channel('undici:client:connectError'), + sendHeaders: diagnosticsChannel.channel('undici:client:sendHeaders'), + // Request + create: diagnosticsChannel.channel('undici:request:create'), + bodySent: diagnosticsChannel.channel('undici:request:bodySent'), + headers: diagnosticsChannel.channel('undici:request:headers'), + trailers: diagnosticsChannel.channel('undici:request:trailers'), + error: diagnosticsChannel.channel('undici:request:error'), + // WebSocket + open: diagnosticsChannel.channel('undici:websocket:open'), + close: diagnosticsChannel.channel('undici:websocket:close'), + socketError: diagnosticsChannel.channel('undici:websocket:socket_error'), + ping: diagnosticsChannel.channel('undici:websocket:ping'), + pong: diagnosticsChannel.channel('undici:websocket:pong') +} + +if (undiciDebugLog.enabled || fetchDebuglog.enabled) { + const debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog + + // Track all Client events + diagnosticsChannel.channel('undici:client:beforeConnect').subscribe(evt => { + const { + connectParams: { version, protocol, port, host } + } = evt + debuglog( + 'connecting to %s using %s%s', + `${host}${port ? `:${port}` : ''}`, + protocol, + version + ) + }) + + diagnosticsChannel.channel('undici:client:connected').subscribe(evt => { + const { + connectParams: { version, protocol, port, host } + } = evt + debuglog( + 'connected to %s using %s%s', + `${host}${port ? `:${port}` : ''}`, + protocol, + version + ) + }) + + diagnosticsChannel.channel('undici:client:connectError').subscribe(evt => { + const { + connectParams: { version, protocol, port, host }, + error + } = evt + debuglog( + 'connection to %s using %s%s errored - %s', + `${host}${port ? `:${port}` : ''}`, + protocol, + version, + error.message + ) + }) + + diagnosticsChannel.channel('undici:client:sendHeaders').subscribe(evt => { + const { + request: { method, path, origin } + } = evt + debuglog('sending request to %s %s/%s', method, origin, path) + }) + + // Track Request events + diagnosticsChannel.channel('undici:request:headers').subscribe(evt => { + const { + request: { method, path, origin }, + response: { statusCode } + } = evt + debuglog( + 'received response to %s %s/%s - HTTP %d', + method, + origin, + path, + statusCode + ) + }) + + diagnosticsChannel.channel('undici:request:trailers').subscribe(evt => { + const { + request: { method, path, origin } + } = evt + debuglog('trailers received from %s %s/%s', method, origin, path) + }) + + diagnosticsChannel.channel('undici:request:error').subscribe(evt => { + const { + request: { method, path, origin }, + error + } = evt + debuglog( + 'request to %s %s/%s errored - %s', + method, + origin, + path, + error.message + ) + }) + + isClientSet = true +} + +if (websocketDebuglog.enabled) { + if (!isClientSet) { + const debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog + diagnosticsChannel.channel('undici:client:beforeConnect').subscribe(evt => { + const { + connectParams: { version, protocol, port, host } + } = evt + debuglog( + 'connecting to %s%s using %s%s', + host, + port ? `:${port}` : '', + protocol, + version + ) + }) + + diagnosticsChannel.channel('undici:client:connected').subscribe(evt => { + const { + connectParams: { version, protocol, port, host } + } = evt + debuglog( + 'connected to %s%s using %s%s', + host, + port ? `:${port}` : '', + protocol, + version + ) + }) + + diagnosticsChannel.channel('undici:client:connectError').subscribe(evt => { + const { + connectParams: { version, protocol, port, host }, + error + } = evt + debuglog( + 'connection to %s%s using %s%s errored - %s', + host, + port ? `:${port}` : '', + protocol, + version, + error.message + ) + }) + + diagnosticsChannel.channel('undici:client:sendHeaders').subscribe(evt => { + const { + request: { method, path, origin } + } = evt + debuglog('sending request to %s %s/%s', method, origin, path) + }) + } + + // Track all WebSocket events + diagnosticsChannel.channel('undici:websocket:open').subscribe(evt => { + const { + address: { address, port } + } = evt + websocketDebuglog('connection opened %s%s', address, port ? `:${port}` : '') + }) + + diagnosticsChannel.channel('undici:websocket:close').subscribe(evt => { + const { websocket, code, reason } = evt + websocketDebuglog( + 'closed connection to %s - %s %s', + websocket.url, + code, + reason + ) + }) + + diagnosticsChannel.channel('undici:websocket:socket_error').subscribe(err => { + websocketDebuglog('connection errored - %s', err.message) + }) + + diagnosticsChannel.channel('undici:websocket:ping').subscribe(evt => { + websocketDebuglog('ping received') + }) + + diagnosticsChannel.channel('undici:websocket:pong').subscribe(evt => { + websocketDebuglog('pong received') + }) +} + +module.exports = { + channels +} + + +/***/ }), + +/***/ 8707: +/***/ ((module) => { + + + +const kUndiciError = Symbol.for('undici.error.UND_ERR') +class UndiciError extends Error { + constructor (message) { + super(message) + this.name = 'UndiciError' + this.code = 'UND_ERR' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kUndiciError] === true + } + + [kUndiciError] = true +} + +const kConnectTimeoutError = Symbol.for('undici.error.UND_ERR_CONNECT_TIMEOUT') +class ConnectTimeoutError extends UndiciError { + constructor (message) { + super(message) + this.name = 'ConnectTimeoutError' + this.message = message || 'Connect Timeout Error' + this.code = 'UND_ERR_CONNECT_TIMEOUT' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kConnectTimeoutError] === true + } + + [kConnectTimeoutError] = true +} + +const kHeadersTimeoutError = Symbol.for('undici.error.UND_ERR_HEADERS_TIMEOUT') +class HeadersTimeoutError extends UndiciError { + constructor (message) { + super(message) + this.name = 'HeadersTimeoutError' + this.message = message || 'Headers Timeout Error' + this.code = 'UND_ERR_HEADERS_TIMEOUT' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kHeadersTimeoutError] === true + } + + [kHeadersTimeoutError] = true +} + +const kHeadersOverflowError = Symbol.for('undici.error.UND_ERR_HEADERS_OVERFLOW') +class HeadersOverflowError extends UndiciError { + constructor (message) { + super(message) + this.name = 'HeadersOverflowError' + this.message = message || 'Headers Overflow Error' + this.code = 'UND_ERR_HEADERS_OVERFLOW' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kHeadersOverflowError] === true + } + + [kHeadersOverflowError] = true +} + +const kBodyTimeoutError = Symbol.for('undici.error.UND_ERR_BODY_TIMEOUT') +class BodyTimeoutError extends UndiciError { + constructor (message) { + super(message) + this.name = 'BodyTimeoutError' + this.message = message || 'Body Timeout Error' + this.code = 'UND_ERR_BODY_TIMEOUT' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kBodyTimeoutError] === true + } + + [kBodyTimeoutError] = true +} + +const kResponseStatusCodeError = Symbol.for('undici.error.UND_ERR_RESPONSE_STATUS_CODE') +class ResponseStatusCodeError extends UndiciError { + constructor (message, statusCode, headers, body) { + super(message) + this.name = 'ResponseStatusCodeError' + this.message = message || 'Response Status Code Error' + this.code = 'UND_ERR_RESPONSE_STATUS_CODE' + this.body = body + this.status = statusCode + this.statusCode = statusCode + this.headers = headers + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kResponseStatusCodeError] === true + } + + [kResponseStatusCodeError] = true +} + +const kInvalidArgumentError = Symbol.for('undici.error.UND_ERR_INVALID_ARG') +class InvalidArgumentError extends UndiciError { + constructor (message) { + super(message) + this.name = 'InvalidArgumentError' + this.message = message || 'Invalid Argument Error' + this.code = 'UND_ERR_INVALID_ARG' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kInvalidArgumentError] === true + } + + [kInvalidArgumentError] = true +} + +const kInvalidReturnValueError = Symbol.for('undici.error.UND_ERR_INVALID_RETURN_VALUE') +class InvalidReturnValueError extends UndiciError { + constructor (message) { + super(message) + this.name = 'InvalidReturnValueError' + this.message = message || 'Invalid Return Value Error' + this.code = 'UND_ERR_INVALID_RETURN_VALUE' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kInvalidReturnValueError] === true + } + + [kInvalidReturnValueError] = true +} + +const kAbortError = Symbol.for('undici.error.UND_ERR_ABORT') +class AbortError extends UndiciError { + constructor (message) { + super(message) + this.name = 'AbortError' + this.message = message || 'The operation was aborted' + this.code = 'UND_ERR_ABORT' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kAbortError] === true + } + + [kAbortError] = true +} + +const kRequestAbortedError = Symbol.for('undici.error.UND_ERR_ABORTED') +class RequestAbortedError extends AbortError { + constructor (message) { + super(message) + this.name = 'AbortError' + this.message = message || 'Request aborted' + this.code = 'UND_ERR_ABORTED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kRequestAbortedError] === true + } + + [kRequestAbortedError] = true +} + +const kInformationalError = Symbol.for('undici.error.UND_ERR_INFO') +class InformationalError extends UndiciError { + constructor (message) { + super(message) + this.name = 'InformationalError' + this.message = message || 'Request information' + this.code = 'UND_ERR_INFO' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kInformationalError] === true + } + + [kInformationalError] = true +} + +const kRequestContentLengthMismatchError = Symbol.for('undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH') +class RequestContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + this.name = 'RequestContentLengthMismatchError' + this.message = message || 'Request body length does not match content-length header' + this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kRequestContentLengthMismatchError] === true + } + + [kRequestContentLengthMismatchError] = true +} + +const kResponseContentLengthMismatchError = Symbol.for('undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH') +class ResponseContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + this.name = 'ResponseContentLengthMismatchError' + this.message = message || 'Response body length does not match content-length header' + this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kResponseContentLengthMismatchError] === true + } + + [kResponseContentLengthMismatchError] = true +} + +const kClientDestroyedError = Symbol.for('undici.error.UND_ERR_DESTROYED') +class ClientDestroyedError extends UndiciError { + constructor (message) { + super(message) + this.name = 'ClientDestroyedError' + this.message = message || 'The client is destroyed' + this.code = 'UND_ERR_DESTROYED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kClientDestroyedError] === true + } + + [kClientDestroyedError] = true +} + +const kClientClosedError = Symbol.for('undici.error.UND_ERR_CLOSED') +class ClientClosedError extends UndiciError { + constructor (message) { + super(message) + this.name = 'ClientClosedError' + this.message = message || 'The client is closed' + this.code = 'UND_ERR_CLOSED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kClientClosedError] === true + } + + [kClientClosedError] = true +} + +const kSocketError = Symbol.for('undici.error.UND_ERR_SOCKET') +class SocketError extends UndiciError { + constructor (message, socket) { + super(message) + this.name = 'SocketError' + this.message = message || 'Socket error' + this.code = 'UND_ERR_SOCKET' + this.socket = socket + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kSocketError] === true + } + + [kSocketError] = true +} + +const kNotSupportedError = Symbol.for('undici.error.UND_ERR_NOT_SUPPORTED') +class NotSupportedError extends UndiciError { + constructor (message) { + super(message) + this.name = 'NotSupportedError' + this.message = message || 'Not supported error' + this.code = 'UND_ERR_NOT_SUPPORTED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kNotSupportedError] === true + } + + [kNotSupportedError] = true +} + +const kBalancedPoolMissingUpstreamError = Symbol.for('undici.error.UND_ERR_BPL_MISSING_UPSTREAM') +class BalancedPoolMissingUpstreamError extends UndiciError { + constructor (message) { + super(message) + this.name = 'MissingUpstreamError' + this.message = message || 'No upstream has been added to the BalancedPool' + this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kBalancedPoolMissingUpstreamError] === true + } + + [kBalancedPoolMissingUpstreamError] = true +} + +const kHTTPParserError = Symbol.for('undici.error.UND_ERR_HTTP_PARSER') +class HTTPParserError extends Error { + constructor (message, code, data) { + super(message) + this.name = 'HTTPParserError' + this.code = code ? `HPE_${code}` : undefined + this.data = data ? data.toString() : undefined + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kHTTPParserError] === true + } + + [kHTTPParserError] = true +} + +const kResponseExceededMaxSizeError = Symbol.for('undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE') +class ResponseExceededMaxSizeError extends UndiciError { + constructor (message) { + super(message) + this.name = 'ResponseExceededMaxSizeError' + this.message = message || 'Response content exceeded max size' + this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kResponseExceededMaxSizeError] === true + } + + [kResponseExceededMaxSizeError] = true +} + +const kRequestRetryError = Symbol.for('undici.error.UND_ERR_REQ_RETRY') +class RequestRetryError extends UndiciError { + constructor (message, code, { headers, data }) { + super(message) + this.name = 'RequestRetryError' + this.message = message || 'Request retry error' + this.code = 'UND_ERR_REQ_RETRY' + this.statusCode = code + this.data = data + this.headers = headers + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kRequestRetryError] === true + } + + [kRequestRetryError] = true +} + +const kResponseError = Symbol.for('undici.error.UND_ERR_RESPONSE') +class ResponseError extends UndiciError { + constructor (message, code, { headers, data }) { + super(message) + this.name = 'ResponseError' + this.message = message || 'Response error' + this.code = 'UND_ERR_RESPONSE' + this.statusCode = code + this.data = data + this.headers = headers + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kResponseError] === true + } + + [kResponseError] = true +} + +const kSecureProxyConnectionError = Symbol.for('undici.error.UND_ERR_PRX_TLS') +class SecureProxyConnectionError extends UndiciError { + constructor (cause, message, options) { + super(message, { cause, ...(options ?? {}) }) + this.name = 'SecureProxyConnectionError' + this.message = message || 'Secure Proxy Connection failed' + this.code = 'UND_ERR_PRX_TLS' + this.cause = cause + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kSecureProxyConnectionError] === true + } + + [kSecureProxyConnectionError] = true +} + +const kMessageSizeExceededError = Symbol.for('undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED') +class MessageSizeExceededError extends UndiciError { + constructor (message) { + super(message) + this.name = 'MessageSizeExceededError' + this.message = message || 'Max decompressed message size exceeded' + this.code = 'UND_ERR_WS_MESSAGE_SIZE_EXCEEDED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kMessageSizeExceededError] === true + } + + get [kMessageSizeExceededError] () { + return true + } +} + +module.exports = { + AbortError, + HTTPParserError, + UndiciError, + HeadersTimeoutError, + HeadersOverflowError, + BodyTimeoutError, + RequestContentLengthMismatchError, + ConnectTimeoutError, + ResponseStatusCodeError, + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError, + ClientDestroyedError, + ClientClosedError, + InformationalError, + SocketError, + NotSupportedError, + ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError, + RequestRetryError, + ResponseError, + SecureProxyConnectionError, + MessageSizeExceededError +} + + +/***/ }), + +/***/ 4655: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + InvalidArgumentError, + NotSupportedError +} = __nccwpck_require__(8707) +const assert = __nccwpck_require__(4589) +const { + isValidHTTPToken, + isValidHeaderValue, + isStream, + destroy, + isBuffer, + isFormDataLike, + isIterable, + isBlobLike, + buildURL, + validateHandler, + getServerName, + normalizedMethodRecords +} = __nccwpck_require__(3440) +const { channels } = __nccwpck_require__(2414) +const { headerNameLowerCasedRecord } = __nccwpck_require__(735) + +// Verifies that a given path is valid does not contain control chars \x00 to \x20 +const invalidPathRegex = /[^\u0021-\u00ff]/ + +const kHandler = Symbol('handler') + +class Request { + constructor (origin, { + path, + method, + body, + headers, + query, + idempotent, + blocking, + upgrade, + headersTimeout, + bodyTimeout, + reset, + throwOnError, + expectContinue, + servername + }, handler) { + if (typeof path !== 'string') { + throw new InvalidArgumentError('path must be a string') + } else if ( + path[0] !== '/' && + !(path.startsWith('http://') || path.startsWith('https://')) && + method !== 'CONNECT' + ) { + throw new InvalidArgumentError('path must be an absolute URL or start with a slash') + } else if (invalidPathRegex.test(path)) { + throw new InvalidArgumentError('invalid request path') + } + + if (typeof method !== 'string') { + throw new InvalidArgumentError('method must be a string') + } else if (normalizedMethodRecords[method] === undefined && !isValidHTTPToken(method)) { + throw new InvalidArgumentError('invalid request method') + } + + if (upgrade && typeof upgrade !== 'string') { + throw new InvalidArgumentError('upgrade must be a string') + } + + if (upgrade && !isValidHeaderValue(upgrade)) { + throw new InvalidArgumentError('invalid upgrade header') + } + + if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('invalid headersTimeout') + } + + if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('invalid bodyTimeout') + } + + if (reset != null && typeof reset !== 'boolean') { + throw new InvalidArgumentError('invalid reset') + } + + if (expectContinue != null && typeof expectContinue !== 'boolean') { + throw new InvalidArgumentError('invalid expectContinue') + } + + this.headersTimeout = headersTimeout + + this.bodyTimeout = bodyTimeout + + this.throwOnError = throwOnError === true + + this.method = method + + this.abort = null + + if (body == null) { + this.body = null + } else if (isStream(body)) { + this.body = body + + const rState = this.body._readableState + if (!rState || !rState.autoDestroy) { + this.endHandler = function autoDestroy () { + destroy(this) + } + this.body.on('end', this.endHandler) + } + + this.errorHandler = err => { + if (this.abort) { + this.abort(err) + } else { + this.error = err + } + } + this.body.on('error', this.errorHandler) + } else if (isBuffer(body)) { + this.body = body.byteLength ? body : null + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null + } else if (typeof body === 'string') { + this.body = body.length ? Buffer.from(body) : null + } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) { + this.body = body + } else { + throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable') + } + + this.completed = false + + this.aborted = false + + this.upgrade = upgrade || null + + this.path = query ? buildURL(path, query) : path + + this.origin = origin + + this.idempotent = idempotent == null + ? method === 'HEAD' || method === 'GET' + : idempotent + + this.blocking = blocking == null ? false : blocking + + this.reset = reset == null ? null : reset + + this.host = null + + this.contentLength = null + + this.contentType = null + + this.headers = [] + + // Only for H2 + this.expectContinue = expectContinue != null ? expectContinue : false + + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(this, headers[i], headers[i + 1]) + } + } else if (headers && typeof headers === 'object') { + if (headers[Symbol.iterator]) { + for (const header of headers) { + if (!Array.isArray(header) || header.length !== 2) { + throw new InvalidArgumentError('headers must be in key-value pair format') + } + processHeader(this, header[0], header[1]) + } + } else { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; ++i) { + processHeader(this, keys[i], headers[keys[i]]) + } + } + } else if (headers != null) { + throw new InvalidArgumentError('headers must be an object or an array') + } + + validateHandler(handler, method, upgrade) + + this.servername = servername || getServerName(this.host) + + this[kHandler] = handler + + if (channels.create.hasSubscribers) { + channels.create.publish({ request: this }) + } + } + + onBodySent (chunk) { + if (this[kHandler].onBodySent) { + try { + return this[kHandler].onBodySent(chunk) + } catch (err) { + this.abort(err) + } + } + } + + onRequestSent () { + if (channels.bodySent.hasSubscribers) { + channels.bodySent.publish({ request: this }) + } + + if (this[kHandler].onRequestSent) { + try { + return this[kHandler].onRequestSent() + } catch (err) { + this.abort(err) + } + } + } + + onConnect (abort) { + assert(!this.aborted) + assert(!this.completed) + + if (this.error) { + abort(this.error) + } else { + this.abort = abort + return this[kHandler].onConnect(abort) + } + } + + onResponseStarted () { + return this[kHandler].onResponseStarted?.() + } + + onHeaders (statusCode, headers, resume, statusText) { + assert(!this.aborted) + assert(!this.completed) + + if (channels.headers.hasSubscribers) { + channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }) + } + + try { + return this[kHandler].onHeaders(statusCode, headers, resume, statusText) + } catch (err) { + this.abort(err) + } + } + + onData (chunk) { + assert(!this.aborted) + assert(!this.completed) + + try { + return this[kHandler].onData(chunk) + } catch (err) { + this.abort(err) + return false + } + } + + onUpgrade (statusCode, headers, socket) { + assert(!this.aborted) + assert(!this.completed) + + return this[kHandler].onUpgrade(statusCode, headers, socket) + } + + onComplete (trailers) { + this.onFinally() + + assert(!this.aborted) + + this.completed = true + if (channels.trailers.hasSubscribers) { + channels.trailers.publish({ request: this, trailers }) + } + + try { + return this[kHandler].onComplete(trailers) + } catch (err) { + // TODO (fix): This might be a bad idea? + this.onError(err) + } + } + + onError (error) { + this.onFinally() + + if (channels.error.hasSubscribers) { + channels.error.publish({ request: this, error }) + } + + if (this.aborted) { + return + } + this.aborted = true + + return this[kHandler].onError(error) + } + + onFinally () { + if (this.errorHandler) { + this.body.off('error', this.errorHandler) + this.errorHandler = null + } + + if (this.endHandler) { + this.body.off('end', this.endHandler) + this.endHandler = null + } + } + + addHeader (key, value) { + processHeader(this, key, value) + return this + } +} + +function processHeader (request, key, val) { + if (val && (typeof val === 'object' && !Array.isArray(val))) { + throw new InvalidArgumentError(`invalid ${key} header`) + } else if (val === undefined) { + return + } + + let headerName = headerNameLowerCasedRecord[key] + + if (headerName === undefined) { + headerName = key.toLowerCase() + if (headerNameLowerCasedRecord[headerName] === undefined && !isValidHTTPToken(headerName)) { + throw new InvalidArgumentError('invalid header key') + } + } + + if (Array.isArray(val)) { + const arr = [] + for (let i = 0; i < val.length; i++) { + if (typeof val[i] === 'string') { + if (!isValidHeaderValue(val[i])) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + arr.push(val[i]) + } else if (val[i] === null) { + arr.push('') + } else if (typeof val[i] === 'object') { + throw new InvalidArgumentError(`invalid ${key} header`) + } else { + arr.push(`${val[i]}`) + } + } + val = arr + } else if (typeof val === 'string') { + if (!isValidHeaderValue(val)) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + } else if (val === null) { + val = '' + } else { + val = `${val}` + } + + if (headerName === 'host') { + if (request.host !== null) { + throw new InvalidArgumentError('duplicate host header') + } + if (typeof val !== 'string') { + throw new InvalidArgumentError('invalid host header') + } + // Consumed by Client + request.host = val + } else if (headerName === 'content-length') { + if (request.contentLength !== null) { + throw new InvalidArgumentError('duplicate content-length header') + } + request.contentLength = parseInt(val, 10) + if (!Number.isFinite(request.contentLength)) { + throw new InvalidArgumentError('invalid content-length header') + } + } else if (request.contentType === null && headerName === 'content-type') { + request.contentType = val + request.headers.push(key, val) + } else if (headerName === 'transfer-encoding' || headerName === 'keep-alive' || headerName === 'upgrade') { + throw new InvalidArgumentError(`invalid ${headerName} header`) + } else if (headerName === 'connection') { + const value = typeof val === 'string' ? val.toLowerCase() : null + if (value !== 'close' && value !== 'keep-alive') { + throw new InvalidArgumentError('invalid connection header') + } + + if (value === 'close') { + request.reset = true + } + } else if (headerName === 'expect') { + throw new NotSupportedError('expect header not supported') + } else { + request.headers.push(key, val) + } +} + +module.exports = Request + + +/***/ }), + +/***/ 6443: +/***/ ((module) => { + +module.exports = { + kClose: Symbol('close'), + kDestroy: Symbol('destroy'), + kDispatch: Symbol('dispatch'), + kUrl: Symbol('url'), + kWriting: Symbol('writing'), + kResuming: Symbol('resuming'), + kQueue: Symbol('queue'), + kConnect: Symbol('connect'), + kConnecting: Symbol('connecting'), + kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), + kKeepAliveTimeoutValue: Symbol('keep alive timeout'), + kKeepAlive: Symbol('keep alive'), + kHeadersTimeout: Symbol('headers timeout'), + kBodyTimeout: Symbol('body timeout'), + kServerName: Symbol('server name'), + kLocalAddress: Symbol('local address'), + kHost: Symbol('host'), + kNoRef: Symbol('no ref'), + kBodyUsed: Symbol('used'), + kBody: Symbol('abstracted request body'), + kRunning: Symbol('running'), + kBlocking: Symbol('blocking'), + kPending: Symbol('pending'), + kSize: Symbol('size'), + kBusy: Symbol('busy'), + kQueued: Symbol('queued'), + kFree: Symbol('free'), + kConnected: Symbol('connected'), + kClosed: Symbol('closed'), + kNeedDrain: Symbol('need drain'), + kReset: Symbol('reset'), + kDestroyed: Symbol.for('nodejs.stream.destroyed'), + kResume: Symbol('resume'), + kOnError: Symbol('on error'), + kMaxHeadersSize: Symbol('max headers size'), + kRunningIdx: Symbol('running index'), + kPendingIdx: Symbol('pending index'), + kError: Symbol('error'), + kClients: Symbol('clients'), + kClient: Symbol('client'), + kParser: Symbol('parser'), + kOnDestroyed: Symbol('destroy callbacks'), + kPipelining: Symbol('pipelining'), + kSocket: Symbol('socket'), + kHostHeader: Symbol('host header'), + kConnector: Symbol('connector'), + kStrictContentLength: Symbol('strict content length'), + kMaxRedirections: Symbol('maxRedirections'), + kMaxRequests: Symbol('maxRequestsPerClient'), + kProxy: Symbol('proxy agent options'), + kCounter: Symbol('socket request counter'), + kInterceptors: Symbol('dispatch interceptors'), + kMaxResponseSize: Symbol('max response size'), + kHTTP2Session: Symbol('http2Session'), + kHTTP2SessionState: Symbol('http2Session state'), + kRetryHandlerDefaultRetry: Symbol('retry agent default retry'), + kConstruct: Symbol('constructable'), + kListeners: Symbol('listeners'), + kHTTPContext: Symbol('http context'), + kMaxConcurrentStreams: Symbol('max concurrent streams'), + kNoProxyAgent: Symbol('no proxy agent'), + kHttpProxyAgent: Symbol('http proxy agent'), + kHttpsProxyAgent: Symbol('https proxy agent') +} + + +/***/ }), + +/***/ 7752: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + wellknownHeaderNames, + headerNameLowerCasedRecord +} = __nccwpck_require__(735) + +class TstNode { + /** @type {any} */ + value = null + /** @type {null | TstNode} */ + left = null + /** @type {null | TstNode} */ + middle = null + /** @type {null | TstNode} */ + right = null + /** @type {number} */ + code + /** + * @param {string} key + * @param {any} value + * @param {number} index + */ + constructor (key, value, index) { + if (index === undefined || index >= key.length) { + throw new TypeError('Unreachable') + } + const code = this.code = key.charCodeAt(index) + // check code is ascii string + if (code > 0x7F) { + throw new TypeError('key must be ascii string') + } + if (key.length !== ++index) { + this.middle = new TstNode(key, value, index) + } else { + this.value = value + } + } + + /** + * @param {string} key + * @param {any} value + */ + add (key, value) { + const length = key.length + if (length === 0) { + throw new TypeError('Unreachable') + } + let index = 0 + let node = this + while (true) { + const code = key.charCodeAt(index) + // check code is ascii string + if (code > 0x7F) { + throw new TypeError('key must be ascii string') + } + if (node.code === code) { + if (length === ++index) { + node.value = value + break + } else if (node.middle !== null) { + node = node.middle + } else { + node.middle = new TstNode(key, value, index) + break + } + } else if (node.code < code) { + if (node.left !== null) { + node = node.left + } else { + node.left = new TstNode(key, value, index) + break + } + } else if (node.right !== null) { + node = node.right + } else { + node.right = new TstNode(key, value, index) + break + } + } + } + + /** + * @param {Uint8Array} key + * @return {TstNode | null} + */ + search (key) { + const keylength = key.length + let index = 0 + let node = this + while (node !== null && index < keylength) { + let code = key[index] + // A-Z + // First check if it is bigger than 0x5a. + // Lowercase letters have higher char codes than uppercase ones. + // Also we assume that headers will mostly contain lowercase characters. + if (code <= 0x5a && code >= 0x41) { + // Lowercase for uppercase. + code |= 32 + } + while (node !== null) { + if (code === node.code) { + if (keylength === ++index) { + // Returns Node since it is the last key. + return node + } + node = node.middle + break + } + node = node.code < code ? node.left : node.right + } + } + return null + } +} + +class TernarySearchTree { + /** @type {TstNode | null} */ + node = null + + /** + * @param {string} key + * @param {any} value + * */ + insert (key, value) { + if (this.node === null) { + this.node = new TstNode(key, value, 0) + } else { + this.node.add(key, value) + } + } + + /** + * @param {Uint8Array} key + * @return {any} + */ + lookup (key) { + return this.node?.search(key)?.value ?? null + } +} + +const tree = new TernarySearchTree() + +for (let i = 0; i < wellknownHeaderNames.length; ++i) { + const key = headerNameLowerCasedRecord[wellknownHeaderNames[i]] + tree.insert(key, key) +} + +module.exports = { + TernarySearchTree, + tree +} + + +/***/ }), + +/***/ 3440: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { kDestroyed, kBodyUsed, kListeners, kBody } = __nccwpck_require__(6443) +const { IncomingMessage } = __nccwpck_require__(7067) +const stream = __nccwpck_require__(7075) +const net = __nccwpck_require__(7030) +const { Blob } = __nccwpck_require__(4573) +const nodeUtil = __nccwpck_require__(7975) +const { stringify } = __nccwpck_require__(1792) +const { EventEmitter: EE } = __nccwpck_require__(8474) +const { InvalidArgumentError } = __nccwpck_require__(8707) +const { headerNameLowerCasedRecord } = __nccwpck_require__(735) +const { tree } = __nccwpck_require__(7752) + +const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) + +class BodyAsyncIterable { + constructor (body) { + this[kBody] = body + this[kBodyUsed] = false + } + + async * [Symbol.asyncIterator] () { + assert(!this[kBodyUsed], 'disturbed') + this[kBodyUsed] = true + yield * this[kBody] + } +} + +function wrapRequestBody (body) { + if (isStream(body)) { + // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp + // so that it can be dispatched again? + // TODO (fix): Do we need 100-expect support to provide a way to do this properly? + if (bodyLength(body) === 0) { + body + .on('data', function () { + assert(false) + }) + } + + if (typeof body.readableDidRead !== 'boolean') { + body[kBodyUsed] = false + EE.prototype.on.call(body, 'data', function () { + this[kBodyUsed] = true + }) + } + + return body + } else if (body && typeof body.pipeTo === 'function') { + // TODO (fix): We can't access ReadableStream internal state + // to determine whether or not it has been disturbed. This is just + // a workaround. + return new BodyAsyncIterable(body) + } else if ( + body && + typeof body !== 'string' && + !ArrayBuffer.isView(body) && + isIterable(body) + ) { + // TODO: Should we allow re-using iterable if !this.opts.idempotent + // or through some other flag? + return new BodyAsyncIterable(body) + } else { + return body + } +} + +function nop () {} + +function isStream (obj) { + return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function' +} + +// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) +function isBlobLike (object) { + if (object === null) { + return false + } else if (object instanceof Blob) { + return true + } else if (typeof object !== 'object') { + return false + } else { + const sTag = object[Symbol.toStringTag] + + return (sTag === 'Blob' || sTag === 'File') && ( + ('stream' in object && typeof object.stream === 'function') || + ('arrayBuffer' in object && typeof object.arrayBuffer === 'function') + ) + } +} + +function buildURL (url, queryParams) { + if (url.includes('?') || url.includes('#')) { + throw new Error('Query params cannot be passed when url already contains "?" or "#".') + } + + const stringified = stringify(queryParams) + + if (stringified) { + url += '?' + stringified + } + + return url +} + +function isValidPort (port) { + const value = parseInt(port, 10) + return ( + value === Number(port) && + value >= 0 && + value <= 65535 + ) +} + +function isHttpOrHttpsPrefixed (value) { + return ( + value != null && + value[0] === 'h' && + value[1] === 't' && + value[2] === 't' && + value[3] === 'p' && + ( + value[4] === ':' || + ( + value[4] === 's' && + value[5] === ':' + ) + ) + ) +} + +function parseURL (url) { + if (typeof url === 'string') { + url = new URL(url) + + if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + return url + } + + if (!url || typeof url !== 'object') { + throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.') + } + + if (!(url instanceof URL)) { + if (url.port != null && url.port !== '' && isValidPort(url.port) === false) { + throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.') + } + + if (url.path != null && typeof url.path !== 'string') { + throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.') + } + + if (url.pathname != null && typeof url.pathname !== 'string') { + throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.') + } + + if (url.hostname != null && typeof url.hostname !== 'string') { + throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.') + } + + if (url.origin != null && typeof url.origin !== 'string') { + throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.') + } + + if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + const port = url.port != null + ? url.port + : (url.protocol === 'https:' ? 443 : 80) + let origin = url.origin != null + ? url.origin + : `${url.protocol || ''}//${url.hostname || ''}:${port}` + let path = url.path != null + ? url.path + : `${url.pathname || ''}${url.search || ''}` + + if (origin[origin.length - 1] === '/') { + origin = origin.slice(0, origin.length - 1) + } + + if (path && path[0] !== '/') { + path = `/${path}` + } + // new URL(path, origin) is unsafe when `path` contains an absolute URL + // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: + // If first parameter is a relative URL, second param is required, and will be used as the base URL. + // If first parameter is an absolute URL, a given second param will be ignored. + return new URL(`${origin}${path}`) + } + + if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + return url +} + +function parseOrigin (url) { + url = parseURL(url) + + if (url.pathname !== '/' || url.search || url.hash) { + throw new InvalidArgumentError('invalid url') + } + + return url +} + +function getHostname (host) { + if (host[0] === '[') { + const idx = host.indexOf(']') + + assert(idx !== -1) + return host.substring(1, idx) + } + + const idx = host.indexOf(':') + if (idx === -1) return host + + return host.substring(0, idx) +} + +// IP addresses are not valid server names per RFC6066 +// > Currently, the only server names supported are DNS hostnames +function getServerName (host) { + if (!host) { + return null + } + + assert(typeof host === 'string') + + const servername = getHostname(host) + if (net.isIP(servername)) { + return '' + } + + return servername +} + +function deepClone (obj) { + return JSON.parse(JSON.stringify(obj)) +} + +function isAsyncIterable (obj) { + return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function') +} + +function isIterable (obj) { + return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function')) +} + +function bodyLength (body) { + if (body == null) { + return 0 + } else if (isStream(body)) { + const state = body._readableState + return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) + ? state.length + : null + } else if (isBlobLike(body)) { + return body.size != null ? body.size : null + } else if (isBuffer(body)) { + return body.byteLength + } + + return null +} + +function isDestroyed (body) { + return body && !!(body.destroyed || body[kDestroyed] || (stream.isDestroyed?.(body))) +} + +function destroy (stream, err) { + if (stream == null || !isStream(stream) || isDestroyed(stream)) { + return + } + + if (typeof stream.destroy === 'function') { + if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { + // See: https://github.com/nodejs/node/pull/38505/files + stream.socket = null + } + + stream.destroy(err) + } else if (err) { + queueMicrotask(() => { + stream.emit('error', err) + }) + } + + if (stream.destroyed !== true) { + stream[kDestroyed] = true + } +} + +const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ +function parseKeepAliveTimeout (val) { + const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) + return m ? parseInt(m[1], 10) * 1000 : null +} + +/** + * Retrieves a header name and returns its lowercase value. + * @param {string | Buffer} value Header name + * @returns {string} + */ +function headerNameToString (value) { + return typeof value === 'string' + ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() + : tree.lookup(value) ?? value.toString('latin1').toLowerCase() +} + +/** + * Receive the buffer as a string and return its lowercase value. + * @param {Buffer} value Header name + * @returns {string} + */ +function bufferToLowerCasedHeaderName (value) { + return tree.lookup(value) ?? value.toString('latin1').toLowerCase() +} + +/** + * @param {Record | (Buffer | string | (Buffer | string)[])[]} headers + * @param {Record} [obj] + * @returns {Record} + */ +function parseHeaders (headers, obj) { + if (obj === undefined) obj = {} + for (let i = 0; i < headers.length; i += 2) { + const key = headerNameToString(headers[i]) + let val = obj[key] + + if (val) { + if (typeof val === 'string') { + val = [val] + obj[key] = val + } + val.push(headers[i + 1].toString('utf8')) + } else { + const headersValue = headers[i + 1] + if (typeof headersValue === 'string') { + obj[key] = headersValue + } else { + obj[key] = Array.isArray(headersValue) ? headersValue.map(x => x.toString('utf8')) : headersValue.toString('utf8') + } + } + } + + // See https://github.com/nodejs/node/pull/46528 + if ('content-length' in obj && 'content-disposition' in obj) { + obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1') + } + + return obj +} + +function parseRawHeaders (headers) { + const len = headers.length + const ret = new Array(len) + + let hasContentLength = false + let contentDispositionIdx = -1 + let key + let val + let kLen = 0 + + for (let n = 0; n < headers.length; n += 2) { + key = headers[n] + val = headers[n + 1] + + typeof key !== 'string' && (key = key.toString()) + typeof val !== 'string' && (val = val.toString('utf8')) + + kLen = key.length + if (kLen === 14 && key[7] === '-' && (key === 'content-length' || key.toLowerCase() === 'content-length')) { + hasContentLength = true + } else if (kLen === 19 && key[7] === '-' && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) { + contentDispositionIdx = n + 1 + } + ret[n] = key + ret[n + 1] = val + } + + // See https://github.com/nodejs/node/pull/46528 + if (hasContentLength && contentDispositionIdx !== -1) { + ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1') + } + + return ret +} + +function isBuffer (buffer) { + // See, https://github.com/mcollina/undici/pull/319 + return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) +} + +function validateHandler (handler, method, upgrade) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + if (typeof handler.onConnect !== 'function') { + throw new InvalidArgumentError('invalid onConnect method') + } + + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) { + throw new InvalidArgumentError('invalid onBodySent method') + } + + if (upgrade || method === 'CONNECT') { + if (typeof handler.onUpgrade !== 'function') { + throw new InvalidArgumentError('invalid onUpgrade method') + } + } else { + if (typeof handler.onHeaders !== 'function') { + throw new InvalidArgumentError('invalid onHeaders method') + } + + if (typeof handler.onData !== 'function') { + throw new InvalidArgumentError('invalid onData method') + } + + if (typeof handler.onComplete !== 'function') { + throw new InvalidArgumentError('invalid onComplete method') + } + } +} + +// A body is disturbed if it has been read from and it cannot +// be re-used without losing state or data. +function isDisturbed (body) { + // TODO (fix): Why is body[kBodyUsed] needed? + return !!(body && (stream.isDisturbed(body) || body[kBodyUsed])) +} + +function isErrored (body) { + return !!(body && stream.isErrored(body)) +} + +function isReadable (body) { + return !!(body && stream.isReadable(body)) +} + +function getSocketInfo (socket) { + return { + localAddress: socket.localAddress, + localPort: socket.localPort, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + remoteFamily: socket.remoteFamily, + timeout: socket.timeout, + bytesWritten: socket.bytesWritten, + bytesRead: socket.bytesRead + } +} + +/** @type {globalThis['ReadableStream']} */ +function ReadableStreamFrom (iterable) { + // We cannot use ReadableStream.from here because it does not return a byte stream. + + let iterator + return new ReadableStream( + { + async start () { + iterator = iterable[Symbol.asyncIterator]() + }, + async pull (controller) { + const { done, value } = await iterator.next() + if (done) { + queueMicrotask(() => { + controller.close() + controller.byobRequest?.respond(0) + }) + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) + if (buf.byteLength) { + controller.enqueue(new Uint8Array(buf)) + } + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + }, + type: 'bytes' + } + ) +} + +// The chunk should be a FormData instance and contains +// all the required methods. +function isFormDataLike (object) { + return ( + object && + typeof object === 'object' && + typeof object.append === 'function' && + typeof object.delete === 'function' && + typeof object.get === 'function' && + typeof object.getAll === 'function' && + typeof object.has === 'function' && + typeof object.set === 'function' && + object[Symbol.toStringTag] === 'FormData' + ) +} + +function addAbortListener (signal, listener) { + if ('addEventListener' in signal) { + signal.addEventListener('abort', listener, { once: true }) + return () => signal.removeEventListener('abort', listener) + } + signal.addListener('abort', listener) + return () => signal.removeListener('abort', listener) +} + +const hasToWellFormed = typeof String.prototype.toWellFormed === 'function' +const hasIsWellFormed = typeof String.prototype.isWellFormed === 'function' + +/** + * @param {string} val + */ +function toUSVString (val) { + return hasToWellFormed ? `${val}`.toWellFormed() : nodeUtil.toUSVString(val) +} + +/** + * @param {string} val + */ +// TODO: move this to webidl +function isUSVString (val) { + return hasIsWellFormed ? `${val}`.isWellFormed() : toUSVString(val) === `${val}` +} + +/** + * @see https://tools.ietf.org/html/rfc7230#section-3.2.6 + * @param {number} c + */ +function isTokenCharCode (c) { + switch (c) { + case 0x22: + case 0x28: + case 0x29: + case 0x2c: + case 0x2f: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + case 0x40: + case 0x5b: + case 0x5c: + case 0x5d: + case 0x7b: + case 0x7d: + // DQUOTE and "(),/:;<=>?@[\]{}" + return false + default: + // VCHAR %x21-7E + return c >= 0x21 && c <= 0x7e + } +} + +/** + * @param {string} characters + */ +function isValidHTTPToken (characters) { + if (characters.length === 0) { + return false + } + for (let i = 0; i < characters.length; ++i) { + if (!isTokenCharCode(characters.charCodeAt(i))) { + return false + } + } + return true +} + +// headerCharRegex have been lifted from +// https://github.com/nodejs/node/blob/main/lib/_http_common.js + +/** + * Matches if val contains an invalid field-vchar + * field-value = *( field-content / obs-fold ) + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + */ +const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ + +/** + * @param {string} characters + */ +function isValidHeaderValue (characters) { + return !headerCharRegex.test(characters) +} + +// Parsed accordingly to RFC 9110 +// https://www.rfc-editor.org/rfc/rfc9110#field.content-range +function parseRangeHeader (range) { + if (range == null || range === '') return { start: 0, end: null, size: null } + + const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null + return m + ? { + start: parseInt(m[1]), + end: m[2] ? parseInt(m[2]) : null, + size: m[3] ? parseInt(m[3]) : null + } + : null +} + +function addListener (obj, name, listener) { + const listeners = (obj[kListeners] ??= []) + listeners.push([name, listener]) + obj.on(name, listener) + return obj +} + +function removeAllListeners (obj) { + for (const [name, listener] of obj[kListeners] ?? []) { + obj.removeListener(name, listener) + } + obj[kListeners] = null +} + +function errorRequest (client, request, err) { + try { + request.onError(err) + assert(request.aborted) + } catch (err) { + client.emit('error', err) + } +} + +const kEnumerableProperty = Object.create(null) +kEnumerableProperty.enumerable = true + +const normalizedMethodRecordsBase = { + delete: 'DELETE', + DELETE: 'DELETE', + get: 'GET', + GET: 'GET', + head: 'HEAD', + HEAD: 'HEAD', + options: 'OPTIONS', + OPTIONS: 'OPTIONS', + post: 'POST', + POST: 'POST', + put: 'PUT', + PUT: 'PUT' +} + +const normalizedMethodRecords = { + ...normalizedMethodRecordsBase, + patch: 'patch', + PATCH: 'PATCH' +} + +// Note: object prototypes should not be able to be referenced. e.g. `Object#hasOwnProperty`. +Object.setPrototypeOf(normalizedMethodRecordsBase, null) +Object.setPrototypeOf(normalizedMethodRecords, null) + +module.exports = { + kEnumerableProperty, + nop, + isDisturbed, + isErrored, + isReadable, + toUSVString, + isUSVString, + isBlobLike, + parseOrigin, + parseURL, + getServerName, + isStream, + isIterable, + isAsyncIterable, + isDestroyed, + headerNameToString, + bufferToLowerCasedHeaderName, + addListener, + removeAllListeners, + errorRequest, + parseRawHeaders, + parseHeaders, + parseKeepAliveTimeout, + destroy, + bodyLength, + deepClone, + ReadableStreamFrom, + isBuffer, + validateHandler, + getSocketInfo, + isFormDataLike, + buildURL, + addAbortListener, + isValidHTTPToken, + isValidHeaderValue, + isTokenCharCode, + parseRangeHeader, + normalizedMethodRecordsBase, + normalizedMethodRecords, + isValidPort, + isHttpOrHttpsPrefixed, + nodeMajor, + nodeMinor, + safeHTTPMethods: ['GET', 'HEAD', 'OPTIONS', 'TRACE'], + wrapRequestBody +} + + +/***/ }), + +/***/ 7405: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { InvalidArgumentError } = __nccwpck_require__(8707) +const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(6443) +const DispatcherBase = __nccwpck_require__(1841) +const Pool = __nccwpck_require__(628) +const Client = __nccwpck_require__(3701) +const util = __nccwpck_require__(3440) +const createRedirectInterceptor = __nccwpck_require__(5092) + +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kMaxRedirections = Symbol('maxRedirections') +const kOnDrain = Symbol('onDrain') +const kFactory = Symbol('factory') +const kOptions = Symbol('options') + +function defaultFactory (origin, opts) { + return opts && opts.connections === 1 + ? new Client(origin, opts) + : new Pool(origin, opts) +} + +class Agent extends DispatcherBase { + constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + super(options) + + if (connect && typeof connect !== 'function') { + connect = { ...connect } + } + + this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) + ? options.interceptors.Agent + : [createRedirectInterceptor({ maxRedirections })] + + this[kOptions] = { ...util.deepClone(options), connect } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kMaxRedirections] = maxRedirections + this[kFactory] = factory + this[kClients] = new Map() + + this[kOnDrain] = (origin, targets) => { + this.emit('drain', origin, [this, ...targets]) + } + + this[kOnConnect] = (origin, targets) => { + this.emit('connect', origin, [this, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + this.emit('disconnect', origin, [this, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + this.emit('connectionError', origin, [this, ...targets], err) + } + } + + get [kRunning] () { + let ret = 0 + for (const client of this[kClients].values()) { + ret += client[kRunning] + } + return ret + } + + [kDispatch] (opts, handler) { + let key + if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) { + key = String(opts.origin) + } else { + throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.') + } + + let dispatcher = this[kClients].get(key) + + if (!dispatcher) { + dispatcher = this[kFactory](opts.origin, this[kOptions]) + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + // This introduces a tiny memory leak, as dispatchers are never removed from the map. + // TODO(mcollina): remove te timer when the client/pool do not have any more + // active connections. + this[kClients].set(key, dispatcher) + } + + return dispatcher.dispatch(opts, handler) + } + + async [kClose] () { + const closePromises = [] + for (const client of this[kClients].values()) { + closePromises.push(client.close()) + } + this[kClients].clear() + + await Promise.all(closePromises) + } + + async [kDestroy] (err) { + const destroyPromises = [] + for (const client of this[kClients].values()) { + destroyPromises.push(client.destroy(err)) + } + this[kClients].clear() + + await Promise.all(destroyPromises) + } +} + +module.exports = Agent + + +/***/ }), + +/***/ 837: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + BalancedPoolMissingUpstreamError, + InvalidArgumentError +} = __nccwpck_require__(8707) +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} = __nccwpck_require__(2128) +const Pool = __nccwpck_require__(628) +const { kUrl, kInterceptors } = __nccwpck_require__(6443) +const { parseOrigin } = __nccwpck_require__(3440) +const kFactory = Symbol('factory') + +const kOptions = Symbol('options') +const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') +const kCurrentWeight = Symbol('kCurrentWeight') +const kIndex = Symbol('kIndex') +const kWeight = Symbol('kWeight') +const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') +const kErrorPenalty = Symbol('kErrorPenalty') + +/** + * Calculate the greatest common divisor of two numbers by + * using the Euclidean algorithm. + * + * @param {number} a + * @param {number} b + * @returns {number} + */ +function getGreatestCommonDivisor (a, b) { + if (a === 0) return b + + while (b !== 0) { + const t = b + b = a % b + a = t + } + return a +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +class BalancedPool extends PoolBase { + constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) { + super() + + this[kOptions] = opts + this[kIndex] = -1 + this[kCurrentWeight] = 0 + + this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 + this[kErrorPenalty] = this[kOptions].errorPenalty || 15 + + if (!Array.isArray(upstreams)) { + upstreams = [upstreams] + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + this[kInterceptors] = opts.interceptors?.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) + ? opts.interceptors.BalancedPool + : [] + this[kFactory] = factory + + for (const upstream of upstreams) { + this.addUpstream(upstream) + } + this._updateBalancedPoolStats() + } + + addUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + if (this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + ))) { + return this + } + const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])) + + this[kAddClient](pool) + pool.on('connect', () => { + pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]) + }) + + pool.on('connectionError', () => { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + }) + + pool.on('disconnect', (...args) => { + const err = args[2] + if (err && err.code === 'UND_ERR_SOCKET') { + // decrease the weight of the pool. + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + } + }) + + for (const client of this[kClients]) { + client[kWeight] = this[kMaxWeightPerServer] + } + + this._updateBalancedPoolStats() + + return this + } + + _updateBalancedPoolStats () { + let result = 0 + for (let i = 0; i < this[kClients].length; i++) { + result = getGreatestCommonDivisor(this[kClients][i][kWeight], result) + } + + this[kGreatestCommonDivisor] = result + } + + removeUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + const pool = this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + )) + + if (pool) { + this[kRemoveClient](pool) + } + + return this + } + + get upstreams () { + return this[kClients] + .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true) + .map((p) => p[kUrl].origin) + } + + [kGetDispatcher] () { + // We validate that pools is greater than 0, + // otherwise we would have to wait until an upstream + // is added, which might never happen. + if (this[kClients].length === 0) { + throw new BalancedPoolMissingUpstreamError() + } + + const dispatcher = this[kClients].find(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + + if (!dispatcher) { + return + } + + const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true) + + if (allClientsBusy) { + return + } + + let counter = 0 + + let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain]) + + while (counter++ < this[kClients].length) { + this[kIndex] = (this[kIndex] + 1) % this[kClients].length + const pool = this[kClients][this[kIndex]] + + // find pool index with the largest weight + if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { + maxWeightIndex = this[kIndex] + } + + // decrease the current weight every `this[kClients].length`. + if (this[kIndex] === 0) { + // Set the current weight to the next lower weight. + this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor] + + if (this[kCurrentWeight] <= 0) { + this[kCurrentWeight] = this[kMaxWeightPerServer] + } + } + if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) { + return pool + } + } + + this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] + this[kIndex] = maxWeightIndex + return this[kClients][maxWeightIndex] + } +} + +module.exports = BalancedPool + + +/***/ }), + +/***/ 637: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +/* global WebAssembly */ + +const assert = __nccwpck_require__(4589) +const util = __nccwpck_require__(3440) +const { channels } = __nccwpck_require__(2414) +const timers = __nccwpck_require__(6603) +const { + RequestContentLengthMismatchError, + ResponseContentLengthMismatchError, + RequestAbortedError, + HeadersTimeoutError, + HeadersOverflowError, + SocketError, + InformationalError, + BodyTimeoutError, + HTTPParserError, + ResponseExceededMaxSizeError +} = __nccwpck_require__(8707) +const { + kUrl, + kReset, + kClient, + kParser, + kBlocking, + kRunning, + kPending, + kSize, + kWriting, + kQueue, + kNoRef, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kSocket, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kMaxRequests, + kCounter, + kMaxResponseSize, + kOnError, + kResume, + kHTTPContext +} = __nccwpck_require__(6443) + +const constants = __nccwpck_require__(2824) +const EMPTY_BUF = Buffer.alloc(0) +const FastBuffer = Buffer[Symbol.species] +const addListener = util.addListener +const removeAllListeners = util.removeAllListeners + +let extractBody + +async function lazyllhttp () { + const llhttpWasmData = process.env.JEST_WORKER_ID ? __nccwpck_require__(3870) : undefined + + let mod + try { + mod = await WebAssembly.compile(__nccwpck_require__(3434)) + } catch (e) { + /* istanbul ignore next */ + + // We could check if the error was caused by the simd option not + // being enabled, but the occurring of this other error + // * https://github.com/emscripten-core/emscripten/issues/11495 + // got me to remove that check to avoid breaking Node 12. + mod = await WebAssembly.compile(llhttpWasmData || __nccwpck_require__(3870)) + } + + return await WebAssembly.instantiate(mod, { + env: { + /* eslint-disable camelcase */ + + wasm_on_url: (p, at, len) => { + /* istanbul ignore next */ + return 0 + }, + wasm_on_status: (p, at, len) => { + assert(currentParser.ptr === p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_begin: (p) => { + assert(currentParser.ptr === p) + return currentParser.onMessageBegin() || 0 + }, + wasm_on_header_field: (p, at, len) => { + assert(currentParser.ptr === p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_header_value: (p, at, len) => { + assert(currentParser.ptr === p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { + assert(currentParser.ptr === p) + return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0 + }, + wasm_on_body: (p, at, len) => { + assert(currentParser.ptr === p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_complete: (p) => { + assert(currentParser.ptr === p) + return currentParser.onMessageComplete() || 0 + } + + /* eslint-enable camelcase */ + } + }) +} + +let llhttpInstance = null +let llhttpPromise = lazyllhttp() +llhttpPromise.catch() + +let currentParser = null +let currentBufferRef = null +let currentBufferSize = 0 +let currentBufferPtr = null + +const USE_NATIVE_TIMER = 0 +const USE_FAST_TIMER = 1 + +// Use fast timers for headers and body to take eventual event loop +// latency into account. +const TIMEOUT_HEADERS = 2 | USE_FAST_TIMER +const TIMEOUT_BODY = 4 | USE_FAST_TIMER + +// Use native timers to ignore event loop latency for keep-alive +// handling. +const TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER + +class Parser { + constructor (client, socket, { exports }) { + assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0) + + this.llhttp = exports + this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) + this.client = client + this.socket = socket + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + this.statusCode = null + this.statusText = '' + this.upgrade = false + this.headers = [] + this.headersSize = 0 + this.headersMaxSize = client[kMaxHeadersSize] + this.shouldKeepAlive = false + this.paused = false + this.resume = this.resume.bind(this) + + this.bytesRead = 0 + + this.keepAlive = '' + this.contentLength = '' + this.connection = '' + this.maxResponseSize = client[kMaxResponseSize] + } + + setTimeout (delay, type) { + // If the existing timer and the new timer are of different timer type + // (fast or native) or have different delay, we need to clear the existing + // timer and set a new one. + if ( + delay !== this.timeoutValue || + (type & USE_FAST_TIMER) ^ (this.timeoutType & USE_FAST_TIMER) + ) { + // If a timeout is already set, clear it with clearTimeout of the fast + // timer implementation, as it can clear fast and native timers. + if (this.timeout) { + timers.clearTimeout(this.timeout) + this.timeout = null + } + + if (delay) { + if (type & USE_FAST_TIMER) { + this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this)) + } else { + this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this)) + this.timeout.unref() + } + } + + this.timeoutValue = delay + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + this.timeoutType = type + } + + resume () { + if (this.socket.destroyed || !this.paused) { + return + } + + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_resume(this.ptr) + + assert(this.timeoutType === TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + this.paused = false + this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. + this.readMore() + } + + readMore () { + while (!this.paused && this.ptr) { + const chunk = this.socket.read() + if (chunk === null) { + break + } + this.execute(chunk) + } + } + + execute (data) { + assert(this.ptr != null) + assert(currentParser == null) + assert(!this.paused) + + const { socket, llhttp } = this + + if (data.length > currentBufferSize) { + if (currentBufferPtr) { + llhttp.free(currentBufferPtr) + } + currentBufferSize = Math.ceil(data.length / 4096) * 4096 + currentBufferPtr = llhttp.malloc(currentBufferSize) + } + + new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data) + + // Call `execute` on the wasm parser. + // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, + // and finally the length of bytes to parse. + // The return value is an error code or `constants.ERROR.OK`. + try { + let ret + + try { + currentBufferRef = data + currentParser = this + ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length) + /* eslint-disable-next-line no-useless-catch */ + } catch (err) { + /* istanbul ignore next: difficult to make a test case for */ + throw err + } finally { + currentParser = null + currentBufferRef = null + } + + const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr + + if (ret === constants.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(data.slice(offset)) + } else if (ret === constants.ERROR.PAUSED) { + this.paused = true + socket.unshift(data.slice(offset)) + } else if (ret !== constants.ERROR.OK) { + const ptr = llhttp.llhttp_get_error_reason(this.ptr) + let message = '' + /* istanbul ignore else: difficult to make a test case for */ + if (ptr) { + const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) + message = + 'Response does not match the HTTP/1.1 protocol (' + + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + + ')' + } + throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)) + } + } catch (err) { + util.destroy(socket, err) + } + } + + destroy () { + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_free(this.ptr) + this.ptr = null + + this.timeout && timers.clearTimeout(this.timeout) + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + + this.paused = false + } + + onStatus (buf) { + this.statusText = buf.toString() + } + + onMessageBegin () { + const { socket, client } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + if (!request) { + return -1 + } + request.onResponseStarted() + } + + onHeaderField (buf) { + const len = this.headers.length + + if ((len & 1) === 0) { + this.headers.push(buf) + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + this.trackHeader(buf.length) + } + + onHeaderValue (buf) { + let len = this.headers.length + + if ((len & 1) === 1) { + this.headers.push(buf) + len += 1 + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + const key = this.headers[len - 2] + if (key.length === 10) { + const headerName = util.bufferToLowerCasedHeaderName(key) + if (headerName === 'keep-alive') { + this.keepAlive += buf.toString() + } else if (headerName === 'connection') { + this.connection += buf.toString() + } + } else if (key.length === 14 && util.bufferToLowerCasedHeaderName(key) === 'content-length') { + this.contentLength += buf.toString() + } + + this.trackHeader(buf.length) + } + + trackHeader (len) { + this.headersSize += len + if (this.headersSize >= this.headersMaxSize) { + util.destroy(this.socket, new HeadersOverflowError()) + } + } + + onUpgrade (head) { + const { upgrade, client, socket, headers, statusCode } = this + + assert(upgrade) + assert(client[kSocket] === socket) + assert(!socket.destroyed) + assert(!this.paused) + assert((headers.length & 1) === 0) + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + assert(request.upgrade || request.method === 'CONNECT') + + this.statusCode = null + this.statusText = '' + this.shouldKeepAlive = null + + this.headers = [] + this.headersSize = 0 + + socket.unshift(head) + + socket[kParser].destroy() + socket[kParser] = null + + socket[kClient] = null + socket[kError] = null + + removeAllListeners(socket) + + client[kSocket] = null + client[kHTTPContext] = null // TODO (fix): This is hacky... + client[kQueue][client[kRunningIdx]++] = null + client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade')) + + try { + request.onUpgrade(statusCode, headers, socket) + } catch (err) { + util.destroy(socket, err) + } + + client[kResume]() + } + + onHeadersComplete (statusCode, upgrade, shouldKeepAlive) { + const { client, socket, headers, statusText } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + + /* istanbul ignore next: difficult to make a test case for */ + if (!request) { + return -1 + } + + assert(!this.upgrade) + assert(this.statusCode < 200) + + if (statusCode === 100) { + util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))) + return -1 + } + + /* this can only happen if server is misbehaving */ + if (upgrade && !request.upgrade) { + util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))) + return -1 + } + + assert(this.timeoutType === TIMEOUT_HEADERS) + + this.statusCode = statusCode + this.shouldKeepAlive = ( + shouldKeepAlive || + // Override llhttp value which does not allow keepAlive for HEAD. + (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive') + ) + + if (this.statusCode >= 200) { + const bodyTimeout = request.bodyTimeout != null + ? request.bodyTimeout + : client[kBodyTimeout] + this.setTimeout(bodyTimeout, TIMEOUT_BODY) + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + if (request.method === 'CONNECT') { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + if (upgrade) { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + assert((this.headers.length & 1) === 0) + this.headers = [] + this.headersSize = 0 + + if (this.shouldKeepAlive && client[kPipelining]) { + const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null + + if (keepAliveTimeout != null) { + const timeout = Math.min( + keepAliveTimeout - client[kKeepAliveTimeoutThreshold], + client[kKeepAliveMaxTimeout] + ) + if (timeout <= 0) { + socket[kReset] = true + } else { + client[kKeepAliveTimeoutValue] = timeout + } + } else { + client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] + } + } else { + // Stop more requests from being dispatched. + socket[kReset] = true + } + + const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false + + if (request.aborted) { + return -1 + } + + if (request.method === 'HEAD') { + return 1 + } + + if (statusCode < 200) { + return 1 + } + + if (socket[kBlocking]) { + socket[kBlocking] = false + client[kResume]() + } + + return pause ? constants.ERROR.PAUSED : 0 + } + + onBody (buf) { + const { client, socket, statusCode, maxResponseSize } = this + + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(this.timeoutType === TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + assert(statusCode >= 200) + + if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { + util.destroy(socket, new ResponseExceededMaxSizeError()) + return -1 + } + + this.bytesRead += buf.length + + if (request.onData(buf) === false) { + return constants.ERROR.PAUSED + } + } + + onMessageComplete () { + const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this + + if (socket.destroyed && (!statusCode || shouldKeepAlive)) { + return -1 + } + + if (upgrade) { + return + } + + assert(statusCode >= 100) + assert((this.headers.length & 1) === 0) + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + this.statusCode = null + this.statusText = '' + this.bytesRead = 0 + this.contentLength = '' + this.keepAlive = '' + this.connection = '' + + this.headers = [] + this.headersSize = 0 + + if (statusCode < 200) { + return + } + + /* istanbul ignore next: should be handled by llhttp? */ + if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) { + util.destroy(socket, new ResponseContentLengthMismatchError()) + return -1 + } + + request.onComplete(headers) + + client[kQueue][client[kRunningIdx]++] = null + + if (socket[kWriting]) { + assert(client[kRunning] === 0) + // Response completed before request. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (!shouldKeepAlive) { + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (socket[kReset] && client[kRunning] === 0) { + // Destroy socket once all requests have completed. + // The request at the tail of the pipeline is the one + // that requested reset and no further requests should + // have been queued since then. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (client[kPipelining] == null || client[kPipelining] === 1) { + // We must wait a full event loop cycle to reuse this socket to make sure + // that non-spec compliant servers are not closing the connection even if they + // said they won't. + setImmediate(() => client[kResume]()) + } else { + client[kResume]() + } + } +} + +function onParserTimeout (parser) { + const { socket, timeoutType, client, paused } = parser.deref() + + /* istanbul ignore else */ + if (timeoutType === TIMEOUT_HEADERS) { + if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { + assert(!paused, 'cannot be paused while waiting for headers') + util.destroy(socket, new HeadersTimeoutError()) + } + } else if (timeoutType === TIMEOUT_BODY) { + if (!paused) { + util.destroy(socket, new BodyTimeoutError()) + } + } else if (timeoutType === TIMEOUT_KEEP_ALIVE) { + assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) + util.destroy(socket, new InformationalError('socket idle timeout')) + } +} + +async function connectH1 (client, socket) { + client[kSocket] = socket + + if (!llhttpInstance) { + llhttpInstance = await llhttpPromise + llhttpPromise = null + } + + socket[kNoRef] = false + socket[kWriting] = false + socket[kReset] = false + socket[kBlocking] = false + socket[kParser] = new Parser(client, socket, llhttpInstance) + + addListener(socket, 'error', function (err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + const parser = this[kParser] + + // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded + // to the user. + if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so for as a valid response. + parser.onMessageComplete() + return + } + + this[kError] = err + + this[kClient][kOnError](err) + }) + addListener(socket, 'readable', function () { + const parser = this[kParser] + + if (parser) { + parser.readMore() + } + }) + addListener(socket, 'end', function () { + const parser = this[kParser] + + if (parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + return + } + + util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) + }) + addListener(socket, 'close', function () { + const client = this[kClient] + const parser = this[kParser] + + if (parser) { + if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + } + + this[kParser].destroy() + this[kParser] = null + } + + const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) + + client[kSocket] = null + client[kHTTPContext] = null // TODO (fix): This is hacky... + + if (client.destroyed) { + assert(client[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + util.errorRequest(client, request, err) + } + } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + + util.errorRequest(client, request, err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', client[kUrl], [client], err) + + client[kResume]() + }) + + let closed = false + socket.on('close', () => { + closed = true + }) + + return { + version: 'h1', + defaultPipelining: 1, + write (...args) { + return writeH1(client, ...args) + }, + resume () { + resumeH1(client) + }, + destroy (err, callback) { + if (closed) { + queueMicrotask(callback) + } else { + socket.destroy(err).on('close', callback) + } + }, + get destroyed () { + return socket.destroyed + }, + busy (request) { + if (socket[kWriting] || socket[kReset] || socket[kBlocking]) { + return true + } + + if (request) { + if (client[kRunning] > 0 && !request.idempotent) { + // Non-idempotent request cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return true + } + + if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) { + // Don't dispatch an upgrade until all preceding requests have completed. + // A misbehaving server might upgrade the connection before all pipelined + // request has completed. + return true + } + + if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && + (util.isStream(request.body) || util.isAsyncIterable(request.body) || util.isFormDataLike(request.body))) { + // Request with stream or iterator body can error while other requests + // are inflight and indirectly error those as well. + // Ensure this doesn't happen by waiting for inflight + // to complete before dispatching. + + // Request with stream or iterator body cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return true + } + } + + return false + } + } +} + +function resumeH1 (client) { + const socket = client[kSocket] + + if (socket && !socket.destroyed) { + if (client[kSize] === 0) { + if (!socket[kNoRef] && socket.unref) { + socket.unref() + socket[kNoRef] = true + } + } else if (socket[kNoRef] && socket.ref) { + socket.ref() + socket[kNoRef] = false + } + + if (client[kSize] === 0) { + if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) { + socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE) + } + } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { + if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { + const request = client[kQueue][client[kRunningIdx]] + const headersTimeout = request.headersTimeout != null + ? request.headersTimeout + : client[kHeadersTimeout] + socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) + } + } + } +} + +// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 +function shouldSendContentLength (method) { + return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT' +} + +function writeH1 (client, request) { + const { method, path, host, upgrade, blocking, reset } = request + + let { body, headers, contentLength } = request + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' || + method === 'QUERY' || + method === 'PROPFIND' || + method === 'PROPPATCH' + ) + + if (util.isFormDataLike(body)) { + if (!extractBody) { + extractBody = (__nccwpck_require__(4492).extractBody) + } + + const [bodyStream, contentType] = extractBody(body) + if (request.contentType == null) { + headers.push('content-type', contentType) + } + body = bodyStream.stream + contentLength = bodyStream.length + } else if (util.isBlobLike(body) && request.contentType == null && body.type) { + headers.push('content-type', body.type) + } + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + const bodyLength = util.bodyLength(body) + + contentLength = bodyLength ?? contentLength + + if (contentLength === null) { + contentLength = request.contentLength + } + + if (contentLength === 0 && !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + util.errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + const socket = client[kSocket] + + const abort = (err) => { + if (request.aborted || request.completed) { + return + } + + util.errorRequest(client, request, err || new RequestAbortedError()) + + util.destroy(body) + util.destroy(socket, new InformationalError('aborted')) + } + + try { + request.onConnect(abort) + } catch (err) { + util.errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + if (method === 'HEAD') { + // https://github.com/mcollina/undici/issues/258 + // Close after a HEAD request to interop with misbehaving servers + // that may send a body in the response. + + socket[kReset] = true + } + + if (upgrade || method === 'CONNECT') { + // On CONNECT or upgrade, block pipeline from dispatching further + // requests on this connection. + + socket[kReset] = true + } + + if (reset != null) { + socket[kReset] = reset + } + + if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { + socket[kReset] = true + } + + if (blocking) { + socket[kBlocking] = true + } + + let header = `${method} ${path} HTTP/1.1\r\n` + + if (typeof host === 'string') { + header += `host: ${host}\r\n` + } else { + header += client[kHostHeader] + } + + if (upgrade) { + header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` + } else if (client[kPipelining] && !socket[kReset]) { + header += 'connection: keep-alive\r\n' + } else { + header += 'connection: close\r\n' + } + + if (Array.isArray(headers)) { + for (let n = 0; n < headers.length; n += 2) { + const key = headers[n + 0] + const val = headers[n + 1] + + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + header += `${key}: ${val[i]}\r\n` + } + } else { + header += `${key}: ${val}\r\n` + } + } + } + + if (channels.sendHeaders.hasSubscribers) { + channels.sendHeaders.publish({ request, headers: header, socket }) + } + + /* istanbul ignore else: assertion */ + if (!body || bodyLength === 0) { + writeBuffer(abort, null, client, request, socket, contentLength, header, expectsPayload) + } else if (util.isBuffer(body)) { + writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable(abort, body.stream(), client, request, socket, contentLength, header, expectsPayload) + } else { + writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) + } + } else if (util.isStream(body)) { + writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) + } else if (util.isIterable(body)) { + writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) + } else { + assert(false) + } + + return true +} + +function writeStream (abort, body, client, request, socket, contentLength, header, expectsPayload) { + assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') + + let finished = false + + const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }) + + const onData = function (chunk) { + if (finished) { + return + } + + try { + if (!writer.write(chunk) && this.pause) { + this.pause() + } + } catch (err) { + util.destroy(this, err) + } + } + const onDrain = function () { + if (finished) { + return + } + + if (body.resume) { + body.resume() + } + } + const onClose = function () { + // 'close' might be emitted *before* 'error' for + // broken streams. Wait a tick to avoid this case. + queueMicrotask(() => { + // It's only safe to remove 'error' listener after + // 'close'. + body.removeListener('error', onFinished) + }) + + if (!finished) { + const err = new RequestAbortedError() + queueMicrotask(() => onFinished(err)) + } + } + const onFinished = function (err) { + if (finished) { + return + } + + finished = true + + assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1)) + + socket + .off('drain', onDrain) + .off('error', onFinished) + + body + .removeListener('data', onData) + .removeListener('end', onFinished) + .removeListener('close', onClose) + + if (!err) { + try { + writer.end() + } catch (er) { + err = er + } + } + + writer.destroy(err) + + if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { + util.destroy(body, err) + } else { + util.destroy(body) + } + } + + body + .on('data', onData) + .on('end', onFinished) + .on('error', onFinished) + .on('close', onClose) + + if (body.resume) { + body.resume() + } + + socket + .on('drain', onDrain) + .on('error', onFinished) + + if (body.errorEmitted ?? body.errored) { + setImmediate(() => onFinished(body.errored)) + } else if (body.endEmitted ?? body.readableEnded) { + setImmediate(() => onFinished(null)) + } + + if (body.closeEmitted ?? body.closed) { + setImmediate(onClose) + } +} + +function writeBuffer (abort, body, client, request, socket, contentLength, header, expectsPayload) { + try { + if (!body) { + if (contentLength === 0) { + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + assert(contentLength === null, 'no body must not have content length') + socket.write(`${header}\r\n`, 'latin1') + } + } else if (util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(body) + socket.uncork() + request.onBodySent(body) + + if (!expectsPayload && request.reset !== false) { + socket[kReset] = true + } + } + request.onRequestSent() + + client[kResume]() + } catch (err) { + abort(err) + } +} + +async function writeBlob (abort, body, client, request, socket, contentLength, header, expectsPayload) { + assert(contentLength === body.size, 'blob body must have content length') + + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError() + } + + const buffer = Buffer.from(await body.arrayBuffer()) + + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(buffer) + socket.uncork() + + request.onBodySent(buffer) + request.onRequestSent() + + if (!expectsPayload && request.reset !== false) { + socket[kReset] = true + } + + client[kResume]() + } catch (err) { + abort(err) + } +} + +async function writeIterable (abort, body, client, request, socket, contentLength, header, expectsPayload) { + assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') + + let callback = null + function onDrain () { + if (callback) { + const cb = callback + callback = null + cb() + } + } + + const waitForDrain = () => new Promise((resolve, reject) => { + assert(callback === null) + + if (socket[kError]) { + reject(socket[kError]) + } else { + callback = resolve + } + }) + + socket + .on('close', onDrain) + .on('drain', onDrain) + + const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }) + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + if (!writer.write(chunk)) { + await waitForDrain() + } + } + + writer.end() + } catch (err) { + writer.destroy(err) + } finally { + socket + .off('close', onDrain) + .off('drain', onDrain) + } +} + +class AsyncWriter { + constructor ({ abort, socket, request, contentLength, client, expectsPayload, header }) { + this.socket = socket + this.request = request + this.contentLength = contentLength + this.client = client + this.bytesWritten = 0 + this.expectsPayload = expectsPayload + this.header = header + this.abort = abort + + socket[kWriting] = true + } + + write (chunk) { + const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return false + } + + const len = Buffer.byteLength(chunk) + if (!len) { + return true + } + + // We should defer writing chunks. + if (contentLength !== null && bytesWritten + len > contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + socket.cork() + + if (bytesWritten === 0) { + if (!expectsPayload && request.reset !== false) { + socket[kReset] = true + } + + if (contentLength === null) { + socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') + } else { + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + } + } + + if (contentLength === null) { + socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') + } + + this.bytesWritten += len + + const ret = socket.write(chunk) + + socket.uncork() + + request.onBodySent(chunk) + + if (!ret) { + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + } + + return ret + } + + end () { + const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this + request.onRequestSent() + + socket[kWriting] = false + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return + } + + if (bytesWritten === 0) { + if (expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD send a Content-Length in a request message when + // no Transfer-Encoding is sent and the request method defines a meaning + // for an enclosed payload body. + + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + socket.write(`${header}\r\n`, 'latin1') + } + } else if (contentLength === null) { + socket.write('\r\n0\r\n\r\n', 'latin1') + } + + if (contentLength !== null && bytesWritten !== contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } else { + process.emitWarning(new RequestContentLengthMismatchError()) + } + } + + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + + client[kResume]() + } + + destroy (err) { + const { socket, client, abort } = this + + socket[kWriting] = false + + if (err) { + assert(client[kRunning] <= 1, 'pipeline should only contain this request') + abort(err) + } + } +} + +module.exports = connectH1 + + +/***/ }), + +/***/ 8788: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { pipeline } = __nccwpck_require__(7075) +const util = __nccwpck_require__(3440) +const { + RequestContentLengthMismatchError, + RequestAbortedError, + SocketError, + InformationalError +} = __nccwpck_require__(8707) +const { + kUrl, + kReset, + kClient, + kRunning, + kPending, + kQueue, + kPendingIdx, + kRunningIdx, + kError, + kSocket, + kStrictContentLength, + kOnError, + kMaxConcurrentStreams, + kHTTP2Session, + kResume, + kSize, + kHTTPContext +} = __nccwpck_require__(6443) + +const kOpenStreams = Symbol('open streams') + +let extractBody + +// Experimental +let h2ExperimentalWarned = false + +/** @type {import('http2')} */ +let http2 +try { + http2 = __nccwpck_require__(2467) +} catch { + // @ts-ignore + http2 = { constants: {} } +} + +const { + constants: { + HTTP2_HEADER_AUTHORITY, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_CONTENT_LENGTH, + HTTP2_HEADER_EXPECT, + HTTP2_HEADER_STATUS + } +} = http2 + +function parseH2Headers (headers) { + const result = [] + + for (const [name, value] of Object.entries(headers)) { + // h2 may concat the header value by array + // e.g. Set-Cookie + if (Array.isArray(value)) { + for (const subvalue of value) { + // we need to provide each header value of header name + // because the headers handler expect name-value pair + result.push(Buffer.from(name), Buffer.from(subvalue)) + } + } else { + result.push(Buffer.from(name), Buffer.from(value)) + } + } + + return result +} + +async function connectH2 (client, socket) { + client[kSocket] = socket + + if (!h2ExperimentalWarned) { + h2ExperimentalWarned = true + process.emitWarning('H2 support is experimental, expect them to change at any time.', { + code: 'UNDICI-H2' + }) + } + + const session = http2.connect(client[kUrl], { + createConnection: () => socket, + peerMaxConcurrentStreams: client[kMaxConcurrentStreams] + }) + + session[kOpenStreams] = 0 + session[kClient] = client + session[kSocket] = socket + + util.addListener(session, 'error', onHttp2SessionError) + util.addListener(session, 'frameError', onHttp2FrameError) + util.addListener(session, 'end', onHttp2SessionEnd) + util.addListener(session, 'goaway', onHTTP2GoAway) + util.addListener(session, 'close', function () { + const { [kClient]: client } = this + const { [kSocket]: socket } = client + + const err = this[kSocket][kError] || this[kError] || new SocketError('closed', util.getSocketInfo(socket)) + + client[kHTTP2Session] = null + + if (client.destroyed) { + assert(client[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + util.errorRequest(client, request, err) + } + } + }) + + session.unref() + + client[kHTTP2Session] = session + socket[kHTTP2Session] = session + + util.addListener(socket, 'error', function (err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + this[kError] = err + + this[kClient][kOnError](err) + }) + + util.addListener(socket, 'end', function () { + util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) + }) + + util.addListener(socket, 'close', function () { + const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) + + client[kSocket] = null + + if (this[kHTTP2Session] != null) { + this[kHTTP2Session].destroy(err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', client[kUrl], [client], err) + + client[kResume]() + }) + + let closed = false + socket.on('close', () => { + closed = true + }) + + return { + version: 'h2', + defaultPipelining: Infinity, + write (...args) { + return writeH2(client, ...args) + }, + resume () { + resumeH2(client) + }, + destroy (err, callback) { + if (closed) { + queueMicrotask(callback) + } else { + // Destroying the socket will trigger the session close + socket.destroy(err).on('close', callback) + } + }, + get destroyed () { + return socket.destroyed + }, + busy () { + return false + } + } +} + +function resumeH2 (client) { + const socket = client[kSocket] + + if (socket?.destroyed === false) { + if (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0) { + socket.unref() + client[kHTTP2Session].unref() + } else { + socket.ref() + client[kHTTP2Session].ref() + } + } +} + +function onHttp2SessionError (err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + this[kSocket][kError] = err + this[kClient][kOnError](err) +} + +function onHttp2FrameError (type, code, id) { + if (id === 0) { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + this[kSocket][kError] = err + this[kClient][kOnError](err) + } +} + +function onHttp2SessionEnd () { + const err = new SocketError('other side closed', util.getSocketInfo(this[kSocket])) + this.destroy(err) + util.destroy(this[kSocket], err) +} + +/** + * This is the root cause of #3011 + * We need to handle GOAWAY frames properly, and trigger the session close + * along with the socket right away + */ +function onHTTP2GoAway (code) { + // We cannot recover, so best to close the session and the socket + const err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util.getSocketInfo(this)) + const client = this[kClient] + + client[kSocket] = null + client[kHTTPContext] = null + + if (this[kHTTP2Session] != null) { + this[kHTTP2Session].destroy(err) + this[kHTTP2Session] = null + } + + util.destroy(this[kSocket], err) + + // Fail head of pipeline. + if (client[kRunningIdx] < client[kQueue].length) { + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + util.errorRequest(client, request, err) + client[kPendingIdx] = client[kRunningIdx] + } + + assert(client[kRunning] === 0) + + client.emit('disconnect', client[kUrl], [client], err) + + client[kResume]() +} + +// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2 +function shouldSendContentLength (method) { + return method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS' && method !== 'TRACE' && method !== 'CONNECT' +} + +function writeH2 (client, request) { + const session = client[kHTTP2Session] + const { method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request + let { body } = request + + if (upgrade) { + util.errorRequest(client, request, new Error('Upgrade not supported for H2')) + return false + } + + const headers = {} + for (let n = 0; n < reqHeaders.length; n += 2) { + const key = reqHeaders[n + 0] + const val = reqHeaders[n + 1] + + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + if (headers[key]) { + headers[key] += `,${val[i]}` + } else { + headers[key] = val[i] + } + } + } else { + headers[key] = val + } + } + + /** @type {import('node:http2').ClientHttp2Stream} */ + let stream + + const { hostname, port } = client[kUrl] + + headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ''}` + headers[HTTP2_HEADER_METHOD] = method + + const abort = (err) => { + if (request.aborted || request.completed) { + return + } + + err = err || new RequestAbortedError() + + util.errorRequest(client, request, err) + + if (stream != null) { + util.destroy(stream, err) + } + + // We do not destroy the socket as we can continue using the session + // the stream get's destroyed and the session remains to create new streams + util.destroy(body, err) + client[kQueue][client[kRunningIdx]++] = null + client[kResume]() + } + + try { + // We are already connected, streams are pending. + // We can call on connect, and wait for abort + request.onConnect(abort) + } catch (err) { + util.errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + if (method === 'CONNECT') { + session.ref() + // We are already connected, streams are pending, first request + // will create a new stream. We trigger a request to create the stream and wait until + // `ready` event is triggered + // We disabled endStream to allow the user to write to the stream + stream = session.request(headers, { endStream: false, signal }) + + if (stream.id && !stream.pending) { + request.onUpgrade(null, null, stream) + ++session[kOpenStreams] + client[kQueue][client[kRunningIdx]++] = null + } else { + stream.once('ready', () => { + request.onUpgrade(null, null, stream) + ++session[kOpenStreams] + client[kQueue][client[kRunningIdx]++] = null + }) + } + + stream.once('close', () => { + session[kOpenStreams] -= 1 + if (session[kOpenStreams] === 0) session.unref() + }) + + return true + } + + // https://tools.ietf.org/html/rfc7540#section-8.3 + // :path and :scheme headers must be omitted when sending CONNECT + + headers[HTTP2_HEADER_PATH] = path + headers[HTTP2_HEADER_SCHEME] = 'https' + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' + ) + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + let contentLength = util.bodyLength(body) + + if (util.isFormDataLike(body)) { + extractBody ??= (__nccwpck_require__(4492).extractBody) + + const [bodyStream, contentType] = extractBody(body) + headers['content-type'] = contentType + + body = bodyStream.stream + contentLength = bodyStream.length + } + + if (contentLength == null) { + contentLength = request.contentLength + } + + if (contentLength === 0 || !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + // https://github.com/nodejs/undici/issues/2046 + // A user agent may send a Content-Length header with 0 value, this should be allowed. + if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + util.errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + if (contentLength != null) { + assert(body, 'no body must not have content length') + headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` + } + + session.ref() + + const shouldEndStream = method === 'GET' || method === 'HEAD' || body === null + if (expectContinue) { + headers[HTTP2_HEADER_EXPECT] = '100-continue' + stream = session.request(headers, { endStream: shouldEndStream, signal }) + + stream.once('continue', writeBodyH2) + } else { + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }) + writeBodyH2() + } + + // Increment counter as we have new streams open + ++session[kOpenStreams] + + stream.once('response', headers => { + const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers + request.onResponseStarted() + + // Due to the stream nature, it is possible we face a race condition + // where the stream has been assigned, but the request has been aborted + // the request remains in-flight and headers hasn't been received yet + // for those scenarios, best effort is to destroy the stream immediately + // as there's no value to keep it open. + if (request.aborted) { + const err = new RequestAbortedError() + util.errorRequest(client, request, err) + util.destroy(stream, err) + return + } + + if (request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), '') === false) { + stream.pause() + } + + stream.on('data', (chunk) => { + if (request.onData(chunk) === false) { + stream.pause() + } + }) + }) + + stream.once('end', () => { + // When state is null, it means we haven't consumed body and the stream still do not have + // a state. + // Present specially when using pipeline or stream + if (stream.state?.state == null || stream.state.state < 6) { + request.onComplete([]) + } + + if (session[kOpenStreams] === 0) { + // Stream is closed or half-closed-remote (6), decrement counter and cleanup + // It does not have sense to continue working with the stream as we do not + // have yet RST_STREAM support on client-side + + session.unref() + } + + abort(new InformationalError('HTTP/2: stream half-closed (remote)')) + client[kQueue][client[kRunningIdx]++] = null + client[kPendingIdx] = client[kRunningIdx] + client[kResume]() + }) + + stream.once('close', () => { + session[kOpenStreams] -= 1 + if (session[kOpenStreams] === 0) { + session.unref() + } + }) + + stream.once('error', function (err) { + abort(err) + }) + + stream.once('frameError', (type, code) => { + abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)) + }) + + // stream.on('aborted', () => { + // // TODO(HTTP/2): Support aborted + // }) + + // stream.on('timeout', () => { + // // TODO(HTTP/2): Support timeout + // }) + + // stream.on('push', headers => { + // // TODO(HTTP/2): Support push + // }) + + // stream.on('trailers', headers => { + // // TODO(HTTP/2): Support trailers + // }) + + return true + + function writeBodyH2 () { + /* istanbul ignore else: assertion */ + if (!body || contentLength === 0) { + writeBuffer( + abort, + stream, + null, + client, + request, + client[kSocket], + contentLength, + expectsPayload + ) + } else if (util.isBuffer(body)) { + writeBuffer( + abort, + stream, + body, + client, + request, + client[kSocket], + contentLength, + expectsPayload + ) + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable( + abort, + stream, + body.stream(), + client, + request, + client[kSocket], + contentLength, + expectsPayload + ) + } else { + writeBlob( + abort, + stream, + body, + client, + request, + client[kSocket], + contentLength, + expectsPayload + ) + } + } else if (util.isStream(body)) { + writeStream( + abort, + client[kSocket], + expectsPayload, + stream, + body, + client, + request, + contentLength + ) + } else if (util.isIterable(body)) { + writeIterable( + abort, + stream, + body, + client, + request, + client[kSocket], + contentLength, + expectsPayload + ) + } else { + assert(false) + } + } +} + +function writeBuffer (abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { + try { + if (body != null && util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + h2stream.cork() + h2stream.write(body) + h2stream.uncork() + h2stream.end() + + request.onBodySent(body) + } + + if (!expectsPayload) { + socket[kReset] = true + } + + request.onRequestSent() + client[kResume]() + } catch (error) { + abort(error) + } +} + +function writeStream (abort, socket, expectsPayload, h2stream, body, client, request, contentLength) { + assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') + + // For HTTP/2, is enough to pipe the stream + const pipe = pipeline( + body, + h2stream, + (err) => { + if (err) { + util.destroy(pipe, err) + abort(err) + } else { + util.removeAllListeners(pipe) + request.onRequestSent() + + if (!expectsPayload) { + socket[kReset] = true + } + + client[kResume]() + } + } + ) + + util.addListener(pipe, 'data', onPipeData) + + function onPipeData (chunk) { + request.onBodySent(chunk) + } +} + +async function writeBlob (abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { + assert(contentLength === body.size, 'blob body must have content length') + + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError() + } + + const buffer = Buffer.from(await body.arrayBuffer()) + + h2stream.cork() + h2stream.write(buffer) + h2stream.uncork() + h2stream.end() + + request.onBodySent(buffer) + request.onRequestSent() + + if (!expectsPayload) { + socket[kReset] = true + } + + client[kResume]() + } catch (err) { + abort(err) + } +} + +async function writeIterable (abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { + assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') + + let callback = null + function onDrain () { + if (callback) { + const cb = callback + callback = null + cb() + } + } + + const waitForDrain = () => new Promise((resolve, reject) => { + assert(callback === null) + + if (socket[kError]) { + reject(socket[kError]) + } else { + callback = resolve + } + }) + + h2stream + .on('close', onDrain) + .on('drain', onDrain) + + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + const res = h2stream.write(chunk) + request.onBodySent(chunk) + if (!res) { + await waitForDrain() + } + } + + h2stream.end() + + request.onRequestSent() + + if (!expectsPayload) { + socket[kReset] = true + } + + client[kResume]() + } catch (err) { + abort(err) + } finally { + h2stream + .off('close', onDrain) + .off('drain', onDrain) + } +} + +module.exports = connectH2 + + +/***/ }), + +/***/ 3701: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// @ts-check + + + +const assert = __nccwpck_require__(4589) +const net = __nccwpck_require__(7030) +const http = __nccwpck_require__(7067) +const util = __nccwpck_require__(3440) +const { channels } = __nccwpck_require__(2414) +const Request = __nccwpck_require__(4655) +const DispatcherBase = __nccwpck_require__(1841) +const { + InvalidArgumentError, + InformationalError, + ClientDestroyedError +} = __nccwpck_require__(8707) +const buildConnector = __nccwpck_require__(9136) +const { + kUrl, + kServerName, + kClient, + kBusy, + kConnect, + kResuming, + kRunning, + kPending, + kSize, + kQueue, + kConnected, + kConnecting, + kNeedDrain, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kConnector, + kMaxRedirections, + kMaxRequests, + kCounter, + kClose, + kDestroy, + kDispatch, + kInterceptors, + kLocalAddress, + kMaxResponseSize, + kOnError, + kHTTPContext, + kMaxConcurrentStreams, + kResume +} = __nccwpck_require__(6443) +const connectH1 = __nccwpck_require__(637) +const connectH2 = __nccwpck_require__(8788) +let deprecatedInterceptorWarned = false + +const kClosedResolve = Symbol('kClosedResolve') + +const noop = () => {} + +function getPipelining (client) { + return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1 +} + +/** + * @type {import('../../types/client.js').default} + */ +class Client extends DispatcherBase { + /** + * + * @param {string|URL} url + * @param {import('../../types/client.js').Client.Options} options + */ + constructor (url, { + interceptors, + maxHeaderSize, + headersTimeout, + socketTimeout, + requestTimeout, + connectTimeout, + bodyTimeout, + idleTimeout, + keepAlive, + keepAliveTimeout, + maxKeepAliveTimeout, + keepAliveMaxTimeout, + keepAliveTimeoutThreshold, + socketPath, + pipelining, + tls, + strictContentLength, + maxCachedSessions, + maxRedirections, + connect, + maxRequestsPerClient, + localAddress, + maxResponseSize, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + // h2 + maxConcurrentStreams, + allowH2, + webSocket + } = {}) { + super({ webSocket }) + + if (keepAlive !== undefined) { + throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') + } + + if (socketTimeout !== undefined) { + throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead') + } + + if (requestTimeout !== undefined) { + throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead') + } + + if (idleTimeout !== undefined) { + throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead') + } + + if (maxKeepAliveTimeout !== undefined) { + throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead') + } + + if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { + throw new InvalidArgumentError('invalid maxHeaderSize') + } + + if (socketPath != null && typeof socketPath !== 'string') { + throw new InvalidArgumentError('invalid socketPath') + } + + if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { + throw new InvalidArgumentError('invalid connectTimeout') + } + + if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveTimeout') + } + + if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveMaxTimeout') + } + + if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { + throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') + } + + if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('headersTimeout must be a positive integer or zero') + } + + if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { + throw new InvalidArgumentError('maxRequestsPerClient must be a positive number') + } + + if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) { + throw new InvalidArgumentError('localAddress must be valid string IP address') + } + + if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { + throw new InvalidArgumentError('maxResponseSize must be a positive number') + } + + if ( + autoSelectFamilyAttemptTimeout != null && + (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1) + ) { + throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number') + } + + // h2 + if (allowH2 != null && typeof allowH2 !== 'boolean') { + throw new InvalidArgumentError('allowH2 must be a valid boolean value') + } + + if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) { + throw new InvalidArgumentError('maxConcurrentStreams must be a positive integer, greater than 0') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + if (interceptors?.Client && Array.isArray(interceptors.Client)) { + this[kInterceptors] = interceptors.Client + if (!deprecatedInterceptorWarned) { + deprecatedInterceptorWarned = true + process.emitWarning('Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.', { + code: 'UNDICI-CLIENT-INTERCEPTOR-DEPRECATED' + }) + } + } else { + this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })] + } + + this[kUrl] = util.parseOrigin(url) + this[kConnector] = connect + this[kPipelining] = pipelining != null ? pipelining : 1 + this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize + this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout + this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout + this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 2e3 : keepAliveTimeoutThreshold + this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] + this[kServerName] = null + this[kLocalAddress] = localAddress != null ? localAddress : null + this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` + this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 + this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3 + this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength + this[kMaxRedirections] = maxRedirections + this[kMaxRequests] = maxRequestsPerClient + this[kClosedResolve] = null + this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 + this[kMaxConcurrentStreams] = maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server + this[kHTTPContext] = null + + // kQueue is built up of 3 sections separated by + // the kRunningIdx and kPendingIdx indices. + // | complete | running | pending | + // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length + // kRunningIdx points to the first running element. + // kPendingIdx points to the first pending element. + // This implements a fast queue with an amortized + // time of O(1). + + this[kQueue] = [] + this[kRunningIdx] = 0 + this[kPendingIdx] = 0 + + this[kResume] = (sync) => resume(this, sync) + this[kOnError] = (err) => onError(this, err) + } + + get pipelining () { + return this[kPipelining] + } + + set pipelining (value) { + this[kPipelining] = value + this[kResume](true) + } + + get [kPending] () { + return this[kQueue].length - this[kPendingIdx] + } + + get [kRunning] () { + return this[kPendingIdx] - this[kRunningIdx] + } + + get [kSize] () { + return this[kQueue].length - this[kRunningIdx] + } + + get [kConnected] () { + return !!this[kHTTPContext] && !this[kConnecting] && !this[kHTTPContext].destroyed + } + + get [kBusy] () { + return Boolean( + this[kHTTPContext]?.busy(null) || + (this[kSize] >= (getPipelining(this) || 1)) || + this[kPending] > 0 + ) + } + + /* istanbul ignore: only used for test */ + [kConnect] (cb) { + connect(this) + this.once('connect', cb) + } + + [kDispatch] (opts, handler) { + const origin = opts.origin || this[kUrl].origin + const request = new Request(origin, opts, handler) + + this[kQueue].push(request) + if (this[kResuming]) { + // Do nothing. + } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { + // Wait a tick in case stream/iterator is ended in the same tick. + this[kResuming] = 1 + queueMicrotask(() => resume(this)) + } else { + this[kResume](true) + } + + if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { + this[kNeedDrain] = 2 + } + + return this[kNeedDrain] < 2 + } + + async [kClose] () { + // TODO: for H2 we need to gracefully flush the remaining enqueued + // request and close each stream. + return new Promise((resolve) => { + if (this[kSize]) { + this[kClosedResolve] = resolve + } else { + resolve(null) + } + }) + } + + async [kDestroy] (err) { + return new Promise((resolve) => { + const requests = this[kQueue].splice(this[kPendingIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + util.errorRequest(this, request, err) + } + + const callback = () => { + if (this[kClosedResolve]) { + // TODO (fix): Should we error here with ClientDestroyedError? + this[kClosedResolve]() + this[kClosedResolve] = null + } + resolve(null) + } + + if (this[kHTTPContext]) { + this[kHTTPContext].destroy(err, callback) + this[kHTTPContext] = null + } else { + queueMicrotask(callback) + } + + this[kResume]() + }) + } +} + +const createRedirectInterceptor = __nccwpck_require__(5092) + +function onError (client, err) { + if ( + client[kRunning] === 0 && + err.code !== 'UND_ERR_INFO' && + err.code !== 'UND_ERR_SOCKET' + ) { + // Error is not caused by running request and not a recoverable + // socket error. + + assert(client[kPendingIdx] === client[kRunningIdx]) + + const requests = client[kQueue].splice(client[kRunningIdx]) + + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + util.errorRequest(client, request, err) + } + assert(client[kSize] === 0) + } +} + +/** + * @param {Client} client + * @returns + */ +async function connect (client) { + assert(!client[kConnecting]) + assert(!client[kHTTPContext]) + + let { host, hostname, protocol, port } = client[kUrl] + + // Resolve ipv6 + if (hostname[0] === '[') { + const idx = hostname.indexOf(']') + + assert(idx !== -1) + const ip = hostname.substring(1, idx) + + assert(net.isIP(ip)) + hostname = ip + } + + client[kConnecting] = true + + if (channels.beforeConnect.hasSubscribers) { + channels.beforeConnect.publish({ + connectParams: { + host, + hostname, + protocol, + port, + version: client[kHTTPContext]?.version, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector] + }) + } + + try { + const socket = await new Promise((resolve, reject) => { + client[kConnector]({ + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, (err, socket) => { + if (err) { + reject(err) + } else { + resolve(socket) + } + }) + }) + + if (client.destroyed) { + util.destroy(socket.on('error', noop), new ClientDestroyedError()) + return + } + + assert(socket) + + try { + client[kHTTPContext] = socket.alpnProtocol === 'h2' + ? await connectH2(client, socket) + : await connectH1(client, socket) + } catch (err) { + socket.destroy().on('error', noop) + throw err + } + + client[kConnecting] = false + + socket[kCounter] = 0 + socket[kMaxRequests] = client[kMaxRequests] + socket[kClient] = client + socket[kError] = null + + if (channels.connected.hasSubscribers) { + channels.connected.publish({ + connectParams: { + host, + hostname, + protocol, + port, + version: client[kHTTPContext]?.version, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + socket + }) + } + client.emit('connect', client[kUrl], [client]) + } catch (err) { + if (client.destroyed) { + return + } + + client[kConnecting] = false + + if (channels.connectError.hasSubscribers) { + channels.connectError.publish({ + connectParams: { + host, + hostname, + protocol, + port, + version: client[kHTTPContext]?.version, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + error: err + }) + } + + if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + assert(client[kRunning] === 0) + while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { + const request = client[kQueue][client[kPendingIdx]++] + util.errorRequest(client, request, err) + } + } else { + onError(client, err) + } + + client.emit('connectionError', client[kUrl], [client], err) + } + + client[kResume]() +} + +function emitDrain (client) { + client[kNeedDrain] = 0 + client.emit('drain', client[kUrl], [client]) +} + +function resume (client, sync) { + if (client[kResuming] === 2) { + return + } + + client[kResuming] = 2 + + _resume(client, sync) + client[kResuming] = 0 + + if (client[kRunningIdx] > 256) { + client[kQueue].splice(0, client[kRunningIdx]) + client[kPendingIdx] -= client[kRunningIdx] + client[kRunningIdx] = 0 + } +} + +function _resume (client, sync) { + while (true) { + if (client.destroyed) { + assert(client[kPending] === 0) + return + } + + if (client[kClosedResolve] && !client[kSize]) { + client[kClosedResolve]() + client[kClosedResolve] = null + return + } + + if (client[kHTTPContext]) { + client[kHTTPContext].resume() + } + + if (client[kBusy]) { + client[kNeedDrain] = 2 + } else if (client[kNeedDrain] === 2) { + if (sync) { + client[kNeedDrain] = 1 + queueMicrotask(() => emitDrain(client)) + } else { + emitDrain(client) + } + continue + } + + if (client[kPending] === 0) { + return + } + + if (client[kRunning] >= (getPipelining(client) || 1)) { + return + } + + const request = client[kQueue][client[kPendingIdx]] + + if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) { + if (client[kRunning] > 0) { + return + } + + client[kServerName] = request.servername + client[kHTTPContext]?.destroy(new InformationalError('servername changed'), () => { + client[kHTTPContext] = null + resume(client) + }) + } + + if (client[kConnecting]) { + return + } + + if (!client[kHTTPContext]) { + connect(client) + return + } + + if (client[kHTTPContext].destroyed) { + return + } + + if (client[kHTTPContext].busy(request)) { + return + } + + if (!request.aborted && client[kHTTPContext].write(request)) { + client[kPendingIdx]++ + } else { + client[kQueue].splice(client[kPendingIdx], 1) + } + } +} + +module.exports = Client + + +/***/ }), + +/***/ 1841: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Dispatcher = __nccwpck_require__(883) +const { + ClientDestroyedError, + ClientClosedError, + InvalidArgumentError +} = __nccwpck_require__(8707) +const { kDestroy, kClose, kClosed, kDestroyed, kDispatch, kInterceptors } = __nccwpck_require__(6443) + +const kOnDestroyed = Symbol('onDestroyed') +const kOnClosed = Symbol('onClosed') +const kInterceptedDispatch = Symbol('Intercepted Dispatch') +const kWebSocketOptions = Symbol('webSocketOptions') + +class DispatcherBase extends Dispatcher { + constructor (opts) { + super() + + this[kDestroyed] = false + this[kOnDestroyed] = null + this[kClosed] = false + this[kOnClosed] = [] + this[kWebSocketOptions] = opts?.webSocket ?? {} + } + + get webSocketOptions () { + return { + maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024 + } + } + + get destroyed () { + return this[kDestroyed] + } + + get closed () { + return this[kClosed] + } + + get interceptors () { + return this[kInterceptors] + } + + set interceptors (newInterceptors) { + if (newInterceptors) { + for (let i = newInterceptors.length - 1; i >= 0; i--) { + const interceptor = this[kInterceptors][i] + if (typeof interceptor !== 'function') { + throw new InvalidArgumentError('interceptor must be an function') + } + } + } + + this[kInterceptors] = newInterceptors + } + + close (callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.close((err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + queueMicrotask(() => callback(new ClientDestroyedError(), null)) + return + } + + if (this[kClosed]) { + if (this[kOnClosed]) { + this[kOnClosed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + this[kClosed] = true + this[kOnClosed].push(callback) + + const onClosed = () => { + const callbacks = this[kOnClosed] + this[kOnClosed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kClose]() + .then(() => this.destroy()) + .then(() => { + queueMicrotask(onClosed) + }) + } + + destroy (err, callback) { + if (typeof err === 'function') { + callback = err + err = null + } + + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.destroy(err, (err, data) => { + return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + if (this[kOnDestroyed]) { + this[kOnDestroyed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + if (!err) { + err = new ClientDestroyedError() + } + + this[kDestroyed] = true + this[kOnDestroyed] = this[kOnDestroyed] || [] + this[kOnDestroyed].push(callback) + + const onDestroyed = () => { + const callbacks = this[kOnDestroyed] + this[kOnDestroyed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kDestroy](err).then(() => { + queueMicrotask(onDestroyed) + }) + } + + [kInterceptedDispatch] (opts, handler) { + if (!this[kInterceptors] || this[kInterceptors].length === 0) { + this[kInterceptedDispatch] = this[kDispatch] + return this[kDispatch](opts, handler) + } + + let dispatch = this[kDispatch].bind(this) + for (let i = this[kInterceptors].length - 1; i >= 0; i--) { + dispatch = this[kInterceptors][i](dispatch) + } + this[kInterceptedDispatch] = dispatch + return dispatch(opts, handler) + } + + dispatch (opts, handler) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + try { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object.') + } + + if (this[kDestroyed] || this[kOnDestroyed]) { + throw new ClientDestroyedError() + } + + if (this[kClosed]) { + throw new ClientClosedError() + } + + return this[kInterceptedDispatch](opts, handler) + } catch (err) { + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + handler.onError(err) + + return false + } + } +} + +module.exports = DispatcherBase + + +/***/ }), + +/***/ 883: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const EventEmitter = __nccwpck_require__(8474) + +class Dispatcher extends EventEmitter { + dispatch () { + throw new Error('not implemented') + } + + close () { + throw new Error('not implemented') + } + + destroy () { + throw new Error('not implemented') + } + + compose (...args) { + // So we handle [interceptor1, interceptor2] or interceptor1, interceptor2, ... + const interceptors = Array.isArray(args[0]) ? args[0] : args + let dispatch = this.dispatch.bind(this) + + for (const interceptor of interceptors) { + if (interceptor == null) { + continue + } + + if (typeof interceptor !== 'function') { + throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`) + } + + dispatch = interceptor(dispatch) + + if (dispatch == null || typeof dispatch !== 'function' || dispatch.length !== 2) { + throw new TypeError('invalid interceptor') + } + } + + return new ComposedDispatcher(this, dispatch) + } +} + +class ComposedDispatcher extends Dispatcher { + #dispatcher = null + #dispatch = null + + constructor (dispatcher, dispatch) { + super() + this.#dispatcher = dispatcher + this.#dispatch = dispatch + } + + dispatch (...args) { + this.#dispatch(...args) + } + + close (...args) { + return this.#dispatcher.close(...args) + } + + destroy (...args) { + return this.#dispatcher.destroy(...args) + } +} + +module.exports = Dispatcher + + +/***/ }), + +/***/ 3137: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const DispatcherBase = __nccwpck_require__(1841) +const { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = __nccwpck_require__(6443) +const ProxyAgent = __nccwpck_require__(6672) +const Agent = __nccwpck_require__(7405) + +const DEFAULT_PORTS = { + 'http:': 80, + 'https:': 443 +} + +let experimentalWarned = false + +class EnvHttpProxyAgent extends DispatcherBase { + #noProxyValue = null + #noProxyEntries = null + #opts = null + + constructor (opts = {}) { + super() + this.#opts = opts + + if (!experimentalWarned) { + experimentalWarned = true + process.emitWarning('EnvHttpProxyAgent is experimental, expect them to change at any time.', { + code: 'UNDICI-EHPA' + }) + } + + const { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts + + this[kNoProxyAgent] = new Agent(agentOpts) + + const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY + if (HTTP_PROXY) { + this[kHttpProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTP_PROXY }) + } else { + this[kHttpProxyAgent] = this[kNoProxyAgent] + } + + const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY + if (HTTPS_PROXY) { + this[kHttpsProxyAgent] = new ProxyAgent({ ...agentOpts, uri: HTTPS_PROXY }) + } else { + this[kHttpsProxyAgent] = this[kHttpProxyAgent] + } + + this.#parseNoProxy() + } + + [kDispatch] (opts, handler) { + const url = new URL(opts.origin) + const agent = this.#getProxyAgentForUrl(url) + return agent.dispatch(opts, handler) + } + + async [kClose] () { + await this[kNoProxyAgent].close() + if (!this[kHttpProxyAgent][kClosed]) { + await this[kHttpProxyAgent].close() + } + if (!this[kHttpsProxyAgent][kClosed]) { + await this[kHttpsProxyAgent].close() + } + } + + async [kDestroy] (err) { + await this[kNoProxyAgent].destroy(err) + if (!this[kHttpProxyAgent][kDestroyed]) { + await this[kHttpProxyAgent].destroy(err) + } + if (!this[kHttpsProxyAgent][kDestroyed]) { + await this[kHttpsProxyAgent].destroy(err) + } + } + + #getProxyAgentForUrl (url) { + let { protocol, host: hostname, port } = url + + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, '').toLowerCase() + port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0 + if (!this.#shouldProxy(hostname, port)) { + return this[kNoProxyAgent] + } + if (protocol === 'https:') { + return this[kHttpsProxyAgent] + } + return this[kHttpProxyAgent] + } + + #shouldProxy (hostname, port) { + if (this.#noProxyChanged) { + this.#parseNoProxy() + } + + if (this.#noProxyEntries.length === 0) { + return true // Always proxy if NO_PROXY is not set or empty. + } + if (this.#noProxyValue === '*') { + return false // Never proxy if wildcard is set. + } + + for (let i = 0; i < this.#noProxyEntries.length; i++) { + const entry = this.#noProxyEntries[i] + if (entry.port && entry.port !== port) { + continue // Skip if ports don't match. + } + if (!/^[.*]/.test(entry.hostname)) { + // No wildcards, so don't proxy only if there is not an exact match. + if (hostname === entry.hostname) { + return false + } + } else { + // Don't proxy if the hostname ends with the no_proxy host. + if (hostname.endsWith(entry.hostname.replace(/^\*/, ''))) { + return false + } + } + } + + return true + } + + #parseNoProxy () { + const noProxyValue = this.#opts.noProxy ?? this.#noProxyEnv + const noProxySplit = noProxyValue.split(/[,\s]/) + const noProxyEntries = [] + + for (let i = 0; i < noProxySplit.length; i++) { + const entry = noProxySplit[i] + if (!entry) { + continue + } + const parsed = entry.match(/^(.+):(\d+)$/) + noProxyEntries.push({ + hostname: (parsed ? parsed[1] : entry).toLowerCase(), + port: parsed ? Number.parseInt(parsed[2], 10) : 0 + }) + } + + this.#noProxyValue = noProxyValue + this.#noProxyEntries = noProxyEntries + } + + get #noProxyChanged () { + if (this.#opts.noProxy !== undefined) { + return false + } + return this.#noProxyValue !== this.#noProxyEnv + } + + get #noProxyEnv () { + return process.env.no_proxy ?? process.env.NO_PROXY ?? '' + } +} + +module.exports = EnvHttpProxyAgent + + +/***/ }), + +/***/ 4660: +/***/ ((module) => { + +/* eslint-disable */ + + + +// Extracted from node/lib/internal/fixed_queue.js + +// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. +const kSize = 2048; +const kMask = kSize - 1; + +// The FixedQueue is implemented as a singly-linked list of fixed-size +// circular buffers. It looks something like this: +// +// head tail +// | | +// v v +// +-----------+ <-----\ +-----------+ <------\ +-----------+ +// | [null] | \----- | next | \------- | next | +// +-----------+ +-----------+ +-----------+ +// | item | <-- bottom | item | <-- bottom | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | bottom --> | item | +// | item | | item | | item | +// | ... | | ... | | ... | +// | item | | item | | item | +// | item | | item | | item | +// | [empty] | <-- top | item | | item | +// | [empty] | | item | | item | +// | [empty] | | [empty] | <-- top top --> | [empty] | +// +-----------+ +-----------+ +-----------+ +// +// Or, if there is only one circular buffer, it looks something +// like either of these: +// +// head tail head tail +// | | | | +// v v v v +// +-----------+ +-----------+ +// | [null] | | [null] | +// +-----------+ +-----------+ +// | [empty] | | item | +// | [empty] | | item | +// | item | <-- bottom top --> | [empty] | +// | item | | [empty] | +// | [empty] | <-- top bottom --> | item | +// | [empty] | | item | +// +-----------+ +-----------+ +// +// Adding a value means moving `top` forward by one, removing means +// moving `bottom` forward by one. After reaching the end, the queue +// wraps around. +// +// When `top === bottom` the current queue is empty and when +// `top + 1 === bottom` it's full. This wastes a single space of storage +// but allows much quicker checks. + +class FixedCircularBuffer { + constructor() { + this.bottom = 0; + this.top = 0; + this.list = new Array(kSize); + this.next = null; + } + + isEmpty() { + return this.top === this.bottom; + } + + isFull() { + return ((this.top + 1) & kMask) === this.bottom; + } + + push(data) { + this.list[this.top] = data; + this.top = (this.top + 1) & kMask; + } + + shift() { + const nextItem = this.list[this.bottom]; + if (nextItem === undefined) + return null; + this.list[this.bottom] = undefined; + this.bottom = (this.bottom + 1) & kMask; + return nextItem; + } +} + +module.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer(); + } + + isEmpty() { + return this.head.isEmpty(); + } + + push(data) { + if (this.head.isFull()) { + // Head is full: Creates a new queue, sets the old queue's `.next` to it, + // and sets it as the new main queue. + this.head = this.head.next = new FixedCircularBuffer(); + } + this.head.push(data); + } + + shift() { + const tail = this.tail; + const next = tail.shift(); + if (tail.isEmpty() && tail.next !== null) { + // If there is another queue, it forms the new tail. + this.tail = tail.next; + } + return next; + } +}; + + +/***/ }), + +/***/ 2128: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const DispatcherBase = __nccwpck_require__(1841) +const FixedQueue = __nccwpck_require__(4660) +const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __nccwpck_require__(6443) +const PoolStats = __nccwpck_require__(3246) + +const kClients = Symbol('clients') +const kNeedDrain = Symbol('needDrain') +const kQueue = Symbol('queue') +const kClosedResolve = Symbol('closed resolve') +const kOnDrain = Symbol('onDrain') +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kGetDispatcher = Symbol('get dispatcher') +const kAddClient = Symbol('add client') +const kRemoveClient = Symbol('remove client') +const kStats = Symbol('stats') + +class PoolBase extends DispatcherBase { + constructor (opts) { + super(opts) + + this[kQueue] = new FixedQueue() + this[kClients] = [] + this[kQueued] = 0 + + const pool = this + + this[kOnDrain] = function onDrain (origin, targets) { + const queue = pool[kQueue] + + let needDrain = false + + while (!needDrain) { + const item = queue.shift() + if (!item) { + break + } + pool[kQueued]-- + needDrain = !this.dispatch(item.opts, item.handler) + } + + this[kNeedDrain] = needDrain + + if (!this[kNeedDrain] && pool[kNeedDrain]) { + pool[kNeedDrain] = false + pool.emit('drain', origin, [pool, ...targets]) + } + + if (pool[kClosedResolve] && queue.isEmpty()) { + Promise + .all(pool[kClients].map(c => c.close())) + .then(pool[kClosedResolve]) + } + } + + this[kOnConnect] = (origin, targets) => { + pool.emit('connect', origin, [pool, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + pool.emit('disconnect', origin, [pool, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + pool.emit('connectionError', origin, [pool, ...targets], err) + } + + this[kStats] = new PoolStats(this) + } + + get [kBusy] () { + return this[kNeedDrain] + } + + get [kConnected] () { + return this[kClients].filter(client => client[kConnected]).length + } + + get [kFree] () { + return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length + } + + get [kPending] () { + let ret = this[kQueued] + for (const { [kPending]: pending } of this[kClients]) { + ret += pending + } + return ret + } + + get [kRunning] () { + let ret = 0 + for (const { [kRunning]: running } of this[kClients]) { + ret += running + } + return ret + } + + get [kSize] () { + let ret = this[kQueued] + for (const { [kSize]: size } of this[kClients]) { + ret += size + } + return ret + } + + get stats () { + return this[kStats] + } + + async [kClose] () { + if (this[kQueue].isEmpty()) { + await Promise.all(this[kClients].map(c => c.close())) + } else { + await new Promise((resolve) => { + this[kClosedResolve] = resolve + }) + } + } + + async [kDestroy] (err) { + while (true) { + const item = this[kQueue].shift() + if (!item) { + break + } + item.handler.onError(err) + } + + await Promise.all(this[kClients].map(c => c.destroy(err))) + } + + [kDispatch] (opts, handler) { + const dispatcher = this[kGetDispatcher]() + + if (!dispatcher) { + this[kNeedDrain] = true + this[kQueue].push({ opts, handler }) + this[kQueued]++ + } else if (!dispatcher.dispatch(opts, handler)) { + dispatcher[kNeedDrain] = true + this[kNeedDrain] = !this[kGetDispatcher]() + } + + return !this[kNeedDrain] + } + + [kAddClient] (client) { + client + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + this[kClients].push(client) + + if (this[kNeedDrain]) { + queueMicrotask(() => { + if (this[kNeedDrain]) { + this[kOnDrain](client[kUrl], [this, client]) + } + }) + } + + return this + } + + [kRemoveClient] (client) { + client.close(() => { + const idx = this[kClients].indexOf(client) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + }) + + this[kNeedDrain] = this[kClients].some(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + } +} + +module.exports = { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} + + +/***/ }), + +/***/ 3246: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __nccwpck_require__(6443) +const kPool = Symbol('pool') + +class PoolStats { + constructor (pool) { + this[kPool] = pool + } + + get connected () { + return this[kPool][kConnected] + } + + get free () { + return this[kPool][kFree] + } + + get pending () { + return this[kPool][kPending] + } + + get queued () { + return this[kPool][kQueued] + } + + get running () { + return this[kPool][kRunning] + } + + get size () { + return this[kPool][kSize] + } +} + +module.exports = PoolStats + + +/***/ }), + +/***/ 628: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kGetDispatcher +} = __nccwpck_require__(2128) +const Client = __nccwpck_require__(3701) +const { + InvalidArgumentError +} = __nccwpck_require__(8707) +const util = __nccwpck_require__(3440) +const { kUrl, kInterceptors } = __nccwpck_require__(6443) +const buildConnector = __nccwpck_require__(9136) + +const kOptions = Symbol('options') +const kConnections = Symbol('connections') +const kFactory = Symbol('factory') + +function defaultFactory (origin, opts) { + return new Client(origin, opts) +} + +class Pool extends PoolBase { + constructor (origin, { + connections, + factory = defaultFactory, + connect, + connectTimeout, + tls, + maxCachedSessions, + socketPath, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + allowH2, + ...options + } = {}) { + if (connections != null && (!Number.isFinite(connections) || connections < 0)) { + throw new InvalidArgumentError('invalid connections') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + super(options) + + this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) + ? options.interceptors.Pool + : [] + this[kConnections] = connections || null + this[kUrl] = util.parseOrigin(origin) + this[kOptions] = { ...util.deepClone(options), connect, allowH2 } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kFactory] = factory + + this.on('connectionError', (origin, targets, error) => { + // If a connection error occurs, we remove the client from the pool, + // and emit a connectionError event. They will not be re-used. + // Fixes https://github.com/nodejs/undici/issues/3895 + for (const target of targets) { + // Do not use kRemoveClient here, as it will close the client, + // but the client cannot be closed in this state. + const idx = this[kClients].indexOf(target) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + } + }) + } + + [kGetDispatcher] () { + for (const client of this[kClients]) { + if (!client[kNeedDrain]) { + return client + } + } + + if (!this[kConnections] || this[kClients].length < this[kConnections]) { + const dispatcher = this[kFactory](this[kUrl], this[kOptions]) + this[kAddClient](dispatcher) + return dispatcher + } + } +} + +module.exports = Pool + + +/***/ }), + +/***/ 6672: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(6443) +const { URL } = __nccwpck_require__(3136) +const Agent = __nccwpck_require__(7405) +const Pool = __nccwpck_require__(628) +const DispatcherBase = __nccwpck_require__(1841) +const { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = __nccwpck_require__(8707) +const buildConnector = __nccwpck_require__(9136) +const Client = __nccwpck_require__(3701) + +const kAgent = Symbol('proxy agent') +const kClient = Symbol('proxy client') +const kProxyHeaders = Symbol('proxy headers') +const kRequestTls = Symbol('request tls settings') +const kProxyTls = Symbol('proxy tls settings') +const kConnectEndpoint = Symbol('connect endpoint function') +const kTunnelProxy = Symbol('tunnel proxy') + +function defaultProtocolPort (protocol) { + return protocol === 'https:' ? 443 : 80 +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +const noop = () => {} + +function defaultAgentFactory (origin, opts) { + if (opts.connections === 1) { + return new Client(origin, opts) + } + return new Pool(origin, opts) +} + +class Http1ProxyWrapper extends DispatcherBase { + #client + + constructor (proxyUrl, { headers = {}, connect, factory }) { + super() + if (!proxyUrl) { + throw new InvalidArgumentError('Proxy URL is mandatory') + } + + this[kProxyHeaders] = headers + if (factory) { + this.#client = factory(proxyUrl, { connect }) + } else { + this.#client = new Client(proxyUrl, { connect }) + } + } + + [kDispatch] (opts, handler) { + const onHeaders = handler.onHeaders + handler.onHeaders = function (statusCode, data, resume) { + if (statusCode === 407) { + if (typeof handler.onError === 'function') { + handler.onError(new InvalidArgumentError('Proxy Authentication Required (407)')) + } + return + } + if (onHeaders) onHeaders.call(this, statusCode, data, resume) + } + + // Rewrite request as an HTTP1 Proxy request, without tunneling. + const { + origin, + path = '/', + headers = {} + } = opts + + opts.path = origin + path + + if (!('host' in headers) && !('Host' in headers)) { + const { host } = new URL(origin) + headers.host = host + } + opts.headers = { ...this[kProxyHeaders], ...headers } + + return this.#client[kDispatch](opts, handler) + } + + async [kClose] () { + return this.#client.close() + } + + async [kDestroy] (err) { + return this.#client.destroy(err) + } +} + +class ProxyAgent extends DispatcherBase { + constructor (opts) { + super() + + if (!opts || (typeof opts === 'object' && !(opts instanceof URL) && !opts.uri)) { + throw new InvalidArgumentError('Proxy uri is mandatory') + } + + const { clientFactory = defaultFactory } = opts + if (typeof clientFactory !== 'function') { + throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.') + } + + const { proxyTunnel = true } = opts + + const url = this.#getUrl(opts) + const { href, origin, port, protocol, username, password, hostname: proxyHostname } = url + + this[kProxy] = { uri: href, protocol } + this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) + ? opts.interceptors.ProxyAgent + : [] + this[kRequestTls] = opts.requestTls + this[kProxyTls] = opts.proxyTls + this[kProxyHeaders] = opts.headers || {} + this[kTunnelProxy] = proxyTunnel + + if (opts.auth && opts.token) { + throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token') + } else if (opts.auth) { + /* @deprecated in favour of opts.token */ + this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` + } else if (opts.token) { + this[kProxyHeaders]['proxy-authorization'] = opts.token + } else if (username && password) { + this[kProxyHeaders]['proxy-authorization'] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString('base64')}` + } + + const connect = buildConnector({ ...opts.proxyTls }) + this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) + + const agentFactory = opts.factory || defaultAgentFactory + const factory = (origin, options) => { + const { protocol } = new URL(origin) + if (!this[kTunnelProxy] && protocol === 'http:' && this[kProxy].protocol === 'http:') { + return new Http1ProxyWrapper(this[kProxy].uri, { + headers: this[kProxyHeaders], + connect, + factory: agentFactory + }) + } + return agentFactory(origin, options) + } + this[kClient] = clientFactory(url, { connect }) + this[kAgent] = new Agent({ + ...opts, + factory, + connect: async (opts, callback) => { + let requestedPath = opts.host + if (!opts.port) { + requestedPath += `:${defaultProtocolPort(opts.protocol)}` + } + try { + const { socket, statusCode } = await this[kClient].connect({ + origin, + port, + path: requestedPath, + signal: opts.signal, + headers: { + ...this[kProxyHeaders], + host: opts.host + }, + servername: this[kProxyTls]?.servername || proxyHostname + }) + if (statusCode !== 200) { + socket.on('error', noop).destroy() + callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)) + } + if (opts.protocol !== 'https:') { + callback(null, socket) + return + } + let servername + if (this[kRequestTls]) { + servername = this[kRequestTls].servername + } else { + servername = opts.servername + } + this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback) + } catch (err) { + if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + // Throw a custom error to avoid loop in client.js#connect + callback(new SecureProxyConnectionError(err)) + } else { + callback(err) + } + } + } + }) + } + + dispatch (opts, handler) { + const headers = buildHeaders(opts.headers) + throwIfProxyAuthIsSent(headers) + + if (headers && !('host' in headers) && !('Host' in headers)) { + const { host } = new URL(opts.origin) + headers.host = host + } + + return this[kAgent].dispatch( + { + ...opts, + headers + }, + handler + ) + } + + /** + * @param {import('../types/proxy-agent').ProxyAgent.Options | string | URL} opts + * @returns {URL} + */ + #getUrl (opts) { + if (typeof opts === 'string') { + return new URL(opts) + } else if (opts instanceof URL) { + return opts + } else { + return new URL(opts.uri) + } + } + + async [kClose] () { + await this[kAgent].close() + await this[kClient].close() + } + + async [kDestroy] () { + await this[kAgent].destroy() + await this[kClient].destroy() + } +} + +/** + * @param {string[] | Record} headers + * @returns {Record} + */ +function buildHeaders (headers) { + // When using undici.fetch, the headers list is stored + // as an array. + if (Array.isArray(headers)) { + /** @type {Record} */ + const headersPair = {} + + for (let i = 0; i < headers.length; i += 2) { + headersPair[headers[i]] = headers[i + 1] + } + + return headersPair + } + + return headers +} + +/** + * @param {Record} headers + * + * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers + * Nevertheless, it was changed and to avoid a security vulnerability by end users + * this check was created. + * It should be removed in the next major version for performance reasons + */ +function throwIfProxyAuthIsSent (headers) { + const existProxyAuth = headers && Object.keys(headers) + .find((key) => key.toLowerCase() === 'proxy-authorization') + if (existProxyAuth) { + throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor') + } +} + +module.exports = ProxyAgent + + +/***/ }), + +/***/ 50: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const Dispatcher = __nccwpck_require__(883) +const RetryHandler = __nccwpck_require__(7816) + +class RetryAgent extends Dispatcher { + #agent = null + #options = null + constructor (agent, options = {}) { + super(options) + this.#agent = agent + this.#options = options + } + + dispatch (opts, handler) { + const retry = new RetryHandler({ + ...opts, + retryOptions: this.#options + }, { + dispatch: this.#agent.dispatch.bind(this.#agent), + handler + }) + return this.#agent.dispatch(opts, retry) + } + + close () { + return this.#agent.close() + } + + destroy () { + return this.#agent.destroy() + } +} + +module.exports = RetryAgent + + +/***/ }), + +/***/ 2581: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +// We include a version number for the Dispatcher API. In case of breaking changes, +// this version number must be increased to avoid conflicts. +const globalDispatcher = Symbol.for('undici.globalDispatcher.1') +const { InvalidArgumentError } = __nccwpck_require__(8707) +const Agent = __nccwpck_require__(7405) + +if (getGlobalDispatcher() === undefined) { + setGlobalDispatcher(new Agent()) +} + +function setGlobalDispatcher (agent) { + if (!agent || typeof agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument agent must implement Agent') + } + Object.defineProperty(globalThis, globalDispatcher, { + value: agent, + writable: true, + enumerable: false, + configurable: false + }) +} + +function getGlobalDispatcher () { + return globalThis[globalDispatcher] +} + +module.exports = { + setGlobalDispatcher, + getGlobalDispatcher +} + + +/***/ }), + +/***/ 8155: +/***/ ((module) => { + + + +module.exports = class DecoratorHandler { + #handler + + constructor (handler) { + if (typeof handler !== 'object' || handler === null) { + throw new TypeError('handler must be an object') + } + this.#handler = handler + } + + onConnect (...args) { + return this.#handler.onConnect?.(...args) + } + + onError (...args) { + return this.#handler.onError?.(...args) + } + + onUpgrade (...args) { + return this.#handler.onUpgrade?.(...args) + } + + onResponseStarted (...args) { + return this.#handler.onResponseStarted?.(...args) + } + + onHeaders (...args) { + return this.#handler.onHeaders?.(...args) + } + + onData (...args) { + return this.#handler.onData?.(...args) + } + + onComplete (...args) { + return this.#handler.onComplete?.(...args) + } + + onBodySent (...args) { + return this.#handler.onBodySent?.(...args) + } +} + + +/***/ }), + +/***/ 8754: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const util = __nccwpck_require__(3440) +const { kBodyUsed } = __nccwpck_require__(6443) +const assert = __nccwpck_require__(4589) +const { InvalidArgumentError } = __nccwpck_require__(8707) +const EE = __nccwpck_require__(8474) + +const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] + +const kBody = Symbol('body') + +class BodyAsyncIterable { + constructor (body) { + this[kBody] = body + this[kBodyUsed] = false + } + + async * [Symbol.asyncIterator] () { + assert(!this[kBodyUsed], 'disturbed') + this[kBodyUsed] = true + yield * this[kBody] + } +} + +class RedirectHandler { + constructor (dispatch, maxRedirections, opts, handler) { + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + util.validateHandler(handler, opts.method, opts.upgrade) + + this.dispatch = dispatch + this.location = null + this.abort = null + this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy + this.maxRedirections = maxRedirections + this.handler = handler + this.history = [] + this.redirectionLimitReached = false + + if (util.isStream(this.opts.body)) { + // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp + // so that it can be dispatched again? + // TODO (fix): Do we need 100-expect support to provide a way to do this properly? + if (util.bodyLength(this.opts.body) === 0) { + this.opts.body + .on('data', function () { + assert(false) + }) + } + + if (typeof this.opts.body.readableDidRead !== 'boolean') { + this.opts.body[kBodyUsed] = false + EE.prototype.on.call(this.opts.body, 'data', function () { + this[kBodyUsed] = true + }) + } + } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { + // TODO (fix): We can't access ReadableStream internal state + // to determine whether or not it has been disturbed. This is just + // a workaround. + this.opts.body = new BodyAsyncIterable(this.opts.body) + } else if ( + this.opts.body && + typeof this.opts.body !== 'string' && + !ArrayBuffer.isView(this.opts.body) && + util.isIterable(this.opts.body) + ) { + // TODO: Should we allow re-using iterable if !this.opts.idempotent + // or through some other flag? + this.opts.body = new BodyAsyncIterable(this.opts.body) + } + } + + onConnect (abort) { + this.abort = abort + this.handler.onConnect(abort, { history: this.history }) + } + + onUpgrade (statusCode, headers, socket) { + this.handler.onUpgrade(statusCode, headers, socket) + } + + onError (error) { + this.handler.onError(error) + } + + onHeaders (statusCode, headers, resume, statusText) { + this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) + ? null + : parseLocation(statusCode, headers) + + if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { + if (this.request) { + this.request.abort(new Error('max redirects')) + } + + this.redirectionLimitReached = true + this.abort(new Error('max redirects')) + return + } + + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)) + } + + if (!this.location) { + return this.handler.onHeaders(statusCode, headers, resume, statusText) + } + + const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))) + const path = search ? `${pathname}${search}` : pathname + + // Remove headers referring to the original URL. + // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. + // https://tools.ietf.org/html/rfc7231#section-6.4 + this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin) + this.opts.path = path + this.opts.origin = origin + this.opts.maxRedirections = 0 + this.opts.query = null + + // https://tools.ietf.org/html/rfc7231#section-6.4.4 + // In case of HTTP 303, always replace method to be either HEAD or GET + if (statusCode === 303 && this.opts.method !== 'HEAD') { + this.opts.method = 'GET' + this.opts.body = null + } + } + + onData (chunk) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response bodies. + + Redirection is used to serve the requested resource from another URL, so it is assumes that + no body is generated (and thus can be ignored). Even though generating a body is not prohibited. + + For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually + (which means it's optional and not mandated) contain just an hyperlink to the value of + the Location response header, so the body can be ignored safely. + + For status 300, which is "Multiple Choices", the spec mentions both generating a Location + response header AND a response body with the other possible location to follow. + Since the spec explicitly chooses not to specify a format for such body and leave it to + servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. + */ + } else { + return this.handler.onData(chunk) + } + } + + onComplete (trailers) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections + and neither are useful if present. + + See comment on onData method above for more detailed information. + */ + + this.location = null + this.abort = null + + this.dispatch(this.opts, this) + } else { + this.handler.onComplete(trailers) + } + } + + onBodySent (chunk) { + if (this.handler.onBodySent) { + this.handler.onBodySent(chunk) + } + } +} + +function parseLocation (statusCode, headers) { + if (redirectableStatusCodes.indexOf(statusCode) === -1) { + return null + } + + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].length === 8 && util.headerNameToString(headers[i]) === 'location') { + return headers[i + 1] + } + } +} + +// https://tools.ietf.org/html/rfc7231#section-6.4.4 +function shouldRemoveHeader (header, removeContent, unknownOrigin) { + if (header.length === 4) { + return util.headerNameToString(header) === 'host' + } + if (removeContent && util.headerNameToString(header).startsWith('content-')) { + return true + } + if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { + const name = util.headerNameToString(header) + return name === 'authorization' || name === 'cookie' || name === 'proxy-authorization' + } + return false +} + +// https://tools.ietf.org/html/rfc7231#section-6.4 +function cleanRequestHeaders (headers, removeContent, unknownOrigin) { + const ret = [] + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { + ret.push(headers[i], headers[i + 1]) + } + } + } else if (headers && typeof headers === 'object') { + for (const key of Object.keys(headers)) { + if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { + ret.push(key, headers[key]) + } + } + } else { + assert(headers == null, 'headers must be an object or an array') + } + return ret +} + +module.exports = RedirectHandler + + +/***/ }), + +/***/ 7816: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const assert = __nccwpck_require__(4589) + +const { kRetryHandlerDefaultRetry } = __nccwpck_require__(6443) +const { RequestRetryError } = __nccwpck_require__(8707) +const { + isDisturbed, + parseHeaders, + parseRangeHeader, + wrapRequestBody +} = __nccwpck_require__(3440) + +function calculateRetryAfterHeader (retryAfter) { + const current = Date.now() + return new Date(retryAfter).getTime() - current +} + +class RetryHandler { + constructor (opts, handlers) { + const { retryOptions, ...dispatchOpts } = opts + const { + // Retry scoped + retry: retryFn, + maxRetries, + maxTimeout, + minTimeout, + timeoutFactor, + // Response scoped + methods, + errorCodes, + retryAfter, + statusCodes + } = retryOptions ?? {} + + this.dispatch = handlers.dispatch + this.handler = handlers.handler + this.opts = { ...dispatchOpts, body: wrapRequestBody(opts.body) } + this.abort = null + this.aborted = false + this.retryOpts = { + retry: retryFn ?? RetryHandler[kRetryHandlerDefaultRetry], + retryAfter: retryAfter ?? true, + maxTimeout: maxTimeout ?? 30 * 1000, // 30s, + minTimeout: minTimeout ?? 500, // .5s + timeoutFactor: timeoutFactor ?? 2, + maxRetries: maxRetries ?? 5, + // What errors we should retry + methods: methods ?? ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE', 'TRACE'], + // Indicates which errors to retry + statusCodes: statusCodes ?? [500, 502, 503, 504, 429], + // List of errors to retry + errorCodes: errorCodes ?? [ + 'ECONNRESET', + 'ECONNREFUSED', + 'ENOTFOUND', + 'ENETDOWN', + 'ENETUNREACH', + 'EHOSTDOWN', + 'EHOSTUNREACH', + 'EPIPE', + 'UND_ERR_SOCKET' + ] + } + + this.retryCount = 0 + this.retryCountCheckpoint = 0 + this.start = 0 + this.end = null + this.etag = null + this.resume = null + + // Handle possible onConnect duplication + this.handler.onConnect(reason => { + this.aborted = true + if (this.abort) { + this.abort(reason) + } else { + this.reason = reason + } + }) + } + + onRequestSent () { + if (this.handler.onRequestSent) { + this.handler.onRequestSent() + } + } + + onUpgrade (statusCode, headers, socket) { + if (this.handler.onUpgrade) { + this.handler.onUpgrade(statusCode, headers, socket) + } + } + + onConnect (abort) { + if (this.aborted) { + abort(this.reason) + } else { + this.abort = abort + } + } + + onBodySent (chunk) { + if (this.handler.onBodySent) return this.handler.onBodySent(chunk) + } + + static [kRetryHandlerDefaultRetry] (err, { state, opts }, cb) { + const { statusCode, code, headers } = err + const { method, retryOptions } = opts + const { + maxRetries, + minTimeout, + maxTimeout, + timeoutFactor, + statusCodes, + errorCodes, + methods + } = retryOptions + const { counter } = state + + // Any code that is not a Undici's originated and allowed to retry + if (code && code !== 'UND_ERR_REQ_RETRY' && !errorCodes.includes(code)) { + cb(err) + return + } + + // If a set of method are provided and the current method is not in the list + if (Array.isArray(methods) && !methods.includes(method)) { + cb(err) + return + } + + // If a set of status code are provided and the current status code is not in the list + if ( + statusCode != null && + Array.isArray(statusCodes) && + !statusCodes.includes(statusCode) + ) { + cb(err) + return + } + + // If we reached the max number of retries + if (counter > maxRetries) { + cb(err) + return + } + + let retryAfterHeader = headers?.['retry-after'] + if (retryAfterHeader) { + retryAfterHeader = Number(retryAfterHeader) + retryAfterHeader = Number.isNaN(retryAfterHeader) + ? calculateRetryAfterHeader(retryAfterHeader) + : retryAfterHeader * 1e3 // Retry-After is in seconds + } + + const retryTimeout = + retryAfterHeader > 0 + ? Math.min(retryAfterHeader, maxTimeout) + : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout) + + setTimeout(() => cb(null), retryTimeout) + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const headers = parseHeaders(rawHeaders) + + this.retryCount += 1 + + if (statusCode >= 300) { + if (this.retryOpts.statusCodes.includes(statusCode) === false) { + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } else { + this.abort( + new RequestRetryError('Request failed', statusCode, { + headers, + data: { + count: this.retryCount + } + }) + ) + return false + } + } + + // Checkpoint for resume from where we left it + if (this.resume != null) { + this.resume = null + + // Only Partial Content 206 supposed to provide Content-Range, + // any other status code that partially consumed the payload + // should not be retry because it would result in downstream + // wrongly concatanete multiple responses. + if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) { + this.abort( + new RequestRetryError('server does not support the range header and the payload was partially consumed', statusCode, { + headers, + data: { count: this.retryCount } + }) + ) + return false + } + + const contentRange = parseRangeHeader(headers['content-range']) + // If no content range + if (!contentRange) { + this.abort( + new RequestRetryError('Content-Range mismatch', statusCode, { + headers, + data: { count: this.retryCount } + }) + ) + return false + } + + // Let's start with a weak etag check + if (this.etag != null && this.etag !== headers.etag) { + this.abort( + new RequestRetryError('ETag mismatch', statusCode, { + headers, + data: { count: this.retryCount } + }) + ) + return false + } + + const { start, size, end = size - 1 } = contentRange + + assert(this.start === start, 'content-range mismatch') + assert(this.end == null || this.end === end, 'content-range mismatch') + + this.resume = resume + return true + } + + if (this.end == null) { + if (statusCode === 206) { + // First time we receive 206 + const range = parseRangeHeader(headers['content-range']) + + if (range == null) { + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + + const { start, size, end = size - 1 } = range + assert( + start != null && Number.isFinite(start), + 'content-range mismatch' + ) + assert(end != null && Number.isFinite(end), 'invalid content-length') + + this.start = start + this.end = end + } + + // We make our best to checkpoint the body for further range headers + if (this.end == null) { + const contentLength = headers['content-length'] + this.end = contentLength != null ? Number(contentLength) - 1 : null + } + + assert(Number.isFinite(this.start)) + assert( + this.end == null || Number.isFinite(this.end), + 'invalid content-length' + ) + + this.resume = resume + this.etag = headers.etag != null ? headers.etag : null + + // Weak etags are not useful for comparison nor cache + // for instance not safe to assume if the response is byte-per-byte + // equal + if (this.etag != null && this.etag.startsWith('W/')) { + this.etag = null + } + + return this.handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + + const err = new RequestRetryError('Request failed', statusCode, { + headers, + data: { count: this.retryCount } + }) + + this.abort(err) + + return false + } + + onData (chunk) { + this.start += chunk.length + + return this.handler.onData(chunk) + } + + onComplete (rawTrailers) { + this.retryCount = 0 + return this.handler.onComplete(rawTrailers) + } + + onError (err) { + if (this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } + + // We reconcile in case of a mix between network errors + // and server error response + if (this.retryCount - this.retryCountCheckpoint > 0) { + // We count the difference between the last checkpoint and the current retry count + this.retryCount = + this.retryCountCheckpoint + + (this.retryCount - this.retryCountCheckpoint) + } else { + this.retryCount += 1 + } + + this.retryOpts.retry( + err, + { + state: { counter: this.retryCount }, + opts: { retryOptions: this.retryOpts, ...this.opts } + }, + onRetry.bind(this) + ) + + function onRetry (err) { + if (err != null || this.aborted || isDisturbed(this.opts.body)) { + return this.handler.onError(err) + } + + if (this.start !== 0) { + const headers = { range: `bytes=${this.start}-${this.end ?? ''}` } + + // Weak etag check - weak etags will make comparison algorithms never match + if (this.etag != null) { + headers['if-match'] = this.etag + } + + this.opts = { + ...this.opts, + headers: { + ...this.opts.headers, + ...headers + } + } + } + + try { + this.retryCountCheckpoint = this.retryCount + this.dispatch(this.opts, this) + } catch (err) { + this.handler.onError(err) + } + } + } +} + +module.exports = RetryHandler + + +/***/ }), + +/***/ 379: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const { isIP } = __nccwpck_require__(7030) +const { lookup } = __nccwpck_require__(610) +const DecoratorHandler = __nccwpck_require__(8155) +const { InvalidArgumentError, InformationalError } = __nccwpck_require__(8707) +const maxInt = Math.pow(2, 31) - 1 + +class DNSInstance { + #maxTTL = 0 + #maxItems = 0 + #records = new Map() + dualStack = true + affinity = null + lookup = null + pick = null + + constructor (opts) { + this.#maxTTL = opts.maxTTL + this.#maxItems = opts.maxItems + this.dualStack = opts.dualStack + this.affinity = opts.affinity + this.lookup = opts.lookup ?? this.#defaultLookup + this.pick = opts.pick ?? this.#defaultPick + } + + get full () { + return this.#records.size === this.#maxItems + } + + runLookup (origin, opts, cb) { + const ips = this.#records.get(origin.hostname) + + // If full, we just return the origin + if (ips == null && this.full) { + cb(null, origin.origin) + return + } + + const newOpts = { + affinity: this.affinity, + dualStack: this.dualStack, + lookup: this.lookup, + pick: this.pick, + ...opts.dns, + maxTTL: this.#maxTTL, + maxItems: this.#maxItems + } + + // If no IPs we lookup + if (ips == null) { + this.lookup(origin, newOpts, (err, addresses) => { + if (err || addresses == null || addresses.length === 0) { + cb(err ?? new InformationalError('No DNS entries found')) + return + } + + this.setRecords(origin, addresses) + const records = this.#records.get(origin.hostname) + + const ip = this.pick( + origin, + records, + newOpts.affinity + ) + + let port + if (typeof ip.port === 'number') { + port = `:${ip.port}` + } else if (origin.port !== '') { + port = `:${origin.port}` + } else { + port = '' + } + + cb( + null, + `${origin.protocol}//${ + ip.family === 6 ? `[${ip.address}]` : ip.address + }${port}` + ) + }) + } else { + // If there's IPs we pick + const ip = this.pick( + origin, + ips, + newOpts.affinity + ) + + // If no IPs we lookup - deleting old records + if (ip == null) { + this.#records.delete(origin.hostname) + this.runLookup(origin, opts, cb) + return + } + + let port + if (typeof ip.port === 'number') { + port = `:${ip.port}` + } else if (origin.port !== '') { + port = `:${origin.port}` + } else { + port = '' + } + + cb( + null, + `${origin.protocol}//${ + ip.family === 6 ? `[${ip.address}]` : ip.address + }${port}` + ) + } + } + + #defaultLookup (origin, opts, cb) { + lookup( + origin.hostname, + { + all: true, + family: this.dualStack === false ? this.affinity : 0, + order: 'ipv4first' + }, + (err, addresses) => { + if (err) { + return cb(err) + } + + const results = new Map() + + for (const addr of addresses) { + // On linux we found duplicates, we attempt to remove them with + // the latest record + results.set(`${addr.address}:${addr.family}`, addr) + } + + cb(null, results.values()) + } + ) + } + + #defaultPick (origin, hostnameRecords, affinity) { + let ip = null + const { records, offset } = hostnameRecords + + let family + if (this.dualStack) { + if (affinity == null) { + // Balance between ip families + if (offset == null || offset === maxInt) { + hostnameRecords.offset = 0 + affinity = 4 + } else { + hostnameRecords.offset++ + affinity = (hostnameRecords.offset & 1) === 1 ? 6 : 4 + } + } + + if (records[affinity] != null && records[affinity].ips.length > 0) { + family = records[affinity] + } else { + family = records[affinity === 4 ? 6 : 4] + } + } else { + family = records[affinity] + } + + // If no IPs we return null + if (family == null || family.ips.length === 0) { + return ip + } + + if (family.offset == null || family.offset === maxInt) { + family.offset = 0 + } else { + family.offset++ + } + + const position = family.offset % family.ips.length + ip = family.ips[position] ?? null + + if (ip == null) { + return ip + } + + if (Date.now() - ip.timestamp > ip.ttl) { // record TTL is already in ms + // We delete expired records + // It is possible that they have different TTL, so we manage them individually + family.ips.splice(position, 1) + return this.pick(origin, hostnameRecords, affinity) + } + + return ip + } + + setRecords (origin, addresses) { + const timestamp = Date.now() + const records = { records: { 4: null, 6: null } } + for (const record of addresses) { + record.timestamp = timestamp + if (typeof record.ttl === 'number') { + // The record TTL is expected to be in ms + record.ttl = Math.min(record.ttl, this.#maxTTL) + } else { + record.ttl = this.#maxTTL + } + + const familyRecords = records.records[record.family] ?? { ips: [] } + + familyRecords.ips.push(record) + records.records[record.family] = familyRecords + } + + this.#records.set(origin.hostname, records) + } + + getHandler (meta, opts) { + return new DNSDispatchHandler(this, meta, opts) + } +} + +class DNSDispatchHandler extends DecoratorHandler { + #state = null + #opts = null + #dispatch = null + #handler = null + #origin = null + + constructor (state, { origin, handler, dispatch }, opts) { + super(handler) + this.#origin = origin + this.#handler = handler + this.#opts = { ...opts } + this.#state = state + this.#dispatch = dispatch + } + + onError (err) { + switch (err.code) { + case 'ETIMEDOUT': + case 'ECONNREFUSED': { + if (this.#state.dualStack) { + // We delete the record and retry + this.#state.runLookup(this.#origin, this.#opts, (err, newOrigin) => { + if (err) { + return this.#handler.onError(err) + } + + const dispatchOpts = { + ...this.#opts, + origin: newOrigin + } + + this.#dispatch(dispatchOpts, this) + }) + + // if dual-stack disabled, we error out + return + } + + this.#handler.onError(err) + return + } + case 'ENOTFOUND': + this.#state.deleteRecord(this.#origin) + // eslint-disable-next-line no-fallthrough + default: + this.#handler.onError(err) + break + } + } +} + +module.exports = interceptorOpts => { + if ( + interceptorOpts?.maxTTL != null && + (typeof interceptorOpts?.maxTTL !== 'number' || interceptorOpts?.maxTTL < 0) + ) { + throw new InvalidArgumentError('Invalid maxTTL. Must be a positive number') + } + + if ( + interceptorOpts?.maxItems != null && + (typeof interceptorOpts?.maxItems !== 'number' || + interceptorOpts?.maxItems < 1) + ) { + throw new InvalidArgumentError( + 'Invalid maxItems. Must be a positive number and greater than zero' + ) + } + + if ( + interceptorOpts?.affinity != null && + interceptorOpts?.affinity !== 4 && + interceptorOpts?.affinity !== 6 + ) { + throw new InvalidArgumentError('Invalid affinity. Must be either 4 or 6') + } + + if ( + interceptorOpts?.dualStack != null && + typeof interceptorOpts?.dualStack !== 'boolean' + ) { + throw new InvalidArgumentError('Invalid dualStack. Must be a boolean') + } + + if ( + interceptorOpts?.lookup != null && + typeof interceptorOpts?.lookup !== 'function' + ) { + throw new InvalidArgumentError('Invalid lookup. Must be a function') + } + + if ( + interceptorOpts?.pick != null && + typeof interceptorOpts?.pick !== 'function' + ) { + throw new InvalidArgumentError('Invalid pick. Must be a function') + } + + const dualStack = interceptorOpts?.dualStack ?? true + let affinity + if (dualStack) { + affinity = interceptorOpts?.affinity ?? null + } else { + affinity = interceptorOpts?.affinity ?? 4 + } + + const opts = { + maxTTL: interceptorOpts?.maxTTL ?? 10e3, // Expressed in ms + lookup: interceptorOpts?.lookup ?? null, + pick: interceptorOpts?.pick ?? null, + dualStack, + affinity, + maxItems: interceptorOpts?.maxItems ?? Infinity + } + + const instance = new DNSInstance(opts) + + return dispatch => { + return function dnsInterceptor (origDispatchOpts, handler) { + const origin = + origDispatchOpts.origin.constructor === URL + ? origDispatchOpts.origin + : new URL(origDispatchOpts.origin) + + if (isIP(origin.hostname) !== 0) { + return dispatch(origDispatchOpts, handler) + } + + instance.runLookup(origin, origDispatchOpts, (err, newOrigin) => { + if (err) { + return handler.onError(err) + } + + let dispatchOpts = null + dispatchOpts = { + ...origDispatchOpts, + servername: origin.hostname, // For SNI on TLS + origin: newOrigin, + headers: { + host: origin.hostname, + ...origDispatchOpts.headers + } + } + + dispatch( + dispatchOpts, + instance.getHandler({ origin, dispatch, handler }, origDispatchOpts) + ) + }) + + return true + } + } +} + + +/***/ }), + +/***/ 8060: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const util = __nccwpck_require__(3440) +const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(8707) +const DecoratorHandler = __nccwpck_require__(8155) + +class DumpHandler extends DecoratorHandler { + #maxSize = 1024 * 1024 + #abort = null + #dumped = false + #aborted = false + #size = 0 + #reason = null + #handler = null + + constructor ({ maxSize }, handler) { + super(handler) + + if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) { + throw new InvalidArgumentError('maxSize must be a number greater than 0') + } + + this.#maxSize = maxSize ?? this.#maxSize + this.#handler = handler + } + + onConnect (abort) { + this.#abort = abort + + this.#handler.onConnect(this.#customAbort.bind(this)) + } + + #customAbort (reason) { + this.#aborted = true + this.#reason = reason + } + + // TODO: will require adjustment after new hooks are out + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const headers = util.parseHeaders(rawHeaders) + const contentLength = headers['content-length'] + + if (contentLength != null && contentLength > this.#maxSize) { + throw new RequestAbortedError( + `Response size (${contentLength}) larger than maxSize (${ + this.#maxSize + })` + ) + } + + if (this.#aborted) { + return true + } + + return this.#handler.onHeaders( + statusCode, + rawHeaders, + resume, + statusMessage + ) + } + + onError (err) { + if (this.#dumped) { + return + } + + err = this.#reason ?? err + + this.#handler.onError(err) + } + + onData (chunk) { + this.#size = this.#size + chunk.length + + if (this.#size >= this.#maxSize) { + this.#dumped = true + + if (this.#aborted) { + this.#handler.onError(this.#reason) + } else { + this.#handler.onComplete([]) + } + } + + return true + } + + onComplete (trailers) { + if (this.#dumped) { + return + } + + if (this.#aborted) { + this.#handler.onError(this.reason) + return + } + + this.#handler.onComplete(trailers) + } +} + +function createDumpInterceptor ( + { maxSize: defaultMaxSize } = { + maxSize: 1024 * 1024 + } +) { + return dispatch => { + return function Intercept (opts, handler) { + const { dumpMaxSize = defaultMaxSize } = + opts + + const dumpHandler = new DumpHandler( + { maxSize: dumpMaxSize }, + handler + ) + + return dispatch(opts, dumpHandler) + } + } +} + +module.exports = createDumpInterceptor + + +/***/ }), + +/***/ 5092: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const RedirectHandler = __nccwpck_require__(8754) + +function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) { + return (dispatch) => { + return function Intercept (opts, handler) { + const { maxRedirections = defaultMaxRedirections } = opts + + if (!maxRedirections) { + return dispatch(opts, handler) + } + + const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler) + opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. + return dispatch(opts, redirectHandler) + } + } +} + +module.exports = createRedirectInterceptor + + +/***/ }), + +/***/ 1514: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const RedirectHandler = __nccwpck_require__(8754) + +module.exports = opts => { + const globalMaxRedirections = opts?.maxRedirections + return dispatch => { + return function redirectInterceptor (opts, handler) { + const { maxRedirections = globalMaxRedirections, ...baseOpts } = opts + + if (!maxRedirections) { + return dispatch(opts, handler) + } + + const redirectHandler = new RedirectHandler( + dispatch, + maxRedirections, + opts, + handler + ) + + return dispatch(baseOpts, redirectHandler) + } + } +} + + +/***/ }), + +/***/ 2026: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const RetryHandler = __nccwpck_require__(7816) + +module.exports = globalOpts => { + return dispatch => { + return function retryInterceptor (opts, handler) { + return dispatch( + opts, + new RetryHandler( + { ...opts, retryOptions: { ...globalOpts, ...opts.retryOptions } }, + { + handler, + dispatch + } + ) + ) + } + } +} + + +/***/ }), + +/***/ 2824: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; +const utils_1 = __nccwpck_require__(172); +// C headers +var ERROR; +(function (ERROR) { + ERROR[ERROR["OK"] = 0] = "OK"; + ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; + ERROR[ERROR["STRICT"] = 2] = "STRICT"; + ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; + ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; + ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; + ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; + ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; + ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; + ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; + ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; + ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; + ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; + ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; + ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; + ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; + ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; + ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; + ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; + ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; + ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; + ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; + ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; + ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; + ERROR[ERROR["USER"] = 24] = "USER"; +})(ERROR = exports.ERROR || (exports.ERROR = {})); +var TYPE; +(function (TYPE) { + TYPE[TYPE["BOTH"] = 0] = "BOTH"; + TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; + TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; +})(TYPE = exports.TYPE || (exports.TYPE = {})); +var FLAGS; +(function (FLAGS) { + FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; + FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; + FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; + FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; + FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; + FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; + FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; + FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; + // 1 << 8 is unused + FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; +})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); +var LENIENT_FLAGS; +(function (LENIENT_FLAGS) { + LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; + LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; + LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; +})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); +var METHODS; +(function (METHODS) { + METHODS[METHODS["DELETE"] = 0] = "DELETE"; + METHODS[METHODS["GET"] = 1] = "GET"; + METHODS[METHODS["HEAD"] = 2] = "HEAD"; + METHODS[METHODS["POST"] = 3] = "POST"; + METHODS[METHODS["PUT"] = 4] = "PUT"; + /* pathological */ + METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; + METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; + METHODS[METHODS["TRACE"] = 7] = "TRACE"; + /* WebDAV */ + METHODS[METHODS["COPY"] = 8] = "COPY"; + METHODS[METHODS["LOCK"] = 9] = "LOCK"; + METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; + METHODS[METHODS["MOVE"] = 11] = "MOVE"; + METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; + METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; + METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; + METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; + METHODS[METHODS["BIND"] = 16] = "BIND"; + METHODS[METHODS["REBIND"] = 17] = "REBIND"; + METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; + METHODS[METHODS["ACL"] = 19] = "ACL"; + /* subversion */ + METHODS[METHODS["REPORT"] = 20] = "REPORT"; + METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; + METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; + METHODS[METHODS["MERGE"] = 23] = "MERGE"; + /* upnp */ + METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; + METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; + METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; + METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; + /* RFC-5789 */ + METHODS[METHODS["PATCH"] = 28] = "PATCH"; + METHODS[METHODS["PURGE"] = 29] = "PURGE"; + /* CalDAV */ + METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; + /* RFC-2068, section 19.6.1.2 */ + METHODS[METHODS["LINK"] = 31] = "LINK"; + METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; + /* icecast */ + METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; + /* RFC-7540, section 11.6 */ + METHODS[METHODS["PRI"] = 34] = "PRI"; + /* RFC-2326 RTSP */ + METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; + METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; + METHODS[METHODS["SETUP"] = 37] = "SETUP"; + METHODS[METHODS["PLAY"] = 38] = "PLAY"; + METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; + METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; + METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; + METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; + METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; + METHODS[METHODS["RECORD"] = 44] = "RECORD"; + /* RAOP */ + METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; +})(METHODS = exports.METHODS || (exports.METHODS = {})); +exports.METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS['M-SEARCH'], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE, +]; +exports.METHODS_ICE = [ + METHODS.SOURCE, +]; +exports.METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + // For AirPlay + METHODS.GET, + METHODS.POST, +]; +exports.METHOD_MAP = utils_1.enumToMap(METHODS); +exports.H_METHOD_MAP = {}; +Object.keys(exports.METHOD_MAP).forEach((key) => { + if (/^H/.test(key)) { + exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; + } +}); +var FINISH; +(function (FINISH) { + FINISH[FINISH["SAFE"] = 0] = "SAFE"; + FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; + FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; +})(FINISH = exports.FINISH || (exports.FINISH = {})); +exports.ALPHA = []; +for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { + // Upper case + exports.ALPHA.push(String.fromCharCode(i)); + // Lower case + exports.ALPHA.push(String.fromCharCode(i + 0x20)); +} +exports.NUM_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, +}; +exports.HEX_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, + A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, + a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, +}; +exports.NUM = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', +]; +exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); +exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; +exports.USERINFO_CHARS = exports.ALPHANUM + .concat(exports.MARK) + .concat(['%', ';', ':', '&', '=', '+', '$', ',']); +// TODO(indutny): use RFC +exports.STRICT_URL_CHAR = [ + '!', '"', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + ':', ';', '<', '=', '>', + '@', '[', '\\', ']', '^', '_', + '`', + '{', '|', '}', '~', +].concat(exports.ALPHANUM); +exports.URL_CHAR = exports.STRICT_URL_CHAR + .concat(['\t', '\f']); +// All characters with 0x80 bit set to 1 +for (let i = 0x80; i <= 0xff; i++) { + exports.URL_CHAR.push(i); +} +exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +exports.STRICT_TOKEN = [ + '!', '#', '$', '%', '&', '\'', + '*', '+', '-', '.', + '^', '_', '`', + '|', '~', +].concat(exports.ALPHANUM); +exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); +/* + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + */ +exports.HEADER_CHARS = ['\t']; +for (let i = 32; i <= 255; i++) { + if (i !== 127) { + exports.HEADER_CHARS.push(i); + } +} +// ',' = \x44 +exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); +exports.MAJOR = exports.NUM_MAP; +exports.MINOR = exports.MAJOR; +var HEADER_STATE; +(function (HEADER_STATE) { + HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; + HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; + HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; + HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; + HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; + HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; + HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; +})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); +exports.SPECIAL_HEADERS = { + 'connection': HEADER_STATE.CONNECTION, + 'content-length': HEADER_STATE.CONTENT_LENGTH, + 'proxy-connection': HEADER_STATE.CONNECTION, + 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, + 'upgrade': HEADER_STATE.UPGRADE, +}; +//# sourceMappingURL=constants.js.map + +/***/ }), + +/***/ 3870: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Buffer } = __nccwpck_require__(4573) + +module.exports = Buffer.from('AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv', 'base64') + + +/***/ }), + +/***/ 3434: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Buffer } = __nccwpck_require__(4573) + +module.exports = Buffer.from('AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK77MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==', 'base64') + + +/***/ }), + +/***/ 172: +/***/ ((__unused_webpack_module, exports) => { + + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.enumToMap = void 0; +function enumToMap(obj) { + const res = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if (typeof value === 'number') { + res[key] = value; + } + }); + return res; +} +exports.enumToMap = enumToMap; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 7501: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kClients } = __nccwpck_require__(6443) +const Agent = __nccwpck_require__(7405) +const { + kAgent, + kMockAgentSet, + kMockAgentGet, + kDispatches, + kIsMockActive, + kNetConnect, + kGetNetConnect, + kOptions, + kFactory +} = __nccwpck_require__(1117) +const MockClient = __nccwpck_require__(7365) +const MockPool = __nccwpck_require__(4004) +const { matchValue, buildMockOptions } = __nccwpck_require__(3397) +const { InvalidArgumentError, UndiciError } = __nccwpck_require__(8707) +const Dispatcher = __nccwpck_require__(883) +const Pluralizer = __nccwpck_require__(1529) +const PendingInterceptorsFormatter = __nccwpck_require__(6142) + +class MockAgent extends Dispatcher { + constructor (opts) { + super(opts) + + this[kNetConnect] = true + this[kIsMockActive] = true + + // Instantiate Agent and encapsulate + if ((opts?.agent && typeof opts.agent.dispatch !== 'function')) { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + const agent = opts?.agent ? opts.agent : new Agent(opts) + this[kAgent] = agent + + this[kClients] = agent[kClients] + this[kOptions] = buildMockOptions(opts) + } + + get (origin) { + let dispatcher = this[kMockAgentGet](origin) + + if (!dispatcher) { + dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + } + return dispatcher + } + + dispatch (opts, handler) { + // Call MockAgent.get to perform additional setup before dispatching as normal + this.get(opts.origin) + return this[kAgent].dispatch(opts, handler) + } + + async close () { + await this[kAgent].close() + this[kClients].clear() + } + + deactivate () { + this[kIsMockActive] = false + } + + activate () { + this[kIsMockActive] = true + } + + enableNetConnect (matcher) { + if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) { + if (Array.isArray(this[kNetConnect])) { + this[kNetConnect].push(matcher) + } else { + this[kNetConnect] = [matcher] + } + } else if (typeof matcher === 'undefined') { + this[kNetConnect] = true + } else { + throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.') + } + } + + disableNetConnect () { + this[kNetConnect] = false + } + + // This is required to bypass issues caused by using global symbols - see: + // https://github.com/nodejs/undici/issues/1447 + get isMockActive () { + return this[kIsMockActive] + } + + [kMockAgentSet] (origin, dispatcher) { + this[kClients].set(origin, dispatcher) + } + + [kFactory] (origin) { + const mockOptions = Object.assign({ agent: this }, this[kOptions]) + return this[kOptions] && this[kOptions].connections === 1 + ? new MockClient(origin, mockOptions) + : new MockPool(origin, mockOptions) + } + + [kMockAgentGet] (origin) { + // First check if we can immediately find it + const client = this[kClients].get(origin) + if (client) { + return client + } + + // If the origin is not a string create a dummy parent pool and return to user + if (typeof origin !== 'string') { + const dispatcher = this[kFactory]('http://localhost:9999') + this[kMockAgentSet](origin, dispatcher) + return dispatcher + } + + // If we match, create a pool and assign the same dispatches + for (const [keyMatcher, nonExplicitDispatcher] of Array.from(this[kClients])) { + if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) { + const dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] + return dispatcher + } + } + } + + [kGetNetConnect] () { + return this[kNetConnect] + } + + pendingInterceptors () { + const mockAgentClients = this[kClients] + + return Array.from(mockAgentClients.entries()) + .flatMap(([origin, scope]) => scope[kDispatches].map(dispatch => ({ ...dispatch, origin }))) + .filter(({ pending }) => pending) + } + + assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { + const pending = this.pendingInterceptors() + + if (pending.length === 0) { + return + } + + const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length) + + throw new UndiciError(` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: + +${pendingInterceptorsFormatter.format(pending)} +`.trim()) + } +} + +module.exports = MockAgent + + +/***/ }), + +/***/ 7365: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { promisify } = __nccwpck_require__(7975) +const Client = __nccwpck_require__(3701) +const { buildMockDispatch } = __nccwpck_require__(3397) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(1117) +const { MockInterceptor } = __nccwpck_require__(1511) +const Symbols = __nccwpck_require__(6443) +const { InvalidArgumentError } = __nccwpck_require__(8707) + +/** + * MockClient provides an API that extends the Client to influence the mockDispatches. + */ +class MockClient extends Client { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockClient + + +/***/ }), + +/***/ 2429: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { UndiciError } = __nccwpck_require__(8707) + +const kMockNotMatchedError = Symbol.for('undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED') + +/** + * The request does not match any registered mock dispatches. + */ +class MockNotMatchedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, MockNotMatchedError) + this.name = 'MockNotMatchedError' + this.message = message || 'The request does not match any registered mock dispatches' + this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' + } + + static [Symbol.hasInstance] (instance) { + return instance && instance[kMockNotMatchedError] === true + } + + [kMockNotMatchedError] = true +} + +module.exports = { + MockNotMatchedError +} + + +/***/ }), + +/***/ 1511: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { getResponseData, buildKey, addMockDispatch } = __nccwpck_require__(3397) +const { + kDispatches, + kDispatchKey, + kDefaultHeaders, + kDefaultTrailers, + kContentLength, + kMockDispatch +} = __nccwpck_require__(1117) +const { InvalidArgumentError } = __nccwpck_require__(8707) +const { buildURL } = __nccwpck_require__(3440) + +/** + * Defines the scope API for an interceptor reply + */ +class MockScope { + constructor (mockDispatch) { + this[kMockDispatch] = mockDispatch + } + + /** + * Delay a reply by a set amount in ms. + */ + delay (waitInMs) { + if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) { + throw new InvalidArgumentError('waitInMs must be a valid integer > 0') + } + + this[kMockDispatch].delay = waitInMs + return this + } + + /** + * For a defined reply, never mark as consumed. + */ + persist () { + this[kMockDispatch].persist = true + return this + } + + /** + * Allow one to define a reply for a set amount of matching requests. + */ + times (repeatTimes) { + if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { + throw new InvalidArgumentError('repeatTimes must be a valid integer > 0') + } + + this[kMockDispatch].times = repeatTimes + return this + } +} + +/** + * Defines an interceptor for a Mock + */ +class MockInterceptor { + constructor (opts, mockDispatches) { + if (typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object') + } + if (typeof opts.path === 'undefined') { + throw new InvalidArgumentError('opts.path must be defined') + } + if (typeof opts.method === 'undefined') { + opts.method = 'GET' + } + // See https://github.com/nodejs/undici/issues/1245 + // As per RFC 3986, clients are not supposed to send URI + // fragments to servers when they retrieve a document, + if (typeof opts.path === 'string') { + if (opts.query) { + opts.path = buildURL(opts.path, opts.query) + } else { + // Matches https://github.com/nodejs/undici/blob/main/lib/web/fetch/index.js#L1811 + const parsedURL = new URL(opts.path, 'data://') + opts.path = parsedURL.pathname + parsedURL.search + } + } + if (typeof opts.method === 'string') { + opts.method = opts.method.toUpperCase() + } + + this[kDispatchKey] = buildKey(opts) + this[kDispatches] = mockDispatches + this[kDefaultHeaders] = {} + this[kDefaultTrailers] = {} + this[kContentLength] = false + } + + createMockScopeDispatchData ({ statusCode, data, responseOptions }) { + const responseData = getResponseData(data) + const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {} + const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers } + const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers } + + return { statusCode, data, headers, trailers } + } + + validateReplyParameters (replyParameters) { + if (typeof replyParameters.statusCode === 'undefined') { + throw new InvalidArgumentError('statusCode must be defined') + } + if (typeof replyParameters.responseOptions !== 'object' || replyParameters.responseOptions === null) { + throw new InvalidArgumentError('responseOptions must be an object') + } + } + + /** + * Mock an undici request with a defined reply. + */ + reply (replyOptionsCallbackOrStatusCode) { + // Values of reply aren't available right now as they + // can only be available when the reply callback is invoked. + if (typeof replyOptionsCallbackOrStatusCode === 'function') { + // We'll first wrap the provided callback in another function, + // this function will properly resolve the data from the callback + // when invoked. + const wrappedDefaultsCallback = (opts) => { + // Our reply options callback contains the parameter for statusCode, data and options. + const resolvedData = replyOptionsCallbackOrStatusCode(opts) + + // Check if it is in the right format + if (typeof resolvedData !== 'object' || resolvedData === null) { + throw new InvalidArgumentError('reply options callback must return an object') + } + + const replyParameters = { data: '', responseOptions: {}, ...resolvedData } + this.validateReplyParameters(replyParameters) + // Since the values can be obtained immediately we return them + // from this higher order function that will be resolved later. + return { + ...this.createMockScopeDispatchData(replyParameters) + } + } + + // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback) + return new MockScope(newMockDispatch) + } + + // We can have either one or three parameters, if we get here, + // we should have 1-3 parameters. So we spread the arguments of + // this function to obtain the parameters, since replyData will always + // just be the statusCode. + const replyParameters = { + statusCode: replyOptionsCallbackOrStatusCode, + data: arguments[1] === undefined ? '' : arguments[1], + responseOptions: arguments[2] === undefined ? {} : arguments[2] + } + this.validateReplyParameters(replyParameters) + + // Send in-already provided data like usual + const dispatchData = this.createMockScopeDispatchData(replyParameters) + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData) + return new MockScope(newMockDispatch) + } + + /** + * Mock an undici request with a defined error. + */ + replyWithError (error) { + if (typeof error === 'undefined') { + throw new InvalidArgumentError('error must be defined') + } + + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }) + return new MockScope(newMockDispatch) + } + + /** + * Set default reply headers on the interceptor for subsequent replies + */ + defaultReplyHeaders (headers) { + if (typeof headers === 'undefined') { + throw new InvalidArgumentError('headers must be defined') + } + + this[kDefaultHeaders] = headers + return this + } + + /** + * Set default reply trailers on the interceptor for subsequent replies + */ + defaultReplyTrailers (trailers) { + if (typeof trailers === 'undefined') { + throw new InvalidArgumentError('trailers must be defined') + } + + this[kDefaultTrailers] = trailers + return this + } + + /** + * Set reply content length header for replies on the interceptor + */ + replyContentLength () { + this[kContentLength] = true + return this + } +} + +module.exports.MockInterceptor = MockInterceptor +module.exports.MockScope = MockScope + + +/***/ }), + +/***/ 4004: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { promisify } = __nccwpck_require__(7975) +const Pool = __nccwpck_require__(628) +const { buildMockDispatch } = __nccwpck_require__(3397) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(1117) +const { MockInterceptor } = __nccwpck_require__(1511) +const Symbols = __nccwpck_require__(6443) +const { InvalidArgumentError } = __nccwpck_require__(8707) + +/** + * MockPool provides an API that extends the Pool to influence the mockDispatches. + */ +class MockPool extends Pool { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockPool + + +/***/ }), + +/***/ 1117: +/***/ ((module) => { + + + +module.exports = { + kAgent: Symbol('agent'), + kOptions: Symbol('options'), + kFactory: Symbol('factory'), + kDispatches: Symbol('dispatches'), + kDispatchKey: Symbol('dispatch key'), + kDefaultHeaders: Symbol('default headers'), + kDefaultTrailers: Symbol('default trailers'), + kContentLength: Symbol('content length'), + kMockAgent: Symbol('mock agent'), + kMockAgentSet: Symbol('mock agent set'), + kMockAgentGet: Symbol('mock agent get'), + kMockDispatch: Symbol('mock dispatch'), + kClose: Symbol('close'), + kOriginalClose: Symbol('original agent close'), + kOrigin: Symbol('origin'), + kIsMockActive: Symbol('is mock active'), + kNetConnect: Symbol('net connect'), + kGetNetConnect: Symbol('get net connect'), + kConnected: Symbol('connected') +} + + +/***/ }), + +/***/ 3397: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { MockNotMatchedError } = __nccwpck_require__(2429) +const { + kDispatches, + kMockAgent, + kOriginalDispatch, + kOrigin, + kGetNetConnect +} = __nccwpck_require__(1117) +const { buildURL } = __nccwpck_require__(3440) +const { STATUS_CODES } = __nccwpck_require__(7067) +const { + types: { + isPromise + } +} = __nccwpck_require__(7975) + +function matchValue (match, value) { + if (typeof match === 'string') { + return match === value + } + if (match instanceof RegExp) { + return match.test(value) + } + if (typeof match === 'function') { + return match(value) === true + } + return false +} + +function lowerCaseEntries (headers) { + return Object.fromEntries( + Object.entries(headers).map(([headerName, headerValue]) => { + return [headerName.toLocaleLowerCase(), headerValue] + }) + ) +} + +/** + * @param {import('../../index').Headers|string[]|Record} headers + * @param {string} key + */ +function getHeaderByName (headers, key) { + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { + return headers[i + 1] + } + } + + return undefined + } else if (typeof headers.get === 'function') { + return headers.get(key) + } else { + return lowerCaseEntries(headers)[key.toLocaleLowerCase()] + } +} + +/** @param {string[]} headers */ +function buildHeadersFromArray (headers) { // fetch HeadersList + const clone = headers.slice() + const entries = [] + for (let index = 0; index < clone.length; index += 2) { + entries.push([clone[index], clone[index + 1]]) + } + return Object.fromEntries(entries) +} + +function matchHeaders (mockDispatch, headers) { + if (typeof mockDispatch.headers === 'function') { + if (Array.isArray(headers)) { // fetch HeadersList + headers = buildHeadersFromArray(headers) + } + return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) + } + if (typeof mockDispatch.headers === 'undefined') { + return true + } + if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') { + return false + } + + for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) { + const headerValue = getHeaderByName(headers, matchHeaderName) + + if (!matchValue(matchHeaderValue, headerValue)) { + return false + } + } + return true +} + +function safeUrl (path) { + if (typeof path !== 'string') { + return path + } + + const pathSegments = path.split('?') + + if (pathSegments.length !== 2) { + return path + } + + const qp = new URLSearchParams(pathSegments.pop()) + qp.sort() + return [...pathSegments, qp.toString()].join('?') +} + +function matchKey (mockDispatch, { path, method, body, headers }) { + const pathMatch = matchValue(mockDispatch.path, path) + const methodMatch = matchValue(mockDispatch.method, method) + const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true + const headersMatch = matchHeaders(mockDispatch, headers) + return pathMatch && methodMatch && bodyMatch && headersMatch +} + +function getResponseData (data) { + if (Buffer.isBuffer(data)) { + return data + } else if (data instanceof Uint8Array) { + return data + } else if (data instanceof ArrayBuffer) { + return data + } else if (typeof data === 'object') { + return JSON.stringify(data) + } else { + return data.toString() + } +} + +function getMockDispatch (mockDispatches, key) { + const basePath = key.query ? buildURL(key.path, key.query) : key.path + const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath + + // Match path + let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`) + } + + // Match method + matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`) + } + + // Match body + matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`) + } + + // Match headers + matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)) + if (matchedMockDispatches.length === 0) { + const headers = typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers + throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`) + } + + return matchedMockDispatches[0] +} + +function addMockDispatch (mockDispatches, key, data) { + const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false } + const replyData = typeof data === 'function' ? { callback: data } : { ...data } + const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } } + mockDispatches.push(newMockDispatch) + return newMockDispatch +} + +function deleteMockDispatch (mockDispatches, key) { + const index = mockDispatches.findIndex(dispatch => { + if (!dispatch.consumed) { + return false + } + return matchKey(dispatch, key) + }) + if (index !== -1) { + mockDispatches.splice(index, 1) + } +} + +function buildKey (opts) { + const { path, method, body, headers, query } = opts + return { + path, + method, + body, + headers, + query + } +} + +function generateKeyValues (data) { + const keys = Object.keys(data) + const result = [] + for (let i = 0; i < keys.length; ++i) { + const key = keys[i] + const value = data[key] + const name = Buffer.from(`${key}`) + if (Array.isArray(value)) { + for (let j = 0; j < value.length; ++j) { + result.push(name, Buffer.from(`${value[j]}`)) + } + } else { + result.push(name, Buffer.from(`${value}`)) + } + } + return result +} + +/** + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status + * @param {number} statusCode + */ +function getStatusText (statusCode) { + return STATUS_CODES[statusCode] || 'unknown' +} + +async function getResponse (body) { + const buffers = [] + for await (const data of body) { + buffers.push(data) + } + return Buffer.concat(buffers).toString('utf8') +} + +/** + * Mock dispatch function used to simulate undici dispatches + */ +function mockDispatch (opts, handler) { + // Get mock dispatch from built key + const key = buildKey(opts) + const mockDispatch = getMockDispatch(this[kDispatches], key) + + mockDispatch.timesInvoked++ + + // Here's where we resolve a callback if a callback is present for the dispatch data. + if (mockDispatch.data.callback) { + mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) } + } + + // Parse mockDispatch data + const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch + const { timesInvoked, times } = mockDispatch + + // If it's used up and not persistent, mark as consumed + mockDispatch.consumed = !persist && timesInvoked >= times + mockDispatch.pending = timesInvoked < times + + // If specified, trigger dispatch error + if (error !== null) { + deleteMockDispatch(this[kDispatches], key) + handler.onError(error) + return true + } + + // Handle the request with a delay if necessary + if (typeof delay === 'number' && delay > 0) { + setTimeout(() => { + handleReply(this[kDispatches]) + }, delay) + } else { + handleReply(this[kDispatches]) + } + + function handleReply (mockDispatches, _data = data) { + // fetch's HeadersList is a 1D string array + const optsHeaders = Array.isArray(opts.headers) + ? buildHeadersFromArray(opts.headers) + : opts.headers + const body = typeof _data === 'function' + ? _data({ ...opts, headers: optsHeaders }) + : _data + + // util.types.isPromise is likely needed for jest. + if (isPromise(body)) { + // If handleReply is asynchronous, throwing an error + // in the callback will reject the promise, rather than + // synchronously throw the error, which breaks some tests. + // Rather, we wait for the callback to resolve if it is a + // promise, and then re-run handleReply with the new body. + body.then((newData) => handleReply(mockDispatches, newData)) + return + } + + const responseData = getResponseData(body) + const responseHeaders = generateKeyValues(headers) + const responseTrailers = generateKeyValues(trailers) + + handler.onConnect?.(err => handler.onError(err), null) + handler.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode)) + handler.onData?.(Buffer.from(responseData)) + handler.onComplete?.(responseTrailers) + deleteMockDispatch(mockDispatches, key) + } + + function resume () {} + + return true +} + +function buildMockDispatch () { + const agent = this[kMockAgent] + const origin = this[kOrigin] + const originalDispatch = this[kOriginalDispatch] + + return function dispatch (opts, handler) { + if (agent.isMockActive) { + try { + mockDispatch.call(this, opts, handler) + } catch (error) { + if (error instanceof MockNotMatchedError) { + const netConnect = agent[kGetNetConnect]() + if (netConnect === false) { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`) + } + if (checkNetConnect(netConnect, origin)) { + originalDispatch.call(this, opts, handler) + } else { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`) + } + } else { + throw error + } + } + } else { + originalDispatch.call(this, opts, handler) + } + } +} + +function checkNetConnect (netConnect, origin) { + const url = new URL(origin) + if (netConnect === true) { + return true + } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { + return true + } + return false +} + +function buildMockOptions (opts) { + if (opts) { + const { agent, ...mockOptions } = opts + return mockOptions + } +} + +module.exports = { + getResponseData, + getMockDispatch, + addMockDispatch, + deleteMockDispatch, + buildKey, + generateKeyValues, + matchValue, + getResponse, + getStatusText, + mockDispatch, + buildMockDispatch, + checkNetConnect, + buildMockOptions, + getHeaderByName, + buildHeadersFromArray +} + + +/***/ }), + +/***/ 6142: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Transform } = __nccwpck_require__(7075) +const { Console } = __nccwpck_require__(7540) + +const PERSISTENT = process.versions.icu ? '✅' : 'Y ' +const NOT_PERSISTENT = process.versions.icu ? '❌' : 'N ' + +/** + * Gets the output of `console.table(…)` as a string. + */ +module.exports = class PendingInterceptorsFormatter { + constructor ({ disableColors } = {}) { + this.transform = new Transform({ + transform (chunk, _enc, cb) { + cb(null, chunk) + } + }) + + this.logger = new Console({ + stdout: this.transform, + inspectOptions: { + colors: !disableColors && !process.env.CI + } + }) + } + + format (pendingInterceptors) { + const withPrettyHeaders = pendingInterceptors.map( + ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ + Method: method, + Origin: origin, + Path: path, + 'Status code': statusCode, + Persistent: persist ? PERSISTENT : NOT_PERSISTENT, + Invocations: timesInvoked, + Remaining: persist ? Infinity : times - timesInvoked + })) + + this.logger.table(withPrettyHeaders) + return this.transform.read().toString() + } +} + + +/***/ }), + +/***/ 1529: +/***/ ((module) => { + + + +const singulars = { + pronoun: 'it', + is: 'is', + was: 'was', + this: 'this' +} + +const plurals = { + pronoun: 'they', + is: 'are', + was: 'were', + this: 'these' +} + +module.exports = class Pluralizer { + constructor (singular, plural) { + this.singular = singular + this.plural = plural + } + + pluralize (count) { + const one = count === 1 + const keys = one ? singulars : plurals + const noun = one ? this.singular : this.plural + return { ...keys, count, noun } + } +} + + +/***/ }), + +/***/ 6603: +/***/ ((module) => { + + + +/** + * This module offers an optimized timer implementation designed for scenarios + * where high precision is not critical. + * + * The timer achieves faster performance by using a low-resolution approach, + * with an accuracy target of within 500ms. This makes it particularly useful + * for timers with delays of 1 second or more, where exact timing is less + * crucial. + * + * It's important to note that Node.js timers are inherently imprecise, as + * delays can occur due to the event loop being blocked by other operations. + * Consequently, timers may trigger later than their scheduled time. + */ + +/** + * The fastNow variable contains the internal fast timer clock value. + * + * @type {number} + */ +let fastNow = 0 + +/** + * RESOLUTION_MS represents the target resolution time in milliseconds. + * + * @type {number} + * @default 1000 + */ +const RESOLUTION_MS = 1e3 + +/** + * TICK_MS defines the desired interval in milliseconds between each tick. + * The target value is set to half the resolution time, minus 1 ms, to account + * for potential event loop overhead. + * + * @type {number} + * @default 499 + */ +const TICK_MS = (RESOLUTION_MS >> 1) - 1 + +/** + * fastNowTimeout is a Node.js timer used to manage and process + * the FastTimers stored in the `fastTimers` array. + * + * @type {NodeJS.Timeout} + */ +let fastNowTimeout + +/** + * The kFastTimer symbol is used to identify FastTimer instances. + * + * @type {Symbol} + */ +const kFastTimer = Symbol('kFastTimer') + +/** + * The fastTimers array contains all active FastTimers. + * + * @type {FastTimer[]} + */ +const fastTimers = [] + +/** + * These constants represent the various states of a FastTimer. + */ + +/** + * The `NOT_IN_LIST` constant indicates that the FastTimer is not included + * in the `fastTimers` array. Timers with this status will not be processed + * during the next tick by the `onTick` function. + * + * A FastTimer can be re-added to the `fastTimers` array by invoking the + * `refresh` method on the FastTimer instance. + * + * @type {-2} + */ +const NOT_IN_LIST = -2 + +/** + * The `TO_BE_CLEARED` constant indicates that the FastTimer is scheduled + * for removal from the `fastTimers` array. A FastTimer in this state will + * be removed in the next tick by the `onTick` function and will no longer + * be processed. + * + * This status is also set when the `clear` method is called on the FastTimer instance. + * + * @type {-1} + */ +const TO_BE_CLEARED = -1 + +/** + * The `PENDING` constant signifies that the FastTimer is awaiting processing + * in the next tick by the `onTick` function. Timers with this status will have + * their `_idleStart` value set and their status updated to `ACTIVE` in the next tick. + * + * @type {0} + */ +const PENDING = 0 + +/** + * The `ACTIVE` constant indicates that the FastTimer is active and waiting + * for its timer to expire. During the next tick, the `onTick` function will + * check if the timer has expired, and if so, it will execute the associated callback. + * + * @type {1} + */ +const ACTIVE = 1 + +/** + * The onTick function processes the fastTimers array. + * + * @returns {void} + */ +function onTick () { + /** + * Increment the fastNow value by the TICK_MS value, despite the actual time + * that has passed since the last tick. This approach ensures independence + * from the system clock and delays caused by a blocked event loop. + * + * @type {number} + */ + fastNow += TICK_MS + + /** + * The `idx` variable is used to iterate over the `fastTimers` array. + * Expired timers are removed by replacing them with the last element in the array. + * Consequently, `idx` is only incremented when the current element is not removed. + * + * @type {number} + */ + let idx = 0 + + /** + * The len variable will contain the length of the fastTimers array + * and will be decremented when a FastTimer should be removed from the + * fastTimers array. + * + * @type {number} + */ + let len = fastTimers.length + + while (idx < len) { + /** + * @type {FastTimer} + */ + const timer = fastTimers[idx] + + // If the timer is in the ACTIVE state and the timer has expired, it will + // be processed in the next tick. + if (timer._state === PENDING) { + // Set the _idleStart value to the fastNow value minus the TICK_MS value + // to account for the time the timer was in the PENDING state. + timer._idleStart = fastNow - TICK_MS + timer._state = ACTIVE + } else if ( + timer._state === ACTIVE && + fastNow >= timer._idleStart + timer._idleTimeout + ) { + timer._state = TO_BE_CLEARED + timer._idleStart = -1 + timer._onTimeout(timer._timerArg) + } + + if (timer._state === TO_BE_CLEARED) { + timer._state = NOT_IN_LIST + + // Move the last element to the current index and decrement len if it is + // not the only element in the array. + if (--len !== 0) { + fastTimers[idx] = fastTimers[len] + } + } else { + ++idx + } + } + + // Set the length of the fastTimers array to the new length and thus + // removing the excess FastTimers elements from the array. + fastTimers.length = len + + // If there are still active FastTimers in the array, refresh the Timer. + // If there are no active FastTimers, the timer will be refreshed again + // when a new FastTimer is instantiated. + if (fastTimers.length !== 0) { + refreshTimeout() + } +} + +function refreshTimeout () { + // If the fastNowTimeout is already set, refresh it. + if (fastNowTimeout) { + fastNowTimeout.refresh() + // fastNowTimeout is not instantiated yet, create a new Timer. + } else { + clearTimeout(fastNowTimeout) + fastNowTimeout = setTimeout(onTick, TICK_MS) + + // If the Timer has an unref method, call it to allow the process to exit if + // there are no other active handles. + if (fastNowTimeout.unref) { + fastNowTimeout.unref() + } + } +} + +/** + * The `FastTimer` class is a data structure designed to store and manage + * timer information. + */ +class FastTimer { + [kFastTimer] = true + + /** + * The state of the timer, which can be one of the following: + * - NOT_IN_LIST (-2) + * - TO_BE_CLEARED (-1) + * - PENDING (0) + * - ACTIVE (1) + * + * @type {-2|-1|0|1} + * @private + */ + _state = NOT_IN_LIST + + /** + * The number of milliseconds to wait before calling the callback. + * + * @type {number} + * @private + */ + _idleTimeout = -1 + + /** + * The time in milliseconds when the timer was started. This value is used to + * calculate when the timer should expire. + * + * @type {number} + * @default -1 + * @private + */ + _idleStart = -1 + + /** + * The function to be executed when the timer expires. + * @type {Function} + * @private + */ + _onTimeout + + /** + * The argument to be passed to the callback when the timer expires. + * + * @type {*} + * @private + */ + _timerArg + + /** + * @constructor + * @param {Function} callback A function to be executed after the timer + * expires. + * @param {number} delay The time, in milliseconds that the timer should wait + * before the specified function or code is executed. + * @param {*} arg + */ + constructor (callback, delay, arg) { + this._onTimeout = callback + this._idleTimeout = delay + this._timerArg = arg + + this.refresh() + } + + /** + * Sets the timer's start time to the current time, and reschedules the timer + * to call its callback at the previously specified duration adjusted to the + * current time. + * Using this on a timer that has already called its callback will reactivate + * the timer. + * + * @returns {void} + */ + refresh () { + // In the special case that the timer is not in the list of active timers, + // add it back to the array to be processed in the next tick by the onTick + // function. + if (this._state === NOT_IN_LIST) { + fastTimers.push(this) + } + + // If the timer is the only active timer, refresh the fastNowTimeout for + // better resolution. + if (!fastNowTimeout || fastTimers.length === 1) { + refreshTimeout() + } + + // Setting the state to PENDING will cause the timer to be reset in the + // next tick by the onTick function. + this._state = PENDING + } + + /** + * The `clear` method cancels the timer, preventing it from executing. + * + * @returns {void} + * @private + */ + clear () { + // Set the state to TO_BE_CLEARED to mark the timer for removal in the next + // tick by the onTick function. + this._state = TO_BE_CLEARED + + // Reset the _idleStart value to -1 to indicate that the timer is no longer + // active. + this._idleStart = -1 + } +} + +/** + * This module exports a setTimeout and clearTimeout function that can be + * used as a drop-in replacement for the native functions. + */ +module.exports = { + /** + * The setTimeout() method sets a timer which executes a function once the + * timer expires. + * @param {Function} callback A function to be executed after the timer + * expires. + * @param {number} delay The time, in milliseconds that the timer should + * wait before the specified function or code is executed. + * @param {*} [arg] An optional argument to be passed to the callback function + * when the timer expires. + * @returns {NodeJS.Timeout|FastTimer} + */ + setTimeout (callback, delay, arg) { + // If the delay is less than or equal to the RESOLUTION_MS value return a + // native Node.js Timer instance. + return delay <= RESOLUTION_MS + ? setTimeout(callback, delay, arg) + : new FastTimer(callback, delay, arg) + }, + /** + * The clearTimeout method cancels an instantiated Timer previously created + * by calling setTimeout. + * + * @param {NodeJS.Timeout|FastTimer} timeout + */ + clearTimeout (timeout) { + // If the timeout is a FastTimer, call its own clear method. + if (timeout[kFastTimer]) { + /** + * @type {FastTimer} + */ + timeout.clear() + // Otherwise it is an instance of a native NodeJS.Timeout, so call the + // Node.js native clearTimeout function. + } else { + clearTimeout(timeout) + } + }, + /** + * The setFastTimeout() method sets a fastTimer which executes a function once + * the timer expires. + * @param {Function} callback A function to be executed after the timer + * expires. + * @param {number} delay The time, in milliseconds that the timer should + * wait before the specified function or code is executed. + * @param {*} [arg] An optional argument to be passed to the callback function + * when the timer expires. + * @returns {FastTimer} + */ + setFastTimeout (callback, delay, arg) { + return new FastTimer(callback, delay, arg) + }, + /** + * The clearTimeout method cancels an instantiated FastTimer previously + * created by calling setFastTimeout. + * + * @param {FastTimer} timeout + */ + clearFastTimeout (timeout) { + timeout.clear() + }, + /** + * The now method returns the value of the internal fast timer clock. + * + * @returns {number} + */ + now () { + return fastNow + }, + /** + * Trigger the onTick function to process the fastTimers array. + * Exported for testing purposes only. + * Marking as deprecated to discourage any use outside of testing. + * @deprecated + * @param {number} [delay=0] The delay in milliseconds to add to the now value. + */ + tick (delay = 0) { + fastNow += delay - RESOLUTION_MS + 1 + onTick() + onTick() + }, + /** + * Reset FastTimers. + * Exported for testing purposes only. + * Marking as deprecated to discourage any use outside of testing. + * @deprecated + */ + reset () { + fastNow = 0 + fastTimers.length = 0 + clearTimeout(fastNowTimeout) + fastNowTimeout = null + }, + /** + * Exporting for testing purposes only. + * Marking as deprecated to discourage any use outside of testing. + * @deprecated + */ + kFastTimer +} + + +/***/ }), + +/***/ 9634: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kConstruct } = __nccwpck_require__(109) +const { urlEquals, getFieldValues } = __nccwpck_require__(6798) +const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(3440) +const { webidl } = __nccwpck_require__(5893) +const { Response, cloneResponse, fromInnerResponse } = __nccwpck_require__(9051) +const { Request, fromInnerRequest } = __nccwpck_require__(9967) +const { kState } = __nccwpck_require__(3627) +const { fetching } = __nccwpck_require__(4398) +const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __nccwpck_require__(3168) +const assert = __nccwpck_require__(4589) + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation + * @typedef {Object} CacheBatchOperation + * @property {'delete' | 'put'} type + * @property {any} request + * @property {any} response + * @property {import('../../types/cache').CacheQueryOptions} options + */ + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list + * @typedef {[any, any][]} requestResponseList + */ + +class Cache { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list + * @type {requestResponseList} + */ + #relevantRequestResponseList + + constructor () { + if (arguments[0] !== kConstruct) { + webidl.illegalConstructor() + } + + webidl.util.markAsUncloneable(this) + this.#relevantRequestResponseList = arguments[1] + } + + async match (request, options = {}) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.match' + webidl.argumentLengthCheck(arguments, 1, prefix) + + request = webidl.converters.RequestInfo(request, prefix, 'request') + options = webidl.converters.CacheQueryOptions(options, prefix, 'options') + + const p = this.#internalMatchAll(request, options, 1) + + if (p.length === 0) { + return + } + + return p[0] + } + + async matchAll (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.matchAll' + if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request') + options = webidl.converters.CacheQueryOptions(options, prefix, 'options') + + return this.#internalMatchAll(request, options) + } + + async add (request) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.add' + webidl.argumentLengthCheck(arguments, 1, prefix) + + request = webidl.converters.RequestInfo(request, prefix, 'request') + + // 1. + const requests = [request] + + // 2. + const responseArrayPromise = this.addAll(requests) + + // 3. + return await responseArrayPromise + } + + async addAll (requests) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.addAll' + webidl.argumentLengthCheck(arguments, 1, prefix) + + // 1. + const responsePromises = [] + + // 2. + const requestList = [] + + // 3. + for (let request of requests) { + if (request === undefined) { + throw webidl.errors.conversionFailed({ + prefix, + argument: 'Argument 1', + types: ['undefined is not allowed'] + }) + } + + request = webidl.converters.RequestInfo(request) + + if (typeof request === 'string') { + continue + } + + // 3.1 + const r = request[kState] + + // 3.2 + if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { + throw webidl.errors.exception({ + header: prefix, + message: 'Expected http/s scheme when method is not GET.' + }) + } + } + + // 4. + /** @type {ReturnType[]} */ + const fetchControllers = [] + + // 5. + for (const request of requests) { + // 5.1 + const r = new Request(request)[kState] + + // 5.2 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: prefix, + message: 'Expected http/s scheme.' + }) + } + + // 5.4 + r.initiator = 'fetch' + r.destination = 'subresource' + + // 5.5 + requestList.push(r) + + // 5.6 + const responsePromise = createDeferredPromise() + + // 5.7 + fetchControllers.push(fetching({ + request: r, + processResponse (response) { + // 1. + if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Received an invalid status code or the request failed.' + })) + } else if (response.headersList.contains('vary')) { // 2. + // 2.1 + const fieldValues = getFieldValues(response.headersList.get('vary')) + + // 2.2 + for (const fieldValue of fieldValues) { + // 2.2.1 + if (fieldValue === '*') { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'invalid vary field value' + })) + + for (const controller of fetchControllers) { + controller.abort() + } + + return + } + } + } + }, + processResponseEndOfBody (response) { + // 1. + if (response.aborted) { + responsePromise.reject(new DOMException('aborted', 'AbortError')) + return + } + + // 2. + responsePromise.resolve(response) + } + })) + + // 5.8 + responsePromises.push(responsePromise.promise) + } + + // 6. + const p = Promise.all(responsePromises) + + // 7. + const responses = await p + + // 7.1 + const operations = [] + + // 7.2 + let index = 0 + + // 7.3 + for (const response of responses) { + // 7.3.1 + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 7.3.2 + request: requestList[index], // 7.3.3 + response // 7.3.4 + } + + operations.push(operation) // 7.3.5 + + index++ // 7.3.6 + } + + // 7.5 + const cacheJobPromise = createDeferredPromise() + + // 7.6.1 + let errorData = null + + // 7.6.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 7.6.3 + queueMicrotask(() => { + // 7.6.3.1 + if (errorData === null) { + cacheJobPromise.resolve(undefined) + } else { + // 7.6.3.2 + cacheJobPromise.reject(errorData) + } + }) + + // 7.7 + return cacheJobPromise.promise + } + + async put (request, response) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.put' + webidl.argumentLengthCheck(arguments, 2, prefix) + + request = webidl.converters.RequestInfo(request, prefix, 'request') + response = webidl.converters.Response(response, prefix, 'response') + + // 1. + let innerRequest = null + + // 2. + if (request instanceof Request) { + innerRequest = request[kState] + } else { // 3. + innerRequest = new Request(request)[kState] + } + + // 4. + if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') { + throw webidl.errors.exception({ + header: prefix, + message: 'Expected an http/s scheme when method is not GET' + }) + } + + // 5. + const innerResponse = response[kState] + + // 6. + if (innerResponse.status === 206) { + throw webidl.errors.exception({ + header: prefix, + message: 'Got 206 status' + }) + } + + // 7. + if (innerResponse.headersList.contains('vary')) { + // 7.1. + const fieldValues = getFieldValues(innerResponse.headersList.get('vary')) + + // 7.2. + for (const fieldValue of fieldValues) { + // 7.2.1 + if (fieldValue === '*') { + throw webidl.errors.exception({ + header: prefix, + message: 'Got * vary field value' + }) + } + } + } + + // 8. + if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { + throw webidl.errors.exception({ + header: prefix, + message: 'Response body is locked or disturbed' + }) + } + + // 9. + const clonedResponse = cloneResponse(innerResponse) + + // 10. + const bodyReadPromise = createDeferredPromise() + + // 11. + if (innerResponse.body != null) { + // 11.1 + const stream = innerResponse.body.stream + + // 11.2 + const reader = stream.getReader() + + // 11.3 + readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject) + } else { + bodyReadPromise.resolve(undefined) + } + + // 12. + /** @type {CacheBatchOperation[]} */ + const operations = [] + + // 13. + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 14. + request: innerRequest, // 15. + response: clonedResponse // 16. + } + + // 17. + operations.push(operation) + + // 19. + const bytes = await bodyReadPromise.promise + + if (clonedResponse.body != null) { + clonedResponse.body.source = bytes + } + + // 19.1 + const cacheJobPromise = createDeferredPromise() + + // 19.2.1 + let errorData = null + + // 19.2.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 19.2.3 + queueMicrotask(() => { + // 19.2.3.1 + if (errorData === null) { + cacheJobPromise.resolve() + } else { // 19.2.3.2 + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + async delete (request, options = {}) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.delete' + webidl.argumentLengthCheck(arguments, 1, prefix) + + request = webidl.converters.RequestInfo(request, prefix, 'request') + options = webidl.converters.CacheQueryOptions(options, prefix, 'options') + + /** + * @type {Request} + */ + let r = null + + if (request instanceof Request) { + r = request[kState] + + if (r.method !== 'GET' && !options.ignoreMethod) { + return false + } + } else { + assert(typeof request === 'string') + + r = new Request(request)[kState] + } + + /** @type {CacheBatchOperation[]} */ + const operations = [] + + /** @type {CacheBatchOperation} */ + const operation = { + type: 'delete', + request: r, + options + } + + operations.push(operation) + + const cacheJobPromise = createDeferredPromise() + + let errorData = null + let requestResponses + + try { + requestResponses = this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(!!requestResponses?.length) + } else { + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys + * @param {any} request + * @param {import('../../types/cache').CacheQueryOptions} options + * @returns {Promise} + */ + async keys (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + const prefix = 'Cache.keys' + + if (request !== undefined) request = webidl.converters.RequestInfo(request, prefix, 'request') + options = webidl.converters.CacheQueryOptions(options, prefix, 'options') + + // 1. + let r = null + + // 2. + if (request !== undefined) { + // 2.1 + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { // 2.2 + r = new Request(request)[kState] + } + } + + // 4. + const promise = createDeferredPromise() + + // 5. + // 5.1 + const requests = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + // 5.2.1.1 + requests.push(requestResponse[0]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + // 5.3.2.1 + requests.push(requestResponse[0]) + } + } + + // 5.4 + queueMicrotask(() => { + // 5.4.1 + const requestList = [] + + // 5.4.2 + for (const request of requests) { + const requestObject = fromInnerRequest( + request, + new AbortController().signal, + 'immutable' + ) + // 5.4.2.1 + requestList.push(requestObject) + } + + // 5.4.3 + promise.resolve(Object.freeze(requestList)) + }) + + return promise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm + * @param {CacheBatchOperation[]} operations + * @returns {requestResponseList} + */ + #batchCacheOperations (operations) { + // 1. + const cache = this.#relevantRequestResponseList + + // 2. + const backupCache = [...cache] + + // 3. + const addedItems = [] + + // 4.1 + const resultList = [] + + try { + // 4.2 + for (const operation of operations) { + // 4.2.1 + if (operation.type !== 'delete' && operation.type !== 'put') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'operation type does not match "delete" or "put"' + }) + } + + // 4.2.2 + if (operation.type === 'delete' && operation.response != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'delete operation should not have an associated response' + }) + } + + // 4.2.3 + if (this.#queryCache(operation.request, operation.options, addedItems).length) { + throw new DOMException('???', 'InvalidStateError') + } + + // 4.2.4 + let requestResponses + + // 4.2.5 + if (operation.type === 'delete') { + // 4.2.5.1 + requestResponses = this.#queryCache(operation.request, operation.options) + + // TODO: the spec is wrong, this is needed to pass WPTs + if (requestResponses.length === 0) { + return [] + } + + // 4.2.5.2 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.5.2.1 + cache.splice(idx, 1) + } + } else if (operation.type === 'put') { // 4.2.6 + // 4.2.6.1 + if (operation.response == null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'put operation should have an associated response' + }) + } + + // 4.2.6.2 + const r = operation.request + + // 4.2.6.3 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'expected http or https scheme' + }) + } + + // 4.2.6.4 + if (r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'not get method' + }) + } + + // 4.2.6.5 + if (operation.options != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'options must not be defined' + }) + } + + // 4.2.6.6 + requestResponses = this.#queryCache(operation.request) + + // 4.2.6.7 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.6.7.1 + cache.splice(idx, 1) + } + + // 4.2.6.8 + cache.push([operation.request, operation.response]) + + // 4.2.6.10 + addedItems.push([operation.request, operation.response]) + } + + // 4.2.7 + resultList.push([operation.request, operation.response]) + } + + // 4.3 + return resultList + } catch (e) { // 5. + // 5.1 + this.#relevantRequestResponseList.length = 0 + + // 5.2 + this.#relevantRequestResponseList = backupCache + + // 5.3 + throw e + } + } + + /** + * @see https://w3c.github.io/ServiceWorker/#query-cache + * @param {any} requestQuery + * @param {import('../../types/cache').CacheQueryOptions} options + * @param {requestResponseList} targetStorage + * @returns {requestResponseList} + */ + #queryCache (requestQuery, options, targetStorage) { + /** @type {requestResponseList} */ + const resultList = [] + + const storage = targetStorage ?? this.#relevantRequestResponseList + + for (const requestResponse of storage) { + const [cachedRequest, cachedResponse] = requestResponse + if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { + resultList.push(requestResponse) + } + } + + return resultList + } + + /** + * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm + * @param {any} requestQuery + * @param {any} request + * @param {any | null} response + * @param {import('../../types/cache').CacheQueryOptions | undefined} options + * @returns {boolean} + */ + #requestMatchesCachedItem (requestQuery, request, response = null, options) { + // if (options?.ignoreMethod === false && request.method === 'GET') { + // return false + // } + + const queryURL = new URL(requestQuery.url) + + const cachedURL = new URL(request.url) + + if (options?.ignoreSearch) { + cachedURL.search = '' + + queryURL.search = '' + } + + if (!urlEquals(queryURL, cachedURL, true)) { + return false + } + + if ( + response == null || + options?.ignoreVary || + !response.headersList.contains('vary') + ) { + return true + } + + const fieldValues = getFieldValues(response.headersList.get('vary')) + + for (const fieldValue of fieldValues) { + if (fieldValue === '*') { + return false + } + + const requestValue = request.headersList.get(fieldValue) + const queryValue = requestQuery.headersList.get(fieldValue) + + // If one has the header and the other doesn't, or one has + // a different value than the other, return false + if (requestValue !== queryValue) { + return false + } + } + + return true + } + + #internalMatchAll (request, options, maxResponses = Infinity) { + // 1. + let r = null + + // 2. + if (request !== undefined) { + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { + // 2.2.1 + r = new Request(request)[kState] + } + } + + // 5. + // 5.1 + const responses = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + responses.push(requestResponse[1]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + responses.push(requestResponse[1]) + } + } + + // 5.4 + // We don't implement CORs so we don't need to loop over the responses, yay! + + // 5.5.1 + const responseList = [] + + // 5.5.2 + for (const response of responses) { + // 5.5.2.1 + const responseObject = fromInnerResponse(response, 'immutable') + + responseList.push(responseObject.clone()) + + if (responseList.length >= maxResponses) { + break + } + } + + // 6. + return Object.freeze(responseList) + } +} + +Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: { + value: 'Cache', + configurable: true + }, + match: kEnumerableProperty, + matchAll: kEnumerableProperty, + add: kEnumerableProperty, + addAll: kEnumerableProperty, + put: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +const cacheQueryOptionConverters = [ + { + key: 'ignoreSearch', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'ignoreMethod', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'ignoreVary', + converter: webidl.converters.boolean, + defaultValue: () => false + } +] + +webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters) + +webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ + ...cacheQueryOptionConverters, + { + key: 'cacheName', + converter: webidl.converters.DOMString + } +]) + +webidl.converters.Response = webidl.interfaceConverter(Response) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.RequestInfo +) + +module.exports = { + Cache +} + + +/***/ }), + +/***/ 3245: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kConstruct } = __nccwpck_require__(109) +const { Cache } = __nccwpck_require__(9634) +const { webidl } = __nccwpck_require__(5893) +const { kEnumerableProperty } = __nccwpck_require__(3440) + +class CacheStorage { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map + * @type {Map} + */ + async has (cacheName) { + webidl.brandCheck(this, CacheStorage) + + const prefix = 'CacheStorage.has' + webidl.argumentLengthCheck(arguments, 1, prefix) + + cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName') + + // 2.1.1 + // 2.2 + return this.#caches.has(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open + * @param {string} cacheName + * @returns {Promise} + */ + async open (cacheName) { + webidl.brandCheck(this, CacheStorage) + + const prefix = 'CacheStorage.open' + webidl.argumentLengthCheck(arguments, 1, prefix) + + cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName') + + // 2.1 + if (this.#caches.has(cacheName)) { + // await caches.open('v1') !== await caches.open('v1') + + // 2.1.1 + const cache = this.#caches.get(cacheName) + + // 2.1.1.1 + return new Cache(kConstruct, cache) + } + + // 2.2 + const cache = [] + + // 2.3 + this.#caches.set(cacheName, cache) + + // 2.4 + return new Cache(kConstruct, cache) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete + * @param {string} cacheName + * @returns {Promise} + */ + async delete (cacheName) { + webidl.brandCheck(this, CacheStorage) + + const prefix = 'CacheStorage.delete' + webidl.argumentLengthCheck(arguments, 1, prefix) + + cacheName = webidl.converters.DOMString(cacheName, prefix, 'cacheName') + + return this.#caches.delete(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys + * @returns {Promise} + */ + async keys () { + webidl.brandCheck(this, CacheStorage) + + // 2.1 + const keys = this.#caches.keys() + + // 2.2 + return [...keys] + } +} + +Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: { + value: 'CacheStorage', + configurable: true + }, + match: kEnumerableProperty, + has: kEnumerableProperty, + open: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +module.exports = { + CacheStorage +} + + +/***/ }), + +/***/ 109: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +module.exports = { + kConstruct: (__nccwpck_require__(6443).kConstruct) +} + + +/***/ }), + +/***/ 6798: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) +const { URLSerializer } = __nccwpck_require__(1900) +const { isValidHeaderName } = __nccwpck_require__(3168) + +/** + * @see https://url.spec.whatwg.org/#concept-url-equals + * @param {URL} A + * @param {URL} B + * @param {boolean | undefined} excludeFragment + * @returns {boolean} + */ +function urlEquals (A, B, excludeFragment = false) { + const serializedA = URLSerializer(A, excludeFragment) + + const serializedB = URLSerializer(B, excludeFragment) + + return serializedA === serializedB +} + +/** + * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 + * @param {string} header + */ +function getFieldValues (header) { + assert(header !== null) + + const values = [] + + for (let value of header.split(',')) { + value = value.trim() + + if (isValidHeaderName(value)) { + values.push(value) + } + } + + return values +} + +module.exports = { + urlEquals, + getFieldValues +} + + +/***/ }), + +/***/ 1276: +/***/ ((module) => { + + + +// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size +const maxAttributeValueSize = 1024 + +// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size +const maxNameValuePairSize = 4096 + +module.exports = { + maxAttributeValueSize, + maxNameValuePairSize +} + + +/***/ }), + +/***/ 9061: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { parseSetCookie } = __nccwpck_require__(1978) +const { stringify } = __nccwpck_require__(7797) +const { webidl } = __nccwpck_require__(5893) +const { Headers } = __nccwpck_require__(660) + +/** + * @typedef {Object} Cookie + * @property {string} name + * @property {string} value + * @property {Date|number|undefined} expires + * @property {number|undefined} maxAge + * @property {string|undefined} domain + * @property {string|undefined} path + * @property {boolean|undefined} secure + * @property {boolean|undefined} httpOnly + * @property {'Strict'|'Lax'|'None'} sameSite + * @property {string[]} unparsed + */ + +/** + * @param {Headers} headers + * @returns {Record} + */ +function getCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, 'getCookies') + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookie = headers.get('cookie') + const out = {} + + if (!cookie) { + return out + } + + for (const piece of cookie.split(';')) { + const [name, ...value] = piece.split('=') + + out[name.trim()] = value.join('=') + } + + return out +} + +/** + * @param {Headers} headers + * @param {string} name + * @param {{ path?: string, domain?: string }|undefined} attributes + * @returns {void} + */ +function deleteCookie (headers, name, attributes) { + webidl.brandCheck(headers, Headers, { strict: false }) + + const prefix = 'deleteCookie' + webidl.argumentLengthCheck(arguments, 2, prefix) + + name = webidl.converters.DOMString(name, prefix, 'name') + attributes = webidl.converters.DeleteCookieAttributes(attributes) + + // Matches behavior of + // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 + setCookie(headers, { + name, + value: '', + expires: new Date(0), + ...attributes + }) +} + +/** + * @param {Headers} headers + * @returns {Cookie[]} + */ +function getSetCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, 'getSetCookies') + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookies = headers.getSetCookie() + + if (!cookies) { + return [] + } + + return cookies.map((pair) => parseSetCookie(pair)) +} + +/** + * @param {Headers} headers + * @param {Cookie} cookie + * @returns {void} + */ +function setCookie (headers, cookie) { + webidl.argumentLengthCheck(arguments, 2, 'setCookie') + + webidl.brandCheck(headers, Headers, { strict: false }) + + cookie = webidl.converters.Cookie(cookie) + + const str = stringify(cookie) + + if (str) { + headers.append('Set-Cookie', str) + } +} + +webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: () => null + } +]) + +webidl.converters.Cookie = webidl.dictionaryConverter([ + { + converter: webidl.converters.DOMString, + key: 'name' + }, + { + converter: webidl.converters.DOMString, + key: 'value' + }, + { + converter: webidl.nullableConverter((value) => { + if (typeof value === 'number') { + return webidl.converters['unsigned long long'](value) + } + + return new Date(value) + }), + key: 'expires', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters['long long']), + key: 'maxAge', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'secure', + defaultValue: () => null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'httpOnly', + defaultValue: () => null + }, + { + converter: webidl.converters.USVString, + key: 'sameSite', + allowedValues: ['Strict', 'Lax', 'None'] + }, + { + converter: webidl.sequenceConverter(webidl.converters.DOMString), + key: 'unparsed', + defaultValue: () => new Array(0) + } +]) + +module.exports = { + getCookies, + deleteCookie, + getSetCookies, + setCookie +} + + +/***/ }), + +/***/ 1978: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { maxNameValuePairSize, maxAttributeValueSize } = __nccwpck_require__(1276) +const { isCTLExcludingHtab } = __nccwpck_require__(7797) +const { collectASequenceOfCodePointsFast } = __nccwpck_require__(1900) +const assert = __nccwpck_require__(4589) + +/** + * @description Parses the field-value attributes of a set-cookie header string. + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} header + * @returns if the header is invalid, null will be returned + */ +function parseSetCookie (header) { + // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F + // character (CTL characters excluding HTAB): Abort these steps and + // ignore the set-cookie-string entirely. + if (isCTLExcludingHtab(header)) { + return null + } + + let nameValuePair = '' + let unparsedAttributes = '' + let name = '' + let value = '' + + // 2. If the set-cookie-string contains a %x3B (";") character: + if (header.includes(';')) { + // 1. The name-value-pair string consists of the characters up to, + // but not including, the first %x3B (";"), and the unparsed- + // attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question). + const position = { position: 0 } + + nameValuePair = collectASequenceOfCodePointsFast(';', header, position) + unparsedAttributes = header.slice(position.position) + } else { + // Otherwise: + + // 1. The name-value-pair string consists of all the characters + // contained in the set-cookie-string, and the unparsed- + // attributes is the empty string. + nameValuePair = header + } + + // 3. If the name-value-pair string lacks a %x3D ("=") character, then + // the name string is empty, and the value string is the value of + // name-value-pair. + if (!nameValuePair.includes('=')) { + value = nameValuePair + } else { + // Otherwise, the name string consists of the characters up to, but + // not including, the first %x3D ("=") character, and the (possibly + // empty) value string consists of the characters after the first + // %x3D ("=") character. + const position = { position: 0 } + name = collectASequenceOfCodePointsFast( + '=', + nameValuePair, + position + ) + value = nameValuePair.slice(position.position + 1) + } + + // 4. Remove any leading or trailing WSP characters from the name + // string and the value string. + name = name.trim() + value = value.trim() + + // 5. If the sum of the lengths of the name string and the value string + // is more than 4096 octets, abort these steps and ignore the set- + // cookie-string entirely. + if (name.length + value.length > maxNameValuePairSize) { + return null + } + + // 6. The cookie-name is the name string, and the cookie-value is the + // value string. + return { + name, value, ...parseUnparsedAttributes(unparsedAttributes) + } +} + +/** + * Parses the remaining attributes of a set-cookie header + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} unparsedAttributes + * @param {[Object.]={}} cookieAttributeList + */ +function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) { + // 1. If the unparsed-attributes string is empty, skip the rest of + // these steps. + if (unparsedAttributes.length === 0) { + return cookieAttributeList + } + + // 2. Discard the first character of the unparsed-attributes (which + // will be a %x3B (";") character). + assert(unparsedAttributes[0] === ';') + unparsedAttributes = unparsedAttributes.slice(1) + + let cookieAv = '' + + // 3. If the remaining unparsed-attributes contains a %x3B (";") + // character: + if (unparsedAttributes.includes(';')) { + // 1. Consume the characters of the unparsed-attributes up to, but + // not including, the first %x3B (";") character. + cookieAv = collectASequenceOfCodePointsFast( + ';', + unparsedAttributes, + { position: 0 } + ) + unparsedAttributes = unparsedAttributes.slice(cookieAv.length) + } else { + // Otherwise: + + // 1. Consume the remainder of the unparsed-attributes. + cookieAv = unparsedAttributes + unparsedAttributes = '' + } + + // Let the cookie-av string be the characters consumed in this step. + + let attributeName = '' + let attributeValue = '' + + // 4. If the cookie-av string contains a %x3D ("=") character: + if (cookieAv.includes('=')) { + // 1. The (possibly empty) attribute-name string consists of the + // characters up to, but not including, the first %x3D ("=") + // character, and the (possibly empty) attribute-value string + // consists of the characters after the first %x3D ("=") + // character. + const position = { position: 0 } + + attributeName = collectASequenceOfCodePointsFast( + '=', + cookieAv, + position + ) + attributeValue = cookieAv.slice(position.position + 1) + } else { + // Otherwise: + + // 1. The attribute-name string consists of the entire cookie-av + // string, and the attribute-value string is empty. + attributeName = cookieAv + } + + // 5. Remove any leading or trailing WSP characters from the attribute- + // name string and the attribute-value string. + attributeName = attributeName.trim() + attributeValue = attributeValue.trim() + + // 6. If the attribute-value is longer than 1024 octets, ignore the + // cookie-av string and return to Step 1 of this algorithm. + if (attributeValue.length > maxAttributeValueSize) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 7. Process the attribute-name and attribute-value according to the + // requirements in the following subsections. (Notice that + // attributes with unrecognized attribute-names are ignored.) + const attributeNameLowercase = attributeName.toLowerCase() + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 + // If the attribute-name case-insensitively matches the string + // "Expires", the user agent MUST process the cookie-av as follows. + if (attributeNameLowercase === 'expires') { + // 1. Let the expiry-time be the result of parsing the attribute-value + // as cookie-date (see Section 5.1.1). + const expiryTime = new Date(attributeValue) + + // 2. If the attribute-value failed to parse as a cookie date, ignore + // the cookie-av. + + cookieAttributeList.expires = expiryTime + } else if (attributeNameLowercase === 'max-age') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 + // If the attribute-name case-insensitively matches the string "Max- + // Age", the user agent MUST process the cookie-av as follows. + + // 1. If the first character of the attribute-value is not a DIGIT or a + // "-" character, ignore the cookie-av. + const charCode = attributeValue.charCodeAt(0) + + if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 2. If the remainder of attribute-value contains a non-DIGIT + // character, ignore the cookie-av. + if (!/^\d+$/.test(attributeValue)) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 3. Let delta-seconds be the attribute-value converted to an integer. + const deltaSeconds = Number(attributeValue) + + // 4. Let cookie-age-limit be the maximum age of the cookie (which + // SHOULD be 400 days or less, see Section 4.1.2.2). + + // 5. Set delta-seconds to the smaller of its present value and cookie- + // age-limit. + // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) + + // 6. If delta-seconds is less than or equal to zero (0), let expiry- + // time be the earliest representable date and time. Otherwise, let + // the expiry-time be the current date and time plus delta-seconds + // seconds. + // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds + + // 7. Append an attribute to the cookie-attribute-list with an + // attribute-name of Max-Age and an attribute-value of expiry-time. + cookieAttributeList.maxAge = deltaSeconds + } else if (attributeNameLowercase === 'domain') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 + // If the attribute-name case-insensitively matches the string "Domain", + // the user agent MUST process the cookie-av as follows. + + // 1. Let cookie-domain be the attribute-value. + let cookieDomain = attributeValue + + // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be + // cookie-domain without its leading %x2E ("."). + if (cookieDomain[0] === '.') { + cookieDomain = cookieDomain.slice(1) + } + + // 3. Convert the cookie-domain to lower case. + cookieDomain = cookieDomain.toLowerCase() + + // 4. Append an attribute to the cookie-attribute-list with an + // attribute-name of Domain and an attribute-value of cookie-domain. + cookieAttributeList.domain = cookieDomain + } else if (attributeNameLowercase === 'path') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 + // If the attribute-name case-insensitively matches the string "Path", + // the user agent MUST process the cookie-av as follows. + + // 1. If the attribute-value is empty or if the first character of the + // attribute-value is not %x2F ("/"): + let cookiePath = '' + if (attributeValue.length === 0 || attributeValue[0] !== '/') { + // 1. Let cookie-path be the default-path. + cookiePath = '/' + } else { + // Otherwise: + + // 1. Let cookie-path be the attribute-value. + cookiePath = attributeValue + } + + // 2. Append an attribute to the cookie-attribute-list with an + // attribute-name of Path and an attribute-value of cookie-path. + cookieAttributeList.path = cookiePath + } else if (attributeNameLowercase === 'secure') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 + // If the attribute-name case-insensitively matches the string "Secure", + // the user agent MUST append an attribute to the cookie-attribute-list + // with an attribute-name of Secure and an empty attribute-value. + + cookieAttributeList.secure = true + } else if (attributeNameLowercase === 'httponly') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 + // If the attribute-name case-insensitively matches the string + // "HttpOnly", the user agent MUST append an attribute to the cookie- + // attribute-list with an attribute-name of HttpOnly and an empty + // attribute-value. + + cookieAttributeList.httpOnly = true + } else if (attributeNameLowercase === 'samesite') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 + // If the attribute-name case-insensitively matches the string + // "SameSite", the user agent MUST process the cookie-av as follows: + + // 1. Let enforcement be "Default". + let enforcement = 'Default' + + const attributeValueLowercase = attributeValue.toLowerCase() + // 2. If cookie-av's attribute-value is a case-insensitive match for + // "None", set enforcement to "None". + if (attributeValueLowercase.includes('none')) { + enforcement = 'None' + } + + // 3. If cookie-av's attribute-value is a case-insensitive match for + // "Strict", set enforcement to "Strict". + if (attributeValueLowercase.includes('strict')) { + enforcement = 'Strict' + } + + // 4. If cookie-av's attribute-value is a case-insensitive match for + // "Lax", set enforcement to "Lax". + if (attributeValueLowercase.includes('lax')) { + enforcement = 'Lax' + } + + // 5. Append an attribute to the cookie-attribute-list with an + // attribute-name of "SameSite" and an attribute-value of + // enforcement. + cookieAttributeList.sameSite = enforcement + } else { + cookieAttributeList.unparsed ??= [] + + cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`) + } + + // 8. Return to Step 1 of this algorithm. + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) +} + +module.exports = { + parseSetCookie, + parseUnparsedAttributes +} + + +/***/ }), + +/***/ 7797: +/***/ ((module) => { + + + +/** + * @param {string} value + * @returns {boolean} + */ +function isCTLExcludingHtab (value) { + for (let i = 0; i < value.length; ++i) { + const code = value.charCodeAt(i) + + if ( + (code >= 0x00 && code <= 0x08) || + (code >= 0x0A && code <= 0x1F) || + code === 0x7F + ) { + return true + } + } + return false +} + +/** + CHAR = + token = 1* + separators = "(" | ")" | "<" | ">" | "@" + | "," | ";" | ":" | "\" | <"> + | "/" | "[" | "]" | "?" | "=" + | "{" | "}" | SP | HT + * @param {string} name + */ +function validateCookieName (name) { + for (let i = 0; i < name.length; ++i) { + const code = name.charCodeAt(i) + + if ( + code < 0x21 || // exclude CTLs (0-31), SP and HT + code > 0x7E || // exclude non-ascii and DEL + code === 0x22 || // " + code === 0x28 || // ( + code === 0x29 || // ) + code === 0x3C || // < + code === 0x3E || // > + code === 0x40 || // @ + code === 0x2C || // , + code === 0x3B || // ; + code === 0x3A || // : + code === 0x5C || // \ + code === 0x2F || // / + code === 0x5B || // [ + code === 0x5D || // ] + code === 0x3F || // ? + code === 0x3D || // = + code === 0x7B || // { + code === 0x7D // } + ) { + throw new Error('Invalid cookie name') + } + } +} + +/** + cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + ; US-ASCII characters excluding CTLs, + ; whitespace DQUOTE, comma, semicolon, + ; and backslash + * @param {string} value + */ +function validateCookieValue (value) { + let len = value.length + let i = 0 + + // if the value is wrapped in DQUOTE + if (value[0] === '"') { + if (len === 1 || value[len - 1] !== '"') { + throw new Error('Invalid cookie value') + } + --len + ++i + } + + while (i < len) { + const code = value.charCodeAt(i++) + + if ( + code < 0x21 || // exclude CTLs (0-31) + code > 0x7E || // non-ascii and DEL (127) + code === 0x22 || // " + code === 0x2C || // , + code === 0x3B || // ; + code === 0x5C // \ + ) { + throw new Error('Invalid cookie value') + } + } +} + +/** + * path-value = + * @param {string} path + */ +function validateCookiePath (path) { + for (let i = 0; i < path.length; ++i) { + const code = path.charCodeAt(i) + + if ( + code < 0x20 || // exclude CTLs (0-31) + code === 0x7F || // DEL + code === 0x3B // ; + ) { + throw new Error('Invalid cookie path') + } + } +} + +/** + * I have no idea why these values aren't allowed to be honest, + * but Deno tests these. - Khafra + * @param {string} domain + */ +function validateCookieDomain (domain) { + if ( + domain.startsWith('-') || + domain.endsWith('.') || + domain.endsWith('-') + ) { + throw new Error('Invalid cookie domain') + } +} + +const IMFDays = [ + 'Sun', 'Mon', 'Tue', 'Wed', + 'Thu', 'Fri', 'Sat' +] + +const IMFMonths = [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' +] + +const IMFPaddedNumbers = Array(61).fill(0).map((_, i) => i.toString().padStart(2, '0')) + +/** + * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 + * @param {number|Date} date + IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT + ; fixed length/zone/capitalization subset of the format + ; see Section 3.3 of [RFC5322] + + day-name = %x4D.6F.6E ; "Mon", case-sensitive + / %x54.75.65 ; "Tue", case-sensitive + / %x57.65.64 ; "Wed", case-sensitive + / %x54.68.75 ; "Thu", case-sensitive + / %x46.72.69 ; "Fri", case-sensitive + / %x53.61.74 ; "Sat", case-sensitive + / %x53.75.6E ; "Sun", case-sensitive + date1 = day SP month SP year + ; e.g., 02 Jun 1982 + + day = 2DIGIT + month = %x4A.61.6E ; "Jan", case-sensitive + / %x46.65.62 ; "Feb", case-sensitive + / %x4D.61.72 ; "Mar", case-sensitive + / %x41.70.72 ; "Apr", case-sensitive + / %x4D.61.79 ; "May", case-sensitive + / %x4A.75.6E ; "Jun", case-sensitive + / %x4A.75.6C ; "Jul", case-sensitive + / %x41.75.67 ; "Aug", case-sensitive + / %x53.65.70 ; "Sep", case-sensitive + / %x4F.63.74 ; "Oct", case-sensitive + / %x4E.6F.76 ; "Nov", case-sensitive + / %x44.65.63 ; "Dec", case-sensitive + year = 4DIGIT + + GMT = %x47.4D.54 ; "GMT", case-sensitive + + time-of-day = hour ":" minute ":" second + ; 00:00:00 - 23:59:60 (leap second) + + hour = 2DIGIT + minute = 2DIGIT + second = 2DIGIT + */ +function toIMFDate (date) { + if (typeof date === 'number') { + date = new Date(date) + } + + return `${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT` +} + +/** + max-age-av = "Max-Age=" non-zero-digit *DIGIT + ; In practice, both expires-av and max-age-av + ; are limited to dates representable by the + ; user agent. + * @param {number} maxAge + */ +function validateCookieMaxAge (maxAge) { + if (maxAge < 0) { + throw new Error('Invalid cookie max-age') + } +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 + * @param {import('./index').Cookie} cookie + */ +function stringify (cookie) { + if (cookie.name.length === 0) { + return null + } + + validateCookieName(cookie.name) + validateCookieValue(cookie.value) + + const out = [`${cookie.name}=${cookie.value}`] + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 + if (cookie.name.startsWith('__Secure-')) { + cookie.secure = true + } + + if (cookie.name.startsWith('__Host-')) { + cookie.secure = true + cookie.domain = null + cookie.path = '/' + } + + if (cookie.secure) { + out.push('Secure') + } + + if (cookie.httpOnly) { + out.push('HttpOnly') + } + + if (typeof cookie.maxAge === 'number') { + validateCookieMaxAge(cookie.maxAge) + out.push(`Max-Age=${cookie.maxAge}`) + } + + if (cookie.domain) { + validateCookieDomain(cookie.domain) + out.push(`Domain=${cookie.domain}`) + } + + if (cookie.path) { + validateCookiePath(cookie.path) + out.push(`Path=${cookie.path}`) + } + + if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { + out.push(`Expires=${toIMFDate(cookie.expires)}`) + } + + if (cookie.sameSite) { + out.push(`SameSite=${cookie.sameSite}`) + } + + for (const part of cookie.unparsed) { + if (!part.includes('=')) { + throw new Error('Invalid unparsed') + } + + const [key, ...value] = part.split('=') + + out.push(`${key.trim()}=${value.join('=')}`) + } + + return out.join('; ') +} + +module.exports = { + isCTLExcludingHtab, + validateCookieName, + validateCookiePath, + validateCookieValue, + toIMFDate, + stringify +} + + +/***/ }), + +/***/ 4031: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +const { Transform } = __nccwpck_require__(7075) +const { isASCIINumber, isValidLastEventId } = __nccwpck_require__(4811) + +/** + * @type {number[]} BOM + */ +const BOM = [0xEF, 0xBB, 0xBF] +/** + * @type {10} LF + */ +const LF = 0x0A +/** + * @type {13} CR + */ +const CR = 0x0D +/** + * @type {58} COLON + */ +const COLON = 0x3A +/** + * @type {32} SPACE + */ +const SPACE = 0x20 + +/** + * @typedef {object} EventSourceStreamEvent + * @type {object} + * @property {string} [event] The event type. + * @property {string} [data] The data of the message. + * @property {string} [id] A unique ID for the event. + * @property {string} [retry] The reconnection time, in milliseconds. + */ + +/** + * @typedef eventSourceSettings + * @type {object} + * @property {string} lastEventId The last event ID received from the server. + * @property {string} origin The origin of the event source. + * @property {number} reconnectionTime The reconnection time, in milliseconds. + */ + +class EventSourceStream extends Transform { + /** + * @type {eventSourceSettings} + */ + state = null + + /** + * Leading byte-order-mark check. + * @type {boolean} + */ + checkBOM = true + + /** + * @type {boolean} + */ + crlfCheck = false + + /** + * @type {boolean} + */ + eventEndCheck = false + + /** + * @type {Buffer} + */ + buffer = null + + pos = 0 + + event = { + data: undefined, + event: undefined, + id: undefined, + retry: undefined + } + + /** + * @param {object} options + * @param {eventSourceSettings} options.eventSourceSettings + * @param {Function} [options.push] + */ + constructor (options = {}) { + // Enable object mode as EventSourceStream emits objects of shape + // EventSourceStreamEvent + options.readableObjectMode = true + + super(options) + + this.state = options.eventSourceSettings || {} + if (options.push) { + this.push = options.push + } + } + + /** + * @param {Buffer} chunk + * @param {string} _encoding + * @param {Function} callback + * @returns {void} + */ + _transform (chunk, _encoding, callback) { + if (chunk.length === 0) { + callback() + return + } + + // Cache the chunk in the buffer, as the data might not be complete while + // processing it + // TODO: Investigate if there is a more performant way to handle + // incoming chunks + // see: https://github.com/nodejs/undici/issues/2630 + if (this.buffer) { + this.buffer = Buffer.concat([this.buffer, chunk]) + } else { + this.buffer = chunk + } + + // Strip leading byte-order-mark if we opened the stream and started + // the processing of the incoming data + if (this.checkBOM) { + switch (this.buffer.length) { + case 1: + // Check if the first byte is the same as the first byte of the BOM + if (this.buffer[0] === BOM[0]) { + // If it is, we need to wait for more data + callback() + return + } + // Set the checkBOM flag to false as we don't need to check for the + // BOM anymore + this.checkBOM = false + + // The buffer only contains one byte so we need to wait for more data + callback() + return + case 2: + // Check if the first two bytes are the same as the first two bytes + // of the BOM + if ( + this.buffer[0] === BOM[0] && + this.buffer[1] === BOM[1] + ) { + // If it is, we need to wait for more data, because the third byte + // is needed to determine if it is the BOM or not + callback() + return + } + + // Set the checkBOM flag to false as we don't need to check for the + // BOM anymore + this.checkBOM = false + break + case 3: + // Check if the first three bytes are the same as the first three + // bytes of the BOM + if ( + this.buffer[0] === BOM[0] && + this.buffer[1] === BOM[1] && + this.buffer[2] === BOM[2] + ) { + // If it is, we can drop the buffered data, as it is only the BOM + this.buffer = Buffer.alloc(0) + // Set the checkBOM flag to false as we don't need to check for the + // BOM anymore + this.checkBOM = false + + // Await more data + callback() + return + } + // If it is not the BOM, we can start processing the data + this.checkBOM = false + break + default: + // The buffer is longer than 3 bytes, so we can drop the BOM if it is + // present + if ( + this.buffer[0] === BOM[0] && + this.buffer[1] === BOM[1] && + this.buffer[2] === BOM[2] + ) { + // Remove the BOM from the buffer + this.buffer = this.buffer.subarray(3) + } + + // Set the checkBOM flag to false as we don't need to check for the + this.checkBOM = false + break + } + } + + while (this.pos < this.buffer.length) { + // If the previous line ended with an end-of-line, we need to check + // if the next character is also an end-of-line. + if (this.eventEndCheck) { + // If the the current character is an end-of-line, then the event + // is finished and we can process it + + // If the previous line ended with a carriage return, we need to + // check if the current character is a line feed and remove it + // from the buffer. + if (this.crlfCheck) { + // If the current character is a line feed, we can remove it + // from the buffer and reset the crlfCheck flag + if (this.buffer[this.pos] === LF) { + this.buffer = this.buffer.subarray(this.pos + 1) + this.pos = 0 + this.crlfCheck = false + + // It is possible that the line feed is not the end of the + // event. We need to check if the next character is an + // end-of-line character to determine if the event is + // finished. We simply continue the loop to check the next + // character. + + // As we removed the line feed from the buffer and set the + // crlfCheck flag to false, we basically don't make any + // distinction between a line feed and a carriage return. + continue + } + this.crlfCheck = false + } + + if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { + // If the current character is a carriage return, we need to + // set the crlfCheck flag to true, as we need to check if the + // next character is a line feed so we can remove it from the + // buffer + if (this.buffer[this.pos] === CR) { + this.crlfCheck = true + } + + this.buffer = this.buffer.subarray(this.pos + 1) + this.pos = 0 + if ( + this.event.data !== undefined || this.event.event || this.event.id || this.event.retry) { + this.processEvent(this.event) + } + this.clearEvent() + continue + } + // If the current character is not an end-of-line, then the event + // is not finished and we have to reset the eventEndCheck flag + this.eventEndCheck = false + continue + } + + // If the current character is an end-of-line, we can process the + // line + if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { + // If the current character is a carriage return, we need to + // set the crlfCheck flag to true, as we need to check if the + // next character is a line feed + if (this.buffer[this.pos] === CR) { + this.crlfCheck = true + } + + // In any case, we can process the line as we reached an + // end-of-line character + this.parseLine(this.buffer.subarray(0, this.pos), this.event) + + // Remove the processed line from the buffer + this.buffer = this.buffer.subarray(this.pos + 1) + // Reset the position as we removed the processed line from the buffer + this.pos = 0 + // A line was processed and this could be the end of the event. We need + // to check if the next line is empty to determine if the event is + // finished. + this.eventEndCheck = true + continue + } + + this.pos++ + } + + callback() + } + + /** + * @param {Buffer} line + * @param {EventStreamEvent} event + */ + parseLine (line, event) { + // If the line is empty (a blank line) + // Dispatch the event, as defined below. + // This will be handled in the _transform method + if (line.length === 0) { + return + } + + // If the line starts with a U+003A COLON character (:) + // Ignore the line. + const colonPosition = line.indexOf(COLON) + if (colonPosition === 0) { + return + } + + let field = '' + let value = '' + + // If the line contains a U+003A COLON character (:) + if (colonPosition !== -1) { + // Collect the characters on the line before the first U+003A COLON + // character (:), and let field be that string. + // TODO: Investigate if there is a more performant way to extract the + // field + // see: https://github.com/nodejs/undici/issues/2630 + field = line.subarray(0, colonPosition).toString('utf8') + + // Collect the characters on the line after the first U+003A COLON + // character (:), and let value be that string. + // If value starts with a U+0020 SPACE character, remove it from value. + let valueStart = colonPosition + 1 + if (line[valueStart] === SPACE) { + ++valueStart + } + // TODO: Investigate if there is a more performant way to extract the + // value + // see: https://github.com/nodejs/undici/issues/2630 + value = line.subarray(valueStart).toString('utf8') + + // Otherwise, the string is not empty but does not contain a U+003A COLON + // character (:) + } else { + // Process the field using the steps described below, using the whole + // line as the field name, and the empty string as the field value. + field = line.toString('utf8') + value = '' + } + + // Modify the event with the field name and value. The value is also + // decoded as UTF-8 + switch (field) { + case 'data': + if (event[field] === undefined) { + event[field] = value + } else { + event[field] += `\n${value}` + } + break + case 'retry': + if (isASCIINumber(value)) { + event[field] = value + } + break + case 'id': + if (isValidLastEventId(value)) { + event[field] = value + } + break + case 'event': + if (value.length > 0) { + event[field] = value + } + break + } + } + + /** + * @param {EventSourceStreamEvent} event + */ + processEvent (event) { + if (event.retry && isASCIINumber(event.retry)) { + this.state.reconnectionTime = parseInt(event.retry, 10) + } + + if (event.id && isValidLastEventId(event.id)) { + this.state.lastEventId = event.id + } + + // only dispatch event, when data is provided + if (event.data !== undefined) { + this.push({ + type: event.event || 'message', + options: { + data: event.data, + lastEventId: this.state.lastEventId, + origin: this.state.origin + } + }) + } + } + + clearEvent () { + this.event = { + data: undefined, + event: undefined, + id: undefined, + retry: undefined + } + } +} + +module.exports = { + EventSourceStream +} + + +/***/ }), + +/***/ 1238: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { pipeline } = __nccwpck_require__(7075) +const { fetching } = __nccwpck_require__(4398) +const { makeRequest } = __nccwpck_require__(9967) +const { webidl } = __nccwpck_require__(5893) +const { EventSourceStream } = __nccwpck_require__(4031) +const { parseMIMEType } = __nccwpck_require__(1900) +const { createFastMessageEvent } = __nccwpck_require__(5188) +const { isNetworkError } = __nccwpck_require__(9051) +const { delay } = __nccwpck_require__(4811) +const { kEnumerableProperty } = __nccwpck_require__(3440) +const { environmentSettingsObject } = __nccwpck_require__(3168) + +let experimentalWarned = false + +/** + * A reconnection time, in milliseconds. This must initially be an implementation-defined value, + * probably in the region of a few seconds. + * + * In Comparison: + * - Chrome uses 3000ms. + * - Deno uses 5000ms. + * + * @type {3000} + */ +const defaultReconnectionTime = 3000 + +/** + * The readyState attribute represents the state of the connection. + * @enum + * @readonly + * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#dom-eventsource-readystate-dev + */ + +/** + * The connection has not yet been established, or it was closed and the user + * agent is reconnecting. + * @type {0} + */ +const CONNECTING = 0 + +/** + * The user agent has an open connection and is dispatching events as it + * receives them. + * @type {1} + */ +const OPEN = 1 + +/** + * The connection is not open, and the user agent is not trying to reconnect. + * @type {2} + */ +const CLOSED = 2 + +/** + * Requests for the element will have their mode set to "cors" and their credentials mode set to "same-origin". + * @type {'anonymous'} + */ +const ANONYMOUS = 'anonymous' + +/** + * Requests for the element will have their mode set to "cors" and their credentials mode set to "include". + * @type {'use-credentials'} + */ +const USE_CREDENTIALS = 'use-credentials' + +/** + * The EventSource interface is used to receive server-sent events. It + * connects to a server over HTTP and receives events in text/event-stream + * format without closing the connection. + * @extends {EventTarget} + * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#server-sent-events + * @api public + */ +class EventSource extends EventTarget { + #events = { + open: null, + error: null, + message: null + } + + #url = null + #withCredentials = false + + #readyState = CONNECTING + + #request = null + #controller = null + + #dispatcher + + /** + * @type {import('./eventsource-stream').eventSourceSettings} + */ + #state + + /** + * Creates a new EventSource object. + * @param {string} url + * @param {EventSourceInit} [eventSourceInitDict] + * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface + */ + constructor (url, eventSourceInitDict = {}) { + // 1. Let ev be a new EventSource object. + super() + + webidl.util.markAsUncloneable(this) + + const prefix = 'EventSource constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + if (!experimentalWarned) { + experimentalWarned = true + process.emitWarning('EventSource is experimental, expect them to change at any time.', { + code: 'UNDICI-ES' + }) + } + + url = webidl.converters.USVString(url, prefix, 'url') + eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, 'eventSourceInitDict') + + this.#dispatcher = eventSourceInitDict.dispatcher + this.#state = { + lastEventId: '', + reconnectionTime: defaultReconnectionTime + } + + // 2. Let settings be ev's relevant settings object. + // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object + const settings = environmentSettingsObject + + let urlRecord + + try { + // 3. Let urlRecord be the result of encoding-parsing a URL given url, relative to settings. + urlRecord = new URL(url, settings.settingsObject.baseUrl) + this.#state.origin = urlRecord.origin + } catch (e) { + // 4. If urlRecord is failure, then throw a "SyntaxError" DOMException. + throw new DOMException(e, 'SyntaxError') + } + + // 5. Set ev's url to urlRecord. + this.#url = urlRecord.href + + // 6. Let corsAttributeState be Anonymous. + let corsAttributeState = ANONYMOUS + + // 7. If the value of eventSourceInitDict's withCredentials member is true, + // then set corsAttributeState to Use Credentials and set ev's + // withCredentials attribute to true. + if (eventSourceInitDict.withCredentials) { + corsAttributeState = USE_CREDENTIALS + this.#withCredentials = true + } + + // 8. Let request be the result of creating a potential-CORS request given + // urlRecord, the empty string, and corsAttributeState. + const initRequest = { + redirect: 'follow', + keepalive: true, + // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes + mode: 'cors', + credentials: corsAttributeState === 'anonymous' + ? 'same-origin' + : 'omit', + referrer: 'no-referrer' + } + + // 9. Set request's client to settings. + initRequest.client = environmentSettingsObject.settingsObject + + // 10. User agents may set (`Accept`, `text/event-stream`) in request's header list. + initRequest.headersList = [['accept', { name: 'accept', value: 'text/event-stream' }]] + + // 11. Set request's cache mode to "no-store". + initRequest.cache = 'no-store' + + // 12. Set request's initiator type to "other". + initRequest.initiator = 'other' + + initRequest.urlList = [new URL(this.#url)] + + // 13. Set ev's request to request. + this.#request = makeRequest(initRequest) + + this.#connect() + } + + /** + * Returns the state of this EventSource object's connection. It can have the + * values described below. + * @returns {0|1|2} + * @readonly + */ + get readyState () { + return this.#readyState + } + + /** + * Returns the URL providing the event stream. + * @readonly + * @returns {string} + */ + get url () { + return this.#url + } + + /** + * Returns a boolean indicating whether the EventSource object was + * instantiated with CORS credentials set (true), or not (false, the default). + */ + get withCredentials () { + return this.#withCredentials + } + + #connect () { + if (this.#readyState === CLOSED) return + + this.#readyState = CONNECTING + + const fetchParams = { + request: this.#request, + dispatcher: this.#dispatcher + } + + // 14. Let processEventSourceEndOfBody given response res be the following step: if res is not a network error, then reestablish the connection. + const processEventSourceEndOfBody = (response) => { + if (isNetworkError(response)) { + this.dispatchEvent(new Event('error')) + this.close() + } + + this.#reconnect() + } + + // 15. Fetch request, with processResponseEndOfBody set to processEventSourceEndOfBody... + fetchParams.processResponseEndOfBody = processEventSourceEndOfBody + + // and processResponse set to the following steps given response res: + fetchParams.processResponse = (response) => { + // 1. If res is an aborted network error, then fail the connection. + + if (isNetworkError(response)) { + // 1. When a user agent is to fail the connection, the user agent + // must queue a task which, if the readyState attribute is set to a + // value other than CLOSED, sets the readyState attribute to CLOSED + // and fires an event named error at the EventSource object. Once the + // user agent has failed the connection, it does not attempt to + // reconnect. + if (response.aborted) { + this.close() + this.dispatchEvent(new Event('error')) + return + // 2. Otherwise, if res is a network error, then reestablish the + // connection, unless the user agent knows that to be futile, in + // which case the user agent may fail the connection. + } else { + this.#reconnect() + return + } + } + + // 3. Otherwise, if res's status is not 200, or if res's `Content-Type` + // is not `text/event-stream`, then fail the connection. + const contentType = response.headersList.get('content-type', true) + const mimeType = contentType !== null ? parseMIMEType(contentType) : 'failure' + const contentTypeValid = mimeType !== 'failure' && mimeType.essence === 'text/event-stream' + if ( + response.status !== 200 || + contentTypeValid === false + ) { + this.close() + this.dispatchEvent(new Event('error')) + return + } + + // 4. Otherwise, announce the connection and interpret res's body + // line by line. + + // When a user agent is to announce the connection, the user agent + // must queue a task which, if the readyState attribute is set to a + // value other than CLOSED, sets the readyState attribute to OPEN + // and fires an event named open at the EventSource object. + // @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model + this.#readyState = OPEN + this.dispatchEvent(new Event('open')) + + // If redirected to a different origin, set the origin to the new origin. + this.#state.origin = response.urlList[response.urlList.length - 1].origin + + const eventSourceStream = new EventSourceStream({ + eventSourceSettings: this.#state, + push: (event) => { + this.dispatchEvent(createFastMessageEvent( + event.type, + event.options + )) + } + }) + + pipeline(response.body.stream, + eventSourceStream, + (error) => { + if ( + error?.aborted === false + ) { + this.close() + this.dispatchEvent(new Event('error')) + } + }) + } + + this.#controller = fetching(fetchParams) + } + + /** + * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model + * @returns {Promise} + */ + async #reconnect () { + // When a user agent is to reestablish the connection, the user agent must + // run the following steps. These steps are run in parallel, not as part of + // a task. (The tasks that it queues, of course, are run like normal tasks + // and not themselves in parallel.) + + // 1. Queue a task to run the following steps: + + // 1. If the readyState attribute is set to CLOSED, abort the task. + if (this.#readyState === CLOSED) return + + // 2. Set the readyState attribute to CONNECTING. + this.#readyState = CONNECTING + + // 3. Fire an event named error at the EventSource object. + this.dispatchEvent(new Event('error')) + + // 2. Wait a delay equal to the reconnection time of the event source. + await delay(this.#state.reconnectionTime) + + // 5. Queue a task to run the following steps: + + // 1. If the EventSource object's readyState attribute is not set to + // CONNECTING, then return. + if (this.#readyState !== CONNECTING) return + + // 2. Let request be the EventSource object's request. + // 3. If the EventSource object's last event ID string is not the empty + // string, then: + // 1. Let lastEventIDValue be the EventSource object's last event ID + // string, encoded as UTF-8. + // 2. Set (`Last-Event-ID`, lastEventIDValue) in request's header + // list. + if (this.#state.lastEventId.length) { + this.#request.headersList.set('last-event-id', this.#state.lastEventId, true) + } + + // 4. Fetch request and process the response obtained in this fashion, if any, as described earlier in this section. + this.#connect() + } + + /** + * Closes the connection, if any, and sets the readyState attribute to + * CLOSED. + */ + close () { + webidl.brandCheck(this, EventSource) + + if (this.#readyState === CLOSED) return + this.#readyState = CLOSED + this.#controller.abort() + this.#request = null + } + + get onopen () { + return this.#events.open + } + + set onopen (fn) { + if (this.#events.open) { + this.removeEventListener('open', this.#events.open) + } + + if (typeof fn === 'function') { + this.#events.open = fn + this.addEventListener('open', fn) + } else { + this.#events.open = null + } + } + + get onmessage () { + return this.#events.message + } + + set onmessage (fn) { + if (this.#events.message) { + this.removeEventListener('message', this.#events.message) + } + + if (typeof fn === 'function') { + this.#events.message = fn + this.addEventListener('message', fn) + } else { + this.#events.message = null + } + } + + get onerror () { + return this.#events.error + } + + set onerror (fn) { + if (this.#events.error) { + this.removeEventListener('error', this.#events.error) + } + + if (typeof fn === 'function') { + this.#events.error = fn + this.addEventListener('error', fn) + } else { + this.#events.error = null + } + } +} + +const constantsPropertyDescriptors = { + CONNECTING: { + __proto__: null, + configurable: false, + enumerable: true, + value: CONNECTING, + writable: false + }, + OPEN: { + __proto__: null, + configurable: false, + enumerable: true, + value: OPEN, + writable: false + }, + CLOSED: { + __proto__: null, + configurable: false, + enumerable: true, + value: CLOSED, + writable: false + } +} + +Object.defineProperties(EventSource, constantsPropertyDescriptors) +Object.defineProperties(EventSource.prototype, constantsPropertyDescriptors) + +Object.defineProperties(EventSource.prototype, { + close: kEnumerableProperty, + onerror: kEnumerableProperty, + onmessage: kEnumerableProperty, + onopen: kEnumerableProperty, + readyState: kEnumerableProperty, + url: kEnumerableProperty, + withCredentials: kEnumerableProperty +}) + +webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([ + { + key: 'withCredentials', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'dispatcher', // undici only + converter: webidl.converters.any + } +]) + +module.exports = { + EventSource, + defaultReconnectionTime +} + + +/***/ }), + +/***/ 4811: +/***/ ((module) => { + + + +/** + * Checks if the given value is a valid LastEventId. + * @param {string} value + * @returns {boolean} + */ +function isValidLastEventId (value) { + // LastEventId should not contain U+0000 NULL + return value.indexOf('\u0000') === -1 +} + +/** + * Checks if the given value is a base 10 digit. + * @param {string} value + * @returns {boolean} + */ +function isASCIINumber (value) { + if (value.length === 0) return false + for (let i = 0; i < value.length; i++) { + if (value.charCodeAt(i) < 0x30 || value.charCodeAt(i) > 0x39) return false + } + return true +} + +// https://github.com/nodejs/undici/issues/2664 +function delay (ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms).unref() + }) +} + +module.exports = { + isValidLastEventId, + isASCIINumber, + delay +} + + +/***/ }), + +/***/ 4492: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const util = __nccwpck_require__(3440) +const { + ReadableStreamFrom, + isBlobLike, + isReadableStreamLike, + readableStreamClose, + createDeferredPromise, + fullyReadBody, + extractMimeType, + utf8DecodeBytes +} = __nccwpck_require__(3168) +const { FormData } = __nccwpck_require__(5910) +const { kState } = __nccwpck_require__(3627) +const { webidl } = __nccwpck_require__(5893) +const { Blob } = __nccwpck_require__(4573) +const assert = __nccwpck_require__(4589) +const { isErrored, isDisturbed } = __nccwpck_require__(7075) +const { isArrayBuffer } = __nccwpck_require__(3429) +const { serializeAMimeType } = __nccwpck_require__(1900) +const { multipartFormDataParser } = __nccwpck_require__(116) +let random + +try { + const crypto = __nccwpck_require__(7598) + random = (max) => crypto.randomInt(0, max) +} catch { + random = (max) => Math.floor(Math.random(max)) +} + +const textEncoder = new TextEncoder() +function noop () {} + +const hasFinalizationRegistry = globalThis.FinalizationRegistry && process.version.indexOf('v18') !== 0 +let streamRegistry + +if (hasFinalizationRegistry) { + streamRegistry = new FinalizationRegistry((weakRef) => { + const stream = weakRef.deref() + if (stream && !stream.locked && !isDisturbed(stream) && !isErrored(stream)) { + stream.cancel('Response object has been garbage collected').catch(noop) + } + }) +} + +// https://fetch.spec.whatwg.org/#concept-bodyinit-extract +function extractBody (object, keepalive = false) { + // 1. Let stream be null. + let stream = null + + // 2. If object is a ReadableStream object, then set stream to object. + if (object instanceof ReadableStream) { + stream = object + } else if (isBlobLike(object)) { + // 3. Otherwise, if object is a Blob object, set stream to the + // result of running object’s get stream. + stream = object.stream() + } else { + // 4. Otherwise, set stream to a new ReadableStream object, and set + // up stream with byte reading support. + stream = new ReadableStream({ + async pull (controller) { + const buffer = typeof source === 'string' ? textEncoder.encode(source) : source + + if (buffer.byteLength) { + controller.enqueue(buffer) + } + + queueMicrotask(() => readableStreamClose(controller)) + }, + start () {}, + type: 'bytes' + }) + } + + // 5. Assert: stream is a ReadableStream object. + assert(isReadableStreamLike(stream)) + + // 6. Let action be null. + let action = null + + // 7. Let source be null. + let source = null + + // 8. Let length be null. + let length = null + + // 9. Let type be null. + let type = null + + // 10. Switch on object: + if (typeof object === 'string') { + // Set source to the UTF-8 encoding of object. + // Note: setting source to a Uint8Array here breaks some mocking assumptions. + source = object + + // Set type to `text/plain;charset=UTF-8`. + type = 'text/plain;charset=UTF-8' + } else if (object instanceof URLSearchParams) { + // URLSearchParams + + // spec says to run application/x-www-form-urlencoded on body.list + // this is implemented in Node.js as apart of an URLSearchParams instance toString method + // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 + // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 + + // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. + source = object.toString() + + // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. + type = 'application/x-www-form-urlencoded;charset=UTF-8' + } else if (isArrayBuffer(object)) { + // BufferSource/ArrayBuffer + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.slice()) + } else if (ArrayBuffer.isView(object)) { + // BufferSource/ArrayBufferView + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)) + } else if (util.isFormDataLike(object)) { + const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, '0')}` + const prefix = `--${boundary}\r\nContent-Disposition: form-data` + + /*! formdata-polyfill. MIT License. Jimmy Wärting */ + const escape = (str) => + str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') + const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n') + + // Set action to this step: run the multipart/form-data + // encoding algorithm, with object’s entry list and UTF-8. + // - This ensures that the body is immutable and can't be changed afterwords + // - That the content-length is calculated in advance. + // - And that all parts are pre-encoded and ready to be sent. + + const blobParts = [] + const rn = new Uint8Array([13, 10]) // '\r\n' + length = 0 + let hasUnknownSizeValue = false + + for (const [name, value] of object) { + if (typeof value === 'string') { + const chunk = textEncoder.encode(prefix + + `; name="${escape(normalizeLinefeeds(name))}"` + + `\r\n\r\n${normalizeLinefeeds(value)}\r\n`) + blobParts.push(chunk) + length += chunk.byteLength + } else { + const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + + (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + + `Content-Type: ${ + value.type || 'application/octet-stream' + }\r\n\r\n`) + blobParts.push(chunk, value, rn) + if (typeof value.size === 'number') { + length += chunk.byteLength + value.size + rn.byteLength + } else { + hasUnknownSizeValue = true + } + } + } + + // CRLF is appended to the body to function with legacy servers and match other implementations. + // https://github.com/curl/curl/blob/3434c6b46e682452973972e8313613dfa58cd690/lib/mime.c#L1029-L1030 + // https://github.com/form-data/form-data/issues/63 + const chunk = textEncoder.encode(`--${boundary}--\r\n`) + blobParts.push(chunk) + length += chunk.byteLength + if (hasUnknownSizeValue) { + length = null + } + + // Set source to object. + source = object + + action = async function * () { + for (const part of blobParts) { + if (part.stream) { + yield * part.stream() + } else { + yield part + } + } + } + + // Set type to `multipart/form-data; boundary=`, + // followed by the multipart/form-data boundary string generated + // by the multipart/form-data encoding algorithm. + type = `multipart/form-data; boundary=${boundary}` + } else if (isBlobLike(object)) { + // Blob + + // Set source to object. + source = object + + // Set length to object’s size. + length = object.size + + // If object’s type attribute is not the empty byte sequence, set + // type to its value. + if (object.type) { + type = object.type + } + } else if (typeof object[Symbol.asyncIterator] === 'function') { + // If keepalive is true, then throw a TypeError. + if (keepalive) { + throw new TypeError('keepalive') + } + + // If object is disturbed or locked, then throw a TypeError. + if (util.isDisturbed(object) || object.locked) { + throw new TypeError( + 'Response body object should not be disturbed or locked' + ) + } + + stream = + object instanceof ReadableStream ? object : ReadableStreamFrom(object) + } + + // 11. If source is a byte sequence, then set action to a + // step that returns source and length to source’s length. + if (typeof source === 'string' || util.isBuffer(source)) { + length = Buffer.byteLength(source) + } + + // 12. If action is non-null, then run these steps in in parallel: + if (action != null) { + // Run action. + let iterator + stream = new ReadableStream({ + async start () { + iterator = action(object)[Symbol.asyncIterator]() + }, + async pull (controller) { + const { value, done } = await iterator.next() + if (done) { + // When running action is done, close stream. + queueMicrotask(() => { + controller.close() + controller.byobRequest?.respond(0) + }) + } else { + // Whenever one or more bytes are available and stream is not errored, + // enqueue a Uint8Array wrapping an ArrayBuffer containing the available + // bytes into stream. + if (!isErrored(stream)) { + const buffer = new Uint8Array(value) + if (buffer.byteLength) { + controller.enqueue(buffer) + } + } + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + }, + type: 'bytes' + }) + } + + // 13. Let body be a body whose stream is stream, source is source, + // and length is length. + const body = { stream, source, length } + + // 14. Return (body, type). + return [body, type] +} + +// https://fetch.spec.whatwg.org/#bodyinit-safely-extract +function safelyExtractBody (object, keepalive = false) { + // To safely extract a body and a `Content-Type` value from + // a byte sequence or BodyInit object object, run these steps: + + // 1. If object is a ReadableStream object, then: + if (object instanceof ReadableStream) { + // Assert: object is neither disturbed nor locked. + // istanbul ignore next + assert(!util.isDisturbed(object), 'The body has already been consumed.') + // istanbul ignore next + assert(!object.locked, 'The stream is locked.') + } + + // 2. Return the results of extracting object. + return extractBody(object, keepalive) +} + +function cloneBody (instance, body) { + // To clone a body body, run these steps: + + // https://fetch.spec.whatwg.org/#concept-body-clone + + // 1. Let « out1, out2 » be the result of teeing body’s stream. + const [out1, out2] = body.stream.tee() + + // 2. Set body’s stream to out1. + body.stream = out1 + + // 3. Return a body whose stream is out2 and other members are copied from body. + return { + stream: out2, + length: body.length, + source: body.source + } +} + +function throwIfAborted (state) { + if (state.aborted) { + throw new DOMException('The operation was aborted.', 'AbortError') + } +} + +function bodyMixinMethods (instance) { + const methods = { + blob () { + // The blob() method steps are to return the result of + // running consume body with this and the following step + // given a byte sequence bytes: return a Blob whose + // contents are bytes and whose type attribute is this’s + // MIME type. + return consumeBody(this, (bytes) => { + let mimeType = bodyMimeType(this) + + if (mimeType === null) { + mimeType = '' + } else if (mimeType) { + mimeType = serializeAMimeType(mimeType) + } + + // Return a Blob whose contents are bytes and type attribute + // is mimeType. + return new Blob([bytes], { type: mimeType }) + }, instance) + }, + + arrayBuffer () { + // The arrayBuffer() method steps are to return the result + // of running consume body with this and the following step + // given a byte sequence bytes: return a new ArrayBuffer + // whose contents are bytes. + return consumeBody(this, (bytes) => { + return new Uint8Array(bytes).buffer + }, instance) + }, + + text () { + // The text() method steps are to return the result of running + // consume body with this and UTF-8 decode. + return consumeBody(this, utf8DecodeBytes, instance) + }, + + json () { + // The json() method steps are to return the result of running + // consume body with this and parse JSON from bytes. + return consumeBody(this, parseJSONFromBytes, instance) + }, + + formData () { + // The formData() method steps are to return the result of running + // consume body with this and the following step given a byte sequence bytes: + return consumeBody(this, (value) => { + // 1. Let mimeType be the result of get the MIME type with this. + const mimeType = bodyMimeType(this) + + // 2. If mimeType is non-null, then switch on mimeType’s essence and run + // the corresponding steps: + if (mimeType !== null) { + switch (mimeType.essence) { + case 'multipart/form-data': { + // 1. ... [long step] + const parsed = multipartFormDataParser(value, mimeType) + + // 2. If that fails for some reason, then throw a TypeError. + if (parsed === 'failure') { + throw new TypeError('Failed to parse body as FormData.') + } + + // 3. Return a new FormData object, appending each entry, + // resulting from the parsing operation, to its entry list. + const fd = new FormData() + fd[kState] = parsed + + return fd + } + case 'application/x-www-form-urlencoded': { + // 1. Let entries be the result of parsing bytes. + const entries = new URLSearchParams(value.toString()) + + // 2. If entries is failure, then throw a TypeError. + + // 3. Return a new FormData object whose entry list is entries. + const fd = new FormData() + + for (const [name, value] of entries) { + fd.append(name, value) + } + + return fd + } + } + } + + // 3. Throw a TypeError. + throw new TypeError( + 'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".' + ) + }, instance) + }, + + bytes () { + // The bytes() method steps are to return the result of running consume body + // with this and the following step given a byte sequence bytes: return the + // result of creating a Uint8Array from bytes in this’s relevant realm. + return consumeBody(this, (bytes) => { + return new Uint8Array(bytes) + }, instance) + } + } + + return methods +} + +function mixinBody (prototype) { + Object.assign(prototype.prototype, bodyMixinMethods(prototype)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-consume-body + * @param {Response|Request} object + * @param {(value: unknown) => unknown} convertBytesToJSValue + * @param {Response|Request} instance + */ +async function consumeBody (object, convertBytesToJSValue, instance) { + webidl.brandCheck(object, instance) + + // 1. If object is unusable, then return a promise rejected + // with a TypeError. + if (bodyUnusable(object)) { + throw new TypeError('Body is unusable: Body has already been read') + } + + throwIfAborted(object[kState]) + + // 2. Let promise be a new promise. + const promise = createDeferredPromise() + + // 3. Let errorSteps given error be to reject promise with error. + const errorSteps = (error) => promise.reject(error) + + // 4. Let successSteps given a byte sequence data be to resolve + // promise with the result of running convertBytesToJSValue + // with data. If that threw an exception, then run errorSteps + // with that exception. + const successSteps = (data) => { + try { + promise.resolve(convertBytesToJSValue(data)) + } catch (e) { + errorSteps(e) + } + } + + // 5. If object’s body is null, then run successSteps with an + // empty byte sequence. + if (object[kState].body == null) { + successSteps(Buffer.allocUnsafe(0)) + return promise.promise + } + + // 6. Otherwise, fully read object’s body given successSteps, + // errorSteps, and object’s relevant global object. + await fullyReadBody(object[kState].body, successSteps, errorSteps) + + // 7. Return promise. + return promise.promise +} + +// https://fetch.spec.whatwg.org/#body-unusable +function bodyUnusable (object) { + const body = object[kState].body + + // An object including the Body interface mixin is + // said to be unusable if its body is non-null and + // its body’s stream is disturbed or locked. + return body != null && (body.stream.locked || util.isDisturbed(body.stream)) +} + +/** + * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value + * @param {Uint8Array} bytes + */ +function parseJSONFromBytes (bytes) { + return JSON.parse(utf8DecodeBytes(bytes)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-mime-type + * @param {import('./response').Response|import('./request').Request} requestOrResponse + */ +function bodyMimeType (requestOrResponse) { + // 1. Let headers be null. + // 2. If requestOrResponse is a Request object, then set headers to requestOrResponse’s request’s header list. + // 3. Otherwise, set headers to requestOrResponse’s response’s header list. + /** @type {import('./headers').HeadersList} */ + const headers = requestOrResponse[kState].headersList + + // 4. Let mimeType be the result of extracting a MIME type from headers. + const mimeType = extractMimeType(headers) + + // 5. If mimeType is failure, then return null. + if (mimeType === 'failure') { + return null + } + + // 6. Return mimeType. + return mimeType +} + +module.exports = { + extractBody, + safelyExtractBody, + cloneBody, + mixinBody, + streamRegistry, + hasFinalizationRegistry, + bodyUnusable +} + + +/***/ }), + +/***/ 4495: +/***/ ((module) => { + + + +const corsSafeListedMethods = /** @type {const} */ (['GET', 'HEAD', 'POST']) +const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) + +const nullBodyStatus = /** @type {const} */ ([101, 204, 205, 304]) + +const redirectStatus = /** @type {const} */ ([301, 302, 303, 307, 308]) +const redirectStatusSet = new Set(redirectStatus) + +/** + * @see https://fetch.spec.whatwg.org/#block-bad-port + */ +const badPorts = /** @type {const} */ ([ + '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79', + '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137', + '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532', + '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723', + '2049', '3659', '4045', '4190', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6679', + '6697', '10080' +]) +const badPortsSet = new Set(badPorts) + +/** + * @see https://w3c.github.io/webappsec-referrer-policy/#referrer-policies + */ +const referrerPolicy = /** @type {const} */ ([ + '', + 'no-referrer', + 'no-referrer-when-downgrade', + 'same-origin', + 'origin', + 'strict-origin', + 'origin-when-cross-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url' +]) +const referrerPolicySet = new Set(referrerPolicy) + +const requestRedirect = /** @type {const} */ (['follow', 'manual', 'error']) + +const safeMethods = /** @type {const} */ (['GET', 'HEAD', 'OPTIONS', 'TRACE']) +const safeMethodsSet = new Set(safeMethods) + +const requestMode = /** @type {const} */ (['navigate', 'same-origin', 'no-cors', 'cors']) + +const requestCredentials = /** @type {const} */ (['omit', 'same-origin', 'include']) + +const requestCache = /** @type {const} */ ([ + 'default', + 'no-store', + 'reload', + 'no-cache', + 'force-cache', + 'only-if-cached' +]) + +/** + * @see https://fetch.spec.whatwg.org/#request-body-header-name + */ +const requestBodyHeader = /** @type {const} */ ([ + 'content-encoding', + 'content-language', + 'content-location', + 'content-type', + // See https://github.com/nodejs/undici/issues/2021 + // 'Content-Length' is a forbidden header name, which is typically + // removed in the Headers implementation. However, undici doesn't + // filter out headers, so we add it here. + 'content-length' +]) + +/** + * @see https://fetch.spec.whatwg.org/#enumdef-requestduplex + */ +const requestDuplex = /** @type {const} */ ([ + 'half' +]) + +/** + * @see http://fetch.spec.whatwg.org/#forbidden-method + */ +const forbiddenMethods = /** @type {const} */ (['CONNECT', 'TRACE', 'TRACK']) +const forbiddenMethodsSet = new Set(forbiddenMethods) + +const subresource = /** @type {const} */ ([ + 'audio', + 'audioworklet', + 'font', + 'image', + 'manifest', + 'paintworklet', + 'script', + 'style', + 'track', + 'video', + 'xslt', + '' +]) +const subresourceSet = new Set(subresource) + +module.exports = { + subresource, + forbiddenMethods, + requestBodyHeader, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + redirectStatus, + corsSafeListedMethods, + nullBodyStatus, + safeMethods, + badPorts, + requestDuplex, + subresourceSet, + badPortsSet, + redirectStatusSet, + corsSafeListedMethodsSet, + safeMethodsSet, + forbiddenMethodsSet, + referrerPolicySet +} + + +/***/ }), + +/***/ 1900: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const assert = __nccwpck_require__(4589) + +const encoder = new TextEncoder() + +/** + * @see https://mimesniff.spec.whatwg.org/#http-token-code-point + */ +const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/ +const HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/ // eslint-disable-line +const ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g // eslint-disable-line +/** + * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point + */ +const HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/ // eslint-disable-line + +// https://fetch.spec.whatwg.org/#data-url-processor +/** @param {URL} dataURL */ +function dataURLProcessor (dataURL) { + // 1. Assert: dataURL’s scheme is "data". + assert(dataURL.protocol === 'data:') + + // 2. Let input be the result of running the URL + // serializer on dataURL with exclude fragment + // set to true. + let input = URLSerializer(dataURL, true) + + // 3. Remove the leading "data:" string from input. + input = input.slice(5) + + // 4. Let position point at the start of input. + const position = { position: 0 } + + // 5. Let mimeType be the result of collecting a + // sequence of code points that are not equal + // to U+002C (,), given position. + let mimeType = collectASequenceOfCodePointsFast( + ',', + input, + position + ) + + // 6. Strip leading and trailing ASCII whitespace + // from mimeType. + // Undici implementation note: we need to store the + // length because if the mimetype has spaces removed, + // the wrong amount will be sliced from the input in + // step #9 + const mimeTypeLength = mimeType.length + mimeType = removeASCIIWhitespace(mimeType, true, true) + + // 7. If position is past the end of input, then + // return failure + if (position.position >= input.length) { + return 'failure' + } + + // 8. Advance position by 1. + position.position++ + + // 9. Let encodedBody be the remainder of input. + const encodedBody = input.slice(mimeTypeLength + 1) + + // 10. Let body be the percent-decoding of encodedBody. + let body = stringPercentDecode(encodedBody) + + // 11. If mimeType ends with U+003B (;), followed by + // zero or more U+0020 SPACE, followed by an ASCII + // case-insensitive match for "base64", then: + if (/;(\u0020){0,}base64$/i.test(mimeType)) { + // 1. Let stringBody be the isomorphic decode of body. + const stringBody = isomorphicDecode(body) + + // 2. Set body to the forgiving-base64 decode of + // stringBody. + body = forgivingBase64(stringBody) + + // 3. If body is failure, then return failure. + if (body === 'failure') { + return 'failure' + } + + // 4. Remove the last 6 code points from mimeType. + mimeType = mimeType.slice(0, -6) + + // 5. Remove trailing U+0020 SPACE code points from mimeType, + // if any. + mimeType = mimeType.replace(/(\u0020)+$/, '') + + // 6. Remove the last U+003B (;) code point from mimeType. + mimeType = mimeType.slice(0, -1) + } + + // 12. If mimeType starts with U+003B (;), then prepend + // "text/plain" to mimeType. + if (mimeType.startsWith(';')) { + mimeType = 'text/plain' + mimeType + } + + // 13. Let mimeTypeRecord be the result of parsing + // mimeType. + let mimeTypeRecord = parseMIMEType(mimeType) + + // 14. If mimeTypeRecord is failure, then set + // mimeTypeRecord to text/plain;charset=US-ASCII. + if (mimeTypeRecord === 'failure') { + mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') + } + + // 15. Return a new data: URL struct whose MIME + // type is mimeTypeRecord and body is body. + // https://fetch.spec.whatwg.org/#data-url-struct + return { mimeType: mimeTypeRecord, body } +} + +// https://url.spec.whatwg.org/#concept-url-serializer +/** + * @param {URL} url + * @param {boolean} excludeFragment + */ +function URLSerializer (url, excludeFragment = false) { + if (!excludeFragment) { + return url.href + } + + const href = url.href + const hashLength = url.hash.length + + const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength) + + if (!hashLength && href.endsWith('#')) { + return serialized.slice(0, -1) + } + + return serialized +} + +// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points +/** + * @param {(char: string) => boolean} condition + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePoints (condition, input, position) { + // 1. Let result be the empty string. + let result = '' + + // 2. While position doesn’t point past the end of input and the + // code point at position within input meets the condition condition: + while (position.position < input.length && condition(input[position.position])) { + // 1. Append that code point to the end of result. + result += input[position.position] + + // 2. Advance position by 1. + position.position++ + } + + // 3. Return result. + return result +} + +/** + * A faster collectASequenceOfCodePoints that only works when comparing a single character. + * @param {string} char + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePointsFast (char, input, position) { + const idx = input.indexOf(char, position.position) + const start = position.position + + if (idx === -1) { + position.position = input.length + return input.slice(start) + } + + position.position = idx + return input.slice(start, position.position) +} + +// https://url.spec.whatwg.org/#string-percent-decode +/** @param {string} input */ +function stringPercentDecode (input) { + // 1. Let bytes be the UTF-8 encoding of input. + const bytes = encoder.encode(input) + + // 2. Return the percent-decoding of bytes. + return percentDecode(bytes) +} + +/** + * @param {number} byte + */ +function isHexCharByte (byte) { + // 0-9 A-F a-f + return (byte >= 0x30 && byte <= 0x39) || (byte >= 0x41 && byte <= 0x46) || (byte >= 0x61 && byte <= 0x66) +} + +/** + * @param {number} byte + */ +function hexByteToNumber (byte) { + return ( + // 0-9 + byte >= 0x30 && byte <= 0x39 + ? (byte - 48) + // Convert to uppercase + // ((byte & 0xDF) - 65) + 10 + : ((byte & 0xDF) - 55) + ) +} + +// https://url.spec.whatwg.org/#percent-decode +/** @param {Uint8Array} input */ +function percentDecode (input) { + const length = input.length + // 1. Let output be an empty byte sequence. + /** @type {Uint8Array} */ + const output = new Uint8Array(length) + let j = 0 + // 2. For each byte byte in input: + for (let i = 0; i < length; ++i) { + const byte = input[i] + + // 1. If byte is not 0x25 (%), then append byte to output. + if (byte !== 0x25) { + output[j++] = byte + + // 2. Otherwise, if byte is 0x25 (%) and the next two bytes + // after byte in input are not in the ranges + // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), + // and 0x61 (a) to 0x66 (f), all inclusive, append byte + // to output. + } else if ( + byte === 0x25 && + !(isHexCharByte(input[i + 1]) && isHexCharByte(input[i + 2])) + ) { + output[j++] = 0x25 + + // 3. Otherwise: + } else { + // 1. Let bytePoint be the two bytes after byte in input, + // decoded, and then interpreted as hexadecimal number. + // 2. Append a byte whose value is bytePoint to output. + output[j++] = (hexByteToNumber(input[i + 1]) << 4) | hexByteToNumber(input[i + 2]) + + // 3. Skip the next two bytes in input. + i += 2 + } + } + + // 3. Return output. + return length === j ? output : output.subarray(0, j) +} + +// https://mimesniff.spec.whatwg.org/#parse-a-mime-type +/** @param {string} input */ +function parseMIMEType (input) { + // 1. Remove any leading and trailing HTTP whitespace + // from input. + input = removeHTTPWhitespace(input, true, true) + + // 2. Let position be a position variable for input, + // initially pointing at the start of input. + const position = { position: 0 } + + // 3. Let type be the result of collecting a sequence + // of code points that are not U+002F (/) from + // input, given position. + const type = collectASequenceOfCodePointsFast( + '/', + input, + position + ) + + // 4. If type is the empty string or does not solely + // contain HTTP token code points, then return failure. + // https://mimesniff.spec.whatwg.org/#http-token-code-point + if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { + return 'failure' + } + + // 5. If position is past the end of input, then return + // failure + if (position.position > input.length) { + return 'failure' + } + + // 6. Advance position by 1. (This skips past U+002F (/).) + position.position++ + + // 7. Let subtype be the result of collecting a sequence of + // code points that are not U+003B (;) from input, given + // position. + let subtype = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 8. Remove any trailing HTTP whitespace from subtype. + subtype = removeHTTPWhitespace(subtype, false, true) + + // 9. If subtype is the empty string or does not solely + // contain HTTP token code points, then return failure. + if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { + return 'failure' + } + + const typeLowercase = type.toLowerCase() + const subtypeLowercase = subtype.toLowerCase() + + // 10. Let mimeType be a new MIME type record whose type + // is type, in ASCII lowercase, and subtype is subtype, + // in ASCII lowercase. + // https://mimesniff.spec.whatwg.org/#mime-type + const mimeType = { + type: typeLowercase, + subtype: subtypeLowercase, + /** @type {Map} */ + parameters: new Map(), + // https://mimesniff.spec.whatwg.org/#mime-type-essence + essence: `${typeLowercase}/${subtypeLowercase}` + } + + // 11. While position is not past the end of input: + while (position.position < input.length) { + // 1. Advance position by 1. (This skips past U+003B (;).) + position.position++ + + // 2. Collect a sequence of code points that are HTTP + // whitespace from input given position. + collectASequenceOfCodePoints( + // https://fetch.spec.whatwg.org/#http-whitespace + char => HTTP_WHITESPACE_REGEX.test(char), + input, + position + ) + + // 3. Let parameterName be the result of collecting a + // sequence of code points that are not U+003B (;) + // or U+003D (=) from input, given position. + let parameterName = collectASequenceOfCodePoints( + (char) => char !== ';' && char !== '=', + input, + position + ) + + // 4. Set parameterName to parameterName, in ASCII + // lowercase. + parameterName = parameterName.toLowerCase() + + // 5. If position is not past the end of input, then: + if (position.position < input.length) { + // 1. If the code point at position within input is + // U+003B (;), then continue. + if (input[position.position] === ';') { + continue + } + + // 2. Advance position by 1. (This skips past U+003D (=).) + position.position++ + } + + // 6. If position is past the end of input, then break. + if (position.position > input.length) { + break + } + + // 7. Let parameterValue be null. + let parameterValue = null + + // 8. If the code point at position within input is + // U+0022 ("), then: + if (input[position.position] === '"') { + // 1. Set parameterValue to the result of collecting + // an HTTP quoted string from input, given position + // and the extract-value flag. + parameterValue = collectAnHTTPQuotedString(input, position, true) + + // 2. Collect a sequence of code points that are not + // U+003B (;) from input, given position. + collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 9. Otherwise: + } else { + // 1. Set parameterValue to the result of collecting + // a sequence of code points that are not U+003B (;) + // from input, given position. + parameterValue = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 2. Remove any trailing HTTP whitespace from parameterValue. + parameterValue = removeHTTPWhitespace(parameterValue, false, true) + + // 3. If parameterValue is the empty string, then continue. + if (parameterValue.length === 0) { + continue + } + } + + // 10. If all of the following are true + // - parameterName is not the empty string + // - parameterName solely contains HTTP token code points + // - parameterValue solely contains HTTP quoted-string token code points + // - mimeType’s parameters[parameterName] does not exist + // then set mimeType’s parameters[parameterName] to parameterValue. + if ( + parameterName.length !== 0 && + HTTP_TOKEN_CODEPOINTS.test(parameterName) && + (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && + !mimeType.parameters.has(parameterName) + ) { + mimeType.parameters.set(parameterName, parameterValue) + } + } + + // 12. Return mimeType. + return mimeType +} + +// https://infra.spec.whatwg.org/#forgiving-base64-decode +/** @param {string} data */ +function forgivingBase64 (data) { + // 1. Remove all ASCII whitespace from data. + data = data.replace(ASCII_WHITESPACE_REPLACE_REGEX, '') // eslint-disable-line + + let dataLength = data.length + // 2. If data’s code point length divides by 4 leaving + // no remainder, then: + if (dataLength % 4 === 0) { + // 1. If data ends with one or two U+003D (=) code points, + // then remove them from data. + if (data.charCodeAt(dataLength - 1) === 0x003D) { + --dataLength + if (data.charCodeAt(dataLength - 1) === 0x003D) { + --dataLength + } + } + } + + // 3. If data’s code point length divides by 4 leaving + // a remainder of 1, then return failure. + if (dataLength % 4 === 1) { + return 'failure' + } + + // 4. If data contains a code point that is not one of + // U+002B (+) + // U+002F (/) + // ASCII alphanumeric + // then return failure. + if (/[^+/0-9A-Za-z]/.test(data.length === dataLength ? data : data.substring(0, dataLength))) { + return 'failure' + } + + const buffer = Buffer.from(data, 'base64') + return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength) +} + +// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string +// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string +/** + * @param {string} input + * @param {{ position: number }} position + * @param {boolean?} extractValue + */ +function collectAnHTTPQuotedString (input, position, extractValue) { + // 1. Let positionStart be position. + const positionStart = position.position + + // 2. Let value be the empty string. + let value = '' + + // 3. Assert: the code point at position within input + // is U+0022 ("). + assert(input[position.position] === '"') + + // 4. Advance position by 1. + position.position++ + + // 5. While true: + while (true) { + // 1. Append the result of collecting a sequence of code points + // that are not U+0022 (") or U+005C (\) from input, given + // position, to value. + value += collectASequenceOfCodePoints( + (char) => char !== '"' && char !== '\\', + input, + position + ) + + // 2. If position is past the end of input, then break. + if (position.position >= input.length) { + break + } + + // 3. Let quoteOrBackslash be the code point at position within + // input. + const quoteOrBackslash = input[position.position] + + // 4. Advance position by 1. + position.position++ + + // 5. If quoteOrBackslash is U+005C (\), then: + if (quoteOrBackslash === '\\') { + // 1. If position is past the end of input, then append + // U+005C (\) to value and break. + if (position.position >= input.length) { + value += '\\' + break + } + + // 2. Append the code point at position within input to value. + value += input[position.position] + + // 3. Advance position by 1. + position.position++ + + // 6. Otherwise: + } else { + // 1. Assert: quoteOrBackslash is U+0022 ("). + assert(quoteOrBackslash === '"') + + // 2. Break. + break + } + } + + // 6. If the extract-value flag is set, then return value. + if (extractValue) { + return value + } + + // 7. Return the code points from positionStart to position, + // inclusive, within input. + return input.slice(positionStart, position.position) +} + +/** + * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type + */ +function serializeAMimeType (mimeType) { + assert(mimeType !== 'failure') + const { parameters, essence } = mimeType + + // 1. Let serialization be the concatenation of mimeType’s + // type, U+002F (/), and mimeType’s subtype. + let serialization = essence + + // 2. For each name → value of mimeType’s parameters: + for (let [name, value] of parameters.entries()) { + // 1. Append U+003B (;) to serialization. + serialization += ';' + + // 2. Append name to serialization. + serialization += name + + // 3. Append U+003D (=) to serialization. + serialization += '=' + + // 4. If value does not solely contain HTTP token code + // points or value is the empty string, then: + if (!HTTP_TOKEN_CODEPOINTS.test(value)) { + // 1. Precede each occurrence of U+0022 (") or + // U+005C (\) in value with U+005C (\). + value = value.replace(/(\\|")/g, '\\$1') + + // 2. Prepend U+0022 (") to value. + value = '"' + value + + // 3. Append U+0022 (") to value. + value += '"' + } + + // 5. Append value to serialization. + serialization += value + } + + // 3. Return serialization. + return serialization +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {number} char + */ +function isHTTPWhiteSpace (char) { + // "\r\n\t " + return char === 0x00d || char === 0x00a || char === 0x009 || char === 0x020 +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} str + * @param {boolean} [leading=true] + * @param {boolean} [trailing=true] + */ +function removeHTTPWhitespace (str, leading = true, trailing = true) { + return removeChars(str, leading, trailing, isHTTPWhiteSpace) +} + +/** + * @see https://infra.spec.whatwg.org/#ascii-whitespace + * @param {number} char + */ +function isASCIIWhitespace (char) { + // "\r\n\t\f " + return char === 0x00d || char === 0x00a || char === 0x009 || char === 0x00c || char === 0x020 +} + +/** + * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace + * @param {string} str + * @param {boolean} [leading=true] + * @param {boolean} [trailing=true] + */ +function removeASCIIWhitespace (str, leading = true, trailing = true) { + return removeChars(str, leading, trailing, isASCIIWhitespace) +} + +/** + * @param {string} str + * @param {boolean} leading + * @param {boolean} trailing + * @param {(charCode: number) => boolean} predicate + * @returns + */ +function removeChars (str, leading, trailing, predicate) { + let lead = 0 + let trail = str.length - 1 + + if (leading) { + while (lead < str.length && predicate(str.charCodeAt(lead))) lead++ + } + + if (trailing) { + while (trail > 0 && predicate(str.charCodeAt(trail))) trail-- + } + + return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1) +} + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-decode + * @param {Uint8Array} input + * @returns {string} + */ +function isomorphicDecode (input) { + // 1. To isomorphic decode a byte sequence input, return a string whose code point + // length is equal to input’s length and whose code points have the same values + // as the values of input’s bytes, in the same order. + const length = input.length + if ((2 << 15) - 1 > length) { + return String.fromCharCode.apply(null, input) + } + let result = ''; let i = 0 + let addition = (2 << 15) - 1 + while (i < length) { + if (i + addition > length) { + addition = length - i + } + result += String.fromCharCode.apply(null, input.subarray(i, i += addition)) + } + return result +} + +/** + * @see https://mimesniff.spec.whatwg.org/#minimize-a-supported-mime-type + * @param {Exclude, 'failure'>} mimeType + */ +function minimizeSupportedMimeType (mimeType) { + switch (mimeType.essence) { + case 'application/ecmascript': + case 'application/javascript': + case 'application/x-ecmascript': + case 'application/x-javascript': + case 'text/ecmascript': + case 'text/javascript': + case 'text/javascript1.0': + case 'text/javascript1.1': + case 'text/javascript1.2': + case 'text/javascript1.3': + case 'text/javascript1.4': + case 'text/javascript1.5': + case 'text/jscript': + case 'text/livescript': + case 'text/x-ecmascript': + case 'text/x-javascript': + // 1. If mimeType is a JavaScript MIME type, then return "text/javascript". + return 'text/javascript' + case 'application/json': + case 'text/json': + // 2. If mimeType is a JSON MIME type, then return "application/json". + return 'application/json' + case 'image/svg+xml': + // 3. If mimeType’s essence is "image/svg+xml", then return "image/svg+xml". + return 'image/svg+xml' + case 'text/xml': + case 'application/xml': + // 4. If mimeType is an XML MIME type, then return "application/xml". + return 'application/xml' + } + + // 2. If mimeType is a JSON MIME type, then return "application/json". + if (mimeType.subtype.endsWith('+json')) { + return 'application/json' + } + + // 4. If mimeType is an XML MIME type, then return "application/xml". + if (mimeType.subtype.endsWith('+xml')) { + return 'application/xml' + } + + // 5. If mimeType is supported by the user agent, then return mimeType’s essence. + // Technically, node doesn't support any mimetypes. + + // 6. Return the empty string. + return '' +} + +module.exports = { + dataURLProcessor, + URLSerializer, + collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast, + stringPercentDecode, + parseMIMEType, + collectAnHTTPQuotedString, + serializeAMimeType, + removeChars, + removeHTTPWhitespace, + minimizeSupportedMimeType, + HTTP_TOKEN_CODEPOINTS, + isomorphicDecode +} + + +/***/ }), + +/***/ 6653: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kConnected, kSize } = __nccwpck_require__(6443) + +class CompatWeakRef { + constructor (value) { + this.value = value + } + + deref () { + return this.value[kConnected] === 0 && this.value[kSize] === 0 + ? undefined + : this.value + } +} + +class CompatFinalizer { + constructor (finalizer) { + this.finalizer = finalizer + } + + register (dispatcher, key) { + if (dispatcher.on) { + dispatcher.on('disconnect', () => { + if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { + this.finalizer(key) + } + }) + } + } + + unregister (key) {} +} + +module.exports = function () { + // FIXME: remove workaround when the Node bug is backported to v18 + // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 + if (process.env.NODE_V8_COVERAGE && process.version.startsWith('v18')) { + process._rawDebug('Using compatibility WeakRef and FinalizationRegistry') + return { + WeakRef: CompatWeakRef, + FinalizationRegistry: CompatFinalizer + } + } + return { WeakRef, FinalizationRegistry } +} + + +/***/ }), + +/***/ 7114: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Blob, File } = __nccwpck_require__(4573) +const { kState } = __nccwpck_require__(3627) +const { webidl } = __nccwpck_require__(5893) + +// TODO(@KhafraDev): remove +class FileLike { + constructor (blobLike, fileName, options = {}) { + // TODO: argument idl type check + + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + + // 2. Let n be the fileName argument to the constructor. + const n = fileName + + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: + + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // TODO + const t = options.type + + // 2. Convert every character in t to ASCII lowercase. + // TODO + + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + const d = options.lastModified ?? Date.now() + + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + this[kState] = { + blobLike, + name: n, + type: t, + lastModified: d + } + } + + stream (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.stream(...args) + } + + arrayBuffer (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.arrayBuffer(...args) + } + + slice (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.slice(...args) + } + + text (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.text(...args) + } + + get size () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.size + } + + get type () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.type + } + + get name () { + webidl.brandCheck(this, FileLike) + + return this[kState].name + } + + get lastModified () { + webidl.brandCheck(this, FileLike) + + return this[kState].lastModified + } + + get [Symbol.toStringTag] () { + return 'File' + } +} + +webidl.converters.Blob = webidl.interfaceConverter(Blob) + +// If this function is moved to ./util.js, some tools (such as +// rollup) will warn about circular dependencies. See: +// https://github.com/nodejs/undici/issues/1629 +function isFileLike (object) { + return ( + (object instanceof File) || + ( + object && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + object[Symbol.toStringTag] === 'File' + ) + ) +} + +module.exports = { FileLike, isFileLike } + + +/***/ }), + +/***/ 116: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { isUSVString, bufferToLowerCasedHeaderName } = __nccwpck_require__(3440) +const { utf8DecodeBytes } = __nccwpck_require__(3168) +const { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = __nccwpck_require__(1900) +const { isFileLike } = __nccwpck_require__(7114) +const { makeEntry } = __nccwpck_require__(5910) +const assert = __nccwpck_require__(4589) +const { File: NodeFile } = __nccwpck_require__(4573) + +const File = globalThis.File ?? NodeFile + +const formDataNameBuffer = Buffer.from('form-data; name="') +const filenameBuffer = Buffer.from('; filename') +const dd = Buffer.from('--') +const ddcrlf = Buffer.from('--\r\n') + +/** + * @param {string} chars + */ +function isAsciiString (chars) { + for (let i = 0; i < chars.length; ++i) { + if ((chars.charCodeAt(i) & ~0x7F) !== 0) { + return false + } + } + return true +} + +/** + * @see https://andreubotella.github.io/multipart-form-data/#multipart-form-data-boundary + * @param {string} boundary + */ +function validateBoundary (boundary) { + const length = boundary.length + + // - its length is greater or equal to 27 and lesser or equal to 70, and + if (length < 27 || length > 70) { + return false + } + + // - it is composed by bytes in the ranges 0x30 to 0x39, 0x41 to 0x5A, or + // 0x61 to 0x7A, inclusive (ASCII alphanumeric), or which are 0x27 ('), + // 0x2D (-) or 0x5F (_). + for (let i = 0; i < length; ++i) { + const cp = boundary.charCodeAt(i) + + if (!( + (cp >= 0x30 && cp <= 0x39) || + (cp >= 0x41 && cp <= 0x5a) || + (cp >= 0x61 && cp <= 0x7a) || + cp === 0x27 || + cp === 0x2d || + cp === 0x5f + )) { + return false + } + } + + return true +} + +/** + * @see https://andreubotella.github.io/multipart-form-data/#multipart-form-data-parser + * @param {Buffer} input + * @param {ReturnType} mimeType + */ +function multipartFormDataParser (input, mimeType) { + // 1. Assert: mimeType’s essence is "multipart/form-data". + assert(mimeType !== 'failure' && mimeType.essence === 'multipart/form-data') + + const boundaryString = mimeType.parameters.get('boundary') + + // 2. If mimeType’s parameters["boundary"] does not exist, return failure. + // Otherwise, let boundary be the result of UTF-8 decoding mimeType’s + // parameters["boundary"]. + if (boundaryString === undefined) { + return 'failure' + } + + const boundary = Buffer.from(`--${boundaryString}`, 'utf8') + + // 3. Let entry list be an empty entry list. + const entryList = [] + + // 4. Let position be a pointer to a byte in input, initially pointing at + // the first byte. + const position = { position: 0 } + + // Note: undici addition, allows leading and trailing CRLFs. + while (input[position.position] === 0x0d && input[position.position + 1] === 0x0a) { + position.position += 2 + } + + let trailing = input.length + + while (input[trailing - 1] === 0x0a && input[trailing - 2] === 0x0d) { + trailing -= 2 + } + + if (trailing !== input.length) { + input = input.subarray(0, trailing) + } + + // 5. While true: + while (true) { + // 5.1. If position points to a sequence of bytes starting with 0x2D 0x2D + // (`--`) followed by boundary, advance position by 2 + the length of + // boundary. Otherwise, return failure. + // Note: boundary is padded with 2 dashes already, no need to add 2. + if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) { + position.position += boundary.length + } else { + return 'failure' + } + + // 5.2. If position points to the sequence of bytes 0x2D 0x2D 0x0D 0x0A + // (`--` followed by CR LF) followed by the end of input, return entry list. + // Note: a body does NOT need to end with CRLF. It can end with --. + if ( + (position.position === input.length - 2 && bufferStartsWith(input, dd, position)) || + (position.position === input.length - 4 && bufferStartsWith(input, ddcrlf, position)) + ) { + return entryList + } + + // 5.3. If position does not point to a sequence of bytes starting with 0x0D + // 0x0A (CR LF), return failure. + if (input[position.position] !== 0x0d || input[position.position + 1] !== 0x0a) { + return 'failure' + } + + // 5.4. Advance position by 2. (This skips past the newline.) + position.position += 2 + + // 5.5. Let name, filename and contentType be the result of parsing + // multipart/form-data headers on input and position, if the result + // is not failure. Otherwise, return failure. + const result = parseMultipartFormDataHeaders(input, position) + + if (result === 'failure') { + return 'failure' + } + + let { name, filename, contentType, encoding } = result + + // 5.6. Advance position by 2. (This skips past the empty line that marks + // the end of the headers.) + position.position += 2 + + // 5.7. Let body be the empty byte sequence. + let body + + // 5.8. Body loop: While position is not past the end of input: + // TODO: the steps here are completely wrong + { + const boundaryIndex = input.indexOf(boundary.subarray(2), position.position) + + if (boundaryIndex === -1) { + return 'failure' + } + + body = input.subarray(position.position, boundaryIndex - 4) + + position.position += body.length + + // Note: position must be advanced by the body's length before being + // decoded, otherwise the parsing will fail. + if (encoding === 'base64') { + body = Buffer.from(body.toString(), 'base64') + } + } + + // 5.9. If position does not point to a sequence of bytes starting with + // 0x0D 0x0A (CR LF), return failure. Otherwise, advance position by 2. + if (input[position.position] !== 0x0d || input[position.position + 1] !== 0x0a) { + return 'failure' + } else { + position.position += 2 + } + + // 5.10. If filename is not null: + let value + + if (filename !== null) { + // 5.10.1. If contentType is null, set contentType to "text/plain". + contentType ??= 'text/plain' + + // 5.10.2. If contentType is not an ASCII string, set contentType to the empty string. + + // Note: `buffer.isAscii` can be used at zero-cost, but converting a string to a buffer is a high overhead. + // Content-Type is a relatively small string, so it is faster to use `String#charCodeAt`. + if (!isAsciiString(contentType)) { + contentType = '' + } + + // 5.10.3. Let value be a new File object with name filename, type contentType, and body body. + value = new File([body], filename, { type: contentType }) + } else { + // 5.11. Otherwise: + + // 5.11.1. Let value be the UTF-8 decoding without BOM of body. + value = utf8DecodeBytes(Buffer.from(body)) + } + + // 5.12. Assert: name is a scalar value string and value is either a scalar value string or a File object. + assert(isUSVString(name)) + assert((typeof value === 'string' && isUSVString(value)) || isFileLike(value)) + + // 5.13. Create an entry with name and value, and append it to entry list. + entryList.push(makeEntry(name, value, filename)) + } +} + +/** + * @see https://andreubotella.github.io/multipart-form-data/#parse-multipart-form-data-headers + * @param {Buffer} input + * @param {{ position: number }} position + */ +function parseMultipartFormDataHeaders (input, position) { + // 1. Let name, filename and contentType be null. + let name = null + let filename = null + let contentType = null + let encoding = null + + // 2. While true: + while (true) { + // 2.1. If position points to a sequence of bytes starting with 0x0D 0x0A (CR LF): + if (input[position.position] === 0x0d && input[position.position + 1] === 0x0a) { + // 2.1.1. If name is null, return failure. + if (name === null) { + return 'failure' + } + + // 2.1.2. Return name, filename and contentType. + return { name, filename, contentType, encoding } + } + + // 2.2. Let header name be the result of collecting a sequence of bytes that are + // not 0x0A (LF), 0x0D (CR) or 0x3A (:), given position. + let headerName = collectASequenceOfBytes( + (char) => char !== 0x0a && char !== 0x0d && char !== 0x3a, + input, + position + ) + + // 2.3. Remove any HTTP tab or space bytes from the start or end of header name. + headerName = removeChars(headerName, true, true, (char) => char === 0x9 || char === 0x20) + + // 2.4. If header name does not match the field-name token production, return failure. + if (!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())) { + return 'failure' + } + + // 2.5. If the byte at position is not 0x3A (:), return failure. + if (input[position.position] !== 0x3a) { + return 'failure' + } + + // 2.6. Advance position by 1. + position.position++ + + // 2.7. Collect a sequence of bytes that are HTTP tab or space bytes given position. + // (Do nothing with those bytes.) + collectASequenceOfBytes( + (char) => char === 0x20 || char === 0x09, + input, + position + ) + + // 2.8. Byte-lowercase header name and switch on the result: + switch (bufferToLowerCasedHeaderName(headerName)) { + case 'content-disposition': { + // 1. Set name and filename to null. + name = filename = null + + // 2. If position does not point to a sequence of bytes starting with + // `form-data; name="`, return failure. + if (!bufferStartsWith(input, formDataNameBuffer, position)) { + return 'failure' + } + + // 3. Advance position so it points at the byte after the next 0x22 (") + // byte (the one in the sequence of bytes matched above). + position.position += 17 + + // 4. Set name to the result of parsing a multipart/form-data name given + // input and position, if the result is not failure. Otherwise, return + // failure. + name = parseMultipartFormDataName(input, position) + + if (name === null) { + return 'failure' + } + + // 5. If position points to a sequence of bytes starting with `; filename="`: + if (bufferStartsWith(input, filenameBuffer, position)) { + // Note: undici also handles filename* + let check = position.position + filenameBuffer.length + + if (input[check] === 0x2a) { + position.position += 1 + check += 1 + } + + if (input[check] !== 0x3d || input[check + 1] !== 0x22) { // =" + return 'failure' + } + + // 1. Advance position so it points at the byte after the next 0x22 (") byte + // (the one in the sequence of bytes matched above). + position.position += 12 + + // 2. Set filename to the result of parsing a multipart/form-data name given + // input and position, if the result is not failure. Otherwise, return failure. + filename = parseMultipartFormDataName(input, position) + + if (filename === null) { + return 'failure' + } + } + + break + } + case 'content-type': { + // 1. Let header value be the result of collecting a sequence of bytes that are + // not 0x0A (LF) or 0x0D (CR), given position. + let headerValue = collectASequenceOfBytes( + (char) => char !== 0x0a && char !== 0x0d, + input, + position + ) + + // 2. Remove any HTTP tab or space bytes from the end of header value. + headerValue = removeChars(headerValue, false, true, (char) => char === 0x9 || char === 0x20) + + // 3. Set contentType to the isomorphic decoding of header value. + contentType = isomorphicDecode(headerValue) + + break + } + case 'content-transfer-encoding': { + let headerValue = collectASequenceOfBytes( + (char) => char !== 0x0a && char !== 0x0d, + input, + position + ) + + headerValue = removeChars(headerValue, false, true, (char) => char === 0x9 || char === 0x20) + + encoding = isomorphicDecode(headerValue) + + break + } + default: { + // Collect a sequence of bytes that are not 0x0A (LF) or 0x0D (CR), given position. + // (Do nothing with those bytes.) + collectASequenceOfBytes( + (char) => char !== 0x0a && char !== 0x0d, + input, + position + ) + } + } + + // 2.9. If position does not point to a sequence of bytes starting with 0x0D 0x0A + // (CR LF), return failure. Otherwise, advance position by 2 (past the newline). + if (input[position.position] !== 0x0d && input[position.position + 1] !== 0x0a) { + return 'failure' + } else { + position.position += 2 + } + } +} + +/** + * @see https://andreubotella.github.io/multipart-form-data/#parse-a-multipart-form-data-name + * @param {Buffer} input + * @param {{ position: number }} position + */ +function parseMultipartFormDataName (input, position) { + // 1. Assert: The byte at (position - 1) is 0x22 ("). + assert(input[position.position - 1] === 0x22) + + // 2. Let name be the result of collecting a sequence of bytes that are not 0x0A (LF), 0x0D (CR) or 0x22 ("), given position. + /** @type {string | Buffer} */ + let name = collectASequenceOfBytes( + (char) => char !== 0x0a && char !== 0x0d && char !== 0x22, + input, + position + ) + + // 3. If the byte at position is not 0x22 ("), return failure. Otherwise, advance position by 1. + if (input[position.position] !== 0x22) { + return null // name could be 'failure' + } else { + position.position++ + } + + // 4. Replace any occurrence of the following subsequences in name with the given byte: + // - `%0A`: 0x0A (LF) + // - `%0D`: 0x0D (CR) + // - `%22`: 0x22 (") + name = new TextDecoder().decode(name) + .replace(/%0A/ig, '\n') + .replace(/%0D/ig, '\r') + .replace(/%22/g, '"') + + // 5. Return the UTF-8 decoding without BOM of name. + return name +} + +/** + * @param {(char: number) => boolean} condition + * @param {Buffer} input + * @param {{ position: number }} position + */ +function collectASequenceOfBytes (condition, input, position) { + let start = position.position + + while (start < input.length && condition(input[start])) { + ++start + } + + return input.subarray(position.position, (position.position = start)) +} + +/** + * @param {Buffer} buf + * @param {boolean} leading + * @param {boolean} trailing + * @param {(charCode: number) => boolean} predicate + * @returns {Buffer} + */ +function removeChars (buf, leading, trailing, predicate) { + let lead = 0 + let trail = buf.length - 1 + + if (leading) { + while (lead < buf.length && predicate(buf[lead])) lead++ + } + + if (trailing) { + while (trail > 0 && predicate(buf[trail])) trail-- + } + + return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1) +} + +/** + * Checks if {@param buffer} starts with {@param start} + * @param {Buffer} buffer + * @param {Buffer} start + * @param {{ position: number }} position + */ +function bufferStartsWith (buffer, start, position) { + if (buffer.length < start.length) { + return false + } + + for (let i = 0; i < start.length; i++) { + if (start[i] !== buffer[position.position + i]) { + return false + } + } + + return true +} + +module.exports = { + multipartFormDataParser, + validateBoundary +} + + +/***/ }), + +/***/ 5910: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { isBlobLike, iteratorMixin } = __nccwpck_require__(3168) +const { kState } = __nccwpck_require__(3627) +const { kEnumerableProperty } = __nccwpck_require__(3440) +const { FileLike, isFileLike } = __nccwpck_require__(7114) +const { webidl } = __nccwpck_require__(5893) +const { File: NativeFile } = __nccwpck_require__(4573) +const nodeUtil = __nccwpck_require__(7975) + +/** @type {globalThis['File']} */ +const File = globalThis.File ?? NativeFile + +// https://xhr.spec.whatwg.org/#formdata +class FormData { + constructor (form) { + webidl.util.markAsUncloneable(this) + + if (form !== undefined) { + throw webidl.errors.conversionFailed({ + prefix: 'FormData constructor', + argument: 'Argument 1', + types: ['undefined'] + }) + } + + this[kState] = [] + } + + append (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.append' + webidl.argumentLengthCheck(arguments, 2, prefix) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name, prefix, 'name') + value = isBlobLike(value) + ? webidl.converters.Blob(value, prefix, 'value', { strict: false }) + : webidl.converters.USVString(value, prefix, 'value') + filename = arguments.length === 3 + ? webidl.converters.USVString(filename, prefix, 'filename') + : undefined + + // 2. Let entry be the result of creating an entry with + // name, value, and filename if given. + const entry = makeEntry(name, value, filename) + + // 3. Append entry to this’s entry list. + this[kState].push(entry) + } + + delete (name) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.delete' + webidl.argumentLengthCheck(arguments, 1, prefix) + + name = webidl.converters.USVString(name, prefix, 'name') + + // The delete(name) method steps are to remove all entries whose name + // is name from this’s entry list. + this[kState] = this[kState].filter(entry => entry.name !== name) + } + + get (name) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.get' + webidl.argumentLengthCheck(arguments, 1, prefix) + + name = webidl.converters.USVString(name, prefix, 'name') + + // 1. If there is no entry whose name is name in this’s entry list, + // then return null. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx === -1) { + return null + } + + // 2. Return the value of the first entry whose name is name from + // this’s entry list. + return this[kState][idx].value + } + + getAll (name) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.getAll' + webidl.argumentLengthCheck(arguments, 1, prefix) + + name = webidl.converters.USVString(name, prefix, 'name') + + // 1. If there is no entry whose name is name in this’s entry list, + // then return the empty list. + // 2. Return the values of all entries whose name is name, in order, + // from this’s entry list. + return this[kState] + .filter((entry) => entry.name === name) + .map((entry) => entry.value) + } + + has (name) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.has' + webidl.argumentLengthCheck(arguments, 1, prefix) + + name = webidl.converters.USVString(name, prefix, 'name') + + // The has(name) method steps are to return true if there is an entry + // whose name is name in this’s entry list; otherwise false. + return this[kState].findIndex((entry) => entry.name === name) !== -1 + } + + set (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + const prefix = 'FormData.set' + webidl.argumentLengthCheck(arguments, 2, prefix) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // The set(name, value) and set(name, blobValue, filename) method steps + // are: + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name, prefix, 'name') + value = isBlobLike(value) + ? webidl.converters.Blob(value, prefix, 'name', { strict: false }) + : webidl.converters.USVString(value, prefix, 'name') + filename = arguments.length === 3 + ? webidl.converters.USVString(filename, prefix, 'name') + : undefined + + // 2. Let entry be the result of creating an entry with name, value, and + // filename if given. + const entry = makeEntry(name, value, filename) + + // 3. If there are entries in this’s entry list whose name is name, then + // replace the first such entry with entry and remove the others. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx !== -1) { + this[kState] = [ + ...this[kState].slice(0, idx), + entry, + ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name) + ] + } else { + // 4. Otherwise, append entry to this’s entry list. + this[kState].push(entry) + } + } + + [nodeUtil.inspect.custom] (depth, options) { + const state = this[kState].reduce((a, b) => { + if (a[b.name]) { + if (Array.isArray(a[b.name])) { + a[b.name].push(b.value) + } else { + a[b.name] = [a[b.name], b.value] + } + } else { + a[b.name] = b.value + } + + return a + }, { __proto__: null }) + + options.depth ??= depth + options.colors ??= true + + const output = nodeUtil.formatWithOptions(options, state) + + // remove [Object null prototype] + return `FormData ${output.slice(output.indexOf(']') + 2)}` + } +} + +iteratorMixin('FormData', FormData, kState, 'name', 'value') + +Object.defineProperties(FormData.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + getAll: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FormData', + configurable: true + } +}) + +/** + * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry + * @param {string} name + * @param {string|Blob} value + * @param {?string} filename + * @returns + */ +function makeEntry (name, value, filename) { + // 1. Set name to the result of converting name into a scalar value string. + // Note: This operation was done by the webidl converter USVString. + + // 2. If value is a string, then set value to the result of converting + // value into a scalar value string. + if (typeof value === 'string') { + // Note: This operation was done by the webidl converter USVString. + } else { + // 3. Otherwise: + + // 1. If value is not a File object, then set value to a new File object, + // representing the same bytes, whose name attribute value is "blob" + if (!isFileLike(value)) { + value = value instanceof Blob + ? new File([value], 'blob', { type: value.type }) + : new FileLike(value, 'blob', { type: value.type }) + } + + // 2. If filename is given, then set value to a new File object, + // representing the same bytes, whose name attribute is filename. + if (filename !== undefined) { + /** @type {FilePropertyBag} */ + const options = { + type: value.type, + lastModified: value.lastModified + } + + value = value instanceof NativeFile + ? new File([value], filename, options) + : new FileLike(value, filename, options) + } + } + + // 4. Return an entry whose name is name and whose value is value. + return { name, value } +} + +module.exports = { FormData, makeEntry } + + +/***/ }), + +/***/ 1059: +/***/ ((module) => { + + + +// In case of breaking changes, increase the version +// number to avoid conflicts. +const globalOrigin = Symbol.for('undici.globalOrigin.1') + +function getGlobalOrigin () { + return globalThis[globalOrigin] +} + +function setGlobalOrigin (newOrigin) { + if (newOrigin === undefined) { + Object.defineProperty(globalThis, globalOrigin, { + value: undefined, + writable: true, + enumerable: false, + configurable: false + }) + + return + } + + const parsedURL = new URL(newOrigin) + + if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { + throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`) + } + + Object.defineProperty(globalThis, globalOrigin, { + value: parsedURL, + writable: true, + enumerable: false, + configurable: false + }) +} + +module.exports = { + getGlobalOrigin, + setGlobalOrigin +} + + +/***/ }), + +/***/ 660: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { kConstruct } = __nccwpck_require__(6443) +const { kEnumerableProperty } = __nccwpck_require__(3440) +const { + iteratorMixin, + isValidHeaderName, + isValidHeaderValue +} = __nccwpck_require__(3168) +const { webidl } = __nccwpck_require__(5893) +const assert = __nccwpck_require__(4589) +const util = __nccwpck_require__(7975) + +const kHeadersMap = Symbol('headers map') +const kHeadersSortedMap = Symbol('headers map sorted') + +/** + * @param {number} code + */ +function isHTTPWhiteSpaceCharCode (code) { + return code === 0x00a || code === 0x00d || code === 0x009 || code === 0x020 +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize + * @param {string} potentialValue + */ +function headerValueNormalize (potentialValue) { + // To normalize a byte sequence potentialValue, remove + // any leading and trailing HTTP whitespace bytes from + // potentialValue. + let i = 0; let j = potentialValue.length + + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j + while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i + + return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j) +} + +function fill (headers, object) { + // To fill a Headers object headers with a given object object, run these steps: + + // 1. If object is a sequence, then for each header in object: + // Note: webidl conversion to array has already been done. + if (Array.isArray(object)) { + for (let i = 0; i < object.length; ++i) { + const header = object[i] + // 1. If header does not contain exactly two items, then throw a TypeError. + if (header.length !== 2) { + throw webidl.errors.exception({ + header: 'Headers constructor', + message: `expected name/value pair to be length 2, found ${header.length}.` + }) + } + + // 2. Append (header’s first item, header’s second item) to headers. + appendHeader(headers, header[0], header[1]) + } + } else if (typeof object === 'object' && object !== null) { + // Note: null should throw + + // 2. Otherwise, object is a record, then for each key → value in object, + // append (key, value) to headers + const keys = Object.keys(object) + for (let i = 0; i < keys.length; ++i) { + appendHeader(headers, keys[i], object[keys[i]]) + } + } else { + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) + } +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-headers-append + */ +function appendHeader (headers, name, value) { + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value, + type: 'header value' + }) + } + + // 3. If headers’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if headers’s guard is "request" and name is a + // forbidden header name, return. + // 5. Otherwise, if headers’s guard is "request-no-cors": + // TODO + // Note: undici does not implement forbidden header names + if (getHeadersGuard(headers) === 'immutable') { + throw new TypeError('immutable') + } + + // 6. Otherwise, if headers’s guard is "response" and name is a + // forbidden response-header name, return. + + // 7. Append (name, value) to headers’s header list. + return getHeadersList(headers).append(name, value, false) + + // 8. If headers’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from headers +} + +function compareHeaderName (a, b) { + return a[0] < b[0] ? -1 : 1 +} + +class HeadersList { + /** @type {[string, string][]|null} */ + cookies = null + + constructor (init) { + if (init instanceof HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]) + this[kHeadersSortedMap] = init[kHeadersSortedMap] + this.cookies = init.cookies === null ? null : [...init.cookies] + } else { + this[kHeadersMap] = new Map(init) + this[kHeadersSortedMap] = null + } + } + + /** + * @see https://fetch.spec.whatwg.org/#header-list-contains + * @param {string} name + * @param {boolean} isLowerCase + */ + contains (name, isLowerCase) { + // A header list list contains a header name name if list + // contains a header whose name is a byte-case-insensitive + // match for name. + + return this[kHeadersMap].has(isLowerCase ? name : name.toLowerCase()) + } + + clear () { + this[kHeadersMap].clear() + this[kHeadersSortedMap] = null + this.cookies = null + } + + /** + * @see https://fetch.spec.whatwg.org/#concept-header-list-append + * @param {string} name + * @param {string} value + * @param {boolean} isLowerCase + */ + append (name, value, isLowerCase) { + this[kHeadersSortedMap] = null + + // 1. If list contains name, then set name to the first such + // header’s name. + const lowercaseName = isLowerCase ? name : name.toLowerCase() + const exists = this[kHeadersMap].get(lowercaseName) + + // 2. Append (name, value) to list. + if (exists) { + const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' + this[kHeadersMap].set(lowercaseName, { + name: exists.name, + value: `${exists.value}${delimiter}${value}` + }) + } else { + this[kHeadersMap].set(lowercaseName, { name, value }) + } + + if (lowercaseName === 'set-cookie') { + (this.cookies ??= []).push(value) + } + } + + /** + * @see https://fetch.spec.whatwg.org/#concept-header-list-set + * @param {string} name + * @param {string} value + * @param {boolean} isLowerCase + */ + set (name, value, isLowerCase) { + this[kHeadersSortedMap] = null + const lowercaseName = isLowerCase ? name : name.toLowerCase() + + if (lowercaseName === 'set-cookie') { + this.cookies = [value] + } + + // 1. If list contains name, then set the value of + // the first such header to value and remove the + // others. + // 2. Otherwise, append header (name, value) to list. + this[kHeadersMap].set(lowercaseName, { name, value }) + } + + /** + * @see https://fetch.spec.whatwg.org/#concept-header-list-delete + * @param {string} name + * @param {boolean} isLowerCase + */ + delete (name, isLowerCase) { + this[kHeadersSortedMap] = null + if (!isLowerCase) name = name.toLowerCase() + + if (name === 'set-cookie') { + this.cookies = null + } + + this[kHeadersMap].delete(name) + } + + /** + * @see https://fetch.spec.whatwg.org/#concept-header-list-get + * @param {string} name + * @param {boolean} isLowerCase + * @returns {string | null} + */ + get (name, isLowerCase) { + // 1. If list does not contain name, then return null. + // 2. Return the values of all headers in list whose name + // is a byte-case-insensitive match for name, + // separated from each other by 0x2C 0x20, in order. + return this[kHeadersMap].get(isLowerCase ? name : name.toLowerCase())?.value ?? null + } + + * [Symbol.iterator] () { + // use the lowercased name + for (const { 0: name, 1: { value } } of this[kHeadersMap]) { + yield [name, value] + } + } + + get entries () { + const headers = {} + + if (this[kHeadersMap].size !== 0) { + for (const { name, value } of this[kHeadersMap].values()) { + headers[name] = value + } + } + + return headers + } + + rawValues () { + return this[kHeadersMap].values() + } + + get entriesList () { + const headers = [] + + if (this[kHeadersMap].size !== 0) { + for (const { 0: lowerName, 1: { name, value } } of this[kHeadersMap]) { + if (lowerName === 'set-cookie') { + for (const cookie of this.cookies) { + headers.push([name, cookie]) + } + } else { + headers.push([name, value]) + } + } + } + + return headers + } + + // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set + toSortedArray () { + const size = this[kHeadersMap].size + const array = new Array(size) + // In most cases, you will use the fast-path. + // fast-path: Use binary insertion sort for small arrays. + if (size <= 32) { + if (size === 0) { + // If empty, it is an empty array. To avoid the first index assignment. + return array + } + // Improve performance by unrolling loop and avoiding double-loop. + // Double-loop-less version of the binary insertion sort. + const iterator = this[kHeadersMap][Symbol.iterator]() + const firstValue = iterator.next().value + // set [name, value] to first index. + array[0] = [firstValue[0], firstValue[1].value] + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + // 3.2.2. Assert: value is non-null. + assert(firstValue[1].value !== null) + for ( + let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; + i < size; + ++i + ) { + // get next value + value = iterator.next().value + // set [name, value] to current index. + x = array[i] = [value[0], value[1].value] + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + // 3.2.2. Assert: value is non-null. + assert(x[1] !== null) + left = 0 + right = i + // binary search + while (left < right) { + // middle index + pivot = left + ((right - left) >> 1) + // compare header name + if (array[pivot][0] <= x[0]) { + left = pivot + 1 + } else { + right = pivot + } + } + if (i !== pivot) { + j = i + while (j > left) { + array[j] = array[--j] + } + array[left] = x + } + } + /* c8 ignore next 4 */ + if (!iterator.next().done) { + // This is for debugging and will never be called. + throw new TypeError('Unreachable') + } + return array + } else { + // This case would be a rare occurrence. + // slow-path: fallback + let i = 0 + for (const { 0: name, 1: { value } } of this[kHeadersMap]) { + array[i++] = [name, value] + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + // 3.2.2. Assert: value is non-null. + assert(value !== null) + } + return array.sort(compareHeaderName) + } + } +} + +// https://fetch.spec.whatwg.org/#headers-class +class Headers { + #guard + #headersList + + constructor (init = undefined) { + webidl.util.markAsUncloneable(this) + + if (init === kConstruct) { + return + } + + this.#headersList = new HeadersList() + + // The new Headers(init) constructor steps are: + + // 1. Set this’s guard to "none". + this.#guard = 'none' + + // 2. If init is given, then fill this with init. + if (init !== undefined) { + init = webidl.converters.HeadersInit(init, 'Headers contructor', 'init') + fill(this, init) + } + } + + // https://fetch.spec.whatwg.org/#dom-headers-append + append (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, 'Headers.append') + + const prefix = 'Headers.append' + name = webidl.converters.ByteString(name, prefix, 'name') + value = webidl.converters.ByteString(value, prefix, 'value') + + return appendHeader(this, name, value) + } + + // https://fetch.spec.whatwg.org/#dom-headers-delete + delete (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, 'Headers.delete') + + const prefix = 'Headers.delete' + name = webidl.converters.ByteString(name, prefix, 'name') + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.delete', + value: name, + type: 'header name' + }) + } + + // 2. If this’s guard is "immutable", then throw a TypeError. + // 3. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 4. Otherwise, if this’s guard is "request-no-cors", name + // is not a no-CORS-safelisted request-header name, and + // name is not a privileged no-CORS request-header name, + // return. + // 5. Otherwise, if this’s guard is "response" and name is + // a forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this.#guard === 'immutable') { + throw new TypeError('immutable') + } + + // 6. If this’s header list does not contain name, then + // return. + if (!this.#headersList.contains(name, false)) { + return + } + + // 7. Delete name from this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this. + this.#headersList.delete(name, false) + } + + // https://fetch.spec.whatwg.org/#dom-headers-get + get (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, 'Headers.get') + + const prefix = 'Headers.get' + name = webidl.converters.ByteString(name, prefix, 'name') + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix, + value: name, + type: 'header name' + }) + } + + // 2. Return the result of getting name from this’s header + // list. + return this.#headersList.get(name, false) + } + + // https://fetch.spec.whatwg.org/#dom-headers-has + has (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, 'Headers.has') + + const prefix = 'Headers.has' + name = webidl.converters.ByteString(name, prefix, 'name') + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix, + value: name, + type: 'header name' + }) + } + + // 2. Return true if this’s header list contains name; + // otherwise false. + return this.#headersList.contains(name, false) + } + + // https://fetch.spec.whatwg.org/#dom-headers-set + set (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, 'Headers.set') + + const prefix = 'Headers.set' + name = webidl.converters.ByteString(name, prefix, 'name') + value = webidl.converters.ByteString(value, prefix, 'value') + + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix, + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix, + value, + type: 'header value' + }) + } + + // 3. If this’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 5. Otherwise, if this’s guard is "request-no-cors" and + // name/value is not a no-CORS-safelisted request-header, + // return. + // 6. Otherwise, if this’s guard is "response" and name is a + // forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this.#guard === 'immutable') { + throw new TypeError('immutable') + } + + // 7. Set (name, value) in this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this + this.#headersList.set(name, value, false) + } + + // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie + getSetCookie () { + webidl.brandCheck(this, Headers) + + // 1. If this’s header list does not contain `Set-Cookie`, then return « ». + // 2. Return the values of all headers in this’s header list whose name is + // a byte-case-insensitive match for `Set-Cookie`, in order. + + const list = this.#headersList.cookies + + if (list) { + return [...list] + } + + return [] + } + + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + get [kHeadersSortedMap] () { + if (this.#headersList[kHeadersSortedMap]) { + return this.#headersList[kHeadersSortedMap] + } + + // 1. Let headers be an empty list of headers with the key being the name + // and value the value. + const headers = [] + + // 2. Let names be the result of convert header names to a sorted-lowercase + // set with all the names of the headers in list. + const names = this.#headersList.toSortedArray() + + const cookies = this.#headersList.cookies + + // fast-path + if (cookies === null || cookies.length === 1) { + // Note: The non-null assertion of value has already been done by `HeadersList#toSortedArray` + return (this.#headersList[kHeadersSortedMap] = names) + } + + // 3. For each name of names: + for (let i = 0; i < names.length; ++i) { + const { 0: name, 1: value } = names[i] + // 1. If name is `set-cookie`, then: + if (name === 'set-cookie') { + // 1. Let values be a list of all values of headers in list whose name + // is a byte-case-insensitive match for name, in order. + + // 2. For each value of values: + // 1. Append (name, value) to headers. + for (let j = 0; j < cookies.length; ++j) { + headers.push([name, cookies[j]]) + } + } else { + // 2. Otherwise: + + // 1. Let value be the result of getting name from list. + + // 2. Assert: value is non-null. + // Note: This operation was done by `HeadersList#toSortedArray`. + + // 3. Append (name, value) to headers. + headers.push([name, value]) + } + } + + // 4. Return headers. + return (this.#headersList[kHeadersSortedMap] = headers) + } + + [util.inspect.custom] (depth, options) { + options.depth ??= depth + + return `Headers ${util.formatWithOptions(options, this.#headersList.entries)}` + } + + static getHeadersGuard (o) { + return o.#guard + } + + static setHeadersGuard (o, guard) { + o.#guard = guard + } + + static getHeadersList (o) { + return o.#headersList + } + + static setHeadersList (o, list) { + o.#headersList = list + } +} + +const { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers +Reflect.deleteProperty(Headers, 'getHeadersGuard') +Reflect.deleteProperty(Headers, 'setHeadersGuard') +Reflect.deleteProperty(Headers, 'getHeadersList') +Reflect.deleteProperty(Headers, 'setHeadersList') + +iteratorMixin('Headers', Headers, kHeadersSortedMap, 0, 1) + +Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + getSetCookie: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Headers', + configurable: true + }, + [util.inspect.custom]: { + enumerable: false + } +}) + +webidl.converters.HeadersInit = function (V, prefix, argument) { + if (webidl.util.Type(V) === 'Object') { + const iterator = Reflect.get(V, Symbol.iterator) + + // A work-around to ensure we send the properly-cased Headers when V is a Headers object. + // Read https://github.com/nodejs/undici/pull/3159#issuecomment-2075537226 before touching, please. + if (!util.types.isProxy(V) && iterator === Headers.prototype.entries) { // Headers object + try { + return getHeadersList(V).entriesList + } catch { + // fall-through + } + } + + if (typeof iterator === 'function') { + return webidl.converters['sequence>'](V, prefix, argument, iterator.bind(V)) + } + + return webidl.converters['record'](V, prefix, argument) + } + + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) +} + +module.exports = { + fill, + // for test. + compareHeaderName, + Headers, + HeadersList, + getHeadersGuard, + setHeadersGuard, + setHeadersList, + getHeadersList +} + + +/***/ }), + +/***/ 4398: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { + makeNetworkError, + makeAppropriateNetworkError, + filterResponse, + makeResponse, + fromInnerResponse +} = __nccwpck_require__(9051) +const { HeadersList } = __nccwpck_require__(660) +const { Request, cloneRequest } = __nccwpck_require__(9967) +const zlib = __nccwpck_require__(8522) +const { + bytesMatch, + makePolicyContainer, + clonePolicyContainer, + requestBadPort, + TAOCheck, + appendRequestOriginHeader, + responseLocationURL, + requestCurrentURL, + setRequestReferrerPolicyOnRedirect, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + createOpaqueTimingInfo, + appendFetchMetadata, + corsCheck, + crossOriginResourcePolicyCheck, + determineRequestsReferrer, + coarsenedSharedCurrentTime, + createDeferredPromise, + isBlobLike, + sameOrigin, + isCancelled, + isAborted, + isErrorLike, + fullyReadBody, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlIsHttpHttpsScheme, + urlHasHttpsScheme, + clampAndCoarsenConnectionTimingInfo, + simpleRangeHeaderValue, + buildContentRange, + createInflate, + extractMimeType +} = __nccwpck_require__(3168) +const { kState, kDispatcher } = __nccwpck_require__(3627) +const assert = __nccwpck_require__(4589) +const { safelyExtractBody, extractBody } = __nccwpck_require__(4492) +const { + redirectStatusSet, + nullBodyStatus, + safeMethodsSet, + requestBodyHeader, + subresourceSet +} = __nccwpck_require__(4495) +const EE = __nccwpck_require__(8474) +const { Readable, pipeline, finished } = __nccwpck_require__(7075) +const { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = __nccwpck_require__(3440) +const { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = __nccwpck_require__(1900) +const { getGlobalDispatcher } = __nccwpck_require__(2581) +const { webidl } = __nccwpck_require__(5893) +const { STATUS_CODES } = __nccwpck_require__(7067) +const GET_OR_HEAD = ['GET', 'HEAD'] + +const defaultUserAgent = typeof __UNDICI_IS_NODE__ !== 'undefined' || typeof esbuildDetection !== 'undefined' + ? 'node' + : 'undici' + +/** @type {import('buffer').resolveObjectURL} */ +let resolveObjectURL + +class Fetch extends EE { + constructor (dispatcher) { + super() + + this.dispatcher = dispatcher + this.connection = null + this.dump = false + this.state = 'ongoing' + } + + terminate (reason) { + if (this.state !== 'ongoing') { + return + } + + this.state = 'terminated' + this.connection?.destroy(reason) + this.emit('terminated', reason) + } + + // https://fetch.spec.whatwg.org/#fetch-controller-abort + abort (error) { + if (this.state !== 'ongoing') { + return + } + + // 1. Set controller’s state to "aborted". + this.state = 'aborted' + + // 2. Let fallbackError be an "AbortError" DOMException. + // 3. Set error to fallbackError if it is not given. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } + + // 4. Let serializedError be StructuredSerialize(error). + // If that threw an exception, catch it, and let + // serializedError be StructuredSerialize(fallbackError). + + // 5. Set controller’s serialized abort reason to serializedError. + this.serializedAbortReason = error + + this.connection?.destroy(error) + this.emit('terminated', error) + } +} + +function handleFetchDone (response) { + finalizeAndReportTiming(response, 'fetch') +} + +// https://fetch.spec.whatwg.org/#fetch-method +function fetch (input, init = undefined) { + webidl.argumentLengthCheck(arguments, 1, 'globalThis.fetch') + + // 1. Let p be a new promise. + let p = createDeferredPromise() + + // 2. Let requestObject be the result of invoking the initial value of + // Request as constructor with input and init as arguments. If this throws + // an exception, reject p with it and return p. + let requestObject + + try { + requestObject = new Request(input, init) + } catch (e) { + p.reject(e) + return p.promise + } + + // 3. Let request be requestObject’s request. + const request = requestObject[kState] + + // 4. If requestObject’s signal’s aborted flag is set, then: + if (requestObject.signal.aborted) { + // 1. Abort the fetch() call with p, request, null, and + // requestObject’s signal’s abort reason. + abortFetch(p, request, null, requestObject.signal.reason) + + // 2. Return p. + return p.promise + } + + // 5. Let globalObject be request’s client’s global object. + const globalObject = request.client.globalObject + + // 6. If globalObject is a ServiceWorkerGlobalScope object, then set + // request’s service-workers mode to "none". + if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { + request.serviceWorkers = 'none' + } + + // 7. Let responseObject be null. + let responseObject = null + + // 8. Let relevantRealm be this’s relevant Realm. + + // 9. Let locallyAborted be false. + let locallyAborted = false + + // 10. Let controller be null. + let controller = null + + // 11. Add the following abort steps to requestObject’s signal: + addAbortListener( + requestObject.signal, + () => { + // 1. Set locallyAborted to true. + locallyAborted = true + + // 2. Assert: controller is non-null. + assert(controller != null) + + // 3. Abort controller with requestObject’s signal’s abort reason. + controller.abort(requestObject.signal.reason) + + const realResponse = responseObject?.deref() + + // 4. Abort the fetch() call with p, request, responseObject, + // and requestObject’s signal’s abort reason. + abortFetch(p, request, realResponse, requestObject.signal.reason) + } + ) + + // 12. Let handleFetchDone given response response be to finalize and + // report timing with response, globalObject, and "fetch". + // see function handleFetchDone + + // 13. Set controller to the result of calling fetch given request, + // with processResponseEndOfBody set to handleFetchDone, and processResponse + // given response being these substeps: + + const processResponse = (response) => { + // 1. If locallyAborted is true, terminate these substeps. + if (locallyAborted) { + return + } + + // 2. If response’s aborted flag is set, then: + if (response.aborted) { + // 1. Let deserializedError be the result of deserialize a serialized + // abort reason given controller’s serialized abort reason and + // relevantRealm. + + // 2. Abort the fetch() call with p, request, responseObject, and + // deserializedError. + + abortFetch(p, request, responseObject, controller.serializedAbortReason) + return + } + + // 3. If response is a network error, then reject p with a TypeError + // and terminate these substeps. + if (response.type === 'error') { + p.reject(new TypeError('fetch failed', { cause: response.error })) + return + } + + // 4. Set responseObject to the result of creating a Response object, + // given response, "immutable", and relevantRealm. + responseObject = new WeakRef(fromInnerResponse(response, 'immutable')) + + // 5. Resolve p with responseObject. + p.resolve(responseObject.deref()) + p = null + } + + controller = fetching({ + request, + processResponseEndOfBody: handleFetchDone, + processResponse, + dispatcher: requestObject[kDispatcher] // undici + }) + + // 14. Return p. + return p.promise +} + +// https://fetch.spec.whatwg.org/#finalize-and-report-timing +function finalizeAndReportTiming (response, initiatorType = 'other') { + // 1. If response is an aborted network error, then return. + if (response.type === 'error' && response.aborted) { + return + } + + // 2. If response’s URL list is null or empty, then return. + if (!response.urlList?.length) { + return + } + + // 3. Let originalURL be response’s URL list[0]. + const originalURL = response.urlList[0] + + // 4. Let timingInfo be response’s timing info. + let timingInfo = response.timingInfo + + // 5. Let cacheState be response’s cache state. + let cacheState = response.cacheState + + // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. + if (!urlIsHttpHttpsScheme(originalURL)) { + return + } + + // 7. If timingInfo is null, then return. + if (timingInfo === null) { + return + } + + // 8. If response’s timing allow passed flag is not set, then: + if (!response.timingAllowPassed) { + // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. + timingInfo = createOpaqueTimingInfo({ + startTime: timingInfo.startTime + }) + + // 2. Set cacheState to the empty string. + cacheState = '' + } + + // 9. Set timingInfo’s end time to the coarsened shared current time + // given global’s relevant settings object’s cross-origin isolated + // capability. + // TODO: given global’s relevant settings object’s cross-origin isolated + // capability? + timingInfo.endTime = coarsenedSharedCurrentTime() + + // 10. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 11. Mark resource timing for timingInfo, originalURL, initiatorType, + // global, and cacheState. + markResourceTiming( + timingInfo, + originalURL.href, + initiatorType, + globalThis, + cacheState + ) +} + +// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing +const markResourceTiming = performance.markResourceTiming + +// https://fetch.spec.whatwg.org/#abort-fetch +function abortFetch (p, request, responseObject, error) { + // 1. Reject promise with error. + if (p) { + // We might have already resolved the promise at this stage + p.reject(error) + } + + // 2. If request’s body is not null and is readable, then cancel request’s + // body with error. + if (request.body != null && isReadable(request.body?.stream)) { + request.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } + + // 3. If responseObject is null, then return. + if (responseObject == null) { + return + } + + // 4. Let response be responseObject’s response. + const response = responseObject[kState] + + // 5. If response’s body is not null and is readable, then error response’s + // body with error. + if (response.body != null && isReadable(response.body?.stream)) { + response.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } +} + +// https://fetch.spec.whatwg.org/#fetching +function fetching ({ + request, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseEndOfBody, + processResponseConsumeBody, + useParallelQueue = false, + dispatcher = getGlobalDispatcher() // undici +}) { + // Ensure that the dispatcher is set accordingly + assert(dispatcher) + + // 1. Let taskDestination be null. + let taskDestination = null + + // 2. Let crossOriginIsolatedCapability be false. + let crossOriginIsolatedCapability = false + + // 3. If request’s client is non-null, then: + if (request.client != null) { + // 1. Set taskDestination to request’s client’s global object. + taskDestination = request.client.globalObject + + // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin + // isolated capability. + crossOriginIsolatedCapability = + request.client.crossOriginIsolatedCapability + } + + // 4. If useParallelQueue is true, then set taskDestination to the result of + // starting a new parallel queue. + // TODO + + // 5. Let timingInfo be a new fetch timing info whose start time and + // post-redirect start time are the coarsened shared current time given + // crossOriginIsolatedCapability. + const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability) + const timingInfo = createOpaqueTimingInfo({ + startTime: currentTime + }) + + // 6. Let fetchParams be a new fetch params whose + // request is request, + // timing info is timingInfo, + // process request body chunk length is processRequestBodyChunkLength, + // process request end-of-body is processRequestEndOfBody, + // process response is processResponse, + // process response consume body is processResponseConsumeBody, + // process response end-of-body is processResponseEndOfBody, + // task destination is taskDestination, + // and cross-origin isolated capability is crossOriginIsolatedCapability. + const fetchParams = { + controller: new Fetch(dispatcher), + request, + timingInfo, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseConsumeBody, + processResponseEndOfBody, + taskDestination, + crossOriginIsolatedCapability + } + + // 7. If request’s body is a byte sequence, then set request’s body to + // request’s body as a body. + // NOTE: Since fetching is only called from fetch, body should already be + // extracted. + assert(!request.body || request.body.stream) + + // 8. If request’s window is "client", then set request’s window to request’s + // client, if request’s client’s global object is a Window object; otherwise + // "no-window". + if (request.window === 'client') { + // TODO: What if request.client is null? + request.window = + request.client?.globalObject?.constructor?.name === 'Window' + ? request.client + : 'no-window' + } + + // 9. If request’s origin is "client", then set request’s origin to request’s + // client’s origin. + if (request.origin === 'client') { + request.origin = request.client.origin + } + + // 10. If all of the following conditions are true: + // TODO + + // 11. If request’s policy container is "client", then: + if (request.policyContainer === 'client') { + // 1. If request’s client is non-null, then set request’s policy + // container to a clone of request’s client’s policy container. [HTML] + if (request.client != null) { + request.policyContainer = clonePolicyContainer( + request.client.policyContainer + ) + } else { + // 2. Otherwise, set request’s policy container to a new policy + // container. + request.policyContainer = makePolicyContainer() + } + } + + // 12. If request’s header list does not contain `Accept`, then: + if (!request.headersList.contains('accept', true)) { + // 1. Let value be `*/*`. + const value = '*/*' + + // 2. A user agent should set value to the first matching statement, if + // any, switching on request’s destination: + // "document" + // "frame" + // "iframe" + // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` + // "image" + // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` + // "style" + // `text/css,*/*;q=0.1` + // TODO + + // 3. Append `Accept`/value to request’s header list. + request.headersList.append('accept', value, true) + } + + // 13. If request’s header list does not contain `Accept-Language`, then + // user agents should append `Accept-Language`/an appropriate value to + // request’s header list. + if (!request.headersList.contains('accept-language', true)) { + request.headersList.append('accept-language', '*', true) + } + + // 14. If request’s priority is null, then use request’s initiator and + // destination appropriately in setting request’s priority to a + // user-agent-defined object. + if (request.priority === null) { + // TODO + } + + // 15. If request is a subresource request, then: + if (subresourceSet.has(request.destination)) { + // TODO + } + + // 16. Run main fetch given fetchParams. + mainFetch(fetchParams) + .catch(err => { + fetchParams.controller.terminate(err) + }) + + // 17. Return fetchParam's controller + return fetchParams.controller +} + +// https://fetch.spec.whatwg.org/#concept-main-fetch +async function mainFetch (fetchParams, recursive = false) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. If request’s local-URLs-only flag is set and request’s current URL is + // not local, then set response to a network error. + if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { + response = makeNetworkError('local URLs only') + } + + // 4. Run report Content Security Policy violations for request. + // TODO + + // 5. Upgrade request to a potentially trustworthy URL, if appropriate. + tryUpgradeRequestToAPotentiallyTrustworthyURL(request) + + // 6. If should request be blocked due to a bad port, should fetching request + // be blocked as mixed content, or should request be blocked by Content + // Security Policy returns blocked, then set response to a network error. + if (requestBadPort(request) === 'blocked') { + response = makeNetworkError('bad port') + } + // TODO: should fetching request be blocked as mixed content? + // TODO: should request be blocked by Content Security Policy? + + // 7. If request’s referrer policy is the empty string, then set request’s + // referrer policy to request’s policy container’s referrer policy. + if (request.referrerPolicy === '') { + request.referrerPolicy = request.policyContainer.referrerPolicy + } + + // 8. If request’s referrer is not "no-referrer", then set request’s + // referrer to the result of invoking determine request’s referrer. + if (request.referrer !== 'no-referrer') { + request.referrer = determineRequestsReferrer(request) + } + + // 9. Set request’s current URL’s scheme to "https" if all of the following + // conditions are true: + // - request’s current URL’s scheme is "http" + // - request’s current URL’s host is a domain + // - Matching request’s current URL’s host per Known HSTS Host Domain Name + // Matching results in either a superdomain match with an asserted + // includeSubDomains directive or a congruent match (with or without an + // asserted includeSubDomains directive). [HSTS] + // TODO + + // 10. If recursive is false, then run the remaining steps in parallel. + // TODO + + // 11. If response is null, then set response to the result of running + // the steps corresponding to the first matching statement: + if (response === null) { + response = await (async () => { + const currentURL = requestCurrentURL(request) + + if ( + // - request’s current URL’s origin is same origin with request’s origin, + // and request’s response tainting is "basic" + (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') || + // request’s current URL’s scheme is "data" + (currentURL.protocol === 'data:') || + // - request’s mode is "navigate" or "websocket" + (request.mode === 'navigate' || request.mode === 'websocket') + ) { + // 1. Set request’s response tainting to "basic". + request.responseTainting = 'basic' + + // 2. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s mode is "same-origin" + if (request.mode === 'same-origin') { + // 1. Return a network error. + return makeNetworkError('request mode cannot be "same-origin"') + } + + // request’s mode is "no-cors" + if (request.mode === 'no-cors') { + // 1. If request’s redirect mode is not "follow", then return a network + // error. + if (request.redirect !== 'follow') { + return makeNetworkError( + 'redirect mode cannot be "follow" for "no-cors" request' + ) + } + + // 2. Set request’s response tainting to "opaque". + request.responseTainting = 'opaque' + + // 3. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s current URL’s scheme is not an HTTP(S) scheme + if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { + // Return a network error. + return makeNetworkError('URL scheme must be a HTTP(S) scheme') + } + + // - request’s use-CORS-preflight flag is set + // - request’s unsafe-request flag is set and either request’s method is + // not a CORS-safelisted method or CORS-unsafe request-header names with + // request’s header list is not empty + // 1. Set request’s response tainting to "cors". + // 2. Let corsWithPreflightResponse be the result of running HTTP fetch + // given fetchParams and true. + // 3. If corsWithPreflightResponse is a network error, then clear cache + // entries using request. + // 4. Return corsWithPreflightResponse. + // TODO + + // Otherwise + // 1. Set request’s response tainting to "cors". + request.responseTainting = 'cors' + + // 2. Return the result of running HTTP fetch given fetchParams. + return await httpFetch(fetchParams) + })() + } + + // 12. If recursive is true, then return response. + if (recursive) { + return response + } + + // 13. If response is not a network error and response is not a filtered + // response, then: + if (response.status !== 0 && !response.internalResponse) { + // If request’s response tainting is "cors", then: + if (request.responseTainting === 'cors') { + // 1. Let headerNames be the result of extracting header list values + // given `Access-Control-Expose-Headers` and response’s header list. + // TODO + // 2. If request’s credentials mode is not "include" and headerNames + // contains `*`, then set response’s CORS-exposed header-name list to + // all unique header names in response’s header list. + // TODO + // 3. Otherwise, if headerNames is not null or failure, then set + // response’s CORS-exposed header-name list to headerNames. + // TODO + } + + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (request.responseTainting === 'basic') { + response = filterResponse(response, 'basic') + } else if (request.responseTainting === 'cors') { + response = filterResponse(response, 'cors') + } else if (request.responseTainting === 'opaque') { + response = filterResponse(response, 'opaque') + } else { + assert(false) + } + } + + // 14. Let internalResponse be response, if response is a network error, + // and response’s internal response otherwise. + let internalResponse = + response.status === 0 ? response : response.internalResponse + + // 15. If internalResponse’s URL list is empty, then set it to a clone of + // request’s URL list. + if (internalResponse.urlList.length === 0) { + internalResponse.urlList.push(...request.urlList) + } + + // 16. If request’s timing allow failed flag is unset, then set + // internalResponse’s timing allow passed flag. + if (!request.timingAllowFailed) { + response.timingAllowPassed = true + } + + // 17. If response is not a network error and any of the following returns + // blocked + // - should internalResponse to request be blocked as mixed content + // - should internalResponse to request be blocked by Content Security Policy + // - should internalResponse to request be blocked due to its MIME type + // - should internalResponse to request be blocked due to nosniff + // TODO + + // 18. If response’s type is "opaque", internalResponse’s status is 206, + // internalResponse’s range-requested flag is set, and request’s header + // list does not contain `Range`, then set response and internalResponse + // to a network error. + if ( + response.type === 'opaque' && + internalResponse.status === 206 && + internalResponse.rangeRequested && + !request.headers.contains('range', true) + ) { + response = internalResponse = makeNetworkError() + } + + // 19. If response is not a network error and either request’s method is + // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, + // set internalResponse’s body to null and disregard any enqueuing toward + // it (if any). + if ( + response.status !== 0 && + (request.method === 'HEAD' || + request.method === 'CONNECT' || + nullBodyStatus.includes(internalResponse.status)) + ) { + internalResponse.body = null + fetchParams.controller.dump = true + } + + // 20. If request’s integrity metadata is not the empty string, then: + if (request.integrity) { + // 1. Let processBodyError be this step: run fetch finale given fetchParams + // and a network error. + const processBodyError = (reason) => + fetchFinale(fetchParams, makeNetworkError(reason)) + + // 2. If request’s response tainting is "opaque", or response’s body is null, + // then run processBodyError and abort these steps. + if (request.responseTainting === 'opaque' || response.body == null) { + processBodyError(response.error) + return + } + + // 3. Let processBody given bytes be these steps: + const processBody = (bytes) => { + // 1. If bytes do not match request’s integrity metadata, + // then run processBodyError and abort these steps. [SRI] + if (!bytesMatch(bytes, request.integrity)) { + processBodyError('integrity mismatch') + return + } + + // 2. Set response’s body to bytes as a body. + response.body = safelyExtractBody(bytes)[0] + + // 3. Run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } + + // 4. Fully read response’s body given processBody and processBodyError. + await fullyReadBody(response.body, processBody, processBodyError) + } else { + // 21. Otherwise, run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } +} + +// https://fetch.spec.whatwg.org/#concept-scheme-fetch +// given a fetch params fetchParams +function schemeFetch (fetchParams) { + // Note: since the connection is destroyed on redirect, which sets fetchParams to a + // cancelled state, we do not want this condition to trigger *unless* there have been + // no redirects. See https://github.com/nodejs/undici/issues/1776 + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { + return Promise.resolve(makeAppropriateNetworkError(fetchParams)) + } + + // 2. Let request be fetchParams’s request. + const { request } = fetchParams + + const { protocol: scheme } = requestCurrentURL(request) + + // 3. Switch on request’s current URL’s scheme and run the associated steps: + switch (scheme) { + case 'about:': { + // If request’s current URL’s path is the string "blank", then return a new response + // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », + // and body is the empty byte sequence as a body. + + // Otherwise, return a network error. + return Promise.resolve(makeNetworkError('about scheme is not supported')) + } + case 'blob:': { + if (!resolveObjectURL) { + resolveObjectURL = (__nccwpck_require__(4573).resolveObjectURL) + } + + // 1. Let blobURLEntry be request’s current URL’s blob URL entry. + const blobURLEntry = requestCurrentURL(request) + + // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 + // Buffer.resolveObjectURL does not ignore URL queries. + if (blobURLEntry.search.length !== 0) { + return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')) + } + + const blob = resolveObjectURL(blobURLEntry.toString()) + + // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s + // object is not a Blob object, then return a network error. + if (request.method !== 'GET' || !isBlobLike(blob)) { + return Promise.resolve(makeNetworkError('invalid method')) + } + + // 3. Let blob be blobURLEntry’s object. + // Note: done above + + // 4. Let response be a new response. + const response = makeResponse() + + // 5. Let fullLength be blob’s size. + const fullLength = blob.size + + // 6. Let serializedFullLength be fullLength, serialized and isomorphic encoded. + const serializedFullLength = isomorphicEncode(`${fullLength}`) + + // 7. Let type be blob’s type. + const type = blob.type + + // 8. If request’s header list does not contain `Range`: + // 9. Otherwise: + if (!request.headersList.contains('range', true)) { + // 1. Let bodyWithType be the result of safely extracting blob. + // Note: in the FileAPI a blob "object" is a Blob *or* a MediaSource. + // In node, this can only ever be a Blob. Therefore we can safely + // use extractBody directly. + const bodyWithType = extractBody(blob) + + // 2. Set response’s status message to `OK`. + response.statusText = 'OK' + + // 3. Set response’s body to bodyWithType’s body. + response.body = bodyWithType[0] + + // 4. Set response’s header list to « (`Content-Length`, serializedFullLength), (`Content-Type`, type) ». + response.headersList.set('content-length', serializedFullLength, true) + response.headersList.set('content-type', type, true) + } else { + // 1. Set response’s range-requested flag. + response.rangeRequested = true + + // 2. Let rangeHeader be the result of getting `Range` from request’s header list. + const rangeHeader = request.headersList.get('range', true) + + // 3. Let rangeValue be the result of parsing a single range header value given rangeHeader and true. + const rangeValue = simpleRangeHeaderValue(rangeHeader, true) + + // 4. If rangeValue is failure, then return a network error. + if (rangeValue === 'failure') { + return Promise.resolve(makeNetworkError('failed to fetch the data URL')) + } + + // 5. Let (rangeStart, rangeEnd) be rangeValue. + let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue + + // 6. If rangeStart is null: + // 7. Otherwise: + if (rangeStart === null) { + // 1. Set rangeStart to fullLength − rangeEnd. + rangeStart = fullLength - rangeEnd + + // 2. Set rangeEnd to rangeStart + rangeEnd − 1. + rangeEnd = rangeStart + rangeEnd - 1 + } else { + // 1. If rangeStart is greater than or equal to fullLength, then return a network error. + if (rangeStart >= fullLength) { + return Promise.resolve(makeNetworkError('Range start is greater than the blob\'s size.')) + } + + // 2. If rangeEnd is null or rangeEnd is greater than or equal to fullLength, then set + // rangeEnd to fullLength − 1. + if (rangeEnd === null || rangeEnd >= fullLength) { + rangeEnd = fullLength - 1 + } + } + + // 8. Let slicedBlob be the result of invoking slice blob given blob, rangeStart, + // rangeEnd + 1, and type. + const slicedBlob = blob.slice(rangeStart, rangeEnd, type) + + // 9. Let slicedBodyWithType be the result of safely extracting slicedBlob. + // Note: same reason as mentioned above as to why we use extractBody + const slicedBodyWithType = extractBody(slicedBlob) + + // 10. Set response’s body to slicedBodyWithType’s body. + response.body = slicedBodyWithType[0] + + // 11. Let serializedSlicedLength be slicedBlob’s size, serialized and isomorphic encoded. + const serializedSlicedLength = isomorphicEncode(`${slicedBlob.size}`) + + // 12. Let contentRange be the result of invoking build a content range given rangeStart, + // rangeEnd, and fullLength. + const contentRange = buildContentRange(rangeStart, rangeEnd, fullLength) + + // 13. Set response’s status to 206. + response.status = 206 + + // 14. Set response’s status message to `Partial Content`. + response.statusText = 'Partial Content' + + // 15. Set response’s header list to « (`Content-Length`, serializedSlicedLength), + // (`Content-Type`, type), (`Content-Range`, contentRange) ». + response.headersList.set('content-length', serializedSlicedLength, true) + response.headersList.set('content-type', type, true) + response.headersList.set('content-range', contentRange, true) + } + + // 10. Return response. + return Promise.resolve(response) + } + case 'data:': { + // 1. Let dataURLStruct be the result of running the + // data: URL processor on request’s current URL. + const currentURL = requestCurrentURL(request) + const dataURLStruct = dataURLProcessor(currentURL) + + // 2. If dataURLStruct is failure, then return a + // network error. + if (dataURLStruct === 'failure') { + return Promise.resolve(makeNetworkError('failed to fetch the data URL')) + } + + // 3. Let mimeType be dataURLStruct’s MIME type, serialized. + const mimeType = serializeAMimeType(dataURLStruct.mimeType) + + // 4. Return a response whose status message is `OK`, + // header list is « (`Content-Type`, mimeType) », + // and body is dataURLStruct’s body as a body. + return Promise.resolve(makeResponse({ + statusText: 'OK', + headersList: [ + ['content-type', { name: 'Content-Type', value: mimeType }] + ], + body: safelyExtractBody(dataURLStruct.body)[0] + })) + } + case 'file:': { + // For now, unfortunate as it is, file URLs are left as an exercise for the reader. + // When in doubt, return a network error. + return Promise.resolve(makeNetworkError('not implemented... yet...')) + } + case 'http:': + case 'https:': { + // Return the result of running HTTP fetch given fetchParams. + + return httpFetch(fetchParams) + .catch((err) => makeNetworkError(err)) + } + default: { + return Promise.resolve(makeNetworkError('unknown scheme')) + } + } +} + +// https://fetch.spec.whatwg.org/#finalize-response +function finalizeResponse (fetchParams, response) { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // 2, If fetchParams’s process response done is not null, then queue a fetch + // task to run fetchParams’s process response done given response, with + // fetchParams’s task destination. + if (fetchParams.processResponseDone != null) { + queueMicrotask(() => fetchParams.processResponseDone(response)) + } +} + +// https://fetch.spec.whatwg.org/#fetch-finale +function fetchFinale (fetchParams, response) { + // 1. Let timingInfo be fetchParams’s timing info. + let timingInfo = fetchParams.timingInfo + + // 2. If response is not a network error and fetchParams’s request’s client is a secure context, + // then set timingInfo’s server-timing headers to the result of getting, decoding, and splitting + // `Server-Timing` from response’s internal response’s header list. + // TODO + + // 3. Let processResponseEndOfBody be the following steps: + const processResponseEndOfBody = () => { + // 1. Let unsafeEndTime be the unsafe shared current time. + const unsafeEndTime = Date.now() // ? + + // 2. If fetchParams’s request’s destination is "document", then set fetchParams’s controller’s + // full timing info to fetchParams’s timing info. + if (fetchParams.request.destination === 'document') { + fetchParams.controller.fullTimingInfo = timingInfo + } + + // 3. Set fetchParams’s controller’s report timing steps to the following steps given a global object global: + fetchParams.controller.reportTimingSteps = () => { + // 1. If fetchParams’s request’s URL’s scheme is not an HTTP(S) scheme, then return. + if (fetchParams.request.url.protocol !== 'https:') { + return + } + + // 2. Set timingInfo’s end time to the relative high resolution time given unsafeEndTime and global. + timingInfo.endTime = unsafeEndTime + + // 3. Let cacheState be response’s cache state. + let cacheState = response.cacheState + + // 4. Let bodyInfo be response’s body info. + const bodyInfo = response.bodyInfo + + // 5. If response’s timing allow passed flag is not set, then set timingInfo to the result of creating an + // opaque timing info for timingInfo and set cacheState to the empty string. + if (!response.timingAllowPassed) { + timingInfo = createOpaqueTimingInfo(timingInfo) + + cacheState = '' + } + + // 6. Let responseStatus be 0. + let responseStatus = 0 + + // 7. If fetchParams’s request’s mode is not "navigate" or response’s has-cross-origin-redirects is false: + if (fetchParams.request.mode !== 'navigator' || !response.hasCrossOriginRedirects) { + // 1. Set responseStatus to response’s status. + responseStatus = response.status + + // 2. Let mimeType be the result of extracting a MIME type from response’s header list. + const mimeType = extractMimeType(response.headersList) + + // 3. If mimeType is not failure, then set bodyInfo’s content type to the result of minimizing a supported MIME type given mimeType. + if (mimeType !== 'failure') { + bodyInfo.contentType = minimizeSupportedMimeType(mimeType) + } + } + + // 8. If fetchParams’s request’s initiator type is non-null, then mark resource timing given timingInfo, + // fetchParams’s request’s URL, fetchParams’s request’s initiator type, global, cacheState, bodyInfo, + // and responseStatus. + if (fetchParams.request.initiatorType != null) { + // TODO: update markresourcetiming + markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus) + } + } + + // 4. Let processResponseEndOfBodyTask be the following steps: + const processResponseEndOfBodyTask = () => { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // 2. If fetchParams’s process response end-of-body is non-null, then run fetchParams’s process + // response end-of-body given response. + if (fetchParams.processResponseEndOfBody != null) { + queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) + } + + // 3. If fetchParams’s request’s initiator type is non-null and fetchParams’s request’s client’s + // global object is fetchParams’s task destination, then run fetchParams’s controller’s report + // timing steps given fetchParams’s request’s client’s global object. + if (fetchParams.request.initiatorType != null) { + fetchParams.controller.reportTimingSteps() + } + } + + // 5. Queue a fetch task to run processResponseEndOfBodyTask with fetchParams’s task destination + queueMicrotask(() => processResponseEndOfBodyTask()) + } + + // 4. If fetchParams’s process response is non-null, then queue a fetch task to run fetchParams’s + // process response given response, with fetchParams’s task destination. + if (fetchParams.processResponse != null) { + queueMicrotask(() => { + fetchParams.processResponse(response) + fetchParams.processResponse = null + }) + } + + // 5. Let internalResponse be response, if response is a network error; otherwise response’s internal response. + const internalResponse = response.type === 'error' ? response : (response.internalResponse ?? response) + + // 6. If internalResponse’s body is null, then run processResponseEndOfBody. + // 7. Otherwise: + if (internalResponse.body == null) { + processResponseEndOfBody() + } else { + // mcollina: all the following steps of the specs are skipped. + // The internal transform stream is not needed. + // See https://github.com/nodejs/undici/pull/3093#issuecomment-2050198541 + + // 1. Let transformStream be a new TransformStream. + // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, enqueues chunk in transformStream. + // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm and flushAlgorithm + // set to processResponseEndOfBody. + // 4. Set internalResponse’s body’s stream to the result of internalResponse’s body’s stream piped through transformStream. + + finished(internalResponse.body.stream, () => { + processResponseEndOfBody() + }) + } +} + +// https://fetch.spec.whatwg.org/#http-fetch +async function httpFetch (fetchParams) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let actualResponse be null. + let actualResponse = null + + // 4. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 5. If request’s service-workers mode is "all", then: + if (request.serviceWorkers === 'all') { + // TODO + } + + // 6. If response is null, then: + if (response === null) { + // 1. If makeCORSPreflight is true and one of these conditions is true: + // TODO + + // 2. If request’s redirect mode is "follow", then set request’s + // service-workers mode to "none". + if (request.redirect === 'follow') { + request.serviceWorkers = 'none' + } + + // 3. Set response and actualResponse to the result of running + // HTTP-network-or-cache fetch given fetchParams. + actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) + + // 4. If request’s response tainting is "cors" and a CORS check + // for request and response returns failure, then return a network error. + if ( + request.responseTainting === 'cors' && + corsCheck(request, response) === 'failure' + ) { + return makeNetworkError('cors failure') + } + + // 5. If the TAO check for request and response returns failure, then set + // request’s timing allow failed flag. + if (TAOCheck(request, response) === 'failure') { + request.timingAllowFailed = true + } + } + + // 7. If either request’s response tainting or response’s type + // is "opaque", and the cross-origin resource policy check with + // request’s origin, request’s client, request’s destination, + // and actualResponse returns blocked, then return a network error. + if ( + (request.responseTainting === 'opaque' || response.type === 'opaque') && + crossOriginResourcePolicyCheck( + request.origin, + request.client, + request.destination, + actualResponse + ) === 'blocked' + ) { + return makeNetworkError('blocked') + } + + // 8. If actualResponse’s status is a redirect status, then: + if (redirectStatusSet.has(actualResponse.status)) { + // 1. If actualResponse’s status is not 303, request’s body is not null, + // and the connection uses HTTP/2, then user agents may, and are even + // encouraged to, transmit an RST_STREAM frame. + // See, https://github.com/whatwg/fetch/issues/1288 + if (request.redirect !== 'manual') { + fetchParams.controller.connection.destroy(undefined, false) + } + + // 2. Switch on request’s redirect mode: + if (request.redirect === 'error') { + // Set response to a network error. + response = makeNetworkError('unexpected redirect') + } else if (request.redirect === 'manual') { + // Set response to an opaque-redirect filtered response whose internal + // response is actualResponse. + // NOTE(spec): On the web this would return an `opaqueredirect` response, + // but that doesn't make sense server side. + // See https://github.com/nodejs/undici/issues/1193. + response = actualResponse + } else if (request.redirect === 'follow') { + // Set response to the result of running HTTP-redirect fetch given + // fetchParams and response. + response = await httpRedirectFetch(fetchParams, response) + } else { + assert(false) + } + } + + // 9. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 10. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-redirect-fetch +function httpRedirectFetch (fetchParams, response) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let actualResponse be response, if response is not a filtered response, + // and response’s internal response otherwise. + const actualResponse = response.internalResponse + ? response.internalResponse + : response + + // 3. Let locationURL be actualResponse’s location URL given request’s current + // URL’s fragment. + let locationURL + + try { + locationURL = responseLocationURL( + actualResponse, + requestCurrentURL(request).hash + ) + + // 4. If locationURL is null, then return response. + if (locationURL == null) { + return response + } + } catch (err) { + // 5. If locationURL is failure, then return a network error. + return Promise.resolve(makeNetworkError(err)) + } + + // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network + // error. + if (!urlIsHttpHttpsScheme(locationURL)) { + return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')) + } + + // 7. If request’s redirect count is 20, then return a network error. + if (request.redirectCount === 20) { + return Promise.resolve(makeNetworkError('redirect count exceeded')) + } + + // 8. Increase request’s redirect count by 1. + request.redirectCount += 1 + + // 9. If request’s mode is "cors", locationURL includes credentials, and + // request’s origin is not same origin with locationURL’s origin, then return + // a network error. + if ( + request.mode === 'cors' && + (locationURL.username || locationURL.password) && + !sameOrigin(request, locationURL) + ) { + return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')) + } + + // 10. If request’s response tainting is "cors" and locationURL includes + // credentials, then return a network error. + if ( + request.responseTainting === 'cors' && + (locationURL.username || locationURL.password) + ) { + return Promise.resolve(makeNetworkError( + 'URL cannot contain credentials for request mode "cors"' + )) + } + + // 11. If actualResponse’s status is not 303, request’s body is non-null, + // and request’s body’s source is null, then return a network error. + if ( + actualResponse.status !== 303 && + request.body != null && + request.body.source == null + ) { + return Promise.resolve(makeNetworkError()) + } + + // 12. If one of the following is true + // - actualResponse’s status is 301 or 302 and request’s method is `POST` + // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` + if ( + ([301, 302].includes(actualResponse.status) && request.method === 'POST') || + (actualResponse.status === 303 && + !GET_OR_HEAD.includes(request.method)) + ) { + // then: + // 1. Set request’s method to `GET` and request’s body to null. + request.method = 'GET' + request.body = null + + // 2. For each headerName of request-body-header name, delete headerName from + // request’s header list. + for (const headerName of requestBodyHeader) { + request.headersList.delete(headerName) + } + } + + // 13. If request’s current URL’s origin is not same origin with locationURL’s + // origin, then for each headerName of CORS non-wildcard request-header name, + // delete headerName from request’s header list. + if (!sameOrigin(requestCurrentURL(request), locationURL)) { + // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name + request.headersList.delete('authorization', true) + + // https://fetch.spec.whatwg.org/#authentication-entries + request.headersList.delete('proxy-authorization', true) + + // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. + request.headersList.delete('cookie', true) + request.headersList.delete('host', true) + } + + // 14. If request’s body is non-null, then set request’s body to the first return + // value of safely extracting request’s body’s source. + if (request.body != null) { + assert(request.body.source != null) + request.body = safelyExtractBody(request.body.source)[0] + } + + // 15. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 16. Set timingInfo’s redirect end time and post-redirect start time to the + // coarsened shared current time given fetchParams’s cross-origin isolated + // capability. + timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = + coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + + // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s + // redirect start time to timingInfo’s start time. + if (timingInfo.redirectStartTime === 0) { + timingInfo.redirectStartTime = timingInfo.startTime + } + + // 18. Append locationURL to request’s URL list. + request.urlList.push(locationURL) + + // 19. Invoke set request’s referrer policy on redirect on request and + // actualResponse. + setRequestReferrerPolicyOnRedirect(request, actualResponse) + + // 20. Return the result of running main fetch given fetchParams and true. + return mainFetch(fetchParams, true) +} + +// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch +async function httpNetworkOrCacheFetch ( + fetchParams, + isAuthenticationFetch = false, + isNewConnectionFetch = false +) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let httpFetchParams be null. + let httpFetchParams = null + + // 3. Let httpRequest be null. + let httpRequest = null + + // 4. Let response be null. + let response = null + + // 5. Let storedResponse be null. + // TODO: cache + + // 6. Let httpCache be null. + const httpCache = null + + // 7. Let the revalidatingFlag be unset. + const revalidatingFlag = false + + // 8. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If request’s window is "no-window" and request’s redirect mode is + // "error", then set httpFetchParams to fetchParams and httpRequest to + // request. + if (request.window === 'no-window' && request.redirect === 'error') { + httpFetchParams = fetchParams + httpRequest = request + } else { + // Otherwise: + + // 1. Set httpRequest to a clone of request. + httpRequest = cloneRequest(request) + + // 2. Set httpFetchParams to a copy of fetchParams. + httpFetchParams = { ...fetchParams } + + // 3. Set httpFetchParams’s request to httpRequest. + httpFetchParams.request = httpRequest + } + + // 3. Let includeCredentials be true if one of + const includeCredentials = + request.credentials === 'include' || + (request.credentials === 'same-origin' && + request.responseTainting === 'basic') + + // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s + // body is non-null; otherwise null. + const contentLength = httpRequest.body ? httpRequest.body.length : null + + // 5. Let contentLengthHeaderValue be null. + let contentLengthHeaderValue = null + + // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or + // `PUT`, then set contentLengthHeaderValue to `0`. + if ( + httpRequest.body == null && + ['POST', 'PUT'].includes(httpRequest.method) + ) { + contentLengthHeaderValue = '0' + } + + // 7. If contentLength is non-null, then set contentLengthHeaderValue to + // contentLength, serialized and isomorphic encoded. + if (contentLength != null) { + contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) + } + + // 8. If contentLengthHeaderValue is non-null, then append + // `Content-Length`/contentLengthHeaderValue to httpRequest’s header + // list. + if (contentLengthHeaderValue != null) { + httpRequest.headersList.append('content-length', contentLengthHeaderValue, true) + } + + // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, + // contentLengthHeaderValue) to httpRequest’s header list. + + // 10. If contentLength is non-null and httpRequest’s keepalive is true, + // then: + if (contentLength != null && httpRequest.keepalive) { + // NOTE: keepalive is a noop outside of browser context. + } + + // 11. If httpRequest’s referrer is a URL, then append + // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, + // to httpRequest’s header list. + if (httpRequest.referrer instanceof URL) { + httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href), true) + } + + // 12. Append a request `Origin` header for httpRequest. + appendRequestOriginHeader(httpRequest) + + // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] + appendFetchMetadata(httpRequest) + + // 14. If httpRequest’s header list does not contain `User-Agent`, then + // user agents should append `User-Agent`/default `User-Agent` value to + // httpRequest’s header list. + if (!httpRequest.headersList.contains('user-agent', true)) { + httpRequest.headersList.append('user-agent', defaultUserAgent) + } + + // 15. If httpRequest’s cache mode is "default" and httpRequest’s header + // list contains `If-Modified-Since`, `If-None-Match`, + // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set + // httpRequest’s cache mode to "no-store". + if ( + httpRequest.cache === 'default' && + (httpRequest.headersList.contains('if-modified-since', true) || + httpRequest.headersList.contains('if-none-match', true) || + httpRequest.headersList.contains('if-unmodified-since', true) || + httpRequest.headersList.contains('if-match', true) || + httpRequest.headersList.contains('if-range', true)) + ) { + httpRequest.cache = 'no-store' + } + + // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent + // no-cache cache-control header modification flag is unset, and + // httpRequest’s header list does not contain `Cache-Control`, then append + // `Cache-Control`/`max-age=0` to httpRequest’s header list. + if ( + httpRequest.cache === 'no-cache' && + !httpRequest.preventNoCacheCacheControlHeaderModification && + !httpRequest.headersList.contains('cache-control', true) + ) { + httpRequest.headersList.append('cache-control', 'max-age=0', true) + } + + // 17. If httpRequest’s cache mode is "no-store" or "reload", then: + if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') { + // 1. If httpRequest’s header list does not contain `Pragma`, then append + // `Pragma`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('pragma', true)) { + httpRequest.headersList.append('pragma', 'no-cache', true) + } + + // 2. If httpRequest’s header list does not contain `Cache-Control`, + // then append `Cache-Control`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('cache-control', true)) { + httpRequest.headersList.append('cache-control', 'no-cache', true) + } + } + + // 18. If httpRequest’s header list contains `Range`, then append + // `Accept-Encoding`/`identity` to httpRequest’s header list. + if (httpRequest.headersList.contains('range', true)) { + httpRequest.headersList.append('accept-encoding', 'identity', true) + } + + // 19. Modify httpRequest’s header list per HTTP. Do not append a given + // header if httpRequest’s header list contains that header’s name. + // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 + if (!httpRequest.headersList.contains('accept-encoding', true)) { + if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { + httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate', true) + } else { + httpRequest.headersList.append('accept-encoding', 'gzip, deflate', true) + } + } + + httpRequest.headersList.delete('host', true) + + // 20. If includeCredentials is true, then: + if (includeCredentials) { + // 1. If the user agent is not configured to block cookies for httpRequest + // (see section 7 of [COOKIES]), then: + // TODO: credentials + // 2. If httpRequest’s header list does not contain `Authorization`, then: + // TODO: credentials + } + + // 21. If there’s a proxy-authentication entry, use it as appropriate. + // TODO: proxy-authentication + + // 22. Set httpCache to the result of determining the HTTP cache + // partition, given httpRequest. + // TODO: cache + + // 23. If httpCache is null, then set httpRequest’s cache mode to + // "no-store". + if (httpCache == null) { + httpRequest.cache = 'no-store' + } + + // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", + // then: + if (httpRequest.cache !== 'no-store' && httpRequest.cache !== 'reload') { + // TODO: cache + } + + // 9. If aborted, then return the appropriate network error for fetchParams. + // TODO + + // 10. If response is null, then: + if (response == null) { + // 1. If httpRequest’s cache mode is "only-if-cached", then return a + // network error. + if (httpRequest.cache === 'only-if-cached') { + return makeNetworkError('only if cached') + } + + // 2. Let forwardResponse be the result of running HTTP-network fetch + // given httpFetchParams, includeCredentials, and isNewConnectionFetch. + const forwardResponse = await httpNetworkFetch( + httpFetchParams, + includeCredentials, + isNewConnectionFetch + ) + + // 3. If httpRequest’s method is unsafe and forwardResponse’s status is + // in the range 200 to 399, inclusive, invalidate appropriate stored + // responses in httpCache, as per the "Invalidation" chapter of HTTP + // Caching, and set storedResponse to null. [HTTP-CACHING] + if ( + !safeMethodsSet.has(httpRequest.method) && + forwardResponse.status >= 200 && + forwardResponse.status <= 399 + ) { + // TODO: cache + } + + // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, + // then: + if (revalidatingFlag && forwardResponse.status === 304) { + // TODO: cache + } + + // 5. If response is null, then: + if (response == null) { + // 1. Set response to forwardResponse. + response = forwardResponse + + // 2. Store httpRequest and forwardResponse in httpCache, as per the + // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] + // TODO: cache + } + } + + // 11. Set response’s URL list to a clone of httpRequest’s URL list. + response.urlList = [...httpRequest.urlList] + + // 12. If httpRequest’s header list contains `Range`, then set response’s + // range-requested flag. + if (httpRequest.headersList.contains('range', true)) { + response.rangeRequested = true + } + + // 13. Set response’s request-includes-credentials to includeCredentials. + response.requestIncludesCredentials = includeCredentials + + // 14. If response’s status is 401, httpRequest’s response tainting is not + // "cors", includeCredentials is true, and request’s window is an environment + // settings object, then: + // TODO + + // 15. If response’s status is 407, then: + if (response.status === 407) { + // 1. If request’s window is "no-window", then return a network error. + if (request.window === 'no-window') { + return makeNetworkError() + } + + // 2. ??? + + // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 4. Prompt the end user as appropriate in request’s window and store + // the result as a proxy-authentication entry. [HTTP-AUTH] + // TODO: Invoke some kind of callback? + + // 5. Set response to the result of running HTTP-network-or-cache fetch given + // fetchParams. + // TODO + return makeNetworkError('proxy authentication required') + } + + // 16. If all of the following are true + if ( + // response’s status is 421 + response.status === 421 && + // isNewConnectionFetch is false + !isNewConnectionFetch && + // request’s body is null, or request’s body is non-null and request’s body’s source is non-null + (request.body == null || request.body.source != null) + ) { + // then: + + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 2. Set response to the result of running HTTP-network-or-cache + // fetch given fetchParams, isAuthenticationFetch, and true. + + // TODO (spec): The spec doesn't specify this but we need to cancel + // the active response before we can start a new one. + // https://github.com/whatwg/fetch/issues/1293 + fetchParams.controller.connection.destroy() + + response = await httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch, + true + ) + } + + // 17. If isAuthenticationFetch is true, then create an authentication entry + if (isAuthenticationFetch) { + // TODO + } + + // 18. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-network-fetch +async function httpNetworkFetch ( + fetchParams, + includeCredentials = false, + forceNewConnection = false +) { + assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed) + + fetchParams.controller.connection = { + abort: null, + destroyed: false, + destroy (err, abort = true) { + if (!this.destroyed) { + this.destroyed = true + if (abort) { + this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError')) + } + } + } + } + + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 4. Let httpCache be the result of determining the HTTP cache partition, + // given request. + // TODO: cache + const httpCache = null + + // 5. If httpCache is null, then set request’s cache mode to "no-store". + if (httpCache == null) { + request.cache = 'no-store' + } + + // 6. Let networkPartitionKey be the result of determining the network + // partition key given request. + // TODO + + // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise + // "no". + const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars + + // 8. Switch on request’s mode: + if (request.mode === 'websocket') { + // Let connection be the result of obtaining a WebSocket connection, + // given request’s current URL. + // TODO + } else { + // Let connection be the result of obtaining a connection, given + // networkPartitionKey, request’s current URL’s origin, + // includeCredentials, and forceNewConnection. + // TODO + } + + // 9. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If connection is failure, then return a network error. + + // 2. Set timingInfo’s final connection timing info to the result of + // calling clamp and coarsen connection timing info with connection’s + // timing info, timingInfo’s post-redirect start time, and fetchParams’s + // cross-origin isolated capability. + + // 3. If connection is not an HTTP/2 connection, request’s body is non-null, + // and request’s body’s source is null, then append (`Transfer-Encoding`, + // `chunked`) to request’s header list. + + // 4. Set timingInfo’s final network-request start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated + // capability. + + // 5. Set response to the result of making an HTTP request over connection + // using request with the following caveats: + + // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] + // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] + + // - If request’s body is non-null, and request’s body’s source is null, + // then the user agent may have a buffer of up to 64 kibibytes and store + // a part of request’s body in that buffer. If the user agent reads from + // request’s body beyond that buffer’s size and the user agent needs to + // resend request, then instead return a network error. + + // - Set timingInfo’s final network-response start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated capability, + // immediately after the user agent’s HTTP parser receives the first byte + // of the response (e.g., frame header bytes for HTTP/2 or response status + // line for HTTP/1.x). + + // - Wait until all the headers are transmitted. + + // - Any responses whose status is in the range 100 to 199, inclusive, + // and is not 101, are to be ignored, except for the purposes of setting + // timingInfo’s final network-response start time above. + + // - If request’s header list contains `Transfer-Encoding`/`chunked` and + // response is transferred via HTTP/1.0 or older, then return a network + // error. + + // - If the HTTP request results in a TLS client certificate dialog, then: + + // 1. If request’s window is an environment settings object, make the + // dialog available in request’s window. + + // 2. Otherwise, return a network error. + + // To transmit request’s body body, run these steps: + let requestBody = null + // 1. If body is null and fetchParams’s process request end-of-body is + // non-null, then queue a fetch task given fetchParams’s process request + // end-of-body and fetchParams’s task destination. + if (request.body == null && fetchParams.processRequestEndOfBody) { + queueMicrotask(() => fetchParams.processRequestEndOfBody()) + } else if (request.body != null) { + // 2. Otherwise, if body is non-null: + + // 1. Let processBodyChunk given bytes be these steps: + const processBodyChunk = async function * (bytes) { + // 1. If the ongoing fetch is terminated, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. Run this step in parallel: transmit bytes. + yield bytes + + // 3. If fetchParams’s process request body is non-null, then run + // fetchParams’s process request body given bytes’s length. + fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) + } + + // 2. Let processEndOfBody be these steps: + const processEndOfBody = () => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If fetchParams’s process request end-of-body is non-null, + // then run fetchParams’s process request end-of-body. + if (fetchParams.processRequestEndOfBody) { + fetchParams.processRequestEndOfBody() + } + } + + // 3. Let processBodyError given e be these steps: + const processBodyError = (e) => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. + if (e.name === 'AbortError') { + fetchParams.controller.abort() + } else { + fetchParams.controller.terminate(e) + } + } + + // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, + // processBodyError, and fetchParams’s task destination. + requestBody = (async function * () { + try { + for await (const bytes of request.body.stream) { + yield * processBodyChunk(bytes) + } + processEndOfBody() + } catch (err) { + processBodyError(err) + } + })() + } + + try { + // socket is only provided for websockets + const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }) + + if (socket) { + response = makeResponse({ status, statusText, headersList, socket }) + } else { + const iterator = body[Symbol.asyncIterator]() + fetchParams.controller.next = () => iterator.next() + + response = makeResponse({ status, statusText, headersList }) + } + } catch (err) { + // 10. If aborted, then: + if (err.name === 'AbortError') { + // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. + fetchParams.controller.connection.destroy() + + // 2. Return the appropriate network error for fetchParams. + return makeAppropriateNetworkError(fetchParams, err) + } + + return makeNetworkError(err) + } + + // 11. Let pullAlgorithm be an action that resumes the ongoing fetch + // if it is suspended. + const pullAlgorithm = async () => { + await fetchParams.controller.resume() + } + + // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s + // controller with reason, given reason. + const cancelAlgorithm = (reason) => { + // If the aborted fetch was already terminated, then we do not + // need to do anything. + if (!isCancelled(fetchParams)) { + fetchParams.controller.abort(reason) + } + } + + // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by + // the user agent. + // TODO + + // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object + // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. + // TODO + + // 15. Let stream be a new ReadableStream. + // 16. Set up stream with byte reading support with pullAlgorithm set to pullAlgorithm, + // cancelAlgorithm set to cancelAlgorithm. + const stream = new ReadableStream( + { + async start (controller) { + fetchParams.controller.controller = controller + }, + async pull (controller) { + await pullAlgorithm(controller) + }, + async cancel (reason) { + await cancelAlgorithm(reason) + }, + type: 'bytes' + } + ) + + // 17. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. Set response’s body to a new body whose stream is stream. + response.body = { stream, source: null, length: null } + + // 2. If response is not a network error and request’s cache mode is + // not "no-store", then update response in httpCache for request. + // TODO + + // 3. If includeCredentials is true and the user agent is not configured + // to block cookies for request (see section 7 of [COOKIES]), then run the + // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on + // the value of each header whose name is a byte-case-insensitive match for + // `Set-Cookie` in response’s header list, if any, and request’s current URL. + // TODO + + // 18. If aborted, then: + // TODO + + // 19. Run these steps in parallel: + + // 1. Run these steps, but abort when fetchParams is canceled: + fetchParams.controller.onAborted = onAborted + fetchParams.controller.on('terminated', onAborted) + fetchParams.controller.resume = async () => { + // 1. While true + while (true) { + // 1-3. See onData... + + // 4. Set bytes to the result of handling content codings given + // codings and bytes. + let bytes + let isFailure + try { + const { done, value } = await fetchParams.controller.next() + + if (isAborted(fetchParams)) { + break + } + + bytes = done ? undefined : value + } catch (err) { + if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { + // zlib doesn't like empty streams. + bytes = undefined + } else { + bytes = err + + // err may be propagated from the result of calling readablestream.cancel, + // which might not be an error. https://github.com/nodejs/undici/issues/2009 + isFailure = true + } + } + + if (bytes === undefined) { + // 2. Otherwise, if the bytes transmission for response’s message + // body is done normally and stream is readable, then close + // stream, finalize response for fetchParams and response, and + // abort these in-parallel steps. + readableStreamClose(fetchParams.controller.controller) + + finalizeResponse(fetchParams, response) + + return + } + + // 5. Increase timingInfo’s decoded body size by bytes’s length. + timingInfo.decodedBodySize += bytes?.byteLength ?? 0 + + // 6. If bytes is failure, then terminate fetchParams’s controller. + if (isFailure) { + fetchParams.controller.terminate(bytes) + return + } + + // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes + // into stream. + const buffer = new Uint8Array(bytes) + if (buffer.byteLength) { + fetchParams.controller.controller.enqueue(buffer) + } + + // 8. If stream is errored, then terminate the ongoing fetch. + if (isErrored(stream)) { + fetchParams.controller.terminate() + return + } + + // 9. If stream doesn’t need more data ask the user agent to suspend + // the ongoing fetch. + if (fetchParams.controller.controller.desiredSize <= 0) { + return + } + } + } + + // 2. If aborted, then: + function onAborted (reason) { + // 2. If fetchParams is aborted, then: + if (isAborted(fetchParams)) { + // 1. Set response’s aborted flag. + response.aborted = true + + // 2. If stream is readable, then error stream with the result of + // deserialize a serialized abort reason given fetchParams’s + // controller’s serialized abort reason and an + // implementation-defined realm. + if (isReadable(stream)) { + fetchParams.controller.controller.error( + fetchParams.controller.serializedAbortReason + ) + } + } else { + // 3. Otherwise, if stream is readable, error stream with a TypeError. + if (isReadable(stream)) { + fetchParams.controller.controller.error(new TypeError('terminated', { + cause: isErrorLike(reason) ? reason : undefined + })) + } + } + + // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. + // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. + fetchParams.controller.connection.destroy() + } + + // 20. Return response. + return response + + function dispatch ({ body }) { + const url = requestCurrentURL(request) + /** @type {import('../..').Agent} */ + const agent = fetchParams.controller.dispatcher + + return new Promise((resolve, reject) => agent.dispatch( + { + path: url.pathname + url.search, + origin: url.origin, + method: request.method, + body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body, + headers: request.headersList.entries, + maxRedirections: 0, + upgrade: request.mode === 'websocket' ? 'websocket' : undefined + }, + { + body: null, + abort: null, + + onConnect (abort) { + // TODO (fix): Do we need connection here? + const { connection } = fetchParams.controller + + // Set timingInfo’s final connection timing info to the result of calling clamp and coarsen + // connection timing info with connection’s timing info, timingInfo’s post-redirect start + // time, and fetchParams’s cross-origin isolated capability. + // TODO: implement connection timing + timingInfo.finalConnectionTimingInfo = clampAndCoarsenConnectionTimingInfo(undefined, timingInfo.postRedirectStartTime, fetchParams.crossOriginIsolatedCapability) + + if (connection.destroyed) { + abort(new DOMException('The operation was aborted.', 'AbortError')) + } else { + fetchParams.controller.on('terminated', abort) + this.abort = connection.abort = abort + } + + // Set timingInfo’s final network-request start time to the coarsened shared current time given + // fetchParams’s cross-origin isolated capability. + timingInfo.finalNetworkRequestStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + }, + + onResponseStarted () { + // Set timingInfo’s final network-response start time to the coarsened shared current + // time given fetchParams’s cross-origin isolated capability, immediately after the + // user agent’s HTTP parser receives the first byte of the response (e.g., frame header + // bytes for HTTP/2 or response status line for HTTP/1.x). + timingInfo.finalNetworkResponseStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + }, + + onHeaders (status, rawHeaders, resume, statusText) { + if (status < 200) { + return + } + + let location = '' + + const headersList = new HeadersList() + + for (let i = 0; i < rawHeaders.length; i += 2) { + headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString('latin1'), true) + } + location = headersList.get('location', true) + + this.body = new Readable({ read: resume }) + + const decoders = [] + + const willFollow = location && request.redirect === 'follow' && + redirectStatusSet.has(status) + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding + if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + const contentEncoding = headersList.get('content-encoding', true) + // "All content-coding values are case-insensitive..." + /** @type {string[]} */ + const codings = contentEncoding ? contentEncoding.toLowerCase().split(',') : [] + + // Limit the number of content-encodings to prevent resource exhaustion. + // CVE fix similar to urllib3 (GHSA-gm62-xv2j-4w53) and curl (CVE-2022-32206). + const maxContentEncodings = 5 + if (codings.length > maxContentEncodings) { + reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`)) + return true + } + + for (let i = codings.length - 1; i >= 0; --i) { + const coding = codings[i].trim() + // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 + if (coding === 'x-gzip' || coding === 'gzip') { + decoders.push(zlib.createGunzip({ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + })) + } else if (coding === 'deflate') { + decoders.push(createInflate({ + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + })) + } else if (coding === 'br') { + decoders.push(zlib.createBrotliDecompress({ + flush: zlib.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH + })) + } else { + decoders.length = 0 + break + } + } + } + + const onError = this.onError.bind(this) + + resolve({ + status, + statusText, + headersList, + body: decoders.length + ? pipeline(this.body, ...decoders, (err) => { + if (err) { + this.onError(err) + } + }).on('error', onError) + : this.body.on('error', onError) + }) + + return true + }, + + onData (chunk) { + if (fetchParams.controller.dump) { + return + } + + // 1. If one or more bytes have been transmitted from response’s + // message body, then: + + // 1. Let bytes be the transmitted bytes. + const bytes = chunk + + // 2. Let codings be the result of extracting header list values + // given `Content-Encoding` and response’s header list. + // See pullAlgorithm. + + // 3. Increase timingInfo’s encoded body size by bytes’s length. + timingInfo.encodedBodySize += bytes.byteLength + + // 4. See pullAlgorithm... + + return this.body.push(bytes) + }, + + onComplete () { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + if (fetchParams.controller.onAborted) { + fetchParams.controller.off('terminated', fetchParams.controller.onAborted) + } + + fetchParams.controller.ended = true + + this.body.push(null) + }, + + onError (error) { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + this.body?.destroy(error) + + fetchParams.controller.terminate(error) + + reject(error) + }, + + onUpgrade (status, rawHeaders, socket) { + if (status !== 101) { + return + } + + const headersList = new HeadersList() + + for (let i = 0; i < rawHeaders.length; i += 2) { + headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString('latin1'), true) + } + + resolve({ + status, + statusText: STATUS_CODES[status], + headersList, + socket + }) + + return true + } + } + )) + } +} + +module.exports = { + fetch, + Fetch, + fetching, + finalizeAndReportTiming +} + + +/***/ }), + +/***/ 9967: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/* globals AbortController */ + + + +const { extractBody, mixinBody, cloneBody, bodyUnusable } = __nccwpck_require__(4492) +const { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = __nccwpck_require__(660) +const { FinalizationRegistry } = __nccwpck_require__(6653)() +const util = __nccwpck_require__(3440) +const nodeUtil = __nccwpck_require__(7975) +const { + isValidHTTPToken, + sameOrigin, + environmentSettingsObject +} = __nccwpck_require__(3168) +const { + forbiddenMethodsSet, + corsSafeListedMethodsSet, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + requestDuplex +} = __nccwpck_require__(4495) +const { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util +const { kHeaders, kSignal, kState, kDispatcher } = __nccwpck_require__(3627) +const { webidl } = __nccwpck_require__(5893) +const { URLSerializer } = __nccwpck_require__(1900) +const { kConstruct } = __nccwpck_require__(6443) +const assert = __nccwpck_require__(4589) +const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __nccwpck_require__(8474) + +const kAbortController = Symbol('abortController') + +const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { + signal.removeEventListener('abort', abort) +}) + +const dependentControllerMap = new WeakMap() + +function buildAbort (acRef) { + return abort + + function abort () { + const ac = acRef.deref() + if (ac !== undefined) { + // Currently, there is a problem with FinalizationRegistry. + // https://github.com/nodejs/node/issues/49344 + // https://github.com/nodejs/node/issues/47748 + // In the case of abort, the first step is to unregister from it. + // If the controller can refer to it, it is still registered. + // It will be removed in the future. + requestFinalizer.unregister(abort) + + // Unsubscribe a listener. + // FinalizationRegistry will no longer be called, so this must be done. + this.removeEventListener('abort', abort) + + ac.abort(this.reason) + + const controllerList = dependentControllerMap.get(ac.signal) + + if (controllerList !== undefined) { + if (controllerList.size !== 0) { + for (const ref of controllerList) { + const ctrl = ref.deref() + if (ctrl !== undefined) { + ctrl.abort(this.reason) + } + } + controllerList.clear() + } + dependentControllerMap.delete(ac.signal) + } + } + } +} + +let patchMethodWarning = false + +// https://fetch.spec.whatwg.org/#request-class +class Request { + // https://fetch.spec.whatwg.org/#dom-request + constructor (input, init = {}) { + webidl.util.markAsUncloneable(this) + if (input === kConstruct) { + return + } + + const prefix = 'Request constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + input = webidl.converters.RequestInfo(input, prefix, 'input') + init = webidl.converters.RequestInit(init, prefix, 'init') + + // 1. Let request be null. + let request = null + + // 2. Let fallbackMode be null. + let fallbackMode = null + + // 3. Let baseURL be this’s relevant settings object’s API base URL. + const baseUrl = environmentSettingsObject.settingsObject.baseUrl + + // 4. Let signal be null. + let signal = null + + // 5. If input is a string, then: + if (typeof input === 'string') { + this[kDispatcher] = init.dispatcher + + // 1. Let parsedURL be the result of parsing input with baseURL. + // 2. If parsedURL is failure, then throw a TypeError. + let parsedURL + try { + parsedURL = new URL(input, baseUrl) + } catch (err) { + throw new TypeError('Failed to parse URL from ' + input, { cause: err }) + } + + // 3. If parsedURL includes credentials, then throw a TypeError. + if (parsedURL.username || parsedURL.password) { + throw new TypeError( + 'Request cannot be constructed from a URL that includes credentials: ' + + input + ) + } + + // 4. Set request to a new request whose URL is parsedURL. + request = makeRequest({ urlList: [parsedURL] }) + + // 5. Set fallbackMode to "cors". + fallbackMode = 'cors' + } else { + this[kDispatcher] = init.dispatcher || input[kDispatcher] + + // 6. Otherwise: + + // 7. Assert: input is a Request object. + assert(input instanceof Request) + + // 8. Set request to input’s request. + request = input[kState] + + // 9. Set signal to input’s signal. + signal = input[kSignal] + } + + // 7. Let origin be this’s relevant settings object’s origin. + const origin = environmentSettingsObject.settingsObject.origin + + // 8. Let window be "client". + let window = 'client' + + // 9. If request’s window is an environment settings object and its origin + // is same origin with origin, then set window to request’s window. + if ( + request.window?.constructor?.name === 'EnvironmentSettingsObject' && + sameOrigin(request.window, origin) + ) { + window = request.window + } + + // 10. If init["window"] exists and is non-null, then throw a TypeError. + if (init.window != null) { + throw new TypeError(`'window' option '${window}' must be null`) + } + + // 11. If init["window"] exists, then set window to "no-window". + if ('window' in init) { + window = 'no-window' + } + + // 12. Set request to a new request with the following properties: + request = makeRequest({ + // URL request’s URL. + // undici implementation note: this is set as the first item in request's urlList in makeRequest + // method request’s method. + method: request.method, + // header list A copy of request’s header list. + // undici implementation note: headersList is cloned in makeRequest + headersList: request.headersList, + // unsafe-request flag Set. + unsafeRequest: request.unsafeRequest, + // client This’s relevant settings object. + client: environmentSettingsObject.settingsObject, + // window window. + window, + // priority request’s priority. + priority: request.priority, + // origin request’s origin. The propagation of the origin is only significant for navigation requests + // being handled by a service worker. In this scenario a request can have an origin that is different + // from the current client. + origin: request.origin, + // referrer request’s referrer. + referrer: request.referrer, + // referrer policy request’s referrer policy. + referrerPolicy: request.referrerPolicy, + // mode request’s mode. + mode: request.mode, + // credentials mode request’s credentials mode. + credentials: request.credentials, + // cache mode request’s cache mode. + cache: request.cache, + // redirect mode request’s redirect mode. + redirect: request.redirect, + // integrity metadata request’s integrity metadata. + integrity: request.integrity, + // keepalive request’s keepalive. + keepalive: request.keepalive, + // reload-navigation flag request’s reload-navigation flag. + reloadNavigation: request.reloadNavigation, + // history-navigation flag request’s history-navigation flag. + historyNavigation: request.historyNavigation, + // URL list A clone of request’s URL list. + urlList: [...request.urlList] + }) + + const initHasKey = Object.keys(init).length !== 0 + + // 13. If init is not empty, then: + if (initHasKey) { + // 1. If request’s mode is "navigate", then set it to "same-origin". + if (request.mode === 'navigate') { + request.mode = 'same-origin' + } + + // 2. Unset request’s reload-navigation flag. + request.reloadNavigation = false + + // 3. Unset request’s history-navigation flag. + request.historyNavigation = false + + // 4. Set request’s origin to "client". + request.origin = 'client' + + // 5. Set request’s referrer to "client" + request.referrer = 'client' + + // 6. Set request’s referrer policy to the empty string. + request.referrerPolicy = '' + + // 7. Set request’s URL to request’s current URL. + request.url = request.urlList[request.urlList.length - 1] + + // 8. Set request’s URL list to « request’s URL ». + request.urlList = [request.url] + } + + // 14. If init["referrer"] exists, then: + if (init.referrer !== undefined) { + // 1. Let referrer be init["referrer"]. + const referrer = init.referrer + + // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". + if (referrer === '') { + request.referrer = 'no-referrer' + } else { + // 1. Let parsedReferrer be the result of parsing referrer with + // baseURL. + // 2. If parsedReferrer is failure, then throw a TypeError. + let parsedReferrer + try { + parsedReferrer = new URL(referrer, baseUrl) + } catch (err) { + throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }) + } + + // 3. If one of the following is true + // - parsedReferrer’s scheme is "about" and path is the string "client" + // - parsedReferrer’s origin is not same origin with origin + // then set request’s referrer to "client". + if ( + (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') || + (origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) + ) { + request.referrer = 'client' + } else { + // 4. Otherwise, set request’s referrer to parsedReferrer. + request.referrer = parsedReferrer + } + } + } + + // 15. If init["referrerPolicy"] exists, then set request’s referrer policy + // to it. + if (init.referrerPolicy !== undefined) { + request.referrerPolicy = init.referrerPolicy + } + + // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. + let mode + if (init.mode !== undefined) { + mode = init.mode + } else { + mode = fallbackMode + } + + // 17. If mode is "navigate", then throw a TypeError. + if (mode === 'navigate') { + throw webidl.errors.exception({ + header: 'Request constructor', + message: 'invalid request mode navigate.' + }) + } + + // 18. If mode is non-null, set request’s mode to mode. + if (mode != null) { + request.mode = mode + } + + // 19. If init["credentials"] exists, then set request’s credentials mode + // to it. + if (init.credentials !== undefined) { + request.credentials = init.credentials + } + + // 18. If init["cache"] exists, then set request’s cache mode to it. + if (init.cache !== undefined) { + request.cache = init.cache + } + + // 21. If request’s cache mode is "only-if-cached" and request’s mode is + // not "same-origin", then throw a TypeError. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + throw new TypeError( + "'only-if-cached' can be set only with 'same-origin' mode" + ) + } + + // 22. If init["redirect"] exists, then set request’s redirect mode to it. + if (init.redirect !== undefined) { + request.redirect = init.redirect + } + + // 23. If init["integrity"] exists, then set request’s integrity metadata to it. + if (init.integrity != null) { + request.integrity = String(init.integrity) + } + + // 24. If init["keepalive"] exists, then set request’s keepalive to it. + if (init.keepalive !== undefined) { + request.keepalive = Boolean(init.keepalive) + } + + // 25. If init["method"] exists, then: + if (init.method !== undefined) { + // 1. Let method be init["method"]. + let method = init.method + + const mayBeNormalized = normalizedMethodRecords[method] + + if (mayBeNormalized !== undefined) { + // Note: Bypass validation DELETE, GET, HEAD, OPTIONS, POST, PUT, PATCH and these lowercase ones + request.method = mayBeNormalized + } else { + // 2. If method is not a method or method is a forbidden method, then + // throw a TypeError. + if (!isValidHTTPToken(method)) { + throw new TypeError(`'${method}' is not a valid HTTP method.`) + } + + const upperCase = method.toUpperCase() + + if (forbiddenMethodsSet.has(upperCase)) { + throw new TypeError(`'${method}' HTTP method is unsupported.`) + } + + // 3. Normalize method. + // https://fetch.spec.whatwg.org/#concept-method-normalize + // Note: must be in uppercase + method = normalizedMethodRecordsBase[upperCase] ?? method + + // 4. Set request’s method to method. + request.method = method + } + + if (!patchMethodWarning && request.method === 'patch') { + process.emitWarning('Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.', { + code: 'UNDICI-FETCH-patch' + }) + + patchMethodWarning = true + } + } + + // 26. If init["signal"] exists, then set signal to it. + if (init.signal !== undefined) { + signal = init.signal + } + + // 27. Set this’s request to request. + this[kState] = request + + // 28. Set this’s signal to a new AbortSignal object with this’s relevant + // Realm. + // TODO: could this be simplified with AbortSignal.any + // (https://dom.spec.whatwg.org/#dom-abortsignal-any) + const ac = new AbortController() + this[kSignal] = ac.signal + + // 29. If signal is not null, then make this’s signal follow signal. + if (signal != null) { + if ( + !signal || + typeof signal.aborted !== 'boolean' || + typeof signal.addEventListener !== 'function' + ) { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal." + ) + } + + if (signal.aborted) { + ac.abort(signal.reason) + } else { + // Keep a strong ref to ac while request object + // is alive. This is needed to prevent AbortController + // from being prematurely garbage collected. + // See, https://github.com/nodejs/undici/issues/1926. + this[kAbortController] = ac + + const acRef = new WeakRef(ac) + const abort = buildAbort(acRef) + + // Third-party AbortControllers may not work with these. + // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. + try { + // If the max amount of listeners is equal to the default, increase it + // This is only available in node >= v19.9.0 + if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) { + setMaxListeners(1500, signal) + } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) { + setMaxListeners(1500, signal) + } + } catch {} + + util.addAbortListener(signal, abort) + // The third argument must be a registry key to be unregistered. + // Without it, you cannot unregister. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry + // abort is used as the unregister key. (because it is unique) + requestFinalizer.register(ac, { signal, abort }, abort) + } + } + + // 30. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is request’s header list and guard is + // "request". + this[kHeaders] = new Headers(kConstruct) + setHeadersList(this[kHeaders], request.headersList) + setHeadersGuard(this[kHeaders], 'request') + + // 31. If this’s request’s mode is "no-cors", then: + if (mode === 'no-cors') { + // 1. If this’s request’s method is not a CORS-safelisted method, + // then throw a TypeError. + if (!corsSafeListedMethodsSet.has(request.method)) { + throw new TypeError( + `'${request.method} is unsupported in no-cors mode.` + ) + } + + // 2. Set this’s headers’s guard to "request-no-cors". + setHeadersGuard(this[kHeaders], 'request-no-cors') + } + + // 32. If init is not empty, then: + if (initHasKey) { + /** @type {HeadersList} */ + const headersList = getHeadersList(this[kHeaders]) + // 1. Let headers be a copy of this’s headers and its associated header + // list. + // 2. If init["headers"] exists, then set headers to init["headers"]. + const headers = init.headers !== undefined ? init.headers : new HeadersList(headersList) + + // 3. Empty this’s headers’s header list. + headersList.clear() + + // 4. If headers is a Headers object, then for each header in its header + // list, append header’s name/header’s value to this’s headers. + if (headers instanceof HeadersList) { + for (const { name, value } of headers.rawValues()) { + headersList.append(name, value, false) + } + // Note: Copy the `set-cookie` meta-data. + headersList.cookies = headers.cookies + } else { + // 5. Otherwise, fill this’s headers with headers. + fillHeaders(this[kHeaders], headers) + } + } + + // 33. Let inputBody be input’s request’s body if input is a Request + // object; otherwise null. + const inputBody = input instanceof Request ? input[kState].body : null + + // 34. If either init["body"] exists and is non-null or inputBody is + // non-null, and request’s method is `GET` or `HEAD`, then throw a + // TypeError. + if ( + (init.body != null || inputBody != null) && + (request.method === 'GET' || request.method === 'HEAD') + ) { + throw new TypeError('Request with GET/HEAD method cannot have body.') + } + + // 35. Let initBody be null. + let initBody = null + + // 36. If init["body"] exists and is non-null, then: + if (init.body != null) { + // 1. Let Content-Type be null. + // 2. Set initBody and Content-Type to the result of extracting + // init["body"], with keepalive set to request’s keepalive. + const [extractedBody, contentType] = extractBody( + init.body, + request.keepalive + ) + initBody = extractedBody + + // 3, If Content-Type is non-null and this’s headers’s header list does + // not contain `Content-Type`, then append `Content-Type`/Content-Type to + // this’s headers. + if (contentType && !getHeadersList(this[kHeaders]).contains('content-type', true)) { + this[kHeaders].append('content-type', contentType) + } + } + + // 37. Let inputOrInitBody be initBody if it is non-null; otherwise + // inputBody. + const inputOrInitBody = initBody ?? inputBody + + // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is + // null, then: + if (inputOrInitBody != null && inputOrInitBody.source == null) { + // 1. If initBody is non-null and init["duplex"] does not exist, + // then throw a TypeError. + if (initBody != null && init.duplex == null) { + throw new TypeError('RequestInit: duplex option is required when sending a body.') + } + + // 2. If this’s request’s mode is neither "same-origin" nor "cors", + // then throw a TypeError. + if (request.mode !== 'same-origin' && request.mode !== 'cors') { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' + ) + } + + // 3. Set this’s request’s use-CORS-preflight flag. + request.useCORSPreflightFlag = true + } + + // 39. Let finalBody be inputOrInitBody. + let finalBody = inputOrInitBody + + // 40. If initBody is null and inputBody is non-null, then: + if (initBody == null && inputBody != null) { + // 1. If input is unusable, then throw a TypeError. + if (bodyUnusable(input)) { + throw new TypeError( + 'Cannot construct a Request with a Request object that has already been used.' + ) + } + + // 2. Set finalBody to the result of creating a proxy for inputBody. + // https://streams.spec.whatwg.org/#readablestream-create-a-proxy + const identityTransform = new TransformStream() + inputBody.stream.pipeThrough(identityTransform) + finalBody = { + source: inputBody.source, + length: inputBody.length, + stream: identityTransform.readable + } + } + + // 41. Set this’s request’s body to finalBody. + this[kState].body = finalBody + } + + // Returns request’s HTTP method, which is "GET" by default. + get method () { + webidl.brandCheck(this, Request) + + // The method getter steps are to return this’s request’s method. + return this[kState].method + } + + // Returns the URL of request as a string. + get url () { + webidl.brandCheck(this, Request) + + // The url getter steps are to return this’s request’s URL, serialized. + return URLSerializer(this[kState].url) + } + + // Returns a Headers object consisting of the headers associated with request. + // Note that headers added in the network layer by the user agent will not + // be accounted for in this object, e.g., the "Host" header. + get headers () { + webidl.brandCheck(this, Request) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + // Returns the kind of resource requested by request, e.g., "document" + // or "script". + get destination () { + webidl.brandCheck(this, Request) + + // The destination getter are to return this’s request’s destination. + return this[kState].destination + } + + // Returns the referrer of request. Its value can be a same-origin URL if + // explicitly set in init, the empty string to indicate no referrer, and + // "about:client" when defaulting to the global’s default. This is used + // during fetching to determine the value of the `Referer` header of the + // request being made. + get referrer () { + webidl.brandCheck(this, Request) + + // 1. If this’s request’s referrer is "no-referrer", then return the + // empty string. + if (this[kState].referrer === 'no-referrer') { + return '' + } + + // 2. If this’s request’s referrer is "client", then return + // "about:client". + if (this[kState].referrer === 'client') { + return 'about:client' + } + + // Return this’s request’s referrer, serialized. + return this[kState].referrer.toString() + } + + // Returns the referrer policy associated with request. + // This is used during fetching to compute the value of the request’s + // referrer. + get referrerPolicy () { + webidl.brandCheck(this, Request) + + // The referrerPolicy getter steps are to return this’s request’s referrer policy. + return this[kState].referrerPolicy + } + + // Returns the mode associated with request, which is a string indicating + // whether the request will use CORS, or will be restricted to same-origin + // URLs. + get mode () { + webidl.brandCheck(this, Request) + + // The mode getter steps are to return this’s request’s mode. + return this[kState].mode + } + + // Returns the credentials mode associated with request, + // which is a string indicating whether credentials will be sent with the + // request always, never, or only when sent to a same-origin URL. + get credentials () { + // The credentials getter steps are to return this’s request’s credentials mode. + return this[kState].credentials + } + + // Returns the cache mode associated with request, + // which is a string indicating how the request will + // interact with the browser’s cache when fetching. + get cache () { + webidl.brandCheck(this, Request) + + // The cache getter steps are to return this’s request’s cache mode. + return this[kState].cache + } + + // Returns the redirect mode associated with request, + // which is a string indicating how redirects for the + // request will be handled during fetching. A request + // will follow redirects by default. + get redirect () { + webidl.brandCheck(this, Request) + + // The redirect getter steps are to return this’s request’s redirect mode. + return this[kState].redirect + } + + // Returns request’s subresource integrity metadata, which is a + // cryptographic hash of the resource being fetched. Its value + // consists of multiple hashes separated by whitespace. [SRI] + get integrity () { + webidl.brandCheck(this, Request) + + // The integrity getter steps are to return this’s request’s integrity + // metadata. + return this[kState].integrity + } + + // Returns a boolean indicating whether or not request can outlive the + // global in which it was created. + get keepalive () { + webidl.brandCheck(this, Request) + + // The keepalive getter steps are to return this’s request’s keepalive. + return this[kState].keepalive + } + + // Returns a boolean indicating whether or not request is for a reload + // navigation. + get isReloadNavigation () { + webidl.brandCheck(this, Request) + + // The isReloadNavigation getter steps are to return true if this’s + // request’s reload-navigation flag is set; otherwise false. + return this[kState].reloadNavigation + } + + // Returns a boolean indicating whether or not request is for a history + // navigation (a.k.a. back-forward navigation). + get isHistoryNavigation () { + webidl.brandCheck(this, Request) + + // The isHistoryNavigation getter steps are to return true if this’s request’s + // history-navigation flag is set; otherwise false. + return this[kState].historyNavigation + } + + // Returns the signal associated with request, which is an AbortSignal + // object indicating whether or not request has been aborted, and its + // abort event handler. + get signal () { + webidl.brandCheck(this, Request) + + // The signal getter steps are to return this’s signal. + return this[kSignal] + } + + get body () { + webidl.brandCheck(this, Request) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Request) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + get duplex () { + webidl.brandCheck(this, Request) + + return 'half' + } + + // Returns a clone of request. + clone () { + webidl.brandCheck(this, Request) + + // 1. If this is unusable, then throw a TypeError. + if (bodyUnusable(this)) { + throw new TypeError('unusable') + } + + // 2. Let clonedRequest be the result of cloning this’s request. + const clonedRequest = cloneRequest(this[kState]) + + // 3. Let clonedRequestObject be the result of creating a Request object, + // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. + // 4. Make clonedRequestObject’s signal follow this’s signal. + const ac = new AbortController() + if (this.signal.aborted) { + ac.abort(this.signal.reason) + } else { + let list = dependentControllerMap.get(this.signal) + if (list === undefined) { + list = new Set() + dependentControllerMap.set(this.signal, list) + } + const acRef = new WeakRef(ac) + list.add(acRef) + util.addAbortListener( + ac.signal, + buildAbort(acRef) + ) + } + + // 4. Return clonedRequestObject. + return fromInnerRequest(clonedRequest, ac.signal, getHeadersGuard(this[kHeaders])) + } + + [nodeUtil.inspect.custom] (depth, options) { + if (options.depth === null) { + options.depth = 2 + } + + options.colors ??= true + + const properties = { + method: this.method, + url: this.url, + headers: this.headers, + destination: this.destination, + referrer: this.referrer, + referrerPolicy: this.referrerPolicy, + mode: this.mode, + credentials: this.credentials, + cache: this.cache, + redirect: this.redirect, + integrity: this.integrity, + keepalive: this.keepalive, + isReloadNavigation: this.isReloadNavigation, + isHistoryNavigation: this.isHistoryNavigation, + signal: this.signal + } + + return `Request ${nodeUtil.formatWithOptions(options, properties)}` + } +} + +mixinBody(Request) + +// https://fetch.spec.whatwg.org/#requests +function makeRequest (init) { + return { + method: init.method ?? 'GET', + localURLsOnly: init.localURLsOnly ?? false, + unsafeRequest: init.unsafeRequest ?? false, + body: init.body ?? null, + client: init.client ?? null, + reservedClient: init.reservedClient ?? null, + replacesClientId: init.replacesClientId ?? '', + window: init.window ?? 'client', + keepalive: init.keepalive ?? false, + serviceWorkers: init.serviceWorkers ?? 'all', + initiator: init.initiator ?? '', + destination: init.destination ?? '', + priority: init.priority ?? null, + origin: init.origin ?? 'client', + policyContainer: init.policyContainer ?? 'client', + referrer: init.referrer ?? 'client', + referrerPolicy: init.referrerPolicy ?? '', + mode: init.mode ?? 'no-cors', + useCORSPreflightFlag: init.useCORSPreflightFlag ?? false, + credentials: init.credentials ?? 'same-origin', + useCredentials: init.useCredentials ?? false, + cache: init.cache ?? 'default', + redirect: init.redirect ?? 'follow', + integrity: init.integrity ?? '', + cryptoGraphicsNonceMetadata: init.cryptoGraphicsNonceMetadata ?? '', + parserMetadata: init.parserMetadata ?? '', + reloadNavigation: init.reloadNavigation ?? false, + historyNavigation: init.historyNavigation ?? false, + userActivation: init.userActivation ?? false, + taintedOrigin: init.taintedOrigin ?? false, + redirectCount: init.redirectCount ?? 0, + responseTainting: init.responseTainting ?? 'basic', + preventNoCacheCacheControlHeaderModification: init.preventNoCacheCacheControlHeaderModification ?? false, + done: init.done ?? false, + timingAllowFailed: init.timingAllowFailed ?? false, + urlList: init.urlList, + url: init.urlList[0], + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList() + } +} + +// https://fetch.spec.whatwg.org/#concept-request-clone +function cloneRequest (request) { + // To clone a request request, run these steps: + + // 1. Let newRequest be a copy of request, except for its body. + const newRequest = makeRequest({ ...request, body: null }) + + // 2. If request’s body is non-null, set newRequest’s body to the + // result of cloning request’s body. + if (request.body != null) { + newRequest.body = cloneBody(newRequest, request.body) + } + + // 3. Return newRequest. + return newRequest +} + +/** + * @see https://fetch.spec.whatwg.org/#request-create + * @param {any} innerRequest + * @param {AbortSignal} signal + * @param {'request' | 'immutable' | 'request-no-cors' | 'response' | 'none'} guard + * @returns {Request} + */ +function fromInnerRequest (innerRequest, signal, guard) { + const request = new Request(kConstruct) + request[kState] = innerRequest + request[kSignal] = signal + request[kHeaders] = new Headers(kConstruct) + setHeadersList(request[kHeaders], innerRequest.headersList) + setHeadersGuard(request[kHeaders], guard) + return request +} + +Object.defineProperties(Request.prototype, { + method: kEnumerableProperty, + url: kEnumerableProperty, + headers: kEnumerableProperty, + redirect: kEnumerableProperty, + clone: kEnumerableProperty, + signal: kEnumerableProperty, + duplex: kEnumerableProperty, + destination: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + isHistoryNavigation: kEnumerableProperty, + isReloadNavigation: kEnumerableProperty, + keepalive: kEnumerableProperty, + integrity: kEnumerableProperty, + cache: kEnumerableProperty, + credentials: kEnumerableProperty, + attribute: kEnumerableProperty, + referrerPolicy: kEnumerableProperty, + referrer: kEnumerableProperty, + mode: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Request', + configurable: true + } +}) + +webidl.converters.Request = webidl.interfaceConverter( + Request +) + +// https://fetch.spec.whatwg.org/#requestinfo +webidl.converters.RequestInfo = function (V, prefix, argument) { + if (typeof V === 'string') { + return webidl.converters.USVString(V, prefix, argument) + } + + if (V instanceof Request) { + return webidl.converters.Request(V, prefix, argument) + } + + return webidl.converters.USVString(V, prefix, argument) +} + +webidl.converters.AbortSignal = webidl.interfaceConverter( + AbortSignal +) + +// https://fetch.spec.whatwg.org/#requestinit +webidl.converters.RequestInit = webidl.dictionaryConverter([ + { + key: 'method', + converter: webidl.converters.ByteString + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + }, + { + key: 'body', + converter: webidl.nullableConverter( + webidl.converters.BodyInit + ) + }, + { + key: 'referrer', + converter: webidl.converters.USVString + }, + { + key: 'referrerPolicy', + converter: webidl.converters.DOMString, + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy + allowedValues: referrerPolicy + }, + { + key: 'mode', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#concept-request-mode + allowedValues: requestMode + }, + { + key: 'credentials', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcredentials + allowedValues: requestCredentials + }, + { + key: 'cache', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcache + allowedValues: requestCache + }, + { + key: 'redirect', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestredirect + allowedValues: requestRedirect + }, + { + key: 'integrity', + converter: webidl.converters.DOMString + }, + { + key: 'keepalive', + converter: webidl.converters.boolean + }, + { + key: 'signal', + converter: webidl.nullableConverter( + (signal) => webidl.converters.AbortSignal( + signal, + 'RequestInit', + 'signal', + { strict: false } + ) + ) + }, + { + key: 'window', + converter: webidl.converters.any + }, + { + key: 'duplex', + converter: webidl.converters.DOMString, + allowedValues: requestDuplex + }, + { + key: 'dispatcher', // undici specific option + converter: webidl.converters.any + } +]) + +module.exports = { Request, makeRequest, fromInnerRequest, cloneRequest } + + +/***/ }), + +/***/ 9051: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = __nccwpck_require__(660) +const { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = __nccwpck_require__(4492) +const util = __nccwpck_require__(3440) +const nodeUtil = __nccwpck_require__(7975) +const { kEnumerableProperty } = util +const { + isValidReasonPhrase, + isCancelled, + isAborted, + isBlobLike, + serializeJavascriptValueToJSONString, + isErrorLike, + isomorphicEncode, + environmentSettingsObject: relevantRealm +} = __nccwpck_require__(3168) +const { + redirectStatusSet, + nullBodyStatus +} = __nccwpck_require__(4495) +const { kState, kHeaders } = __nccwpck_require__(3627) +const { webidl } = __nccwpck_require__(5893) +const { FormData } = __nccwpck_require__(5910) +const { URLSerializer } = __nccwpck_require__(1900) +const { kConstruct } = __nccwpck_require__(6443) +const assert = __nccwpck_require__(4589) +const { types } = __nccwpck_require__(7975) + +const textEncoder = new TextEncoder('utf-8') + +// https://fetch.spec.whatwg.org/#response-class +class Response { + // Creates network error Response. + static error () { + // The static error() method steps are to return the result of creating a + // Response object, given a new network error, "immutable", and this’s + // relevant Realm. + const responseObject = fromInnerResponse(makeNetworkError(), 'immutable') + + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response-json + static json (data, init = {}) { + webidl.argumentLengthCheck(arguments, 1, 'Response.json') + + if (init !== null) { + init = webidl.converters.ResponseInit(init) + } + + // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. + const bytes = textEncoder.encode( + serializeJavascriptValueToJSONString(data) + ) + + // 2. Let body be the result of extracting bytes. + const body = extractBody(bytes) + + // 3. Let responseObject be the result of creating a Response object, given a new response, + // "response", and this’s relevant Realm. + const responseObject = fromInnerResponse(makeResponse({}), 'response') + + // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). + initializeResponse(responseObject, init, { body: body[0], type: 'application/json' }) + + // 5. Return responseObject. + return responseObject + } + + // Creates a redirect Response that redirects to url with status status. + static redirect (url, status = 302) { + webidl.argumentLengthCheck(arguments, 1, 'Response.redirect') + + url = webidl.converters.USVString(url) + status = webidl.converters['unsigned short'](status) + + // 1. Let parsedURL be the result of parsing url with current settings + // object’s API base URL. + // 2. If parsedURL is failure, then throw a TypeError. + // TODO: base-URL? + let parsedURL + try { + parsedURL = new URL(url, relevantRealm.settingsObject.baseUrl) + } catch (err) { + throw new TypeError(`Failed to parse URL from ${url}`, { cause: err }) + } + + // 3. If status is not a redirect status, then throw a RangeError. + if (!redirectStatusSet.has(status)) { + throw new RangeError(`Invalid status code ${status}`) + } + + // 4. Let responseObject be the result of creating a Response object, + // given a new response, "immutable", and this’s relevant Realm. + const responseObject = fromInnerResponse(makeResponse({}), 'immutable') + + // 5. Set responseObject’s response’s status to status. + responseObject[kState].status = status + + // 6. Let value be parsedURL, serialized and isomorphic encoded. + const value = isomorphicEncode(URLSerializer(parsedURL)) + + // 7. Append `Location`/value to responseObject’s response’s header list. + responseObject[kState].headersList.append('location', value, true) + + // 8. Return responseObject. + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response + constructor (body = null, init = {}) { + webidl.util.markAsUncloneable(this) + if (body === kConstruct) { + return + } + + if (body !== null) { + body = webidl.converters.BodyInit(body) + } + + init = webidl.converters.ResponseInit(init) + + // 1. Set this’s response to a new response. + this[kState] = makeResponse({}) + + // 2. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is this’s response’s header list and guard + // is "response". + this[kHeaders] = new Headers(kConstruct) + setHeadersGuard(this[kHeaders], 'response') + setHeadersList(this[kHeaders], this[kState].headersList) + + // 3. Let bodyWithType be null. + let bodyWithType = null + + // 4. If body is non-null, then set bodyWithType to the result of extracting body. + if (body != null) { + const [extractedBody, type] = extractBody(body) + bodyWithType = { body: extractedBody, type } + } + + // 5. Perform initialize a response given this, init, and bodyWithType. + initializeResponse(this, init, bodyWithType) + } + + // Returns response’s type, e.g., "cors". + get type () { + webidl.brandCheck(this, Response) + + // The type getter steps are to return this’s response’s type. + return this[kState].type + } + + // Returns response’s URL, if it has one; otherwise the empty string. + get url () { + webidl.brandCheck(this, Response) + + const urlList = this[kState].urlList + + // The url getter steps are to return the empty string if this’s + // response’s URL is null; otherwise this’s response’s URL, + // serialized with exclude fragment set to true. + const url = urlList[urlList.length - 1] ?? null + + if (url === null) { + return '' + } + + return URLSerializer(url, true) + } + + // Returns whether response was obtained through a redirect. + get redirected () { + webidl.brandCheck(this, Response) + + // The redirected getter steps are to return true if this’s response’s URL + // list has more than one item; otherwise false. + return this[kState].urlList.length > 1 + } + + // Returns response’s status. + get status () { + webidl.brandCheck(this, Response) + + // The status getter steps are to return this’s response’s status. + return this[kState].status + } + + // Returns whether response’s status is an ok status. + get ok () { + webidl.brandCheck(this, Response) + + // The ok getter steps are to return true if this’s response’s status is an + // ok status; otherwise false. + return this[kState].status >= 200 && this[kState].status <= 299 + } + + // Returns response’s status message. + get statusText () { + webidl.brandCheck(this, Response) + + // The statusText getter steps are to return this’s response’s status + // message. + return this[kState].statusText + } + + // Returns response’s headers as Headers. + get headers () { + webidl.brandCheck(this, Response) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + get body () { + webidl.brandCheck(this, Response) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Response) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + // Returns a clone of response. + clone () { + webidl.brandCheck(this, Response) + + // 1. If this is unusable, then throw a TypeError. + if (bodyUnusable(this)) { + throw webidl.errors.exception({ + header: 'Response.clone', + message: 'Body has already been consumed.' + }) + } + + // 2. Let clonedResponse be the result of cloning this’s response. + const clonedResponse = cloneResponse(this[kState]) + + // Note: To re-register because of a new stream. + if (hasFinalizationRegistry && this[kState].body?.stream) { + streamRegistry.register(this, new WeakRef(this[kState].body.stream)) + } + + // 3. Return the result of creating a Response object, given + // clonedResponse, this’s headers’s guard, and this’s relevant Realm. + return fromInnerResponse(clonedResponse, getHeadersGuard(this[kHeaders])) + } + + [nodeUtil.inspect.custom] (depth, options) { + if (options.depth === null) { + options.depth = 2 + } + + options.colors ??= true + + const properties = { + status: this.status, + statusText: this.statusText, + headers: this.headers, + body: this.body, + bodyUsed: this.bodyUsed, + ok: this.ok, + redirected: this.redirected, + type: this.type, + url: this.url + } + + return `Response ${nodeUtil.formatWithOptions(options, properties)}` + } +} + +mixinBody(Response) + +Object.defineProperties(Response.prototype, { + type: kEnumerableProperty, + url: kEnumerableProperty, + status: kEnumerableProperty, + ok: kEnumerableProperty, + redirected: kEnumerableProperty, + statusText: kEnumerableProperty, + headers: kEnumerableProperty, + clone: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Response', + configurable: true + } +}) + +Object.defineProperties(Response, { + json: kEnumerableProperty, + redirect: kEnumerableProperty, + error: kEnumerableProperty +}) + +// https://fetch.spec.whatwg.org/#concept-response-clone +function cloneResponse (response) { + // To clone a response response, run these steps: + + // 1. If response is a filtered response, then return a new identical + // filtered response whose internal response is a clone of response’s + // internal response. + if (response.internalResponse) { + return filterResponse( + cloneResponse(response.internalResponse), + response.type + ) + } + + // 2. Let newResponse be a copy of response, except for its body. + const newResponse = makeResponse({ ...response, body: null }) + + // 3. If response’s body is non-null, then set newResponse’s body to the + // result of cloning response’s body. + if (response.body != null) { + newResponse.body = cloneBody(newResponse, response.body) + } + + // 4. Return newResponse. + return newResponse +} + +function makeResponse (init) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: 'default', + status: 200, + timingInfo: null, + cacheState: '', + statusText: '', + ...init, + headersList: init?.headersList + ? new HeadersList(init?.headersList) + : new HeadersList(), + urlList: init?.urlList ? [...init.urlList] : [] + } +} + +function makeNetworkError (reason) { + const isError = isErrorLike(reason) + return makeResponse({ + type: 'error', + status: 0, + error: isError + ? reason + : new Error(reason ? String(reason) : reason), + aborted: reason && reason.name === 'AbortError' + }) +} + +// @see https://fetch.spec.whatwg.org/#concept-network-error +function isNetworkError (response) { + return ( + // A network error is a response whose type is "error", + response.type === 'error' && + // status is 0 + response.status === 0 + ) +} + +function makeFilteredResponse (response, state) { + state = { + internalResponse: response, + ...state + } + + return new Proxy(response, { + get (target, p) { + return p in state ? state[p] : target[p] + }, + set (target, p, value) { + assert(!(p in state)) + target[p] = value + return true + } + }) +} + +// https://fetch.spec.whatwg.org/#concept-filtered-response +function filterResponse (response, type) { + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (type === 'basic') { + // A basic filtered response is a filtered response whose type is "basic" + // and header list excludes any headers in internal response’s header list + // whose name is a forbidden response-header name. + + // Note: undici does not implement forbidden response-header names + return makeFilteredResponse(response, { + type: 'basic', + headersList: response.headersList + }) + } else if (type === 'cors') { + // A CORS filtered response is a filtered response whose type is "cors" + // and header list excludes any headers in internal response’s header + // list whose name is not a CORS-safelisted response-header name, given + // internal response’s CORS-exposed header-name list. + + // Note: undici does not implement CORS-safelisted response-header names + return makeFilteredResponse(response, { + type: 'cors', + headersList: response.headersList + }) + } else if (type === 'opaque') { + // An opaque filtered response is a filtered response whose type is + // "opaque", URL list is the empty list, status is 0, status message + // is the empty byte sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaque', + urlList: Object.freeze([]), + status: 0, + statusText: '', + body: null + }) + } else if (type === 'opaqueredirect') { + // An opaque-redirect filtered response is a filtered response whose type + // is "opaqueredirect", status is 0, status message is the empty byte + // sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaqueredirect', + status: 0, + statusText: '', + headersList: [], + body: null + }) + } else { + assert(false) + } +} + +// https://fetch.spec.whatwg.org/#appropriate-network-error +function makeAppropriateNetworkError (fetchParams, err = null) { + // 1. Assert: fetchParams is canceled. + assert(isCancelled(fetchParams)) + + // 2. Return an aborted network error if fetchParams is aborted; + // otherwise return a network error. + return isAborted(fetchParams) + ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err })) + : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err })) +} + +// https://whatpr.org/fetch/1392.html#initialize-a-response +function initializeResponse (response, init, body) { + // 1. If init["status"] is not in the range 200 to 599, inclusive, then + // throw a RangeError. + if (init.status !== null && (init.status < 200 || init.status > 599)) { + throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.') + } + + // 2. If init["statusText"] does not match the reason-phrase token production, + // then throw a TypeError. + if ('statusText' in init && init.statusText != null) { + // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: + // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) + if (!isValidReasonPhrase(String(init.statusText))) { + throw new TypeError('Invalid statusText') + } + } + + // 3. Set response’s response’s status to init["status"]. + if ('status' in init && init.status != null) { + response[kState].status = init.status + } + + // 4. Set response’s response’s status message to init["statusText"]. + if ('statusText' in init && init.statusText != null) { + response[kState].statusText = init.statusText + } + + // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. + if ('headers' in init && init.headers != null) { + fill(response[kHeaders], init.headers) + } + + // 6. If body was given, then: + if (body) { + // 1. If response's status is a null body status, then throw a TypeError. + if (nullBodyStatus.includes(response.status)) { + throw webidl.errors.exception({ + header: 'Response constructor', + message: `Invalid response status code ${response.status}` + }) + } + + // 2. Set response's body to body's body. + response[kState].body = body.body + + // 3. If body's type is non-null and response's header list does not contain + // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. + if (body.type != null && !response[kState].headersList.contains('content-type', true)) { + response[kState].headersList.append('content-type', body.type, true) + } + } +} + +/** + * @see https://fetch.spec.whatwg.org/#response-create + * @param {any} innerResponse + * @param {'request' | 'immutable' | 'request-no-cors' | 'response' | 'none'} guard + * @returns {Response} + */ +function fromInnerResponse (innerResponse, guard) { + const response = new Response(kConstruct) + response[kState] = innerResponse + response[kHeaders] = new Headers(kConstruct) + setHeadersList(response[kHeaders], innerResponse.headersList) + setHeadersGuard(response[kHeaders], guard) + + if (hasFinalizationRegistry && innerResponse.body?.stream) { + // If the target (response) is reclaimed, the cleanup callback may be called at some point with + // the held value provided for it (innerResponse.body.stream). The held value can be any value: + // a primitive or an object, even undefined. If the held value is an object, the registry keeps + // a strong reference to it (so it can pass it to the cleanup callback later). Reworded from + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry + streamRegistry.register(response, new WeakRef(innerResponse.body.stream)) + } + + return response +} + +webidl.converters.ReadableStream = webidl.interfaceConverter( + ReadableStream +) + +webidl.converters.FormData = webidl.interfaceConverter( + FormData +) + +webidl.converters.URLSearchParams = webidl.interfaceConverter( + URLSearchParams +) + +// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit +webidl.converters.XMLHttpRequestBodyInit = function (V, prefix, name) { + if (typeof V === 'string') { + return webidl.converters.USVString(V, prefix, name) + } + + if (isBlobLike(V)) { + return webidl.converters.Blob(V, prefix, name, { strict: false }) + } + + if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { + return webidl.converters.BufferSource(V, prefix, name) + } + + if (util.isFormDataLike(V)) { + return webidl.converters.FormData(V, prefix, name, { strict: false }) + } + + if (V instanceof URLSearchParams) { + return webidl.converters.URLSearchParams(V, prefix, name) + } + + return webidl.converters.DOMString(V, prefix, name) +} + +// https://fetch.spec.whatwg.org/#bodyinit +webidl.converters.BodyInit = function (V, prefix, argument) { + if (V instanceof ReadableStream) { + return webidl.converters.ReadableStream(V, prefix, argument) + } + + // Note: the spec doesn't include async iterables, + // this is an undici extension. + if (V?.[Symbol.asyncIterator]) { + return V + } + + return webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument) +} + +webidl.converters.ResponseInit = webidl.dictionaryConverter([ + { + key: 'status', + converter: webidl.converters['unsigned short'], + defaultValue: () => 200 + }, + { + key: 'statusText', + converter: webidl.converters.ByteString, + defaultValue: () => '' + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + } +]) + +module.exports = { + isNetworkError, + makeNetworkError, + makeResponse, + makeAppropriateNetworkError, + filterResponse, + Response, + cloneResponse, + fromInnerResponse +} + + +/***/ }), + +/***/ 3627: +/***/ ((module) => { + + + +module.exports = { + kUrl: Symbol('url'), + kHeaders: Symbol('headers'), + kSignal: Symbol('signal'), + kState: Symbol('state'), + kDispatcher: Symbol('dispatcher') +} + + +/***/ }), + +/***/ 3168: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Transform } = __nccwpck_require__(7075) +const zlib = __nccwpck_require__(8522) +const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __nccwpck_require__(4495) +const { getGlobalOrigin } = __nccwpck_require__(1059) +const { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = __nccwpck_require__(1900) +const { performance } = __nccwpck_require__(643) +const { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = __nccwpck_require__(3440) +const assert = __nccwpck_require__(4589) +const { isUint8Array } = __nccwpck_require__(3429) +const { webidl } = __nccwpck_require__(5893) + +let supportedHashes = [] + +// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(7598) + const possibleRelevantHashes = ['sha256', 'sha384', 'sha512'] + supportedHashes = crypto.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)) +/* c8 ignore next 3 */ +} catch { + +} + +function responseURL (response) { + // https://fetch.spec.whatwg.org/#responses + // A response has an associated URL. It is a pointer to the last URL + // in response’s URL list and null if response’s URL list is empty. + const urlList = response.urlList + const length = urlList.length + return length === 0 ? null : urlList[length - 1].toString() +} + +// https://fetch.spec.whatwg.org/#concept-response-location-url +function responseLocationURL (response, requestFragment) { + // 1. If response’s status is not a redirect status, then return null. + if (!redirectStatusSet.has(response.status)) { + return null + } + + // 2. Let location be the result of extracting header list values given + // `Location` and response’s header list. + let location = response.headersList.get('location', true) + + // 3. If location is a header value, then set location to the result of + // parsing location with response’s URL. + if (location !== null && isValidHeaderValue(location)) { + if (!isValidEncodedURL(location)) { + // Some websites respond location header in UTF-8 form without encoding them as ASCII + // and major browsers redirect them to correctly UTF-8 encoded addresses. + // Here, we handle that behavior in the same way. + location = normalizeBinaryStringToUtf8(location) + } + location = new URL(location, responseURL(response)) + } + + // 4. If location is a URL whose fragment is null, then set location’s + // fragment to requestFragment. + if (location && !location.hash) { + location.hash = requestFragment + } + + // 5. Return location. + return location +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc1738#section-2.2 + * @param {string} url + * @returns {boolean} + */ +function isValidEncodedURL (url) { + for (let i = 0; i < url.length; ++i) { + const code = url.charCodeAt(i) + + if ( + code > 0x7E || // Non-US-ASCII + DEL + code < 0x20 // Control characters NUL - US + ) { + return false + } + } + return true +} + +/** + * If string contains non-ASCII characters, assumes it's UTF-8 encoded and decodes it. + * Since UTF-8 is a superset of ASCII, this will work for ASCII strings as well. + * @param {string} value + * @returns {string} + */ +function normalizeBinaryStringToUtf8 (value) { + return Buffer.from(value, 'binary').toString('utf8') +} + +/** @returns {URL} */ +function requestCurrentURL (request) { + return request.urlList[request.urlList.length - 1] +} + +function requestBadPort (request) { + // 1. Let url be request’s current URL. + const url = requestCurrentURL(request) + + // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, + // then return blocked. + if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { + return 'blocked' + } + + // 3. Return allowed. + return 'allowed' +} + +function isErrorLike (object) { + return object instanceof Error || ( + object?.constructor?.name === 'Error' || + object?.constructor?.name === 'DOMException' + ) +} + +// Check whether |statusText| is a ByteString and +// matches the Reason-Phrase token production. +// RFC 2616: https://tools.ietf.org/html/rfc2616 +// RFC 7230: https://tools.ietf.org/html/rfc7230 +// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" +// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 +function isValidReasonPhrase (statusText) { + for (let i = 0; i < statusText.length; ++i) { + const c = statusText.charCodeAt(i) + if ( + !( + ( + c === 0x09 || // HTAB + (c >= 0x20 && c <= 0x7e) || // SP / VCHAR + (c >= 0x80 && c <= 0xff) + ) // obs-text + ) + ) { + return false + } + } + return true +} + +/** + * @see https://fetch.spec.whatwg.org/#header-name + * @param {string} potentialValue + */ +const isValidHeaderName = isValidHTTPToken + +/** + * @see https://fetch.spec.whatwg.org/#header-value + * @param {string} potentialValue + */ +function isValidHeaderValue (potentialValue) { + // - Has no leading or trailing HTTP tab or space bytes. + // - Contains no 0x00 (NUL) or HTTP newline bytes. + return ( + potentialValue[0] === '\t' || + potentialValue[0] === ' ' || + potentialValue[potentialValue.length - 1] === '\t' || + potentialValue[potentialValue.length - 1] === ' ' || + potentialValue.includes('\n') || + potentialValue.includes('\r') || + potentialValue.includes('\0') + ) === false +} + +// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect +function setRequestReferrerPolicyOnRedirect (request, actualResponse) { + // Given a request request and a response actualResponse, this algorithm + // updates request’s referrer policy according to the Referrer-Policy + // header (if any) in actualResponse. + + // 1. Let policy be the result of executing § 8.1 Parse a referrer policy + // from a Referrer-Policy header on actualResponse. + + // 8.1 Parse a referrer policy from a Referrer-Policy header + // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. + const { headersList } = actualResponse + // 2. Let policy be the empty string. + // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. + // 4. Return policy. + const policyHeader = (headersList.get('referrer-policy', true) ?? '').split(',') + + // Note: As the referrer-policy can contain multiple policies + // separated by comma, we need to loop through all of them + // and pick the first valid one. + // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy + let policy = '' + if (policyHeader.length > 0) { + // The right-most policy takes precedence. + // The left-most policy is the fallback. + for (let i = policyHeader.length; i !== 0; i--) { + const token = policyHeader[i - 1].trim() + if (referrerPolicyTokens.has(token)) { + policy = token + break + } + } + } + + // 2. If policy is not the empty string, then set request’s referrer policy to policy. + if (policy !== '') { + request.referrerPolicy = policy + } +} + +// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check +function crossOriginResourcePolicyCheck () { + // TODO + return 'allowed' +} + +// https://fetch.spec.whatwg.org/#concept-cors-check +function corsCheck () { + // TODO + return 'success' +} + +// https://fetch.spec.whatwg.org/#concept-tao-check +function TAOCheck () { + // TODO + return 'success' +} + +function appendFetchMetadata (httpRequest) { + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header + + // 1. Assert: r’s url is a potentially trustworthy URL. + // TODO + + // 2. Let header be a Structured Header whose value is a token. + let header = null + + // 3. Set header’s value to r’s mode. + header = httpRequest.mode + + // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. + httpRequest.headersList.set('sec-fetch-mode', header, true) + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header + // TODO +} + +// https://fetch.spec.whatwg.org/#append-a-request-origin-header +function appendRequestOriginHeader (request) { + // 1. Let serializedOrigin be the result of byte-serializing a request origin + // with request. + // TODO: implement "byte-serializing a request origin" + let serializedOrigin = request.origin + + // - "'client' is changed to an origin during fetching." + // This doesn't happen in undici (in most cases) because undici, by default, + // has no concept of origin. + // - request.origin can also be set to request.client.origin (client being + // an environment settings object), which is undefined without using + // setGlobalOrigin. + if (serializedOrigin === 'client' || serializedOrigin === undefined) { + return + } + + // 2. If request’s response tainting is "cors" or request’s mode is "websocket", + // then append (`Origin`, serializedOrigin) to request’s header list. + // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: + if (request.responseTainting === 'cors' || request.mode === 'websocket') { + request.headersList.append('origin', serializedOrigin, true) + } else if (request.method !== 'GET' && request.method !== 'HEAD') { + // 1. Switch on request’s referrer policy: + switch (request.referrerPolicy) { + case 'no-referrer': + // Set serializedOrigin to `null`. + serializedOrigin = null + break + case 'no-referrer-when-downgrade': + case 'strict-origin': + case 'strict-origin-when-cross-origin': + // If request’s origin is a tuple origin, its scheme is "https", and + // request’s current URL’s scheme is not "https", then set + // serializedOrigin to `null`. + if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { + serializedOrigin = null + } + break + case 'same-origin': + // If request’s origin is not same origin with request’s current URL’s + // origin, then set serializedOrigin to `null`. + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null + } + break + default: + // Do nothing. + } + + // 2. Append (`Origin`, serializedOrigin) to request’s header list. + request.headersList.append('origin', serializedOrigin, true) + } +} + +// https://w3c.github.io/hr-time/#dfn-coarsen-time +function coarsenTime (timestamp, crossOriginIsolatedCapability) { + // TODO + return timestamp +} + +// https://fetch.spec.whatwg.org/#clamp-and-coarsen-connection-timing-info +function clampAndCoarsenConnectionTimingInfo (connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) { + if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) { + return { + domainLookupStartTime: defaultStartTime, + domainLookupEndTime: defaultStartTime, + connectionStartTime: defaultStartTime, + connectionEndTime: defaultStartTime, + secureConnectionStartTime: defaultStartTime, + ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol + } + } + + return { + domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability), + domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability), + connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability), + connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability), + secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability), + ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol + } +} + +// https://w3c.github.io/hr-time/#dfn-coarsened-shared-current-time +function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) { + return coarsenTime(performance.now(), crossOriginIsolatedCapability) +} + +// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info +function createOpaqueTimingInfo (timingInfo) { + return { + startTime: timingInfo.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: timingInfo.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#policy-container +function makePolicyContainer () { + // Note: the fetch spec doesn't make use of embedder policy or CSP list + return { + referrerPolicy: 'strict-origin-when-cross-origin' + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container +function clonePolicyContainer (policyContainer) { + return { + referrerPolicy: policyContainer.referrerPolicy + } +} + +// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer +function determineRequestsReferrer (request) { + // 1. Let policy be request's referrer policy. + const policy = request.referrerPolicy + + // Note: policy cannot (shouldn't) be null or an empty string. + assert(policy) + + // 2. Let environment be request’s client. + + let referrerSource = null + + // 3. Switch on request’s referrer: + if (request.referrer === 'client') { + // Note: node isn't a browser and doesn't implement document/iframes, + // so we bypass this step and replace it with our own. + + const globalOrigin = getGlobalOrigin() + + if (!globalOrigin || globalOrigin.origin === 'null') { + return 'no-referrer' + } + + // note: we need to clone it as it's mutated + referrerSource = new URL(globalOrigin) + } else if (request.referrer instanceof URL) { + // Let referrerSource be request’s referrer. + referrerSource = request.referrer + } + + // 4. Let request’s referrerURL be the result of stripping referrerSource for + // use as a referrer. + let referrerURL = stripURLForReferrer(referrerSource) + + // 5. Let referrerOrigin be the result of stripping referrerSource for use as + // a referrer, with the origin-only flag set to true. + const referrerOrigin = stripURLForReferrer(referrerSource, true) + + // 6. If the result of serializing referrerURL is a string whose length is + // greater than 4096, set referrerURL to referrerOrigin. + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin + } + + const areSameOrigin = sameOrigin(request, referrerURL) + const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && + !isURLPotentiallyTrustworthy(request.url) + + // 8. Execute the switch statements corresponding to the value of policy: + switch (policy) { + case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true) + case 'unsafe-url': return referrerURL + case 'same-origin': + return areSameOrigin ? referrerOrigin : 'no-referrer' + case 'origin-when-cross-origin': + return areSameOrigin ? referrerURL : referrerOrigin + case 'strict-origin-when-cross-origin': { + const currentURL = requestCurrentURL(request) + + // 1. If the origin of referrerURL and the origin of request’s current + // URL are the same, then return referrerURL. + if (sameOrigin(referrerURL, currentURL)) { + return referrerURL + } + + // 2. If referrerURL is a potentially trustworthy URL and request’s + // current URL is not a potentially trustworthy URL, then return no + // referrer. + if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { + return 'no-referrer' + } + + // 3. Return referrerOrigin. + return referrerOrigin + } + case 'strict-origin': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + case 'no-referrer-when-downgrade': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + + default: // eslint-disable-line + return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin + } +} + +/** + * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url + * @param {URL} url + * @param {boolean|undefined} originOnly + */ +function stripURLForReferrer (url, originOnly) { + // 1. Assert: url is a URL. + assert(url instanceof URL) + + url = new URL(url) + + // 2. If url’s scheme is a local scheme, then return no referrer. + if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') { + return 'no-referrer' + } + + // 3. Set url’s username to the empty string. + url.username = '' + + // 4. Set url’s password to the empty string. + url.password = '' + + // 5. Set url’s fragment to null. + url.hash = '' + + // 6. If the origin-only flag is true, then: + if (originOnly) { + // 1. Set url’s path to « the empty string ». + url.pathname = '' + + // 2. Set url’s query to null. + url.search = '' + } + + // 7. Return url. + return url +} + +function isURLPotentiallyTrustworthy (url) { + if (!(url instanceof URL)) { + return false + } + + // If child of about, return true + if (url.href === 'about:blank' || url.href === 'about:srcdoc') { + return true + } + + // If scheme is data, return true + if (url.protocol === 'data:') return true + + // If file, return true + if (url.protocol === 'file:') return true + + return isOriginPotentiallyTrustworthy(url.origin) + + function isOriginPotentiallyTrustworthy (origin) { + // If origin is explicitly null, return false + if (origin == null || origin === 'null') return false + + const originAsURL = new URL(origin) + + // If secure, return true + if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') { + return true + } + + // If localhost or variants, return true + if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || + (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) || + (originAsURL.hostname.endsWith('.localhost'))) { + return true + } + + // If any other, return false + return false + } +} + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist + * @param {Uint8Array} bytes + * @param {string} metadataList + */ +function bytesMatch (bytes, metadataList) { + // If node is not built with OpenSSL support, we cannot check + // a request's integrity, so allow it by default (the spec will + // allow requests if an invalid hash is given, as precedence). + /* istanbul ignore if: only if node is built with --without-ssl */ + if (crypto === undefined) { + return true + } + + // 1. Let parsedMetadata be the result of parsing metadataList. + const parsedMetadata = parseMetadata(metadataList) + + // 2. If parsedMetadata is no metadata, return true. + if (parsedMetadata === 'no metadata') { + return true + } + + // 3. If response is not eligible for integrity validation, return false. + // TODO + + // 4. If parsedMetadata is the empty set, return true. + if (parsedMetadata.length === 0) { + return true + } + + // 5. Let metadata be the result of getting the strongest + // metadata from parsedMetadata. + const strongest = getStrongestMetadata(parsedMetadata) + const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest) + + // 6. For each item in metadata: + for (const item of metadata) { + // 1. Let algorithm be the alg component of item. + const algorithm = item.algo + + // 2. Let expectedValue be the val component of item. + const expectedValue = item.hash + + // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e + // "be liberal with padding". This is annoying, and it's not even in the spec. + + // 3. Let actualValue be the result of applying algorithm to bytes. + let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') + + if (actualValue[actualValue.length - 1] === '=') { + if (actualValue[actualValue.length - 2] === '=') { + actualValue = actualValue.slice(0, -2) + } else { + actualValue = actualValue.slice(0, -1) + } + } + + // 4. If actualValue is a case-sensitive match for expectedValue, + // return true. + if (compareBase64Mixed(actualValue, expectedValue)) { + return true + } + } + + // 7. Return false. + return false +} + +// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options +// https://www.w3.org/TR/CSP2/#source-list-syntax +// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 +const parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata + * @param {string} metadata + */ +function parseMetadata (metadata) { + // 1. Let result be the empty set. + /** @type {{ algo: string, hash: string }[]} */ + const result = [] + + // 2. Let empty be equal to true. + let empty = true + + // 3. For each token returned by splitting metadata on spaces: + for (const token of metadata.split(' ')) { + // 1. Set empty to false. + empty = false + + // 2. Parse token as a hash-with-options. + const parsedToken = parseHashWithOptions.exec(token) + + // 3. If token does not parse, continue to the next token. + if ( + parsedToken === null || + parsedToken.groups === undefined || + parsedToken.groups.algo === undefined + ) { + // Note: Chromium blocks the request at this point, but Firefox + // gives a warning that an invalid integrity was given. The + // correct behavior is to ignore these, and subsequently not + // check the integrity of the resource. + continue + } + + // 4. Let algorithm be the hash-algo component of token. + const algorithm = parsedToken.groups.algo.toLowerCase() + + // 5. If algorithm is a hash function recognized by the user + // agent, add the parsed token to result. + if (supportedHashes.includes(algorithm)) { + result.push(parsedToken.groups) + } + } + + // 4. Return no metadata if empty is true, otherwise return result. + if (empty === true) { + return 'no metadata' + } + + return result +} + +/** + * @param {{ algo: 'sha256' | 'sha384' | 'sha512' }[]} metadataList + */ +function getStrongestMetadata (metadataList) { + // Let algorithm be the algo component of the first item in metadataList. + // Can be sha256 + let algorithm = metadataList[0].algo + // If the algorithm is sha512, then it is the strongest + // and we can return immediately + if (algorithm[3] === '5') { + return algorithm + } + + for (let i = 1; i < metadataList.length; ++i) { + const metadata = metadataList[i] + // If the algorithm is sha512, then it is the strongest + // and we can break the loop immediately + if (metadata.algo[3] === '5') { + algorithm = 'sha512' + break + // If the algorithm is sha384, then a potential sha256 or sha384 is ignored + } else if (algorithm[3] === '3') { + continue + // algorithm is sha256, check if algorithm is sha384 and if so, set it as + // the strongest + } else if (metadata.algo[3] === '3') { + algorithm = 'sha384' + } + } + return algorithm +} + +function filterMetadataListByAlgorithm (metadataList, algorithm) { + if (metadataList.length === 1) { + return metadataList + } + + let pos = 0 + for (let i = 0; i < metadataList.length; ++i) { + if (metadataList[i].algo === algorithm) { + metadataList[pos++] = metadataList[i] + } + } + + metadataList.length = pos + + return metadataList +} + +/** + * Compares two base64 strings, allowing for base64url + * in the second string. + * +* @param {string} actualValue always base64 + * @param {string} expectedValue base64 or base64url + * @returns {boolean} + */ +function compareBase64Mixed (actualValue, expectedValue) { + if (actualValue.length !== expectedValue.length) { + return false + } + for (let i = 0; i < actualValue.length; ++i) { + if (actualValue[i] !== expectedValue[i]) { + if ( + (actualValue[i] === '+' && expectedValue[i] === '-') || + (actualValue[i] === '/' && expectedValue[i] === '_') + ) { + continue + } + return false + } + } + + return true +} + +// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request +function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { + // TODO +} + +/** + * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} + * @param {URL} A + * @param {URL} B + */ +function sameOrigin (A, B) { + // 1. If A and B are the same opaque origin, then return true. + if (A.origin === B.origin && A.origin === 'null') { + return true + } + + // 2. If A and B are both tuple origins and their schemes, + // hosts, and port are identical, then return true. + if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { + return true + } + + // 3. Return false. + return false +} + +function createDeferredPromise () { + let res + let rej + const promise = new Promise((resolve, reject) => { + res = resolve + rej = reject + }) + + return { promise, resolve: res, reject: rej } +} + +function isAborted (fetchParams) { + return fetchParams.controller.state === 'aborted' +} + +function isCancelled (fetchParams) { + return fetchParams.controller.state === 'aborted' || + fetchParams.controller.state === 'terminated' +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-method-normalize + * @param {string} method + */ +function normalizeMethod (method) { + return normalizedMethodRecordsBase[method.toLowerCase()] ?? method +} + +// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string +function serializeJavascriptValueToJSONString (value) { + // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). + const result = JSON.stringify(value) + + // 2. If result is undefined, then throw a TypeError. + if (result === undefined) { + throw new TypeError('Value is not JSON serializable') + } + + // 3. Assert: result is a string. + assert(typeof result === 'string') + + // 4. Return result. + return result +} + +// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object +const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) + +/** + * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + * @param {string} name name of the instance + * @param {symbol} kInternalIterator + * @param {string | number} [keyIndex] + * @param {string | number} [valueIndex] + */ +function createIterator (name, kInternalIterator, keyIndex = 0, valueIndex = 1) { + class FastIterableIterator { + /** @type {any} */ + #target + /** @type {'key' | 'value' | 'key+value'} */ + #kind + /** @type {number} */ + #index + + /** + * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object + * @param {unknown} target + * @param {'key' | 'value' | 'key+value'} kind + */ + constructor (target, kind) { + this.#target = target + this.#kind = kind + this.#index = 0 + } + + next () { + // 1. Let interface be the interface for which the iterator prototype object exists. + // 2. Let thisValue be the this value. + // 3. Let object be ? ToObject(thisValue). + // 4. If object is a platform object, then perform a security + // check, passing: + // 5. If object is not a default iterator object for interface, + // then throw a TypeError. + if (typeof this !== 'object' || this === null || !(#target in this)) { + throw new TypeError( + `'next' called on an object that does not implement interface ${name} Iterator.` + ) + } + + // 6. Let index be object’s index. + // 7. Let kind be object’s kind. + // 8. Let values be object’s target's value pairs to iterate over. + const index = this.#index + const values = this.#target[kInternalIterator] + + // 9. Let len be the length of values. + const len = values.length + + // 10. If index is greater than or equal to len, then return + // CreateIterResultObject(undefined, true). + if (index >= len) { + return { + value: undefined, + done: true + } + } + + // 11. Let pair be the entry in values at index index. + const { [keyIndex]: key, [valueIndex]: value } = values[index] + + // 12. Set object’s index to index + 1. + this.#index = index + 1 + + // 13. Return the iterator result for pair and kind. + + // https://webidl.spec.whatwg.org/#iterator-result + + // 1. Let result be a value determined by the value of kind: + let result + switch (this.#kind) { + case 'key': + // 1. Let idlKey be pair’s key. + // 2. Let key be the result of converting idlKey to an + // ECMAScript value. + // 3. result is key. + result = key + break + case 'value': + // 1. Let idlValue be pair’s value. + // 2. Let value be the result of converting idlValue to + // an ECMAScript value. + // 3. result is value. + result = value + break + case 'key+value': + // 1. Let idlKey be pair’s key. + // 2. Let idlValue be pair’s value. + // 3. Let key be the result of converting idlKey to an + // ECMAScript value. + // 4. Let value be the result of converting idlValue to + // an ECMAScript value. + // 5. Let array be ! ArrayCreate(2). + // 6. Call ! CreateDataProperty(array, "0", key). + // 7. Call ! CreateDataProperty(array, "1", value). + // 8. result is array. + result = [key, value] + break + } + + // 2. Return CreateIterResultObject(result, false). + return { + value: result, + done: false + } + } + } + + // https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + // @ts-ignore + delete FastIterableIterator.prototype.constructor + + Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype) + + Object.defineProperties(FastIterableIterator.prototype, { + [Symbol.toStringTag]: { + writable: false, + enumerable: false, + configurable: true, + value: `${name} Iterator` + }, + next: { writable: true, enumerable: true, configurable: true } + }) + + /** + * @param {unknown} target + * @param {'key' | 'value' | 'key+value'} kind + * @returns {IterableIterator} + */ + return function (target, kind) { + return new FastIterableIterator(target, kind) + } +} + +/** + * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + * @param {string} name name of the instance + * @param {any} object class + * @param {symbol} kInternalIterator + * @param {string | number} [keyIndex] + * @param {string | number} [valueIndex] + */ +function iteratorMixin (name, object, kInternalIterator, keyIndex = 0, valueIndex = 1) { + const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex) + + const properties = { + keys: { + writable: true, + enumerable: true, + configurable: true, + value: function keys () { + webidl.brandCheck(this, object) + return makeIterator(this, 'key') + } + }, + values: { + writable: true, + enumerable: true, + configurable: true, + value: function values () { + webidl.brandCheck(this, object) + return makeIterator(this, 'value') + } + }, + entries: { + writable: true, + enumerable: true, + configurable: true, + value: function entries () { + webidl.brandCheck(this, object) + return makeIterator(this, 'key+value') + } + }, + forEach: { + writable: true, + enumerable: true, + configurable: true, + value: function forEach (callbackfn, thisArg = globalThis) { + webidl.brandCheck(this, object) + webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`) + if (typeof callbackfn !== 'function') { + throw new TypeError( + `Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.` + ) + } + for (const { 0: key, 1: value } of makeIterator(this, 'key+value')) { + callbackfn.call(thisArg, value, key, this) + } + } + } + } + + return Object.defineProperties(object.prototype, { + ...properties, + [Symbol.iterator]: { + writable: true, + enumerable: false, + configurable: true, + value: properties.entries.value + } + }) +} + +/** + * @see https://fetch.spec.whatwg.org/#body-fully-read + */ +async function fullyReadBody (body, processBody, processBodyError) { + // 1. If taskDestination is null, then set taskDestination to + // the result of starting a new parallel queue. + + // 2. Let successSteps given a byte sequence bytes be to queue a + // fetch task to run processBody given bytes, with taskDestination. + const successSteps = processBody + + // 3. Let errorSteps be to queue a fetch task to run processBodyError, + // with taskDestination. + const errorSteps = processBodyError + + // 4. Let reader be the result of getting a reader for body’s stream. + // If that threw an exception, then run errorSteps with that + // exception and return. + let reader + + try { + reader = body.stream.getReader() + } catch (e) { + errorSteps(e) + return + } + + // 5. Read all bytes from reader, given successSteps and errorSteps. + try { + successSteps(await readAllBytes(reader)) + } catch (e) { + errorSteps(e) + } +} + +function isReadableStreamLike (stream) { + return stream instanceof ReadableStream || ( + stream[Symbol.toStringTag] === 'ReadableStream' && + typeof stream.tee === 'function' + ) +} + +/** + * @param {ReadableStreamController} controller + */ +function readableStreamClose (controller) { + try { + controller.close() + controller.byobRequest?.respond(0) + } catch (err) { + // TODO: add comment explaining why this error occurs. + if (!err.message.includes('Controller is already closed') && !err.message.includes('ReadableStream is already closed')) { + throw err + } + } +} + +const invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/ // eslint-disable-line + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-encode + * @param {string} input + */ +function isomorphicEncode (input) { + // 1. Assert: input contains no code points greater than U+00FF. + assert(!invalidIsomorphicEncodeValueRegex.test(input)) + + // 2. Return a byte sequence whose length is equal to input’s code + // point length and whose bytes have the same values as the + // values of input’s code points, in the same order + return input +} + +/** + * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes + * @see https://streams.spec.whatwg.org/#read-loop + * @param {ReadableStreamDefaultReader} reader + */ +async function readAllBytes (reader) { + const bytes = [] + let byteLength = 0 + + while (true) { + const { done, value: chunk } = await reader.read() + + if (done) { + // 1. Call successSteps with bytes. + return Buffer.concat(bytes, byteLength) + } + + // 1. If chunk is not a Uint8Array object, call failureSteps + // with a TypeError and abort these steps. + if (!isUint8Array(chunk)) { + throw new TypeError('Received non-Uint8Array chunk') + } + + // 2. Append the bytes represented by chunk to bytes. + bytes.push(chunk) + byteLength += chunk.length + + // 3. Read-loop given reader, bytes, successSteps, and failureSteps. + } +} + +/** + * @see https://fetch.spec.whatwg.org/#is-local + * @param {URL} url + */ +function urlIsLocal (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' +} + +/** + * @param {string|URL} url + * @returns {boolean} + */ +function urlHasHttpsScheme (url) { + return ( + ( + typeof url === 'string' && + url[5] === ':' && + url[0] === 'h' && + url[1] === 't' && + url[2] === 't' && + url[3] === 'p' && + url[4] === 's' + ) || + url.protocol === 'https:' + ) +} + +/** + * @see https://fetch.spec.whatwg.org/#http-scheme + * @param {URL} url + */ +function urlIsHttpHttpsScheme (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'http:' || protocol === 'https:' +} + +/** + * @see https://fetch.spec.whatwg.org/#simple-range-header-value + * @param {string} value + * @param {boolean} allowWhitespace + */ +function simpleRangeHeaderValue (value, allowWhitespace) { + // 1. Let data be the isomorphic decoding of value. + // Note: isomorphic decoding takes a sequence of bytes (ie. a Uint8Array) and turns it into a string, + // nothing more. We obviously don't need to do that if value is a string already. + const data = value + + // 2. If data does not start with "bytes", then return failure. + if (!data.startsWith('bytes')) { + return 'failure' + } + + // 3. Let position be a position variable for data, initially pointing at the 5th code point of data. + const position = { position: 5 } + + // 4. If allowWhitespace is true, collect a sequence of code points that are HTTP tab or space, + // from data given position. + if (allowWhitespace) { + collectASequenceOfCodePoints( + (char) => char === '\t' || char === ' ', + data, + position + ) + } + + // 5. If the code point at position within data is not U+003D (=), then return failure. + if (data.charCodeAt(position.position) !== 0x3D) { + return 'failure' + } + + // 6. Advance position by 1. + position.position++ + + // 7. If allowWhitespace is true, collect a sequence of code points that are HTTP tab or space, from + // data given position. + if (allowWhitespace) { + collectASequenceOfCodePoints( + (char) => char === '\t' || char === ' ', + data, + position + ) + } + + // 8. Let rangeStart be the result of collecting a sequence of code points that are ASCII digits, + // from data given position. + const rangeStart = collectASequenceOfCodePoints( + (char) => { + const code = char.charCodeAt(0) + + return code >= 0x30 && code <= 0x39 + }, + data, + position + ) + + // 9. Let rangeStartValue be rangeStart, interpreted as decimal number, if rangeStart is not the + // empty string; otherwise null. + const rangeStartValue = rangeStart.length ? Number(rangeStart) : null + + // 10. If allowWhitespace is true, collect a sequence of code points that are HTTP tab or space, + // from data given position. + if (allowWhitespace) { + collectASequenceOfCodePoints( + (char) => char === '\t' || char === ' ', + data, + position + ) + } + + // 11. If the code point at position within data is not U+002D (-), then return failure. + if (data.charCodeAt(position.position) !== 0x2D) { + return 'failure' + } + + // 12. Advance position by 1. + position.position++ + + // 13. If allowWhitespace is true, collect a sequence of code points that are HTTP tab + // or space, from data given position. + // Note from Khafra: its the same step as in #8 again lol + if (allowWhitespace) { + collectASequenceOfCodePoints( + (char) => char === '\t' || char === ' ', + data, + position + ) + } + + // 14. Let rangeEnd be the result of collecting a sequence of code points that are + // ASCII digits, from data given position. + // Note from Khafra: you wouldn't guess it, but this is also the same step as #8 + const rangeEnd = collectASequenceOfCodePoints( + (char) => { + const code = char.charCodeAt(0) + + return code >= 0x30 && code <= 0x39 + }, + data, + position + ) + + // 15. Let rangeEndValue be rangeEnd, interpreted as decimal number, if rangeEnd + // is not the empty string; otherwise null. + // Note from Khafra: THE SAME STEP, AGAIN!!! + // Note: why interpret as a decimal if we only collect ascii digits? + const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null + + // 16. If position is not past the end of data, then return failure. + if (position.position < data.length) { + return 'failure' + } + + // 17. If rangeEndValue and rangeStartValue are null, then return failure. + if (rangeEndValue === null && rangeStartValue === null) { + return 'failure' + } + + // 18. If rangeStartValue and rangeEndValue are numbers, and rangeStartValue is + // greater than rangeEndValue, then return failure. + // Note: ... when can they not be numbers? + if (rangeStartValue > rangeEndValue) { + return 'failure' + } + + // 19. Return (rangeStartValue, rangeEndValue). + return { rangeStartValue, rangeEndValue } +} + +/** + * @see https://fetch.spec.whatwg.org/#build-a-content-range + * @param {number} rangeStart + * @param {number} rangeEnd + * @param {number} fullLength + */ +function buildContentRange (rangeStart, rangeEnd, fullLength) { + // 1. Let contentRange be `bytes `. + let contentRange = 'bytes ' + + // 2. Append rangeStart, serialized and isomorphic encoded, to contentRange. + contentRange += isomorphicEncode(`${rangeStart}`) + + // 3. Append 0x2D (-) to contentRange. + contentRange += '-' + + // 4. Append rangeEnd, serialized and isomorphic encoded to contentRange. + contentRange += isomorphicEncode(`${rangeEnd}`) + + // 5. Append 0x2F (/) to contentRange. + contentRange += '/' + + // 6. Append fullLength, serialized and isomorphic encoded to contentRange. + contentRange += isomorphicEncode(`${fullLength}`) + + // 7. Return contentRange. + return contentRange +} + +// A Stream, which pipes the response to zlib.createInflate() or +// zlib.createInflateRaw() depending on the first byte of the Buffer. +// If the lower byte of the first byte is 0x08, then the stream is +// interpreted as a zlib stream, otherwise it's interpreted as a +// raw deflate stream. +class InflateStream extends Transform { + #zlibOptions + + /** @param {zlib.ZlibOptions} [zlibOptions] */ + constructor (zlibOptions) { + super() + this.#zlibOptions = zlibOptions + } + + _transform (chunk, encoding, callback) { + if (!this._inflateStream) { + if (chunk.length === 0) { + callback() + return + } + this._inflateStream = (chunk[0] & 0x0F) === 0x08 + ? zlib.createInflate(this.#zlibOptions) + : zlib.createInflateRaw(this.#zlibOptions) + + this._inflateStream.on('data', this.push.bind(this)) + this._inflateStream.on('end', () => this.push(null)) + this._inflateStream.on('error', (err) => this.destroy(err)) + } + + this._inflateStream.write(chunk, encoding, callback) + } + + _final (callback) { + if (this._inflateStream) { + this._inflateStream.end() + this._inflateStream = null + } + callback() + } +} + +/** + * @param {zlib.ZlibOptions} [zlibOptions] + * @returns {InflateStream} + */ +function createInflate (zlibOptions) { + return new InflateStream(zlibOptions) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-header-extract-mime-type + * @param {import('./headers').HeadersList} headers + */ +function extractMimeType (headers) { + // 1. Let charset be null. + let charset = null + + // 2. Let essence be null. + let essence = null + + // 3. Let mimeType be null. + let mimeType = null + + // 4. Let values be the result of getting, decoding, and splitting `Content-Type` from headers. + const values = getDecodeSplit('content-type', headers) + + // 5. If values is null, then return failure. + if (values === null) { + return 'failure' + } + + // 6. For each value of values: + for (const value of values) { + // 6.1. Let temporaryMimeType be the result of parsing value. + const temporaryMimeType = parseMIMEType(value) + + // 6.2. If temporaryMimeType is failure or its essence is "*/*", then continue. + if (temporaryMimeType === 'failure' || temporaryMimeType.essence === '*/*') { + continue + } + + // 6.3. Set mimeType to temporaryMimeType. + mimeType = temporaryMimeType + + // 6.4. If mimeType’s essence is not essence, then: + if (mimeType.essence !== essence) { + // 6.4.1. Set charset to null. + charset = null + + // 6.4.2. If mimeType’s parameters["charset"] exists, then set charset to + // mimeType’s parameters["charset"]. + if (mimeType.parameters.has('charset')) { + charset = mimeType.parameters.get('charset') + } + + // 6.4.3. Set essence to mimeType’s essence. + essence = mimeType.essence + } else if (!mimeType.parameters.has('charset') && charset !== null) { + // 6.5. Otherwise, if mimeType’s parameters["charset"] does not exist, and + // charset is non-null, set mimeType’s parameters["charset"] to charset. + mimeType.parameters.set('charset', charset) + } + } + + // 7. If mimeType is null, then return failure. + if (mimeType == null) { + return 'failure' + } + + // 8. Return mimeType. + return mimeType +} + +/** + * @see https://fetch.spec.whatwg.org/#header-value-get-decode-and-split + * @param {string|null} value + */ +function gettingDecodingSplitting (value) { + // 1. Let input be the result of isomorphic decoding value. + const input = value + + // 2. Let position be a position variable for input, initially pointing at the start of input. + const position = { position: 0 } + + // 3. Let values be a list of strings, initially empty. + const values = [] + + // 4. Let temporaryValue be the empty string. + let temporaryValue = '' + + // 5. While position is not past the end of input: + while (position.position < input.length) { + // 5.1. Append the result of collecting a sequence of code points that are not U+0022 (") + // or U+002C (,) from input, given position, to temporaryValue. + temporaryValue += collectASequenceOfCodePoints( + (char) => char !== '"' && char !== ',', + input, + position + ) + + // 5.2. If position is not past the end of input, then: + if (position.position < input.length) { + // 5.2.1. If the code point at position within input is U+0022 ("), then: + if (input.charCodeAt(position.position) === 0x22) { + // 5.2.1.1. Append the result of collecting an HTTP quoted string from input, given position, to temporaryValue. + temporaryValue += collectAnHTTPQuotedString( + input, + position + ) + + // 5.2.1.2. If position is not past the end of input, then continue. + if (position.position < input.length) { + continue + } + } else { + // 5.2.2. Otherwise: + + // 5.2.2.1. Assert: the code point at position within input is U+002C (,). + assert(input.charCodeAt(position.position) === 0x2C) + + // 5.2.2.2. Advance position by 1. + position.position++ + } + } + + // 5.3. Remove all HTTP tab or space from the start and end of temporaryValue. + temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 0x9 || char === 0x20) + + // 5.4. Append temporaryValue to values. + values.push(temporaryValue) + + // 5.6. Set temporaryValue to the empty string. + temporaryValue = '' + } + + // 6. Return values. + return values +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-header-list-get-decode-split + * @param {string} name lowercase header name + * @param {import('./headers').HeadersList} list + */ +function getDecodeSplit (name, list) { + // 1. Let value be the result of getting name from list. + const value = list.get(name, true) + + // 2. If value is null, then return null. + if (value === null) { + return null + } + + // 3. Return the result of getting, decoding, and splitting value. + return gettingDecodingSplitting(value) +} + +const textDecoder = new TextDecoder() + +/** + * @see https://encoding.spec.whatwg.org/#utf-8-decode + * @param {Buffer} buffer + */ +function utf8DecodeBytes (buffer) { + if (buffer.length === 0) { + return '' + } + + // 1. Let buffer be the result of peeking three bytes from + // ioQueue, converted to a byte sequence. + + // 2. If buffer is 0xEF 0xBB 0xBF, then read three + // bytes from ioQueue. (Do nothing with those bytes.) + if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { + buffer = buffer.subarray(3) + } + + // 3. Process a queue with an instance of UTF-8’s + // decoder, ioQueue, output, and "replacement". + const output = textDecoder.decode(buffer) + + // 4. Return output. + return output +} + +class EnvironmentSettingsObjectBase { + get baseUrl () { + return getGlobalOrigin() + } + + get origin () { + return this.baseUrl?.origin + } + + policyContainer = makePolicyContainer() +} + +class EnvironmentSettingsObject { + settingsObject = new EnvironmentSettingsObjectBase() +} + +const environmentSettingsObject = new EnvironmentSettingsObject() + +module.exports = { + isAborted, + isCancelled, + isValidEncodedURL, + createDeferredPromise, + ReadableStreamFrom, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + clampAndCoarsenConnectionTimingInfo, + coarsenedSharedCurrentTime, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isURLPotentiallyTrustworthy, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + iteratorMixin, + createIterator, + isValidHeaderName, + isValidHeaderValue, + isErrorLike, + fullyReadBody, + bytesMatch, + isReadableStreamLike, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlHasHttpsScheme, + urlIsHttpHttpsScheme, + readAllBytes, + simpleRangeHeaderValue, + buildContentRange, + parseMetadata, + createInflate, + extractMimeType, + getDecodeSplit, + utf8DecodeBytes, + environmentSettingsObject +} + + +/***/ }), + +/***/ 5893: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { types, inspect } = __nccwpck_require__(7975) +const { markAsUncloneable } = __nccwpck_require__(5919) +const { toUSVString } = __nccwpck_require__(3440) + +/** @type {import('../../../types/webidl').Webidl} */ +const webidl = {} +webidl.converters = {} +webidl.util = {} +webidl.errors = {} + +webidl.errors.exception = function (message) { + return new TypeError(`${message.header}: ${message.message}`) +} + +webidl.errors.conversionFailed = function (context) { + const plural = context.types.length === 1 ? '' : ' one of' + const message = + `${context.argument} could not be converted to` + + `${plural}: ${context.types.join(', ')}.` + + return webidl.errors.exception({ + header: context.prefix, + message + }) +} + +webidl.errors.invalidArgument = function (context) { + return webidl.errors.exception({ + header: context.prefix, + message: `"${context.value}" is an invalid ${context.type}.` + }) +} + +// https://webidl.spec.whatwg.org/#implements +webidl.brandCheck = function (V, I, opts) { + if (opts?.strict !== false) { + if (!(V instanceof I)) { + const err = new TypeError('Illegal invocation') + err.code = 'ERR_INVALID_THIS' // node compat. + throw err + } + } else { + if (V?.[Symbol.toStringTag] !== I.prototype[Symbol.toStringTag]) { + const err = new TypeError('Illegal invocation') + err.code = 'ERR_INVALID_THIS' // node compat. + throw err + } + } +} + +webidl.argumentLengthCheck = function ({ length }, min, ctx) { + if (length < min) { + throw webidl.errors.exception({ + message: `${min} argument${min !== 1 ? 's' : ''} required, ` + + `but${length ? ' only' : ''} ${length} found.`, + header: ctx + }) + } +} + +webidl.illegalConstructor = function () { + throw webidl.errors.exception({ + header: 'TypeError', + message: 'Illegal constructor' + }) +} + +// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values +webidl.util.Type = function (V) { + switch (typeof V) { + case 'undefined': return 'Undefined' + case 'boolean': return 'Boolean' + case 'string': return 'String' + case 'symbol': return 'Symbol' + case 'number': return 'Number' + case 'bigint': return 'BigInt' + case 'function': + case 'object': { + if (V === null) { + return 'Null' + } + + return 'Object' + } + } +} + +webidl.util.markAsUncloneable = markAsUncloneable || (() => {}) +// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint +webidl.util.ConvertToInt = function (V, bitLength, signedness, opts) { + let upperBound + let lowerBound + + // 1. If bitLength is 64, then: + if (bitLength === 64) { + // 1. Let upperBound be 2^53 − 1. + upperBound = Math.pow(2, 53) - 1 + + // 2. If signedness is "unsigned", then let lowerBound be 0. + if (signedness === 'unsigned') { + lowerBound = 0 + } else { + // 3. Otherwise let lowerBound be −2^53 + 1. + lowerBound = Math.pow(-2, 53) + 1 + } + } else if (signedness === 'unsigned') { + // 2. Otherwise, if signedness is "unsigned", then: + + // 1. Let lowerBound be 0. + lowerBound = 0 + + // 2. Let upperBound be 2^bitLength − 1. + upperBound = Math.pow(2, bitLength) - 1 + } else { + // 3. Otherwise: + + // 1. Let lowerBound be -2^bitLength − 1. + lowerBound = Math.pow(-2, bitLength) - 1 + + // 2. Let upperBound be 2^bitLength − 1 − 1. + upperBound = Math.pow(2, bitLength - 1) - 1 + } + + // 4. Let x be ? ToNumber(V). + let x = Number(V) + + // 5. If x is −0, then set x to +0. + if (x === 0) { + x = 0 + } + + // 6. If the conversion is to an IDL type associated + // with the [EnforceRange] extended attribute, then: + if (opts?.enforceRange === true) { + // 1. If x is NaN, +∞, or −∞, then throw a TypeError. + if ( + Number.isNaN(x) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Could not convert ${webidl.util.Stringify(V)} to an integer.` + }) + } + + // 2. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 3. If x < lowerBound or x > upperBound, then + // throw a TypeError. + if (x < lowerBound || x > upperBound) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` + }) + } + + // 4. Return x. + return x + } + + // 7. If x is not NaN and the conversion is to an IDL + // type associated with the [Clamp] extended + // attribute, then: + if (!Number.isNaN(x) && opts?.clamp === true) { + // 1. Set x to min(max(x, lowerBound), upperBound). + x = Math.min(Math.max(x, lowerBound), upperBound) + + // 2. Round x to the nearest integer, choosing the + // even integer if it lies halfway between two, + // and choosing +0 rather than −0. + if (Math.floor(x) % 2 === 0) { + x = Math.floor(x) + } else { + x = Math.ceil(x) + } + + // 3. Return x. + return x + } + + // 8. If x is NaN, +0, +∞, or −∞, then return +0. + if ( + Number.isNaN(x) || + (x === 0 && Object.is(0, x)) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + return 0 + } + + // 9. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 10. Set x to x modulo 2^bitLength. + x = x % Math.pow(2, bitLength) + + // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, + // then return x − 2^bitLength. + if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { + return x - Math.pow(2, bitLength) + } + + // 12. Otherwise, return x. + return x +} + +// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart +webidl.util.IntegerPart = function (n) { + // 1. Let r be floor(abs(n)). + const r = Math.floor(Math.abs(n)) + + // 2. If n < 0, then return -1 × r. + if (n < 0) { + return -1 * r + } + + // 3. Otherwise, return r. + return r +} + +webidl.util.Stringify = function (V) { + const type = webidl.util.Type(V) + + switch (type) { + case 'Symbol': + return `Symbol(${V.description})` + case 'Object': + return inspect(V) + case 'String': + return `"${V}"` + default: + return `${V}` + } +} + +// https://webidl.spec.whatwg.org/#es-sequence +webidl.sequenceConverter = function (converter) { + return (V, prefix, argument, Iterable) => { + // 1. If Type(V) is not Object, throw a TypeError. + if (webidl.util.Type(V) !== 'Object') { + throw webidl.errors.exception({ + header: prefix, + message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.` + }) + } + + // 2. Let method be ? GetMethod(V, @@iterator). + /** @type {Generator} */ + const method = typeof Iterable === 'function' ? Iterable() : V?.[Symbol.iterator]?.() + const seq = [] + let index = 0 + + // 3. If method is undefined, throw a TypeError. + if ( + method === undefined || + typeof method.next !== 'function' + ) { + throw webidl.errors.exception({ + header: prefix, + message: `${argument} is not iterable.` + }) + } + + // https://webidl.spec.whatwg.org/#create-sequence-from-iterable + while (true) { + const { done, value } = method.next() + + if (done) { + break + } + + seq.push(converter(value, prefix, `${argument}[${index++}]`)) + } + + return seq + } +} + +// https://webidl.spec.whatwg.org/#es-to-record +webidl.recordConverter = function (keyConverter, valueConverter) { + return (O, prefix, argument) => { + // 1. If Type(O) is not Object, throw a TypeError. + if (webidl.util.Type(O) !== 'Object') { + throw webidl.errors.exception({ + header: prefix, + message: `${argument} ("${webidl.util.Type(O)}") is not an Object.` + }) + } + + // 2. Let result be a new empty instance of record. + const result = {} + + if (!types.isProxy(O)) { + // 1. Let desc be ? O.[[GetOwnProperty]](key). + const keys = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)] + + for (const key of keys) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key, prefix, argument) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key], prefix, argument) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + + // 5. Return result. + return result + } + + // 3. Let keys be ? O.[[OwnPropertyKeys]](). + const keys = Reflect.ownKeys(O) + + // 4. For each key of keys. + for (const key of keys) { + // 1. Let desc be ? O.[[GetOwnProperty]](key). + const desc = Reflect.getOwnPropertyDescriptor(O, key) + + // 2. If desc is not undefined and desc.[[Enumerable]] is true: + if (desc?.enumerable) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key, prefix, argument) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key], prefix, argument) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + } + + // 5. Return result. + return result + } +} + +webidl.interfaceConverter = function (i) { + return (V, prefix, argument, opts) => { + if (opts?.strict !== false && !(V instanceof i)) { + throw webidl.errors.exception({ + header: prefix, + message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.` + }) + } + + return V + } +} + +webidl.dictionaryConverter = function (converters) { + return (dictionary, prefix, argument) => { + const type = webidl.util.Type(dictionary) + const dict = {} + + if (type === 'Null' || type === 'Undefined') { + return dict + } else if (type !== 'Object') { + throw webidl.errors.exception({ + header: prefix, + message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` + }) + } + + for (const options of converters) { + const { key, defaultValue, required, converter } = options + + if (required === true) { + if (!Object.hasOwn(dictionary, key)) { + throw webidl.errors.exception({ + header: prefix, + message: `Missing required key "${key}".` + }) + } + } + + let value = dictionary[key] + const hasDefault = Object.hasOwn(options, 'defaultValue') + + // Only use defaultValue if value is undefined and + // a defaultValue options was provided. + if (hasDefault && value !== null) { + value ??= defaultValue() + } + + // A key can be optional and have no default value. + // When this happens, do not perform a conversion, + // and do not assign the key a value. + if (required || hasDefault || value !== undefined) { + value = converter(value, prefix, `${argument}.${key}`) + + if ( + options.allowedValues && + !options.allowedValues.includes(value) + ) { + throw webidl.errors.exception({ + header: prefix, + message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` + }) + } + + dict[key] = value + } + } + + return dict + } +} + +webidl.nullableConverter = function (converter) { + return (V, prefix, argument) => { + if (V === null) { + return V + } + + return converter(V, prefix, argument) + } +} + +// https://webidl.spec.whatwg.org/#es-DOMString +webidl.converters.DOMString = function (V, prefix, argument, opts) { + // 1. If V is null and the conversion is to an IDL type + // associated with the [LegacyNullToEmptyString] + // extended attribute, then return the DOMString value + // that represents the empty string. + if (V === null && opts?.legacyNullToEmptyString) { + return '' + } + + // 2. Let x be ? ToString(V). + if (typeof V === 'symbol') { + throw webidl.errors.exception({ + header: prefix, + message: `${argument} is a symbol, which cannot be converted to a DOMString.` + }) + } + + // 3. Return the IDL DOMString value that represents the + // same sequence of code units as the one the + // ECMAScript String value x represents. + return String(V) +} + +// https://webidl.spec.whatwg.org/#es-ByteString +webidl.converters.ByteString = function (V, prefix, argument) { + // 1. Let x be ? ToString(V). + // Note: DOMString converter perform ? ToString(V) + const x = webidl.converters.DOMString(V, prefix, argument) + + // 2. If the value of any element of x is greater than + // 255, then throw a TypeError. + for (let index = 0; index < x.length; index++) { + if (x.charCodeAt(index) > 255) { + throw new TypeError( + 'Cannot convert argument to a ByteString because the character at ' + + `index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` + ) + } + } + + // 3. Return an IDL ByteString value whose length is the + // length of x, and where the value of each element is + // the value of the corresponding element of x. + return x +} + +// https://webidl.spec.whatwg.org/#es-USVString +// TODO: rewrite this so we can control the errors thrown +webidl.converters.USVString = toUSVString + +// https://webidl.spec.whatwg.org/#es-boolean +webidl.converters.boolean = function (V) { + // 1. Let x be the result of computing ToBoolean(V). + const x = Boolean(V) + + // 2. Return the IDL boolean value that is the one that represents + // the same truth value as the ECMAScript Boolean value x. + return x +} + +// https://webidl.spec.whatwg.org/#es-any +webidl.converters.any = function (V) { + return V +} + +// https://webidl.spec.whatwg.org/#es-long-long +webidl.converters['long long'] = function (V, prefix, argument) { + // 1. Let x be ? ConvertToInt(V, 64, "signed"). + const x = webidl.util.ConvertToInt(V, 64, 'signed', undefined, prefix, argument) + + // 2. Return the IDL long long value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long-long +webidl.converters['unsigned long long'] = function (V, prefix, argument) { + // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). + const x = webidl.util.ConvertToInt(V, 64, 'unsigned', undefined, prefix, argument) + + // 2. Return the IDL unsigned long long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long +webidl.converters['unsigned long'] = function (V, prefix, argument) { + // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). + const x = webidl.util.ConvertToInt(V, 32, 'unsigned', undefined, prefix, argument) + + // 2. Return the IDL unsigned long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-short +webidl.converters['unsigned short'] = function (V, prefix, argument, opts) { + // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). + const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts, prefix, argument) + + // 2. Return the IDL unsigned short value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#idl-ArrayBuffer +webidl.converters.ArrayBuffer = function (V, prefix, argument, opts) { + // 1. If Type(V) is not Object, or V does not have an + // [[ArrayBufferData]] internal slot, then throw a + // TypeError. + // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances + // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances + if ( + webidl.util.Type(V) !== 'Object' || + !types.isAnyArrayBuffer(V) + ) { + throw webidl.errors.conversionFailed({ + prefix, + argument: `${argument} ("${webidl.util.Stringify(V)}")`, + types: ['ArrayBuffer'] + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V) is true, then throw a + // TypeError. + if (opts?.allowShared === false && types.isSharedArrayBuffer(V)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V) is true, then throw a + // TypeError. + if (V.resizable || V.growable) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'Received a resizable ArrayBuffer.' + }) + } + + // 4. Return the IDL ArrayBuffer value that is a + // reference to the same object as V. + return V +} + +webidl.converters.TypedArray = function (V, T, prefix, name, opts) { + // 1. Let T be the IDL type V is being converted to. + + // 2. If Type(V) is not Object, or V does not have a + // [[TypedArrayName]] internal slot with a value + // equal to T’s name, then throw a TypeError. + if ( + webidl.util.Type(V) !== 'Object' || + !types.isTypedArray(V) || + V.constructor.name !== T.name + ) { + throw webidl.errors.conversionFailed({ + prefix, + argument: `${name} ("${webidl.util.Stringify(V)}")`, + types: [T.name] + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 4. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (V.buffer.resizable || V.buffer.growable) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'Received a resizable ArrayBuffer.' + }) + } + + // 5. Return the IDL value of type T that is a reference + // to the same object as V. + return V +} + +webidl.converters.DataView = function (V, prefix, name, opts) { + // 1. If Type(V) is not Object, or V does not have a + // [[DataView]] internal slot, then throw a TypeError. + if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { + throw webidl.errors.exception({ + header: prefix, + message: `${name} is not a DataView.` + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, + // then throw a TypeError. + if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (V.buffer.resizable || V.buffer.growable) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'Received a resizable ArrayBuffer.' + }) + } + + // 4. Return the IDL DataView value that is a reference + // to the same object as V. + return V +} + +// https://webidl.spec.whatwg.org/#BufferSource +webidl.converters.BufferSource = function (V, prefix, name, opts) { + if (types.isAnyArrayBuffer(V)) { + return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: false }) + } + + if (types.isTypedArray(V)) { + return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: false }) + } + + if (types.isDataView(V)) { + return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: false }) + } + + throw webidl.errors.conversionFailed({ + prefix, + argument: `${name} ("${webidl.util.Stringify(V)}")`, + types: ['BufferSource'] + }) +} + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.ByteString +) + +webidl.converters['sequence>'] = webidl.sequenceConverter( + webidl.converters['sequence'] +) + +webidl.converters['record'] = webidl.recordConverter( + webidl.converters.ByteString, + webidl.converters.ByteString +) + +module.exports = { + webidl +} + + +/***/ }), + +/***/ 2607: +/***/ ((module) => { + + + +/** + * @see https://encoding.spec.whatwg.org/#concept-encoding-get + * @param {string|undefined} label + */ +function getEncoding (label) { + if (!label) { + return 'failure' + } + + // 1. Remove any leading and trailing ASCII whitespace from label. + // 2. If label is an ASCII case-insensitive match for any of the + // labels listed in the table below, then return the + // corresponding encoding; otherwise return failure. + switch (label.trim().toLowerCase()) { + case 'unicode-1-1-utf-8': + case 'unicode11utf8': + case 'unicode20utf8': + case 'utf-8': + case 'utf8': + case 'x-unicode20utf8': + return 'UTF-8' + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866' + case 'csisolatin2': + case 'iso-8859-2': + case 'iso-ir-101': + case 'iso8859-2': + case 'iso88592': + case 'iso_8859-2': + case 'iso_8859-2:1987': + case 'l2': + case 'latin2': + return 'ISO-8859-2' + case 'csisolatin3': + case 'iso-8859-3': + case 'iso-ir-109': + case 'iso8859-3': + case 'iso88593': + case 'iso_8859-3': + case 'iso_8859-3:1988': + case 'l3': + case 'latin3': + return 'ISO-8859-3' + case 'csisolatin4': + case 'iso-8859-4': + case 'iso-ir-110': + case 'iso8859-4': + case 'iso88594': + case 'iso_8859-4': + case 'iso_8859-4:1988': + case 'l4': + case 'latin4': + return 'ISO-8859-4' + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso-8859-5': + case 'iso-ir-144': + case 'iso8859-5': + case 'iso88595': + case 'iso_8859-5': + case 'iso_8859-5:1988': + return 'ISO-8859-5' + case 'arabic': + case 'asmo-708': + case 'csiso88596e': + case 'csiso88596i': + case 'csisolatinarabic': + case 'ecma-114': + case 'iso-8859-6': + case 'iso-8859-6-e': + case 'iso-8859-6-i': + case 'iso-ir-127': + case 'iso8859-6': + case 'iso88596': + case 'iso_8859-6': + case 'iso_8859-6:1987': + return 'ISO-8859-6' + case 'csisolatingreek': + case 'ecma-118': + case 'elot_928': + case 'greek': + case 'greek8': + case 'iso-8859-7': + case 'iso-ir-126': + case 'iso8859-7': + case 'iso88597': + case 'iso_8859-7': + case 'iso_8859-7:1987': + case 'sun_eu_greek': + return 'ISO-8859-7' + case 'csiso88598e': + case 'csisolatinhebrew': + case 'hebrew': + case 'iso-8859-8': + case 'iso-8859-8-e': + case 'iso-ir-138': + case 'iso8859-8': + case 'iso88598': + case 'iso_8859-8': + case 'iso_8859-8:1988': + case 'visual': + return 'ISO-8859-8' + case 'csiso88598i': + case 'iso-8859-8-i': + case 'logical': + return 'ISO-8859-8-I' + case 'csisolatin6': + case 'iso-8859-10': + case 'iso-ir-157': + case 'iso8859-10': + case 'iso885910': + case 'l6': + case 'latin6': + return 'ISO-8859-10' + case 'iso-8859-13': + case 'iso8859-13': + case 'iso885913': + return 'ISO-8859-13' + case 'iso-8859-14': + case 'iso8859-14': + case 'iso885914': + return 'ISO-8859-14' + case 'csisolatin9': + case 'iso-8859-15': + case 'iso8859-15': + case 'iso885915': + case 'iso_8859-15': + case 'l9': + return 'ISO-8859-15' + case 'iso-8859-16': + return 'ISO-8859-16' + case 'cskoi8r': + case 'koi': + case 'koi8': + case 'koi8-r': + case 'koi8_r': + return 'KOI8-R' + case 'koi8-ru': + case 'koi8-u': + return 'KOI8-U' + case 'csmacintosh': + case 'mac': + case 'macintosh': + case 'x-mac-roman': + return 'macintosh' + case 'iso-8859-11': + case 'iso8859-11': + case 'iso885911': + case 'tis-620': + case 'windows-874': + return 'windows-874' + case 'cp1250': + case 'windows-1250': + case 'x-cp1250': + return 'windows-1250' + case 'cp1251': + case 'windows-1251': + case 'x-cp1251': + return 'windows-1251' + case 'ansi_x3.4-1968': + case 'ascii': + case 'cp1252': + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso-8859-1': + case 'iso-ir-100': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'iso_8859-1:1987': + case 'l1': + case 'latin1': + case 'us-ascii': + case 'windows-1252': + case 'x-cp1252': + return 'windows-1252' + case 'cp1253': + case 'windows-1253': + case 'x-cp1253': + return 'windows-1253' + case 'cp1254': + case 'csisolatin5': + case 'iso-8859-9': + case 'iso-ir-148': + case 'iso8859-9': + case 'iso88599': + case 'iso_8859-9': + case 'iso_8859-9:1989': + case 'l5': + case 'latin5': + case 'windows-1254': + case 'x-cp1254': + return 'windows-1254' + case 'cp1255': + case 'windows-1255': + case 'x-cp1255': + return 'windows-1255' + case 'cp1256': + case 'windows-1256': + case 'x-cp1256': + return 'windows-1256' + case 'cp1257': + case 'windows-1257': + case 'x-cp1257': + return 'windows-1257' + case 'cp1258': + case 'windows-1258': + case 'x-cp1258': + return 'windows-1258' + case 'x-mac-cyrillic': + case 'x-mac-ukrainian': + return 'x-mac-cyrillic' + case 'chinese': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb_2312': + case 'gb_2312-80': + case 'gbk': + case 'iso-ir-58': + case 'x-gbk': + return 'GBK' + case 'gb18030': + return 'gb18030' + case 'big5': + case 'big5-hkscs': + case 'cn-big5': + case 'csbig5': + case 'x-x-big5': + return 'Big5' + case 'cseucpkdfmtjapanese': + case 'euc-jp': + case 'x-euc-jp': + return 'EUC-JP' + case 'csiso2022jp': + case 'iso-2022-jp': + return 'ISO-2022-JP' + case 'csshiftjis': + case 'ms932': + case 'ms_kanji': + case 'shift-jis': + case 'shift_jis': + case 'sjis': + case 'windows-31j': + case 'x-sjis': + return 'Shift_JIS' + case 'cseuckr': + case 'csksc56011987': + case 'euc-kr': + case 'iso-ir-149': + case 'korean': + case 'ks_c_5601-1987': + case 'ks_c_5601-1989': + case 'ksc5601': + case 'ksc_5601': + case 'windows-949': + return 'EUC-KR' + case 'csiso2022kr': + case 'hz-gb-2312': + case 'iso-2022-cn': + case 'iso-2022-cn-ext': + case 'iso-2022-kr': + case 'replacement': + return 'replacement' + case 'unicodefffe': + case 'utf-16be': + return 'UTF-16BE' + case 'csunicode': + case 'iso-10646-ucs-2': + case 'ucs-2': + case 'unicode': + case 'unicodefeff': + case 'utf-16': + case 'utf-16le': + return 'UTF-16LE' + case 'x-user-defined': + return 'x-user-defined' + default: return 'failure' + } +} + +module.exports = { + getEncoding +} + + +/***/ }), + +/***/ 8355: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} = __nccwpck_require__(3610) +const { + kState, + kError, + kResult, + kEvents, + kAborted +} = __nccwpck_require__(961) +const { webidl } = __nccwpck_require__(5893) +const { kEnumerableProperty } = __nccwpck_require__(3440) + +class FileReader extends EventTarget { + constructor () { + super() + + this[kState] = 'empty' + this[kResult] = null + this[kError] = null + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer + * @param {import('buffer').Blob} blob + */ + readAsArrayBuffer (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsArrayBuffer') + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsArrayBuffer(blob) method, when invoked, + // must initiate a read operation for blob with ArrayBuffer. + readOperation(this, blob, 'ArrayBuffer') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsBinaryString + * @param {import('buffer').Blob} blob + */ + readAsBinaryString (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsBinaryString') + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsBinaryString(blob) method, when invoked, + // must initiate a read operation for blob with BinaryString. + readOperation(this, blob, 'BinaryString') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsDataText + * @param {import('buffer').Blob} blob + * @param {string?} encoding + */ + readAsText (blob, encoding = undefined) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsText') + + blob = webidl.converters.Blob(blob, { strict: false }) + + if (encoding !== undefined) { + encoding = webidl.converters.DOMString(encoding, 'FileReader.readAsText', 'encoding') + } + + // The readAsText(blob, encoding) method, when invoked, + // must initiate a read operation for blob with Text and encoding. + readOperation(this, blob, 'Text', encoding) + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL + * @param {import('buffer').Blob} blob + */ + readAsDataURL (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, 'FileReader.readAsDataURL') + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsDataURL(blob) method, when invoked, must + // initiate a read operation for blob with DataURL. + readOperation(this, blob, 'DataURL') + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-abort + */ + abort () { + // 1. If this's state is "empty" or if this's state is + // "done" set this's result to null and terminate + // this algorithm. + if (this[kState] === 'empty' || this[kState] === 'done') { + this[kResult] = null + return + } + + // 2. If this's state is "loading" set this's state to + // "done" and set this's result to null. + if (this[kState] === 'loading') { + this[kState] = 'done' + this[kResult] = null + } + + // 3. If there are any tasks from this on the file reading + // task source in an affiliated task queue, then remove + // those tasks from that task queue. + this[kAborted] = true + + // 4. Terminate the algorithm for the read method being processed. + // TODO + + // 5. Fire a progress event called abort at this. + fireAProgressEvent('abort', this) + + // 6. If this's state is not "loading", fire a progress + // event called loadend at this. + if (this[kState] !== 'loading') { + fireAProgressEvent('loadend', this) + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate + */ + get readyState () { + webidl.brandCheck(this, FileReader) + + switch (this[kState]) { + case 'empty': return this.EMPTY + case 'loading': return this.LOADING + case 'done': return this.DONE + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-result + */ + get result () { + webidl.brandCheck(this, FileReader) + + // The result attribute’s getter, when invoked, must return + // this's result. + return this[kResult] + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-error + */ + get error () { + webidl.brandCheck(this, FileReader) + + // The error attribute’s getter, when invoked, must return + // this's error. + return this[kError] + } + + get onloadend () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadend + } + + set onloadend (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadend) { + this.removeEventListener('loadend', this[kEvents].loadend) + } + + if (typeof fn === 'function') { + this[kEvents].loadend = fn + this.addEventListener('loadend', fn) + } else { + this[kEvents].loadend = null + } + } + + get onerror () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].error + } + + set onerror (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].error) { + this.removeEventListener('error', this[kEvents].error) + } + + if (typeof fn === 'function') { + this[kEvents].error = fn + this.addEventListener('error', fn) + } else { + this[kEvents].error = null + } + } + + get onloadstart () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadstart + } + + set onloadstart (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadstart) { + this.removeEventListener('loadstart', this[kEvents].loadstart) + } + + if (typeof fn === 'function') { + this[kEvents].loadstart = fn + this.addEventListener('loadstart', fn) + } else { + this[kEvents].loadstart = null + } + } + + get onprogress () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].progress + } + + set onprogress (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].progress) { + this.removeEventListener('progress', this[kEvents].progress) + } + + if (typeof fn === 'function') { + this[kEvents].progress = fn + this.addEventListener('progress', fn) + } else { + this[kEvents].progress = null + } + } + + get onload () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].load + } + + set onload (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].load) { + this.removeEventListener('load', this[kEvents].load) + } + + if (typeof fn === 'function') { + this[kEvents].load = fn + this.addEventListener('load', fn) + } else { + this[kEvents].load = null + } + } + + get onabort () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].abort + } + + set onabort (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].abort) { + this.removeEventListener('abort', this[kEvents].abort) + } + + if (typeof fn === 'function') { + this[kEvents].abort = fn + this.addEventListener('abort', fn) + } else { + this[kEvents].abort = null + } + } +} + +// https://w3c.github.io/FileAPI/#dom-filereader-empty +FileReader.EMPTY = FileReader.prototype.EMPTY = 0 +// https://w3c.github.io/FileAPI/#dom-filereader-loading +FileReader.LOADING = FileReader.prototype.LOADING = 1 +// https://w3c.github.io/FileAPI/#dom-filereader-done +FileReader.DONE = FileReader.prototype.DONE = 2 + +Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FileReader', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors +}) + +module.exports = { + FileReader +} + + +/***/ }), + +/***/ 8573: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(5893) + +const kState = Symbol('ProgressEvent state') + +/** + * @see https://xhr.spec.whatwg.org/#progressevent + */ +class ProgressEvent extends Event { + constructor (type, eventInitDict = {}) { + type = webidl.converters.DOMString(type, 'ProgressEvent constructor', 'type') + eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}) + + super(type, eventInitDict) + + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + } + } + + get lengthComputable () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].lengthComputable + } + + get loaded () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].loaded + } + + get total () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].total + } +} + +webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: 'lengthComputable', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'loaded', + converter: webidl.converters['unsigned long long'], + defaultValue: () => 0 + }, + { + key: 'total', + converter: webidl.converters['unsigned long long'], + defaultValue: () => 0 + }, + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: () => false + } +]) + +module.exports = { + ProgressEvent +} + + +/***/ }), + +/***/ 961: +/***/ ((module) => { + + + +module.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted') +} + + +/***/ }), + +/***/ 3610: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { + kState, + kError, + kResult, + kAborted, + kLastProgressEventFired +} = __nccwpck_require__(961) +const { ProgressEvent } = __nccwpck_require__(8573) +const { getEncoding } = __nccwpck_require__(2607) +const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(1900) +const { types } = __nccwpck_require__(7975) +const { StringDecoder } = __nccwpck_require__(3193) +const { btoa } = __nccwpck_require__(4573) + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +/** + * @see https://w3c.github.io/FileAPI/#readOperation + * @param {import('./filereader').FileReader} fr + * @param {import('buffer').Blob} blob + * @param {string} type + * @param {string?} encodingName + */ +function readOperation (fr, blob, type, encodingName) { + // 1. If fr’s state is "loading", throw an InvalidStateError + // DOMException. + if (fr[kState] === 'loading') { + throw new DOMException('Invalid state', 'InvalidStateError') + } + + // 2. Set fr’s state to "loading". + fr[kState] = 'loading' + + // 3. Set fr’s result to null. + fr[kResult] = null + + // 4. Set fr’s error to null. + fr[kError] = null + + // 5. Let stream be the result of calling get stream on blob. + /** @type {import('stream/web').ReadableStream} */ + const stream = blob.stream() + + // 6. Let reader be the result of getting a reader from stream. + const reader = stream.getReader() + + // 7. Let bytes be an empty byte sequence. + /** @type {Uint8Array[]} */ + const bytes = [] + + // 8. Let chunkPromise be the result of reading a chunk from + // stream with reader. + let chunkPromise = reader.read() + + // 9. Let isFirstChunk be true. + let isFirstChunk = true + + // 10. In parallel, while true: + // Note: "In parallel" just means non-blocking + // Note 2: readOperation itself cannot be async as double + // reading the body would then reject the promise, instead + // of throwing an error. + ;(async () => { + while (!fr[kAborted]) { + // 1. Wait for chunkPromise to be fulfilled or rejected. + try { + const { done, value } = await chunkPromise + + // 2. If chunkPromise is fulfilled, and isFirstChunk is + // true, queue a task to fire a progress event called + // loadstart at fr. + if (isFirstChunk && !fr[kAborted]) { + queueMicrotask(() => { + fireAProgressEvent('loadstart', fr) + }) + } + + // 3. Set isFirstChunk to false. + isFirstChunk = false + + // 4. If chunkPromise is fulfilled with an object whose + // done property is false and whose value property is + // a Uint8Array object, run these steps: + if (!done && types.isUint8Array(value)) { + // 1. Let bs be the byte sequence represented by the + // Uint8Array object. + + // 2. Append bs to bytes. + bytes.push(value) + + // 3. If roughly 50ms have passed since these steps + // were last invoked, queue a task to fire a + // progress event called progress at fr. + if ( + ( + fr[kLastProgressEventFired] === undefined || + Date.now() - fr[kLastProgressEventFired] >= 50 + ) && + !fr[kAborted] + ) { + fr[kLastProgressEventFired] = Date.now() + queueMicrotask(() => { + fireAProgressEvent('progress', fr) + }) + } + + // 4. Set chunkPromise to the result of reading a + // chunk from stream with reader. + chunkPromise = reader.read() + } else if (done) { + // 5. Otherwise, if chunkPromise is fulfilled with an + // object whose done property is true, queue a task + // to run the following steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Let result be the result of package data given + // bytes, type, blob’s type, and encodingName. + try { + const result = packageData(bytes, type, blob.type, encodingName) + + // 4. Else: + + if (fr[kAborted]) { + return + } + + // 1. Set fr’s result to result. + fr[kResult] = result + + // 2. Fire a progress event called load at the fr. + fireAProgressEvent('load', fr) + } catch (error) { + // 3. If package data threw an exception error: + + // 1. Set fr’s error to error. + fr[kError] = error + + // 2. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + } + + // 5. If fr’s state is not "loading", fire a progress + // event called loadend at the fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } catch (error) { + if (fr[kAborted]) { + return + } + + // 6. Otherwise, if chunkPromise is rejected with an + // error error, queue a task to run the following + // steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Set fr’s error to error. + fr[kError] = error + + // 3. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + + // 4. If fr’s state is not "loading", fire a progress + // event called loadend at fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } + })() +} + +/** + * @see https://w3c.github.io/FileAPI/#fire-a-progress-event + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e The name of the event + * @param {import('./filereader').FileReader} reader + */ +function fireAProgressEvent (e, reader) { + // The progress event e does not bubble. e.bubbles must be false + // The progress event e is NOT cancelable. e.cancelable must be false + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false + }) + + reader.dispatchEvent(event) +} + +/** + * @see https://w3c.github.io/FileAPI/#blob-package-data + * @param {Uint8Array[]} bytes + * @param {string} type + * @param {string?} mimeType + * @param {string?} encodingName + */ +function packageData (bytes, type, mimeType, encodingName) { + // 1. A Blob has an associated package data algorithm, given + // bytes, a type, a optional mimeType, and a optional + // encodingName, which switches on type and runs the + // associated steps: + + switch (type) { + case 'DataURL': { + // 1. Return bytes as a DataURL [RFC2397] subject to + // the considerations below: + // * Use mimeType as part of the Data URL if it is + // available in keeping with the Data URL + // specification [RFC2397]. + // * If mimeType is not available return a Data URL + // without a media-type. [RFC2397]. + + // https://datatracker.ietf.org/doc/html/rfc2397#section-3 + // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data + // mediatype := [ type "/" subtype ] *( ";" parameter ) + // data := *urlchar + // parameter := attribute "=" value + let dataURL = 'data:' + + const parsed = parseMIMEType(mimeType || 'application/octet-stream') + + if (parsed !== 'failure') { + dataURL += serializeAMimeType(parsed) + } + + dataURL += ';base64,' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + dataURL += btoa(decoder.write(chunk)) + } + + dataURL += btoa(decoder.end()) + + return dataURL + } + case 'Text': { + // 1. Let encoding be failure + let encoding = 'failure' + + // 2. If the encodingName is present, set encoding to the + // result of getting an encoding from encodingName. + if (encodingName) { + encoding = getEncoding(encodingName) + } + + // 3. If encoding is failure, and mimeType is present: + if (encoding === 'failure' && mimeType) { + // 1. Let type be the result of parse a MIME type + // given mimeType. + const type = parseMIMEType(mimeType) + + // 2. If type is not failure, set encoding to the result + // of getting an encoding from type’s parameters["charset"]. + if (type !== 'failure') { + encoding = getEncoding(type.parameters.get('charset')) + } + } + + // 4. If encoding is failure, then set encoding to UTF-8. + if (encoding === 'failure') { + encoding = 'UTF-8' + } + + // 5. Decode bytes using fallback encoding encoding, and + // return the result. + return decode(bytes, encoding) + } + case 'ArrayBuffer': { + // Return a new ArrayBuffer whose contents are bytes. + const sequence = combineByteSequences(bytes) + + return sequence.buffer + } + case 'BinaryString': { + // Return bytes as a binary string, in which every byte + // is represented by a code unit of equal value [0..255]. + let binaryString = '' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + binaryString += decoder.write(chunk) + } + + binaryString += decoder.end() + + return binaryString + } + } +} + +/** + * @see https://encoding.spec.whatwg.org/#decode + * @param {Uint8Array[]} ioQueue + * @param {string} encoding + */ +function decode (ioQueue, encoding) { + const bytes = combineByteSequences(ioQueue) + + // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. + const BOMEncoding = BOMSniffing(bytes) + + let slice = 0 + + // 2. If BOMEncoding is non-null: + if (BOMEncoding !== null) { + // 1. Set encoding to BOMEncoding. + encoding = BOMEncoding + + // 2. Read three bytes from ioQueue, if BOMEncoding is + // UTF-8; otherwise read two bytes. + // (Do nothing with those bytes.) + slice = BOMEncoding === 'UTF-8' ? 3 : 2 + } + + // 3. Process a queue with an instance of encoding’s + // decoder, ioQueue, output, and "replacement". + + // 4. Return output. + + const sliced = bytes.slice(slice) + return new TextDecoder(encoding).decode(sliced) +} + +/** + * @see https://encoding.spec.whatwg.org/#bom-sniff + * @param {Uint8Array} ioQueue + */ +function BOMSniffing (ioQueue) { + // 1. Let BOM be the result of peeking 3 bytes from ioQueue, + // converted to a byte sequence. + const [a, b, c] = ioQueue + + // 2. For each of the rows in the table below, starting with + // the first one and going down, if BOM starts with the + // bytes given in the first column, then return the + // encoding given in the cell in the second column of that + // row. Otherwise, return null. + if (a === 0xEF && b === 0xBB && c === 0xBF) { + return 'UTF-8' + } else if (a === 0xFE && b === 0xFF) { + return 'UTF-16BE' + } else if (a === 0xFF && b === 0xFE) { + return 'UTF-16LE' + } + + return null +} + +/** + * @param {Uint8Array[]} sequences + */ +function combineByteSequences (sequences) { + const size = sequences.reduce((a, b) => { + return a + b.byteLength + }, 0) + + let offset = 0 + + return sequences.reduce((a, b) => { + a.set(b, offset) + offset += b.byteLength + return a + }, new Uint8Array(size)) +} + +module.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} + + +/***/ }), + +/***/ 6897: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = __nccwpck_require__(736) +const { + kReadyState, + kSentClose, + kByteParser, + kReceivedClose, + kResponse +} = __nccwpck_require__(1216) +const { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = __nccwpck_require__(8625) +const { channels } = __nccwpck_require__(2414) +const { CloseEvent } = __nccwpck_require__(5188) +const { makeRequest } = __nccwpck_require__(9967) +const { fetching } = __nccwpck_require__(4398) +const { Headers, getHeadersList } = __nccwpck_require__(660) +const { getDecodeSplit } = __nccwpck_require__(3168) +const { WebsocketFrameSend } = __nccwpck_require__(3264) + +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(7598) +/* c8 ignore next 3 */ +} catch { + +} + +/** + * @see https://websockets.spec.whatwg.org/#concept-websocket-establish + * @param {URL} url + * @param {string|string[]} protocols + * @param {import('./websocket').WebSocket} ws + * @param {(response: any, extensions: string[] | undefined) => void} onEstablish + * @param {Partial} options + */ +function establishWebSocketConnection (url, protocols, client, ws, onEstablish, options) { + // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s + // scheme is "ws", and to "https" otherwise. + const requestURL = url + + requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' + + // 2. Let request be a new request, whose URL is requestURL, client is client, + // service-workers mode is "none", referrer is "no-referrer", mode is + // "websocket", credentials mode is "include", cache mode is "no-store" , + // and redirect mode is "error". + const request = makeRequest({ + urlList: [requestURL], + client, + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error' + }) + + // Note: undici extension, allow setting custom headers. + if (options.headers) { + const headersList = getHeadersList(new Headers(options.headers)) + + request.headersList = headersList + } + + // 3. Append (`Upgrade`, `websocket`) to request’s header list. + // 4. Append (`Connection`, `Upgrade`) to request’s header list. + // Note: both of these are handled by undici currently. + // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 + + // 5. Let keyValue be a nonce consisting of a randomly selected + // 16-byte value that has been forgiving-base64-encoded and + // isomorphic encoded. + const keyValue = crypto.randomBytes(16).toString('base64') + + // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s + // header list. + request.headersList.append('sec-websocket-key', keyValue) + + // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s + // header list. + request.headersList.append('sec-websocket-version', '13') + + // 8. For each protocol in protocols, combine + // (`Sec-WebSocket-Protocol`, protocol) in request’s header + // list. + for (const protocol of protocols) { + request.headersList.append('sec-websocket-protocol', protocol) + } + + // 9. Let permessageDeflate be a user-agent defined + // "permessage-deflate" extension header value. + // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 + const permessageDeflate = 'permessage-deflate; client_max_window_bits' + + // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to + // request’s header list. + request.headersList.append('sec-websocket-extensions', permessageDeflate) + + // 11. Fetch request with useParallelQueue set to true, and + // processResponse given response being these steps: + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher, + processResponse (response) { + // 1. If response is a network error or its status is not 101, + // fail the WebSocket connection. + if (response.type === 'error' || response.status !== 101) { + failWebsocketConnection(ws, 'Received network error or non-101 status code.') + return + } + + // 2. If protocols is not the empty list and extracting header + // list values given `Sec-WebSocket-Protocol` and response’s + // header list results in null, failure, or the empty byte + // sequence, then fail the WebSocket connection. + if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) { + failWebsocketConnection(ws, 'Server did not respond with sent protocols.') + return + } + + // 3. Follow the requirements stated step 2 to step 6, inclusive, + // of the last set of steps in section 4.1 of The WebSocket + // Protocol to validate response. This either results in fail + // the WebSocket connection or the WebSocket connection is + // established. + + // 2. If the response lacks an |Upgrade| header field or the |Upgrade| + // header field contains a value that is not an ASCII case- + // insensitive match for the value "websocket", the client MUST + // _Fail the WebSocket Connection_. + if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { + failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".') + return + } + + // 3. If the response lacks a |Connection| header field or the + // |Connection| header field doesn't contain a token that is an + // ASCII case-insensitive match for the value "Upgrade", the client + // MUST _Fail the WebSocket Connection_. + if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { + failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".') + return + } + + // 4. If the response lacks a |Sec-WebSocket-Accept| header field or + // the |Sec-WebSocket-Accept| contains a value other than the + // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- + // Key| (as a string, not base64-decoded) with the string "258EAFA5- + // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and + // trailing whitespace, the client MUST _Fail the WebSocket + // Connection_. + const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') + const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64') + if (secWSAccept !== digest) { + failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.') + return + } + + // 5. If the response includes a |Sec-WebSocket-Extensions| header + // field and this header field indicates the use of an extension + // that was not present in the client's handshake (the server has + // indicated an extension not requested by the client), the client + // MUST _Fail the WebSocket Connection_. (The parsing of this + // header field to determine which extensions are requested is + // discussed in Section 9.1.) + const secExtension = response.headersList.get('Sec-WebSocket-Extensions') + let extensions + + if (secExtension !== null) { + extensions = parseExtensions(secExtension) + + if (!extensions.has('permessage-deflate')) { + failWebsocketConnection(ws, 'Sec-WebSocket-Extensions header does not match.') + return + } + } + + // 6. If the response includes a |Sec-WebSocket-Protocol| header field + // and this header field indicates the use of a subprotocol that was + // not present in the client's handshake (the server has indicated a + // subprotocol not requested by the client), the client MUST _Fail + // the WebSocket Connection_. + const secProtocol = response.headersList.get('Sec-WebSocket-Protocol') + + if (secProtocol !== null) { + const requestProtocols = getDecodeSplit('sec-websocket-protocol', request.headersList) + + // The client can request that the server use a specific subprotocol by + // including the |Sec-WebSocket-Protocol| field in its handshake. If it + // is specified, the server needs to include the same field and one of + // the selected subprotocol values in its response for the connection to + // be established. + if (!requestProtocols.includes(secProtocol)) { + failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') + return + } + } + + response.socket.on('data', onSocketData) + response.socket.on('close', onSocketClose) + response.socket.on('error', onSocketError) + + if (channels.open.hasSubscribers) { + channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }) + } + + onEstablish(response, extensions) + } + }) + + return controller +} + +function closeWebSocketConnection (ws, code, reason, reasonByteLength) { + if (isClosing(ws) || isClosed(ws)) { + // If this's ready state is CLOSING (2) or CLOSED (3) + // Do nothing. + } else if (!isEstablished(ws)) { + // If the WebSocket connection is not yet established + // Fail the WebSocket connection and set this's ready state + // to CLOSING (2). + failWebsocketConnection(ws, 'Connection was closed before it was established.') + ws[kReadyState] = states.CLOSING + } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { + // If the WebSocket closing handshake has not yet been started + // Start the WebSocket closing handshake and set this's ready + // state to CLOSING (2). + // - If neither code nor reason is present, the WebSocket Close + // message must not have a body. + // - If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + // - If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + + ws[kSentClose] = sentCloseFrameState.PROCESSING + + const frame = new WebsocketFrameSend() + + // If neither code nor reason is present, the WebSocket Close + // message must not have a body. + + // If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + if (code !== undefined && reason === undefined) { + frame.frameData = Buffer.allocUnsafe(2) + frame.frameData.writeUInt16BE(code, 0) + } else if (code !== undefined && reason !== undefined) { + // If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) + frame.frameData.writeUInt16BE(code, 0) + // the body MAY contain UTF-8-encoded data with value /reason/ + frame.frameData.write(reason, 2, 'utf-8') + } else { + frame.frameData = emptyBuffer + } + + /** @type {import('stream').Duplex} */ + const socket = ws[kResponse].socket + + socket.write(frame.createFrame(opcodes.CLOSE)) + + ws[kSentClose] = sentCloseFrameState.SENT + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + ws[kReadyState] = states.CLOSING + } else { + // Otherwise + // Set this's ready state to CLOSING (2). + ws[kReadyState] = states.CLOSING + } +} + +/** + * @param {Buffer} chunk + */ +function onSocketData (chunk) { + if (!this.ws[kByteParser].write(chunk)) { + this.pause() + } +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 + */ +function onSocketClose () { + const { ws } = this + const { [kResponse]: response } = ws + + response.socket.off('data', onSocketData) + response.socket.off('close', onSocketClose) + response.socket.off('error', onSocketError) + + // If the TCP connection was closed after the + // WebSocket closing handshake was completed, the WebSocket connection + // is said to have been closed _cleanly_. + const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose] + + let code = 1005 + let reason = '' + + const result = ws[kByteParser].closingInfo + + if (result && !result.error) { + code = result.code ?? 1005 + reason = result.reason + } else if (!ws[kReceivedClose]) { + // If _The WebSocket + // Connection is Closed_ and no Close control frame was received by the + // endpoint (such as could occur if the underlying transport connection + // is lost), _The WebSocket Connection Close Code_ is considered to be + // 1006. + code = 1006 + } + + // 1. Change the ready state to CLOSED (3). + ws[kReadyState] = states.CLOSED + + // 2. If the user agent was required to fail the WebSocket + // connection, or if the WebSocket connection was closed + // after being flagged as full, fire an event named error + // at the WebSocket object. + // TODO + + // 3. Fire an event named close at the WebSocket object, + // using CloseEvent, with the wasClean attribute + // initialized to true if the connection closed cleanly + // and false otherwise, the code attribute initialized to + // the WebSocket connection close code, and the reason + // attribute initialized to the result of applying UTF-8 + // decode without BOM to the WebSocket connection close + // reason. + // TODO: process.nextTick + fireEvent('close', ws, (type, init) => new CloseEvent(type, init), { + wasClean, code, reason + }) + + if (channels.close.hasSubscribers) { + channels.close.publish({ + websocket: ws, + code, + reason + }) + } +} + +function onSocketError (error) { + const { ws } = this + + ws[kReadyState] = states.CLOSING + + if (channels.socketError.hasSubscribers) { + channels.socketError.publish(error) + } + + this.destroy() +} + +module.exports = { + establishWebSocketConnection, + closeWebSocketConnection +} + + +/***/ }), + +/***/ 736: +/***/ ((module) => { + + + +// This is a Globally Unique Identifier unique used +// to validate that the endpoint accepts websocket +// connections. +// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 +const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +const states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 +} + +const sentCloseFrameState = { + NOT_SENT: 0, + PROCESSING: 1, + SENT: 2 +} + +const opcodes = { + CONTINUATION: 0x0, + TEXT: 0x1, + BINARY: 0x2, + CLOSE: 0x8, + PING: 0x9, + PONG: 0xA +} + +const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 + +const parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 +} + +const emptyBuffer = Buffer.allocUnsafe(0) + +const sendHints = { + string: 1, + typedArray: 2, + arrayBuffer: 3, + blob: 4 +} + +module.exports = { + uid, + sentCloseFrameState, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer, + sendHints +} + + +/***/ }), + +/***/ 5188: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(5893) +const { kEnumerableProperty } = __nccwpck_require__(3440) +const { kConstruct } = __nccwpck_require__(6443) +const { MessagePort } = __nccwpck_require__(5919) + +/** + * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent + */ +class MessageEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + if (type === kConstruct) { + super(arguments[1], arguments[2]) + webidl.util.markAsUncloneable(this) + return + } + + const prefix = 'MessageEvent constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + type = webidl.converters.DOMString(type, prefix, 'type') + eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, 'eventInitDict') + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + webidl.util.markAsUncloneable(this) + } + + get data () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.data + } + + get origin () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.origin + } + + get lastEventId () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.lastEventId + } + + get source () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.source + } + + get ports () { + webidl.brandCheck(this, MessageEvent) + + if (!Object.isFrozen(this.#eventInit.ports)) { + Object.freeze(this.#eventInit.ports) + } + + return this.#eventInit.ports + } + + initMessageEvent ( + type, + bubbles = false, + cancelable = false, + data = null, + origin = '', + lastEventId = '', + source = null, + ports = [] + ) { + webidl.brandCheck(this, MessageEvent) + + webidl.argumentLengthCheck(arguments, 1, 'MessageEvent.initMessageEvent') + + return new MessageEvent(type, { + bubbles, cancelable, data, origin, lastEventId, source, ports + }) + } + + static createFastMessageEvent (type, init) { + const messageEvent = new MessageEvent(kConstruct, type, init) + messageEvent.#eventInit = init + messageEvent.#eventInit.data ??= null + messageEvent.#eventInit.origin ??= '' + messageEvent.#eventInit.lastEventId ??= '' + messageEvent.#eventInit.source ??= null + messageEvent.#eventInit.ports ??= [] + return messageEvent + } +} + +const { createFastMessageEvent } = MessageEvent +delete MessageEvent.createFastMessageEvent + +/** + * @see https://websockets.spec.whatwg.org/#the-closeevent-interface + */ +class CloseEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + const prefix = 'CloseEvent constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + type = webidl.converters.DOMString(type, prefix, 'type') + eventInitDict = webidl.converters.CloseEventInit(eventInitDict) + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + webidl.util.markAsUncloneable(this) + } + + get wasClean () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.wasClean + } + + get code () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.code + } + + get reason () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.reason + } +} + +// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface +class ErrorEvent extends Event { + #eventInit + + constructor (type, eventInitDict) { + const prefix = 'ErrorEvent constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + super(type, eventInitDict) + webidl.util.markAsUncloneable(this) + + type = webidl.converters.DOMString(type, prefix, 'type') + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) + + this.#eventInit = eventInitDict + } + + get message () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.message + } + + get filename () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.filename + } + + get lineno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.lineno + } + + get colno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.colno + } + + get error () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.error + } +} + +Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: 'MessageEvent', + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty +}) + +Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: 'CloseEvent', + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty +}) + +Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: 'ErrorEvent', + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty +}) + +webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.MessagePort +) + +const eventInit = [ + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: () => false + } +] + +webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'data', + converter: webidl.converters.any, + defaultValue: () => null + }, + { + key: 'origin', + converter: webidl.converters.USVString, + defaultValue: () => '' + }, + { + key: 'lastEventId', + converter: webidl.converters.DOMString, + defaultValue: () => '' + }, + { + key: 'source', + // Node doesn't implement WindowProxy or ServiceWorker, so the only + // valid value for source is a MessagePort. + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: () => null + }, + { + key: 'ports', + converter: webidl.converters['sequence'], + defaultValue: () => new Array(0) + } +]) + +webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'wasClean', + converter: webidl.converters.boolean, + defaultValue: () => false + }, + { + key: 'code', + converter: webidl.converters['unsigned short'], + defaultValue: () => 0 + }, + { + key: 'reason', + converter: webidl.converters.USVString, + defaultValue: () => '' + } +]) + +webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'message', + converter: webidl.converters.DOMString, + defaultValue: () => '' + }, + { + key: 'filename', + converter: webidl.converters.USVString, + defaultValue: () => '' + }, + { + key: 'lineno', + converter: webidl.converters['unsigned long'], + defaultValue: () => 0 + }, + { + key: 'colno', + converter: webidl.converters['unsigned long'], + defaultValue: () => 0 + }, + { + key: 'error', + converter: webidl.converters.any + } +]) + +module.exports = { + MessageEvent, + CloseEvent, + ErrorEvent, + createFastMessageEvent +} + + +/***/ }), + +/***/ 3264: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { maxUnsigned16Bit } = __nccwpck_require__(736) + +const BUFFER_SIZE = 16386 + +/** @type {import('crypto')} */ +let crypto +let buffer = null +let bufIdx = BUFFER_SIZE + +try { + crypto = __nccwpck_require__(7598) +/* c8 ignore next 3 */ +} catch { + crypto = { + // not full compatibility, but minimum. + randomFillSync: function randomFillSync (buffer, _offset, _size) { + for (let i = 0; i < buffer.length; ++i) { + buffer[i] = Math.random() * 255 | 0 + } + return buffer + } + } +} + +function generateMask () { + if (bufIdx === BUFFER_SIZE) { + bufIdx = 0 + crypto.randomFillSync((buffer ??= Buffer.allocUnsafe(BUFFER_SIZE)), 0, BUFFER_SIZE) + } + return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]] +} + +class WebsocketFrameSend { + /** + * @param {Buffer|undefined} data + */ + constructor (data) { + this.frameData = data + } + + createFrame (opcode) { + const frameData = this.frameData + const maskKey = generateMask() + const bodyLength = frameData?.byteLength ?? 0 + + /** @type {number} */ + let payloadLength = bodyLength // 0-125 + let offset = 6 + + if (bodyLength > maxUnsigned16Bit) { + offset += 8 // payload length is next 8 bytes + payloadLength = 127 + } else if (bodyLength > 125) { + offset += 2 // payload length is next 2 bytes + payloadLength = 126 + } + + const buffer = Buffer.allocUnsafe(bodyLength + offset) + + // Clear first 2 bytes, everything else is overwritten + buffer[0] = buffer[1] = 0 + buffer[0] |= 0x80 // FIN + buffer[0] = (buffer[0] & 0xF0) + opcode // opcode + + /*! ws. MIT License. Einar Otto Stangvik */ + buffer[offset - 4] = maskKey[0] + buffer[offset - 3] = maskKey[1] + buffer[offset - 2] = maskKey[2] + buffer[offset - 1] = maskKey[3] + + buffer[1] = payloadLength + + if (payloadLength === 126) { + buffer.writeUInt16BE(bodyLength, 2) + } else if (payloadLength === 127) { + // Clear extended payload length + buffer[2] = buffer[3] = 0 + buffer.writeUIntBE(bodyLength, 4, 6) + } + + buffer[1] |= 0x80 // MASK + + // mask body + for (let i = 0; i < bodyLength; ++i) { + buffer[offset + i] = frameData[i] ^ maskKey[i & 3] + } + + return buffer + } +} + +module.exports = { + WebsocketFrameSend +} + + +/***/ }), + +/***/ 9469: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __nccwpck_require__(8522) +const { isValidClientWindowBits } = __nccwpck_require__(8625) +const { MessageSizeExceededError } = __nccwpck_require__(8707) + +const tail = Buffer.from([0x00, 0x00, 0xff, 0xff]) +const kBuffer = Symbol('kBuffer') +const kLength = Symbol('kLength') + +class PerMessageDeflate { + /** @type {import('node:zlib').InflateRaw} */ + #inflate + + #options = {} + + #maxPayloadSize = 0 + + /** + * @param {Map} extensions + */ + constructor (extensions, options) { + this.#options.serverNoContextTakeover = extensions.has('server_no_context_takeover') + this.#options.serverMaxWindowBits = extensions.get('server_max_window_bits') + + this.#maxPayloadSize = options.maxPayloadSize + } + + /** + * Decompress a compressed payload. + * @param {Buffer} chunk Compressed data + * @param {boolean} fin Final fragment flag + * @param {Function} callback Callback function + */ + decompress (chunk, fin, callback) { + // An endpoint uses the following algorithm to decompress a message. + // 1. Append 4 octets of 0x00 0x00 0xff 0xff to the tail end of the + // payload of the message. + // 2. Decompress the resulting data using DEFLATE. + if (!this.#inflate) { + let windowBits = Z_DEFAULT_WINDOWBITS + + if (this.#options.serverMaxWindowBits) { // empty values default to Z_DEFAULT_WINDOWBITS + if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) { + callback(new Error('Invalid server_max_window_bits')) + return + } + + windowBits = Number.parseInt(this.#options.serverMaxWindowBits) + } + + try { + this.#inflate = createInflateRaw({ windowBits }) + } catch (err) { + callback(err) + return + } + this.#inflate[kBuffer] = [] + this.#inflate[kLength] = 0 + + this.#inflate.on('data', (data) => { + this.#inflate[kLength] += data.length + + if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) { + callback(new MessageSizeExceededError()) + this.#inflate.removeAllListeners() + this.#inflate = null + return + } + + this.#inflate[kBuffer].push(data) + }) + + this.#inflate.on('error', (err) => { + this.#inflate = null + callback(err) + }) + } + + this.#inflate.write(chunk) + if (fin) { + this.#inflate.write(tail) + } + + this.#inflate.flush(() => { + if (!this.#inflate) { + return + } + + const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]) + + this.#inflate[kBuffer].length = 0 + this.#inflate[kLength] = 0 + + callback(null, full) + }) + } +} + +module.exports = { PerMessageDeflate } + + +/***/ }), + +/***/ 1652: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { Writable } = __nccwpck_require__(7075) +const assert = __nccwpck_require__(4589) +const { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = __nccwpck_require__(736) +const { kReadyState, kSentClose, kResponse, kReceivedClose } = __nccwpck_require__(1216) +const { channels } = __nccwpck_require__(2414) +const { + isValidStatusCode, + isValidOpcode, + failWebsocketConnection, + websocketMessageReceived, + utf8Decode, + isControlFrame, + isTextBinaryFrame, + isContinuationFrame +} = __nccwpck_require__(8625) +const { WebsocketFrameSend } = __nccwpck_require__(3264) +const { closeWebSocketConnection } = __nccwpck_require__(6897) +const { PerMessageDeflate } = __nccwpck_require__(9469) +const { MessageSizeExceededError } = __nccwpck_require__(8707) + +// This code was influenced by ws released under the MIT license. +// Copyright (c) 2011 Einar Otto Stangvik +// Copyright (c) 2013 Arnout Kazemier and contributors +// Copyright (c) 2016 Luigi Pinca and contributors + +class ByteParser extends Writable { + #buffers = [] + #fragmentsBytes = 0 + #byteOffset = 0 + #loop = false + + #state = parserStates.INFO + + #info = {} + #fragments = [] + + /** @type {Map} */ + #extensions + + /** @type {number} */ + #maxPayloadSize + + /** + * @param {import('./websocket').WebSocket} ws + * @param {Map|null} extensions + * @param {{ maxPayloadSize?: number }} [options] + */ + constructor (ws, extensions, options = {}) { + super() + + this.ws = ws + this.#extensions = extensions == null ? new Map() : extensions + this.#maxPayloadSize = options.maxPayloadSize ?? 0 + + if (this.#extensions.has('permessage-deflate')) { + this.#extensions.set('permessage-deflate', new PerMessageDeflate(extensions, options)) + } + } + + /** + * @param {Buffer} chunk + * @param {() => void} callback + */ + _write (chunk, _, callback) { + this.#buffers.push(chunk) + this.#byteOffset += chunk.length + this.#loop = true + + this.run(callback) + } + + #validatePayloadLength () { + if ( + this.#maxPayloadSize > 0 && + !isControlFrame(this.#info.opcode) && + this.#info.payloadLength > this.#maxPayloadSize + ) { + failWebsocketConnection(this.ws, 'Payload size exceeds maximum allowed size') + return false + } + + return true + } + + /** + * Runs whenever a new chunk is received. + * Callback is called whenever there are no more chunks buffering, + * or not enough bytes are buffered to parse. + */ + run (callback) { + while (this.#loop) { + if (this.#state === parserStates.INFO) { + // If there aren't enough bytes to parse the payload length, etc. + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + const fin = (buffer[0] & 0x80) !== 0 + const opcode = buffer[0] & 0x0F + const masked = (buffer[1] & 0x80) === 0x80 + + const fragmented = !fin && opcode !== opcodes.CONTINUATION + const payloadLength = buffer[1] & 0x7F + + const rsv1 = buffer[0] & 0x40 + const rsv2 = buffer[0] & 0x20 + const rsv3 = buffer[0] & 0x10 + + if (!isValidOpcode(opcode)) { + failWebsocketConnection(this.ws, 'Invalid opcode received') + return callback() + } + + if (masked) { + failWebsocketConnection(this.ws, 'Frame cannot be masked') + return callback() + } + + // MUST be 0 unless an extension is negotiated that defines meanings + // for non-zero values. If a nonzero value is received and none of + // the negotiated extensions defines the meaning of such a nonzero + // value, the receiving endpoint MUST _Fail the WebSocket + // Connection_. + // This document allocates the RSV1 bit of the WebSocket header for + // PMCEs and calls the bit the "Per-Message Compressed" bit. On a + // WebSocket connection where a PMCE is in use, this bit indicates + // whether a message is compressed or not. + if (rsv1 !== 0 && !this.#extensions.has('permessage-deflate')) { + failWebsocketConnection(this.ws, 'Expected RSV1 to be clear.') + return + } + + if (rsv2 !== 0 || rsv3 !== 0) { + failWebsocketConnection(this.ws, 'RSV1, RSV2, RSV3 must be clear') + return + } + + if (fragmented && !isTextBinaryFrame(opcode)) { + // Only text and binary frames can be fragmented + failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.') + return + } + + // If we are already parsing a text/binary frame and do not receive either + // a continuation frame or close frame, fail the connection. + if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) { + failWebsocketConnection(this.ws, 'Expected continuation frame') + return + } + + if (this.#info.fragmented && fragmented) { + // A fragmented frame can't be fragmented itself + failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.') + return + } + + // "All control frames MUST have a payload length of 125 bytes or less + // and MUST NOT be fragmented." + if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) { + failWebsocketConnection(this.ws, 'Control frame either too large or fragmented') + return + } + + if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) { + failWebsocketConnection(this.ws, 'Unexpected continuation frame') + return + } + + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength + this.#state = parserStates.READ_DATA + + if (!this.#validatePayloadLength()) { + return + } + } else if (payloadLength === 126) { + this.#state = parserStates.PAYLOADLENGTH_16 + } else if (payloadLength === 127) { + this.#state = parserStates.PAYLOADLENGTH_64 + } + + if (isTextBinaryFrame(opcode)) { + this.#info.binaryType = opcode + this.#info.compressed = rsv1 !== 0 + } + + this.#info.opcode = opcode + this.#info.masked = masked + this.#info.fin = fin + this.#info.fragmented = fragmented + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + + this.#info.payloadLength = buffer.readUInt16BE(0) + this.#state = parserStates.READ_DATA + + if (!this.#validatePayloadLength()) { + return + } + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) { + return callback() + } + + const buffer = this.consume(8) + const upper = buffer.readUInt32BE(0) + const lower = buffer.readUInt32BE(4) + + // 2^31 is the maximum bytes an arraybuffer can contain + // on 32-bit systems. Although, on 64-bit systems, this is + // 2^53-1 bytes. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e + if (upper !== 0 || lower > 2 ** 31 - 1) { + failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.') + return + } + + this.#info.payloadLength = lower + this.#state = parserStates.READ_DATA + + if (!this.#validatePayloadLength()) { + return + } + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) { + return callback() + } + + const body = this.consume(this.#info.payloadLength) + + if (isControlFrame(this.#info.opcode)) { + this.#loop = this.parseControlFrame(body) + this.#state = parserStates.INFO + } else { + if (!this.#info.compressed) { + this.writeFragments(body) + + if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { + failWebsocketConnection(this.ws, new MessageSizeExceededError().message) + return + } + + // If the frame is not fragmented, a message has been received. + // If the frame is fragmented, it will terminate with a fin bit set + // and an opcode of 0 (continuation), therefore we handle that when + // parsing continuation frames, not here. + if (!this.#info.fragmented && this.#info.fin) { + websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments()) + } + + this.#state = parserStates.INFO + } else { + this.#extensions.get('permessage-deflate').decompress( + body, + this.#info.fin, + (error, data) => { + if (error) { + failWebsocketConnection(this.ws, error.message) + return + } + + this.writeFragments(data) + + if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { + failWebsocketConnection(this.ws, new MessageSizeExceededError().message) + return + } + + if (!this.#info.fin) { + this.#state = parserStates.INFO + this.#loop = true + this.run(callback) + return + } + + websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments()) + + this.#loop = true + this.#state = parserStates.INFO + this.run(callback) + } + ) + + this.#loop = false + break + } + } + } + } + } + + /** + * Take n bytes from the buffered Buffers + * @param {number} n + * @returns {Buffer} + */ + consume (n) { + if (n > this.#byteOffset) { + throw new Error('Called consume() before buffers satiated.') + } else if (n === 0) { + return emptyBuffer + } + + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length + return this.#buffers.shift() + } + + const buffer = Buffer.allocUnsafe(n) + let offset = 0 + + while (offset !== n) { + const next = this.#buffers[0] + const { length } = next + + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset) + break + } else if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset) + this.#buffers[0] = next.subarray(n - offset) + break + } else { + buffer.set(this.#buffers.shift(), offset) + offset += next.length + } + } + + this.#byteOffset -= n + + return buffer + } + + writeFragments (fragment) { + this.#fragmentsBytes += fragment.length + this.#fragments.push(fragment) + } + + consumeFragments () { + const fragments = this.#fragments + + if (fragments.length === 1) { + this.#fragmentsBytes = 0 + return fragments.shift() + } + + const output = Buffer.concat(fragments, this.#fragmentsBytes) + this.#fragments = [] + this.#fragmentsBytes = 0 + + return output + } + + parseCloseBody (data) { + assert(data.length !== 1) + + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 + /** @type {number|undefined} */ + let code + + if (data.length >= 2) { + // _The WebSocket Connection Close Code_ is + // defined as the status code (Section 7.4) contained in the first Close + // control frame received by the application + code = data.readUInt16BE(0) + } + + if (code !== undefined && !isValidStatusCode(code)) { + return { code: 1002, reason: 'Invalid status code', error: true } + } + + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 + /** @type {Buffer} */ + let reason = data.subarray(2) + + // Remove BOM + if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) { + reason = reason.subarray(3) + } + + try { + reason = utf8Decode(reason) + } catch { + return { code: 1007, reason: 'Invalid UTF-8', error: true } + } + + return { code, reason, error: false } + } + + /** + * Parses control frames. + * @param {Buffer} body + */ + parseControlFrame (body) { + const { opcode, payloadLength } = this.#info + + if (opcode === opcodes.CLOSE) { + if (payloadLength === 1) { + failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.') + return false + } + + this.#info.closeInfo = this.parseCloseBody(body) + + if (this.#info.closeInfo.error) { + const { code, reason } = this.#info.closeInfo + + closeWebSocketConnection(this.ws, code, reason, reason.length) + failWebsocketConnection(this.ws, reason) + return false + } + + if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { + // If an endpoint receives a Close frame and did not previously send a + // Close frame, the endpoint MUST send a Close frame in response. (When + // sending a Close frame in response, the endpoint typically echos the + // status code it received.) + let body = emptyBuffer + if (this.#info.closeInfo.code) { + body = Buffer.allocUnsafe(2) + body.writeUInt16BE(this.#info.closeInfo.code, 0) + } + const closeFrame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write( + closeFrame.createFrame(opcodes.CLOSE), + (err) => { + if (!err) { + this.ws[kSentClose] = sentCloseFrameState.SENT + } + } + ) + } + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this.ws[kReadyState] = states.CLOSING + this.ws[kReceivedClose] = true + + return false + } else if (opcode === opcodes.PING) { + // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in + // response, unless it already received a Close frame. + // A Pong frame sent in response to a Ping frame must have identical + // "Application data" + + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)) + + if (channels.ping.hasSubscribers) { + channels.ping.publish({ + payload: body + }) + } + } + } else if (opcode === opcodes.PONG) { + // A Pong frame MAY be sent unsolicited. This serves as a + // unidirectional heartbeat. A response to an unsolicited Pong frame is + // not expected. + + if (channels.pong.hasSubscribers) { + channels.pong.publish({ + payload: body + }) + } + } + + return true + } + + get closingInfo () { + return this.#info.closeInfo + } +} + +module.exports = { + ByteParser +} + + +/***/ }), + +/***/ 3900: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { WebsocketFrameSend } = __nccwpck_require__(3264) +const { opcodes, sendHints } = __nccwpck_require__(736) +const FixedQueue = __nccwpck_require__(4660) + +/** @type {typeof Uint8Array} */ +const FastBuffer = Buffer[Symbol.species] + +/** + * @typedef {object} SendQueueNode + * @property {Promise | null} promise + * @property {((...args: any[]) => any)} callback + * @property {Buffer | null} frame + */ + +class SendQueue { + /** + * @type {FixedQueue} + */ + #queue = new FixedQueue() + + /** + * @type {boolean} + */ + #running = false + + /** @type {import('node:net').Socket} */ + #socket + + constructor (socket) { + this.#socket = socket + } + + add (item, cb, hint) { + if (hint !== sendHints.blob) { + const frame = createFrame(item, hint) + if (!this.#running) { + // fast-path + this.#socket.write(frame, cb) + } else { + /** @type {SendQueueNode} */ + const node = { + promise: null, + callback: cb, + frame + } + this.#queue.push(node) + } + return + } + + /** @type {SendQueueNode} */ + const node = { + promise: item.arrayBuffer().then((ab) => { + node.promise = null + node.frame = createFrame(ab, hint) + }), + callback: cb, + frame: null + } + + this.#queue.push(node) + + if (!this.#running) { + this.#run() + } + } + + async #run () { + this.#running = true + const queue = this.#queue + while (!queue.isEmpty()) { + const node = queue.shift() + // wait pending promise + if (node.promise !== null) { + await node.promise + } + // write + this.#socket.write(node.frame, node.callback) + // cleanup + node.callback = node.frame = null + } + this.#running = false + } +} + +function createFrame (data, hint) { + return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY) +} + +function toBuffer (data, hint) { + switch (hint) { + case sendHints.string: + return Buffer.from(data) + case sendHints.arrayBuffer: + case sendHints.blob: + return new FastBuffer(data) + case sendHints.typedArray: + return new FastBuffer(data.buffer, data.byteOffset, data.byteLength) + } +} + +module.exports = { SendQueue } + + +/***/ }), + +/***/ 1216: +/***/ ((module) => { + + + +module.exports = { + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser') +} + + +/***/ }), + +/***/ 8625: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __nccwpck_require__(1216) +const { states, opcodes } = __nccwpck_require__(736) +const { ErrorEvent, createFastMessageEvent } = __nccwpck_require__(5188) +const { isUtf8 } = __nccwpck_require__(4573) +const { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = __nccwpck_require__(1900) + +/* globals Blob */ + +/** + * @param {import('./websocket').WebSocket} ws + * @returns {boolean} + */ +function isConnecting (ws) { + // If the WebSocket connection is not yet established, and the connection + // is not yet closed, then the WebSocket connection is in the CONNECTING state. + return ws[kReadyState] === states.CONNECTING +} + +/** + * @param {import('./websocket').WebSocket} ws + * @returns {boolean} + */ +function isEstablished (ws) { + // If the server's response is validated as provided for above, it is + // said that _The WebSocket Connection is Established_ and that the + // WebSocket Connection is in the OPEN state. + return ws[kReadyState] === states.OPEN +} + +/** + * @param {import('./websocket').WebSocket} ws + * @returns {boolean} + */ +function isClosing (ws) { + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + return ws[kReadyState] === states.CLOSING +} + +/** + * @param {import('./websocket').WebSocket} ws + * @returns {boolean} + */ +function isClosed (ws) { + return ws[kReadyState] === states.CLOSED +} + +/** + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e + * @param {EventTarget} target + * @param {(...args: ConstructorParameters) => Event} eventFactory + * @param {EventInit | undefined} eventInitDict + */ +function fireEvent (e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) { + // 1. If eventConstructor is not given, then let eventConstructor be Event. + + // 2. Let event be the result of creating an event given eventConstructor, + // in the relevant realm of target. + // 3. Initialize event’s type attribute to e. + const event = eventFactory(e, eventInitDict) + + // 4. Initialize any other IDL attributes of event as described in the + // invocation of this algorithm. + + // 5. Return the result of dispatching event at target, with legacy target + // override flag set if set. + target.dispatchEvent(event) +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @param {import('./websocket').WebSocket} ws + * @param {number} type Opcode + * @param {Buffer} data application data + */ +function websocketMessageReceived (ws, type, data) { + // 1. If ready state is not OPEN (1), then return. + if (ws[kReadyState] !== states.OPEN) { + return + } + + // 2. Let dataForEvent be determined by switching on type and binary type: + let dataForEvent + + if (type === opcodes.TEXT) { + // -> type indicates that the data is Text + // a new DOMString containing data + try { + dataForEvent = utf8Decode(data) + } catch { + failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') + return + } + } else if (type === opcodes.BINARY) { + if (ws[kBinaryType] === 'blob') { + // -> type indicates that the data is Binary and binary type is "blob" + // a new Blob object, created in the relevant Realm of the WebSocket + // object, that represents data as its raw data + dataForEvent = new Blob([data]) + } else { + // -> type indicates that the data is Binary and binary type is "arraybuffer" + // a new ArrayBuffer object, created in the relevant Realm of the + // WebSocket object, whose contents are data + dataForEvent = toArrayBuffer(data) + } + } + + // 3. Fire an event named message at the WebSocket object, using MessageEvent, + // with the origin attribute initialized to the serialization of the WebSocket + // object’s url's origin, and the data attribute initialized to dataForEvent. + fireEvent('message', ws, createFastMessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }) +} + +function toArrayBuffer (buffer) { + if (buffer.byteLength === buffer.buffer.byteLength) { + return buffer.buffer + } + return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength) +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455 + * @see https://datatracker.ietf.org/doc/html/rfc2616 + * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 + * @param {string} protocol + */ +function isValidSubprotocol (protocol) { + // If present, this value indicates one + // or more comma-separated subprotocol the client wishes to speak, + // ordered by preference. The elements that comprise this value + // MUST be non-empty strings with characters in the range U+0021 to + // U+007E not including separator characters as defined in + // [RFC2616] and MUST all be unique strings. + if (protocol.length === 0) { + return false + } + + for (let i = 0; i < protocol.length; ++i) { + const code = protocol.charCodeAt(i) + + if ( + code < 0x21 || // CTL, contains SP (0x20) and HT (0x09) + code > 0x7E || + code === 0x22 || // " + code === 0x28 || // ( + code === 0x29 || // ) + code === 0x2C || // , + code === 0x2F || // / + code === 0x3A || // : + code === 0x3B || // ; + code === 0x3C || // < + code === 0x3D || // = + code === 0x3E || // > + code === 0x3F || // ? + code === 0x40 || // @ + code === 0x5B || // [ + code === 0x5C || // \ + code === 0x5D || // ] + code === 0x7B || // { + code === 0x7D // } + ) { + return false + } + } + + return true +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 + * @param {number} code + */ +function isValidStatusCode (code) { + if (code >= 1000 && code < 1015) { + return ( + code !== 1004 && // reserved + code !== 1005 && // "MUST NOT be set as a status code" + code !== 1006 // "MUST NOT be set as a status code" + ) + } + + return code >= 3000 && code <= 4999 +} + +/** + * @param {import('./websocket').WebSocket} ws + * @param {string|undefined} reason + */ +function failWebsocketConnection (ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws + + controller.abort() + + if (response?.socket && !response.socket.destroyed) { + response.socket.destroy() + } + + if (reason) { + // TODO: process.nextTick + fireEvent('error', ws, (type, init) => new ErrorEvent(type, init), { + error: new Error(reason), + message: reason + }) + } +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-5.5 + * @param {number} opcode + */ +function isControlFrame (opcode) { + return ( + opcode === opcodes.CLOSE || + opcode === opcodes.PING || + opcode === opcodes.PONG + ) +} + +function isContinuationFrame (opcode) { + return opcode === opcodes.CONTINUATION +} + +function isTextBinaryFrame (opcode) { + return opcode === opcodes.TEXT || opcode === opcodes.BINARY +} + +function isValidOpcode (opcode) { + return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode) +} + +/** + * Parses a Sec-WebSocket-Extensions header value. + * @param {string} extensions + * @returns {Map} + */ +// TODO(@Uzlopak, @KhafraDev): make compliant https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 +function parseExtensions (extensions) { + const position = { position: 0 } + const extensionList = new Map() + + while (position.position < extensions.length) { + const pair = collectASequenceOfCodePointsFast(';', extensions, position) + const [name, value = ''] = pair.split('=') + + extensionList.set( + removeHTTPWhitespace(name, true, false), + removeHTTPWhitespace(value, false, true) + ) + + position.position++ + } + + return extensionList +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc7692#section-7.1.2.2 + * @description "client-max-window-bits = 1*DIGIT" + * @param {string} value + */ +function isValidClientWindowBits (value) { + // Must have at least one character + if (value.length === 0) { + return false + } + + // Check all characters are ASCII digits + for (let i = 0; i < value.length; i++) { + const byte = value.charCodeAt(i) + + if (byte < 0x30 || byte > 0x39) { + return false + } + } + + // Check numeric range: zlib requires windowBits in range 8-15 + const num = Number.parseInt(value, 10) + return num >= 8 && num <= 15 +} + +// https://nodejs.org/api/intl.html#detecting-internationalization-support +const hasIntl = typeof process.versions.icu === 'string' +const fatalDecoder = hasIntl ? new TextDecoder('utf-8', { fatal: true }) : undefined + +/** + * Converts a Buffer to utf-8, even on platforms without icu. + * @param {Buffer} buffer + */ +const utf8Decode = hasIntl + ? fatalDecoder.decode.bind(fatalDecoder) + : function (buffer) { + if (isUtf8(buffer)) { + return buffer.toString('utf-8') + } + throw new TypeError('Invalid utf-8 received.') + } + +module.exports = { + isConnecting, + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived, + utf8Decode, + isControlFrame, + isContinuationFrame, + isTextBinaryFrame, + isValidOpcode, + parseExtensions, + isValidClientWindowBits +} + + +/***/ }), + +/***/ 3726: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + + +const { webidl } = __nccwpck_require__(5893) +const { URLSerializer } = __nccwpck_require__(1900) +const { environmentSettingsObject } = __nccwpck_require__(3168) +const { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = __nccwpck_require__(736) +const { + kWebSocketURL, + kReadyState, + kController, + kBinaryType, + kResponse, + kSentClose, + kByteParser +} = __nccwpck_require__(1216) +const { + isConnecting, + isEstablished, + isClosing, + isValidSubprotocol, + fireEvent +} = __nccwpck_require__(8625) +const { establishWebSocketConnection, closeWebSocketConnection } = __nccwpck_require__(6897) +const { ByteParser } = __nccwpck_require__(1652) +const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(3440) +const { getGlobalDispatcher } = __nccwpck_require__(2581) +const { types } = __nccwpck_require__(7975) +const { ErrorEvent, CloseEvent } = __nccwpck_require__(5188) +const { SendQueue } = __nccwpck_require__(3900) + +// https://websockets.spec.whatwg.org/#interface-definition +class WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + } + + #bufferedAmount = 0 + #protocol = '' + #extensions = '' + + /** @type {SendQueue} */ + #sendQueue + + /** + * @param {string} url + * @param {string|string[]} protocols + */ + constructor (url, protocols = []) { + super() + + webidl.util.markAsUncloneable(this) + + const prefix = 'WebSocket constructor' + webidl.argumentLengthCheck(arguments, 1, prefix) + + const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols, prefix, 'options') + + url = webidl.converters.USVString(url, prefix, 'url') + protocols = options.protocols + + // 1. Let baseURL be this's relevant settings object's API base URL. + const baseURL = environmentSettingsObject.settingsObject.baseUrl + + // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. + let urlRecord + + try { + urlRecord = new URL(url, baseURL) + } catch (e) { + // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. + throw new DOMException(e, 'SyntaxError') + } + + // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". + if (urlRecord.protocol === 'http:') { + urlRecord.protocol = 'ws:' + } else if (urlRecord.protocol === 'https:') { + // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". + urlRecord.protocol = 'wss:' + } + + // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. + if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { + throw new DOMException( + `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, + 'SyntaxError' + ) + } + + // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" + // DOMException. + if (urlRecord.hash || urlRecord.href.endsWith('#')) { + throw new DOMException('Got fragment', 'SyntaxError') + } + + // 8. If protocols is a string, set protocols to a sequence consisting + // of just that string. + if (typeof protocols === 'string') { + protocols = [protocols] + } + + // 9. If any of the values in protocols occur more than once or otherwise + // fail to match the requirements for elements that comprise the value + // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket + // protocol, then throw a "SyntaxError" DOMException. + if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + // 10. Set this's url to urlRecord. + this[kWebSocketURL] = new URL(urlRecord.href) + + // 11. Let client be this's relevant settings object. + const client = environmentSettingsObject.settingsObject + + // 12. Run this step in parallel: + + // 1. Establish a WebSocket connection given urlRecord, protocols, + // and client. + this[kController] = establishWebSocketConnection( + urlRecord, + protocols, + client, + this, + (response, extensions) => this.#onConnectionEstablished(response, extensions), + options + ) + + // Each WebSocket object has an associated ready state, which is a + // number representing the state of the connection. Initially it must + // be CONNECTING (0). + this[kReadyState] = WebSocket.CONNECTING + + this[kSentClose] = sentCloseFrameState.NOT_SENT + + // The extensions attribute must initially return the empty string. + + // The protocol attribute must initially return the empty string. + + // Each WebSocket object has an associated binary type, which is a + // BinaryType. Initially it must be "blob". + this[kBinaryType] = 'blob' + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-close + * @param {number|undefined} code + * @param {string|undefined} reason + */ + close (code = undefined, reason = undefined) { + webidl.brandCheck(this, WebSocket) + + const prefix = 'WebSocket.close' + + if (code !== undefined) { + code = webidl.converters['unsigned short'](code, prefix, 'code', { clamp: true }) + } + + if (reason !== undefined) { + reason = webidl.converters.USVString(reason, prefix, 'reason') + } + + // 1. If code is present, but is neither an integer equal to 1000 nor an + // integer in the range 3000 to 4999, inclusive, throw an + // "InvalidAccessError" DOMException. + if (code !== undefined) { + if (code !== 1000 && (code < 3000 || code > 4999)) { + throw new DOMException('invalid code', 'InvalidAccessError') + } + } + + let reasonByteLength = 0 + + // 2. If reason is present, then run these substeps: + if (reason !== undefined) { + // 1. Let reasonBytes be the result of encoding reason. + // 2. If reasonBytes is longer than 123 bytes, then throw a + // "SyntaxError" DOMException. + reasonByteLength = Buffer.byteLength(reason) + + if (reasonByteLength > 123) { + throw new DOMException( + `Reason must be less than 123 bytes; received ${reasonByteLength}`, + 'SyntaxError' + ) + } + } + + // 3. Run the first matching steps from the following list: + closeWebSocketConnection(this, code, reason, reasonByteLength) + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-send + * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data + */ + send (data) { + webidl.brandCheck(this, WebSocket) + + const prefix = 'WebSocket.send' + webidl.argumentLengthCheck(arguments, 1, prefix) + + data = webidl.converters.WebSocketSendData(data, prefix, 'data') + + // 1. If this's ready state is CONNECTING, then throw an + // "InvalidStateError" DOMException. + if (isConnecting(this)) { + throw new DOMException('Sent before connected.', 'InvalidStateError') + } + + // 2. Run the appropriate set of steps from the following list: + // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 + // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 + + if (!isEstablished(this) || isClosing(this)) { + return + } + + // If data is a string + if (typeof data === 'string') { + // If the WebSocket connection is established and the WebSocket + // closing handshake has not yet started, then the user agent + // must send a WebSocket Message comprised of the data argument + // using a text frame opcode; if the data cannot be sent, e.g. + // because it would need to be buffered but the buffer is full, + // the user agent must flag the WebSocket as full and then close + // the WebSocket connection. Any invocation of this method with a + // string argument that does not throw an exception must increase + // the bufferedAmount attribute by the number of bytes needed to + // express the argument as UTF-8. + + const length = Buffer.byteLength(data) + + this.#bufferedAmount += length + this.#sendQueue.add(data, () => { + this.#bufferedAmount -= length + }, sendHints.string) + } else if (types.isArrayBuffer(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need + // to be buffered but the buffer is full, the user agent must flag + // the WebSocket as full and then close the WebSocket connection. + // The data to be sent is the data stored in the buffer described + // by the ArrayBuffer object. Any invocation of this method with an + // ArrayBuffer argument that does not throw an exception must + // increase the bufferedAmount attribute by the length of the + // ArrayBuffer in bytes. + + this.#bufferedAmount += data.byteLength + this.#sendQueue.add(data, () => { + this.#bufferedAmount -= data.byteLength + }, sendHints.arrayBuffer) + } else if (ArrayBuffer.isView(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The + // data to be sent is the data stored in the section of the buffer + // described by the ArrayBuffer object that data references. Any + // invocation of this method with this kind of argument that does + // not throw an exception must increase the bufferedAmount attribute + // by the length of data’s buffer in bytes. + + this.#bufferedAmount += data.byteLength + this.#sendQueue.add(data, () => { + this.#bufferedAmount -= data.byteLength + }, sendHints.typedArray) + } else if (isBlobLike(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The data + // to be sent is the raw data represented by the Blob object. Any + // invocation of this method with a Blob argument that does not throw + // an exception must increase the bufferedAmount attribute by the size + // of the Blob object’s raw data, in bytes. + + this.#bufferedAmount += data.size + this.#sendQueue.add(data, () => { + this.#bufferedAmount -= data.size + }, sendHints.blob) + } + } + + get readyState () { + webidl.brandCheck(this, WebSocket) + + // The readyState getter steps are to return this's ready state. + return this[kReadyState] + } + + get bufferedAmount () { + webidl.brandCheck(this, WebSocket) + + return this.#bufferedAmount + } + + get url () { + webidl.brandCheck(this, WebSocket) + + // The url getter steps are to return this's url, serialized. + return URLSerializer(this[kWebSocketURL]) + } + + get extensions () { + webidl.brandCheck(this, WebSocket) + + return this.#extensions + } + + get protocol () { + webidl.brandCheck(this, WebSocket) + + return this.#protocol + } + + get onopen () { + webidl.brandCheck(this, WebSocket) + + return this.#events.open + } + + set onopen (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.open) { + this.removeEventListener('open', this.#events.open) + } + + if (typeof fn === 'function') { + this.#events.open = fn + this.addEventListener('open', fn) + } else { + this.#events.open = null + } + } + + get onerror () { + webidl.brandCheck(this, WebSocket) + + return this.#events.error + } + + set onerror (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.error) { + this.removeEventListener('error', this.#events.error) + } + + if (typeof fn === 'function') { + this.#events.error = fn + this.addEventListener('error', fn) + } else { + this.#events.error = null + } + } + + get onclose () { + webidl.brandCheck(this, WebSocket) + + return this.#events.close + } + + set onclose (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.close) { + this.removeEventListener('close', this.#events.close) + } + + if (typeof fn === 'function') { + this.#events.close = fn + this.addEventListener('close', fn) + } else { + this.#events.close = null + } + } + + get onmessage () { + webidl.brandCheck(this, WebSocket) + + return this.#events.message + } + + set onmessage (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.message) { + this.removeEventListener('message', this.#events.message) + } + + if (typeof fn === 'function') { + this.#events.message = fn + this.addEventListener('message', fn) + } else { + this.#events.message = null + } + } + + get binaryType () { + webidl.brandCheck(this, WebSocket) + + return this[kBinaryType] + } + + set binaryType (type) { + webidl.brandCheck(this, WebSocket) + + if (type !== 'blob' && type !== 'arraybuffer') { + this[kBinaryType] = 'blob' + } else { + this[kBinaryType] = type + } + } + + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + */ + #onConnectionEstablished (response, parsedExtensions) { + // processResponse is called when the "response's header list has been received and initialized." + // once this happens, the connection is open + this[kResponse] = response + + const maxPayloadSize = this[kController]?.dispatcher?.webSocketOptions?.maxPayloadSize + + const parser = new ByteParser(this, parsedExtensions, { + maxPayloadSize + }) + parser.on('drain', onParserDrain) + parser.on('error', onParserError.bind(this)) + + response.socket.ws = this + this[kByteParser] = parser + + this.#sendQueue = new SendQueue(response.socket) + + // 1. Change the ready state to OPEN (1). + this[kReadyState] = states.OPEN + + // 2. Change the extensions attribute’s value to the extensions in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 + const extensions = response.headersList.get('sec-websocket-extensions') + + if (extensions !== null) { + this.#extensions = extensions + } + + // 3. Change the protocol attribute’s value to the subprotocol in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 + const protocol = response.headersList.get('sec-websocket-protocol') + + if (protocol !== null) { + this.#protocol = protocol + } + + // 4. Fire an event named open at the WebSocket object. + fireEvent('open', this) + } +} + +// https://websockets.spec.whatwg.org/#dom-websocket-connecting +WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING +// https://websockets.spec.whatwg.org/#dom-websocket-open +WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN +// https://websockets.spec.whatwg.org/#dom-websocket-closing +WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING +// https://websockets.spec.whatwg.org/#dom-websocket-closed +WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED + +Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'WebSocket', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors +}) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.DOMString +) + +webidl.converters['DOMString or sequence'] = function (V, prefix, argument) { + if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { + return webidl.converters['sequence'](V) + } + + return webidl.converters.DOMString(V, prefix, argument) +} + +// This implements the proposal made in https://github.com/whatwg/websockets/issues/42 +webidl.converters.WebSocketInit = webidl.dictionaryConverter([ + { + key: 'protocols', + converter: webidl.converters['DOMString or sequence'], + defaultValue: () => new Array(0) + }, + { + key: 'dispatcher', + converter: webidl.converters.any, + defaultValue: () => getGlobalDispatcher() + }, + { + key: 'headers', + converter: webidl.nullableConverter(webidl.converters.HeadersInit) + } +]) + +webidl.converters['DOMString or sequence or WebSocketInit'] = function (V) { + if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { + return webidl.converters.WebSocketInit(V) + } + + return { protocols: webidl.converters['DOMString or sequence'](V) } +} + +webidl.converters.WebSocketSendData = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { + return webidl.converters.BufferSource(V) + } + } + + return webidl.converters.USVString(V) +} + +function onParserDrain () { + this.ws[kResponse].socket.resume() +} + +function onParserError (err) { + let message + let code + + if (err instanceof CloseEvent) { + message = err.reason + code = err.code + } else { + message = err.message + } + + fireEvent('error', this, () => new ErrorEvent('error', { error: err, message })) + + closeWebSocketConnection(this, code) +} + +module.exports = { + WebSocket +} + + +/***/ }), + +/***/ 75: +/***/ ((module) => { + +module.exports = eval("require")("supports-color"); + + +/***/ }), + +/***/ 2613: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("assert"); + +/***/ }), + +/***/ 6982: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("crypto"); + +/***/ }), + +/***/ 4434: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("events"); + +/***/ }), + +/***/ 9896: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs"); + +/***/ }), + +/***/ 8611: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http"); + +/***/ }), + +/***/ 5692: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("https"); + +/***/ }), + +/***/ 9278: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("net"); + +/***/ }), + +/***/ 4589: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:assert"); + +/***/ }), + +/***/ 6698: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:async_hooks"); + +/***/ }), + +/***/ 4573: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:buffer"); + +/***/ }), + +/***/ 7540: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:console"); + +/***/ }), + +/***/ 7598: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:crypto"); + +/***/ }), + +/***/ 3053: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:diagnostics_channel"); + +/***/ }), + +/***/ 610: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:dns"); + +/***/ }), + +/***/ 8474: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:events"); + +/***/ }), + +/***/ 7067: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:http"); + +/***/ }), + +/***/ 2467: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:http2"); + +/***/ }), + +/***/ 7030: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:net"); + +/***/ }), + +/***/ 643: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:perf_hooks"); + +/***/ }), + +/***/ 1792: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:querystring"); + +/***/ }), + +/***/ 7075: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:stream"); + +/***/ }), + +/***/ 1692: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:tls"); + +/***/ }), + +/***/ 3136: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:url"); + +/***/ }), + +/***/ 7975: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util"); + +/***/ }), + +/***/ 3429: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:util/types"); + +/***/ }), + +/***/ 5919: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:worker_threads"); + +/***/ }), + +/***/ 8522: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:zlib"); + +/***/ }), + +/***/ 6928: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("path"); + +/***/ }), + +/***/ 2203: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("stream"); + +/***/ }), + +/***/ 3193: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("string_decoder"); + +/***/ }), + +/***/ 4756: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("tls"); + +/***/ }), + +/***/ 2018: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("tty"); + +/***/ }), + +/***/ 7016: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("url"); + +/***/ }), + +/***/ 9023: +/***/ ((module) => { + +module.exports = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("util"); + +/***/ }), + +/***/ 1813: +/***/ ((module) => { + +module.exports = /*#__PURE__*/JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ (() => { +/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __nccwpck_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __nccwpck_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); +/******/ } +/******/ def['default'] = () => (value); +/******/ __nccwpck_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __nccwpck_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__nccwpck_require__.o(definition, key) && !__nccwpck_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __nccwpck_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __nccwpck_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = new URL('.', import.meta.url).pathname.slice(import.meta.url.match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/"; +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; + +// NAMESPACE OBJECT: ./node_modules/axios/lib/platform/common/utils.js +var common_utils_namespaceObject = {}; +__nccwpck_require__.r(common_utils_namespaceObject); +__nccwpck_require__.d(common_utils_namespaceObject, { + hasBrowserEnv: () => (hasBrowserEnv), + hasStandardBrowserEnv: () => (hasStandardBrowserEnv), + hasStandardBrowserWebWorkerEnv: () => (hasStandardBrowserWebWorkerEnv), + navigator: () => (_navigator), + origin: () => (origin) +}); + +;// CONCATENATED MODULE: external "os" +const external_os_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("os"); +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/utils.js +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function utils_toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function utils_toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; +} +//# sourceMappingURL=utils.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/command.js + + +/** + * Issues a command to the GitHub Actions runner + * + * @param command - The command name to issue + * @param properties - Additional properties for the command (key-value pairs) + * @param message - The message to include with the command + * @remarks + * This function outputs a specially formatted string to stdout that the Actions + * runner interprets as a command. These commands can control workflow behavior, + * set outputs, create annotations, mask values, and more. + * + * Command Format: + * ::name key=value,key=value::message + * + * @example + * ```typescript + * // Issue a warning annotation + * issueCommand('warning', {}, 'This is a warning message'); + * // Output: ::warning::This is a warning message + * + * // Set an environment variable + * issueCommand('set-env', { name: 'MY_VAR' }, 'some value'); + * // Output: ::set-env name=MY_VAR::some value + * + * // Add a secret mask + * issueCommand('add-mask', {}, 'secretValue123'); + * // Output: ::add-mask::secretValue123 + * ``` + * + * @internal + * This is an internal utility function that powers the public API functions + * such as setSecret, warning, error, and exportVariable. + */ +function command_issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + external_os_namespaceObject.EOL); +} +function command_issue(name, message = '') { + command_issueCommand(name, {}, message); +} +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map +// EXTERNAL MODULE: external "crypto" +var external_crypto_ = __nccwpck_require__(6982); +// EXTERNAL MODULE: external "fs" +var external_fs_ = __nccwpck_require__(9896); +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/file-command.js +// For internal use, subject to change. +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ + + + + +function file_command_issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!external_fs_.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + external_fs_.appendFileSync(filePath, `${utils_toCommandValue(message)}${external_os_namespaceObject.EOL}`, { + encoding: 'utf8' + }); +} +function file_command_prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${crypto.randomUUID()}`; + const convertedValue = toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; +} +//# sourceMappingURL=file-command.js.map +// EXTERNAL MODULE: external "path" +var external_path_ = __nccwpck_require__(6928); +// EXTERNAL MODULE: external "http" +var external_http_ = __nccwpck_require__(8611); +var external_http_namespaceObject = /*#__PURE__*/__nccwpck_require__.t(external_http_, 2); +// EXTERNAL MODULE: external "https" +var external_https_ = __nccwpck_require__(5692); +var external_https_namespaceObject = /*#__PURE__*/__nccwpck_require__.t(external_https_, 2); +;// CONCATENATED MODULE: ./node_modules/@actions/http-client/lib/proxy.js +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + try { + return new DecodedURL(proxyVar); + } + catch (_a) { + if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) + return new DecodedURL(`http://${proxyVar}`); + } + } + else { + return undefined; + } +} +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) { + return true; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperNoProxyItem === '*' || + upperReqHosts.some(x => x === upperNoProxyItem || + x.endsWith(`.${upperNoProxyItem}`) || + (upperNoProxyItem.startsWith('.') && + x.endsWith(`${upperNoProxyItem}`)))) { + return true; + } + } + return false; +} +function isLoopbackAddress(host) { + const hostLower = host.toLowerCase(); + return (hostLower === 'localhost' || + hostLower.startsWith('127.') || + hostLower.startsWith('[::1]') || + hostLower.startsWith('[0:0:0:0:0:0:0:1]')); +} +class DecodedURL extends URL { + constructor(url, base) { + super(url, base); + this._decodedUsername = decodeURIComponent(super.username); + this._decodedPassword = decodeURIComponent(super.password); + } + get username() { + return this._decodedUsername; + } + get password() { + return this._decodedPassword; + } +} +//# sourceMappingURL=proxy.js.map +// EXTERNAL MODULE: ./node_modules/tunnel/index.js +var tunnel = __nccwpck_require__(770); +// EXTERNAL MODULE: ./node_modules/undici/index.js +var undici = __nccwpck_require__(6752); +;// CONCATENATED MODULE: ./node_modules/@actions/http-client/lib/index.js +/* eslint-disable @typescript-eslint/no-explicit-any */ +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes || (HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers || (Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes || (MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function lib_getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); + } + readBodyBuffer() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + const chunks = []; + this.message.on('data', (chunk) => { + chunks.push(chunk); + }); + this.message.on('end', () => { + resolve(Buffer.concat(chunks)); + }); + })); + }); + } +} +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +class lib_HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = this._getUserAgentWithOrchestrationId(userAgent); + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl_1) { + return __awaiter(this, arguments, void 0, function* (requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl_1, obj_1) { + return __awaiter(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + getAgentDispatcher(serverUrl) { + const parsedUrl = new URL(serverUrl); + const proxyUrl = getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (!useProxy) { + return; + } + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? external_https_namespaceObject : external_http_namespaceObject; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + /** + * Gets an existing header value or returns a default. + * Handles converting number header values to strings since HTTP headers must be strings. + * Note: This returns string | string[] since some headers can have multiple values. + * For headers that must always be a single string (like Content-Type), use the + * specialized _getExistingOrDefaultContentTypeHeader method instead. + */ + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[header]; + if (headerValue) { + clientHeader = + typeof headerValue === 'number' ? headerValue.toString() : headerValue; + } + } + const additionalValue = additionalHeaders[header]; + if (additionalValue !== undefined) { + return typeof additionalValue === 'number' + ? additionalValue.toString() + : additionalValue; + } + if (clientHeader !== undefined) { + return clientHeader; + } + return _default; + } + /** + * Specialized version of _getExistingOrDefaultHeader for Content-Type header. + * Always returns a single string (not an array) since Content-Type should be a single value. + * Converts arrays to comma-separated strings and numbers to strings to ensure type safety. + * This was split from _getExistingOrDefaultHeader to provide stricter typing for callers + * that assign the result to places expecting a string (e.g., additionalHeaders[Headers.ContentType]). + */ + _getExistingOrDefaultContentTypeHeader(additionalHeaders, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + const headerValue = lowercaseKeys(this.requestOptions.headers)[Headers.ContentType]; + if (headerValue) { + if (typeof headerValue === 'number') { + clientHeader = String(headerValue); + } + else if (Array.isArray(headerValue)) { + clientHeader = headerValue.join(', '); + } + else { + clientHeader = headerValue; + } + } + } + const additionalValue = additionalHeaders[Headers.ContentType]; + // Return the first non-undefined value, converting numbers or arrays to strings if necessary + if (additionalValue !== undefined) { + if (typeof additionalValue === 'number') { + return String(additionalValue); + } + else if (Array.isArray(additionalValue)) { + return additionalValue.join(', '); + } + else { + return additionalValue; + } + } + if (clientHeader !== undefined) { + return clientHeader; + } + return _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (!useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || external_http_.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if tunneling agent isn't assigned create a new agent + if (!agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new external_https_.Agent(options) : new external_http_.Agent(options); + this._agent = agent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent; + if (this._keepAlive) { + proxyAgent = this._proxyAgentDispatcher; + } + // if agent is already assigned use that agent. + if (proxyAgent) { + return proxyAgent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + proxyAgent = new undici/* ProxyAgent */.kT(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && { + token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString('base64')}` + }))); + this._proxyAgentDispatcher = proxyAgent; + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: false + }); + } + return proxyAgent; + } + _getUserAgentWithOrchestrationId(userAgent) { + const baseUserAgent = userAgent || 'actions/http-client'; + const orchId = process.env['ACTIONS_ORCHESTRATION_ID']; + if (orchId) { + // Sanitize the orchestration ID to ensure it contains only valid characters + // Valid characters: 0-9, a-z, _, -, . + const sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, '_'); + return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`; + } + return baseUserAgent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/http-client/lib/auth.js +var auth_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return auth_awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +class auth_BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return auth_awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return auth_awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +//# sourceMappingURL=auth.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/oidc-utils.js +var oidc_utils_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + +class oidc_utils_OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new HttpClient('actions/oidc-client', [new BearerCredentialHandler(oidc_utils_OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!token) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!runtimeUrl) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return runtimeUrl; + } + static getCall(id_token_url) { + return oidc_utils_awaiter(this, void 0, void 0, function* () { + var _a; + const httpclient = oidc_utils_OidcClient.createHttpClient(); + const res = yield httpclient + .getJson(id_token_url) + .catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error('Response json body do not have ID Token field'); + } + return id_token; + }); + } + static getIDToken(audience) { + return oidc_utils_awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = oidc_utils_OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + debug(`ID token url is ${id_token_url}`); + const id_token = yield oidc_utils_OidcClient.getCall(id_token_url); + setSecret(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +//# sourceMappingURL=oidc-utils.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/summary.js +var summary_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +const { access, appendFile, writeFile } = external_fs_.promises; +const SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; +const SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; +class Summary { + constructor() { + this._buffer = ''; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return summary_awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, external_fs_.constants.R_OK | external_fs_.constants.W_OK); + } + catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(''); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return summary_awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return summary_awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ''; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(external_os_namespaceObject.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, (lang && { lang })); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map(item => this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); + return this.wrap(tag, data, attrs); + }) + .join(''); + return this.wrap('tr', cells); + }) + .join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); + const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, (cite && { cite })); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }); + return this.addRaw(element).addEOL(); + } +} +const _summary = new Summary(); +/** + * @deprecated use `core.summary` + */ +const markdownSummary = (/* unused pure expression or super */ null && (_summary)); +const summary = (/* unused pure expression or super */ null && (_summary)); +//# sourceMappingURL=summary.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/path-utils.js + +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/'); +} +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\'); +} +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); +} +//# sourceMappingURL=path-utils.js.map +// EXTERNAL MODULE: external "string_decoder" +var external_string_decoder_ = __nccwpck_require__(3193); +// EXTERNAL MODULE: external "events" +var external_events_ = __nccwpck_require__(4434); +;// CONCATENATED MODULE: external "child_process" +const external_child_process_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("child_process"); +// EXTERNAL MODULE: external "assert" +var external_assert_ = __nccwpck_require__(2613); +;// CONCATENATED MODULE: ./node_modules/@actions/io/lib/io-util.js +var io_util_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +const { chmod, copyFile, lstat, mkdir, open: io_util_open, readdir, rename, rm, rmdir, stat, symlink, unlink } = external_fs_.promises; +// export const {open} = 'fs' +const IS_WINDOWS = process.platform === 'win32'; +/** + * Custom implementation of readlink to ensure Windows junctions + * maintain trailing backslash for backward compatibility with Node.js < 24 + * + * In Node.js 20, Windows junctions (directory symlinks) always returned paths + * with trailing backslashes. Node.js 24 removed this behavior, which breaks + * code that relied on this format for path operations. + * + * This implementation restores the Node 20 behavior by adding a trailing + * backslash to all junction results on Windows. + */ +function readlink(fsPath) { + return io_util_awaiter(this, void 0, void 0, function* () { + const result = yield external_fs_.promises.readlink(fsPath); + // On Windows, restore Node 20 behavior: add trailing backslash to all results + // since junctions on Windows are always directory links + if (IS_WINDOWS && !result.endsWith('\\')) { + return `${result}\\`; + } + return result; + }); +} +// See https://github.com/nodejs/node/blob/d0153aee367422d0858105abec186da4dff0a0c5/deps/uv/include/uv/win.h#L691 +const UV_FS_O_EXLOCK = 0x10000000; +const READONLY = external_fs_.constants.O_RDONLY; +function exists(fsPath) { + return io_util_awaiter(this, void 0, void 0, function* () { + try { + yield stat(fsPath); + } + catch (err) { + if (err.code === 'ENOENT') { + return false; + } + throw err; + } + return true; + }); +} +function isDirectory(fsPath_1) { + return io_util_awaiter(this, arguments, void 0, function* (fsPath, useStat = false) { + const stats = useStat ? yield stat(fsPath) : yield lstat(fsPath); + return stats.isDirectory(); + }); +} +/** + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). + */ +function isRooted(p) { + p = normalizeSeparators(p); + if (!p) { + throw new Error('isRooted() parameter "p" cannot be empty'); + } + if (IS_WINDOWS) { + return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello + ); // e.g. C: or C:\hello + } + return p.startsWith('/'); +} +/** + * Best effort attempt to determine whether a file exists and is executable. + * @param filePath file path to check + * @param extensions additional file extensions to try + * @return if file exists and is executable, returns the file path. otherwise empty string. + */ +function tryGetExecutablePath(filePath, extensions) { + return io_util_awaiter(this, void 0, void 0, function* () { + let stats = undefined; + try { + // test file exists + stats = yield stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (IS_WINDOWS) { + // on Windows, test for valid extension + const upperExt = external_path_.extname(filePath).toUpperCase(); + if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { + return filePath; + } + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + // try each extension + const originalFilePath = filePath; + for (const extension of extensions) { + filePath = originalFilePath + extension; + stats = undefined; + try { + stats = yield stat(filePath); + } + catch (err) { + if (err.code !== 'ENOENT') { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + } + if (stats && stats.isFile()) { + if (IS_WINDOWS) { + // preserve the case of the actual file (since an extension was appended) + try { + const directory = external_path_.dirname(filePath); + const upperName = external_path_.basename(filePath).toUpperCase(); + for (const actualName of yield readdir(directory)) { + if (upperName === actualName.toUpperCase()) { + filePath = external_path_.join(directory, actualName); + break; + } + } + } + catch (err) { + // eslint-disable-next-line no-console + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } + else { + if (isUnixExecutable(stats)) { + return filePath; + } + } + } + } + return ''; + }); +} +function normalizeSeparators(p) { + p = p || ''; + if (IS_WINDOWS) { + // convert slashes on Windows + p = p.replace(/\//g, '\\'); + // remove redundant slashes + return p.replace(/\\\\+/g, '\\'); + } + // remove redundant slashes + return p.replace(/\/\/+/g, '/'); +} +// on Mac/Linux, test the execute bit +// R W X R W X R W X +// 256 128 64 32 16 8 4 2 1 +function isUnixExecutable(stats) { + return ((stats.mode & 1) > 0 || + ((stats.mode & 8) > 0 && + process.getgid !== undefined && + stats.gid === process.getgid()) || + ((stats.mode & 64) > 0 && + process.getuid !== undefined && + stats.uid === process.getuid())); +} +// Get the path of cmd.exe in windows +function getCmdPath() { + var _a; + return (_a = process.env['COMSPEC']) !== null && _a !== void 0 ? _a : `cmd.exe`; +} +//# sourceMappingURL=io-util.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/io/lib/io.js +var io_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + +/** + * Copies a file or folder. + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js + * + * @param source source path + * @param dest destination path + * @param options optional. See CopyOptions. + */ +function io_cp(source_1, dest_1) { + return io_awaiter(this, arguments, void 0, function* (source, dest, options = {}) { + const { force, recursive, copySourceDirectory } = readCopyOptions(options); + const destStat = (yield exists(dest)) ? yield stat(dest) : null; + // Dest is an existing file, but not forcing + if (destStat && destStat.isFile() && !force) { + return; + } + // If dest is an existing directory, should copy inside. + const newDest = destStat && destStat.isDirectory() && copySourceDirectory + ? external_path_.join(dest, external_path_.basename(source)) + : dest; + if (!(yield exists(source))) { + throw new Error(`no such file or directory: ${source}`); + } + const sourceStat = yield stat(source); + if (sourceStat.isDirectory()) { + if (!recursive) { + throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); + } + else { + yield cpDirRecursive(source, newDest, 0, force); + } + } + else { + if (external_path_.relative(source, newDest) === '') { + // a file cannot be copied to itself + throw new Error(`'${newDest}' and '${source}' are the same file`); + } + yield io_copyFile(source, newDest, force); + } + }); +} +/** + * Moves a path. + * + * @param source source path + * @param dest destination path + * @param options optional. See MoveOptions. + */ +function mv(source_1, dest_1) { + return io_awaiter(this, arguments, void 0, function* (source, dest, options = {}) { + if (yield exists(dest)) { + let destExists = true; + if (yield isDirectory(dest)) { + // If dest is directory copy src into dest + dest = external_path_.join(dest, external_path_.basename(source)); + destExists = yield exists(dest); + } + if (destExists) { + if (options.force == null || options.force) { + yield rmRF(dest); + } + else { + throw new Error('Destination already exists'); + } + } + } + yield mkdirP(external_path_.dirname(dest)); + yield rename(source, dest); + }); +} +/** + * Remove a path recursively with force + * + * @param inputPath path to remove + */ +function rmRF(inputPath) { + return io_awaiter(this, void 0, void 0, function* () { + if (IS_WINDOWS) { + // Check for invalid characters + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + if (/[*"<>|]/.test(inputPath)) { + throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows'); + } + } + try { + // note if path does not exist, error is silent + yield rm(inputPath, { + force: true, + maxRetries: 3, + recursive: true, + retryDelay: 300 + }); + } + catch (err) { + throw new Error(`File was unable to be removed ${err}`); + } + }); +} +/** + * Make a directory. Creates the full path with folders in between + * Will throw if it fails + * + * @param fsPath path to create + * @returns Promise + */ +function mkdirP(fsPath) { + return io_awaiter(this, void 0, void 0, function* () { + (0,external_assert_.ok)(fsPath, 'a path argument must be provided'); + yield mkdir(fsPath, { recursive: true }); + }); +} +/** + * Returns path of a tool had the tool actually been invoked. Resolves via paths. + * If you check and the tool does not exist, it will throw. + * + * @param tool name of the tool + * @param check whether to check if tool exists + * @returns Promise path to tool + */ +function which(tool, check) { + return io_awaiter(this, void 0, void 0, function* () { + if (!tool) { + throw new Error("parameter 'tool' is required"); + } + // recursive when check=true + if (check) { + const result = yield which(tool, false); + if (!result) { + if (IS_WINDOWS) { + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); + } + else { + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); + } + } + return result; + } + const matches = yield findInPath(tool); + if (matches && matches.length > 0) { + return matches[0]; + } + return ''; + }); +} +/** + * Returns a list of all occurrences of the given tool on the system path. + * + * @returns Promise the paths of the tool + */ +function findInPath(tool) { + return io_awaiter(this, void 0, void 0, function* () { + if (!tool) { + throw new Error("parameter 'tool' is required"); + } + // build the list of extensions to try + const extensions = []; + if (IS_WINDOWS && process.env['PATHEXT']) { + for (const extension of process.env['PATHEXT'].split(external_path_.delimiter)) { + if (extension) { + extensions.push(extension); + } + } + } + // if it's rooted, return it if exists. otherwise return empty. + if (isRooted(tool)) { + const filePath = yield tryGetExecutablePath(tool, extensions); + if (filePath) { + return [filePath]; + } + return []; + } + // if any path separators, return empty + if (tool.includes(external_path_.sep)) { + return []; + } + // build the list of directories + // + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, + // it feels like we should not do this. Checking the current directory seems like more of a use + // case of a shell, and the which() function exposed by the toolkit should strive for consistency + // across platforms. + const directories = []; + if (process.env.PATH) { + for (const p of process.env.PATH.split(external_path_.delimiter)) { + if (p) { + directories.push(p); + } + } + } + // find all matches + const matches = []; + for (const directory of directories) { + const filePath = yield tryGetExecutablePath(external_path_.join(directory, tool), extensions); + if (filePath) { + matches.push(filePath); + } + } + return matches; + }); +} +function readCopyOptions(options) { + const force = options.force == null ? true : options.force; + const recursive = Boolean(options.recursive); + const copySourceDirectory = options.copySourceDirectory == null + ? true + : Boolean(options.copySourceDirectory); + return { force, recursive, copySourceDirectory }; +} +function cpDirRecursive(sourceDir, destDir, currentDepth, force) { + return io_awaiter(this, void 0, void 0, function* () { + // Ensure there is not a run away recursive copy + if (currentDepth >= 255) + return; + currentDepth++; + yield mkdirP(destDir); + const files = yield readdir(sourceDir); + for (const fileName of files) { + const srcFile = `${sourceDir}/${fileName}`; + const destFile = `${destDir}/${fileName}`; + const srcFileStat = yield lstat(srcFile); + if (srcFileStat.isDirectory()) { + // Recurse + yield cpDirRecursive(srcFile, destFile, currentDepth, force); + } + else { + yield io_copyFile(srcFile, destFile, force); + } + } + // Change the mode for the newly created directory + yield chmod(destDir, (yield stat(sourceDir)).mode); + }); +} +// Buffered file copy +function io_copyFile(srcFile, destFile, force) { + return io_awaiter(this, void 0, void 0, function* () { + if ((yield lstat(srcFile)).isSymbolicLink()) { + // unlink/re-link it + try { + yield lstat(destFile); + yield unlink(destFile); + } + catch (e) { + // Try to override file permission + if (e.code === 'EPERM') { + yield chmod(destFile, '0666'); + yield unlink(destFile); + } + // other errors = it doesn't exist, no work to do + } + // Copy over symlink + const symlinkFull = yield readlink(srcFile); + yield symlink(symlinkFull, destFile, IS_WINDOWS ? 'junction' : null); + } + else if (!(yield exists(destFile)) || force) { + yield copyFile(srcFile, destFile); + } + }); +} +//# sourceMappingURL=io.js.map +;// CONCATENATED MODULE: external "timers" +const external_timers_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("timers"); +;// CONCATENATED MODULE: ./node_modules/@actions/exec/lib/toolrunner.js +var toolrunner_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + +/* eslint-disable @typescript-eslint/unbound-method */ +const toolrunner_IS_WINDOWS = process.platform === 'win32'; +/* + * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way. + */ +class ToolRunner extends external_events_.EventEmitter { + constructor(toolPath, args, options) { + super(); + if (!toolPath) { + throw new Error("Parameter 'toolPath' cannot be null or empty."); + } + this.toolPath = toolPath; + this.args = args || []; + this.options = options || {}; + } + _debug(message) { + if (this.options.listeners && this.options.listeners.debug) { + this.options.listeners.debug(message); + } + } + _getCommandString(options, noPrefix) { + const toolPath = this._getSpawnFileName(); + const args = this._getSpawnArgs(options); + let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool + if (toolrunner_IS_WINDOWS) { + // Windows + cmd file + if (this._isCmdFile()) { + cmd += toolPath; + for (const a of args) { + cmd += ` ${a}`; + } + } + // Windows + verbatim + else if (options.windowsVerbatimArguments) { + cmd += `"${toolPath}"`; + for (const a of args) { + cmd += ` ${a}`; + } + } + // Windows (regular) + else { + cmd += this._windowsQuoteCmdArg(toolPath); + for (const a of args) { + cmd += ` ${this._windowsQuoteCmdArg(a)}`; + } + } + } + else { + // OSX/Linux - this can likely be improved with some form of quoting. + // creating processes on Unix is fundamentally different than Windows. + // on Unix, execvp() takes an arg array. + cmd += toolPath; + for (const a of args) { + cmd += ` ${a}`; + } + } + return cmd; + } + _processLineBuffer(data, strBuffer, onLine) { + try { + let s = strBuffer + data.toString(); + let n = s.indexOf(external_os_namespaceObject.EOL); + while (n > -1) { + const line = s.substring(0, n); + onLine(line); + // the rest of the string ... + s = s.substring(n + external_os_namespaceObject.EOL.length); + n = s.indexOf(external_os_namespaceObject.EOL); + } + return s; + } + catch (err) { + // streaming lines to console is best effort. Don't fail a build. + this._debug(`error processing line. Failed with error ${err}`); + return ''; + } + } + _getSpawnFileName() { + if (toolrunner_IS_WINDOWS) { + if (this._isCmdFile()) { + return process.env['COMSPEC'] || 'cmd.exe'; + } + } + return this.toolPath; + } + _getSpawnArgs(options) { + if (toolrunner_IS_WINDOWS) { + if (this._isCmdFile()) { + let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (const a of this.args) { + argline += ' '; + argline += options.windowsVerbatimArguments + ? a + : this._windowsQuoteCmdArg(a); + } + argline += '"'; + return [argline]; + } + } + return this.args; + } + _endsWith(str, end) { + return str.endsWith(end); + } + _isCmdFile() { + const upperToolPath = this.toolPath.toUpperCase(); + return (this._endsWith(upperToolPath, '.CMD') || + this._endsWith(upperToolPath, '.BAT')); + } + _windowsQuoteCmdArg(arg) { + // for .exe, apply the normal quoting rules that libuv applies + if (!this._isCmdFile()) { + return this._uvQuoteCmdArg(arg); + } + // otherwise apply quoting rules specific to the cmd.exe command line parser. + // the libuv rules are generic and are not designed specifically for cmd.exe + // command line parser. + // + // for a detailed description of the cmd.exe command line parser, refer to + // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912 + // need quotes for empty arg + if (!arg) { + return '""'; + } + // determine whether the arg needs to be quoted + const cmdSpecialChars = [ + ' ', + '\t', + '&', + '(', + ')', + '[', + ']', + '{', + '}', + '^', + '=', + ';', + '!', + "'", + '+', + ',', + '`', + '~', + '|', + '<', + '>', + '"' + ]; + let needsQuotes = false; + for (const char of arg) { + if (cmdSpecialChars.some(x => x === char)) { + needsQuotes = true; + break; + } + } + // short-circuit if quotes not needed + if (!needsQuotes) { + return arg; + } + // the following quoting rules are very similar to the rules that by libuv applies. + // + // 1) wrap the string in quotes + // + // 2) double-up quotes - i.e. " => "" + // + // this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately + // doesn't work well with a cmd.exe command line. + // + // note, replacing " with "" also works well if the arg is passed to a downstream .NET console app. + // for example, the command line: + // foo.exe "myarg:""my val""" + // is parsed by a .NET console app into an arg array: + // [ "myarg:\"my val\"" ] + // which is the same end result when applying libuv quoting rules. although the actual + // command line from libuv quoting rules would look like: + // foo.exe "myarg:\"my val\"" + // + // 3) double-up slashes that precede a quote, + // e.g. hello \world => "hello \world" + // hello\"world => "hello\\""world" + // hello\\"world => "hello\\\\""world" + // hello world\ => "hello world\\" + // + // technically this is not required for a cmd.exe command line, or the batch argument parser. + // the reasons for including this as a .cmd quoting rule are: + // + // a) this is optimized for the scenario where the argument is passed from the .cmd file to an + // external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule. + // + // b) it's what we've been doing previously (by deferring to node default behavior) and we + // haven't heard any complaints about that aspect. + // + // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be + // escaped when used on the command line directly - even though within a .cmd file % can be escaped + // by using %%. + // + // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts + // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing. + // + // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would + // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the + // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args + // to an external program. + // + // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file. + // % can be escaped within a .cmd file. + let reverse = '"'; + let quoteHit = true; + for (let i = arg.length; i > 0; i--) { + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === '\\') { + reverse += '\\'; // double the slash + } + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '"'; // double the quote + } + else { + quoteHit = false; + } + } + reverse += '"'; + return reverse.split('').reverse().join(''); + } + _uvQuoteCmdArg(arg) { + // Tool runner wraps child_process.spawn() and needs to apply the same quoting as + // Node in certain cases where the undocumented spawn option windowsVerbatimArguments + // is used. + // + // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV, + // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details), + // pasting copyright notice from Node within this function: + // + // Copyright Joyent, Inc. and other Node contributors. All rights reserved. + // + // Permission is hereby granted, free of charge, to any person obtaining a copy + // of this software and associated documentation files (the "Software"), to + // deal in the Software without restriction, including without limitation the + // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + // sell copies of the Software, and to permit persons to whom the Software is + // furnished to do so, subject to the following conditions: + // + // The above copyright notice and this permission notice shall be included in + // all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + // IN THE SOFTWARE. + if (!arg) { + // Need double quotation for empty argument + return '""'; + } + if (!arg.includes(' ') && !arg.includes('\t') && !arg.includes('"')) { + // No quotation needed + return arg; + } + if (!arg.includes('"') && !arg.includes('\\')) { + // No embedded double quotes or backslashes, so I can just wrap + // quote marks around the whole thing. + return `"${arg}"`; + } + // Expected input/output: + // input : hello"world + // output: "hello\"world" + // input : hello""world + // output: "hello\"\"world" + // input : hello\world + // output: hello\world + // input : hello\\world + // output: hello\\world + // input : hello\"world + // output: "hello\\\"world" + // input : hello\\"world + // output: "hello\\\\\"world" + // input : hello world\ + // output: "hello world\\" - note the comment in libuv actually reads "hello world\" + // but it appears the comment is wrong, it should be "hello world\\" + let reverse = '"'; + let quoteHit = true; + for (let i = arg.length; i > 0; i--) { + // walk the string in reverse + reverse += arg[i - 1]; + if (quoteHit && arg[i - 1] === '\\') { + reverse += '\\'; + } + else if (arg[i - 1] === '"') { + quoteHit = true; + reverse += '\\'; + } + else { + quoteHit = false; + } + } + reverse += '"'; + return reverse.split('').reverse().join(''); + } + _cloneExecOptions(options) { + options = options || {}; + const result = { + cwd: options.cwd || process.cwd(), + env: options.env || process.env, + silent: options.silent || false, + windowsVerbatimArguments: options.windowsVerbatimArguments || false, + failOnStdErr: options.failOnStdErr || false, + ignoreReturnCode: options.ignoreReturnCode || false, + delay: options.delay || 10000 + }; + result.outStream = options.outStream || process.stdout; + result.errStream = options.errStream || process.stderr; + return result; + } + _getSpawnOptions(options, toolPath) { + options = options || {}; + const result = {}; + result.cwd = options.cwd; + result.env = options.env; + result['windowsVerbatimArguments'] = + options.windowsVerbatimArguments || this._isCmdFile(); + if (options.windowsVerbatimArguments) { + result.argv0 = `"${toolPath}"`; + } + return result; + } + /** + * Exec a tool. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param tool path to tool to exec + * @param options optional exec options. See ExecOptions + * @returns number + */ + exec() { + return toolrunner_awaiter(this, void 0, void 0, function* () { + // root the tool path if it is unrooted and contains relative pathing + if (!isRooted(this.toolPath) && + (this.toolPath.includes('/') || + (toolrunner_IS_WINDOWS && this.toolPath.includes('\\')))) { + // prefer options.cwd if it is specified, however options.cwd may also need to be rooted + this.toolPath = external_path_.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); + } + // if the tool is only a file name, then resolve it from the PATH + // otherwise verify it exists (add extension on Windows if necessary) + this.toolPath = yield which(this.toolPath, true); + return new Promise((resolve, reject) => toolrunner_awaiter(this, void 0, void 0, function* () { + this._debug(`exec tool: ${this.toolPath}`); + this._debug('arguments:'); + for (const arg of this.args) { + this._debug(` ${arg}`); + } + const optionsNonNull = this._cloneExecOptions(this.options); + if (!optionsNonNull.silent && optionsNonNull.outStream) { + optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + external_os_namespaceObject.EOL); + } + const state = new ExecState(optionsNonNull, this.toolPath); + state.on('debug', (message) => { + this._debug(message); + }); + if (this.options.cwd && !(yield exists(this.options.cwd))) { + return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); + } + const fileName = this._getSpawnFileName(); + const cp = external_child_process_namespaceObject.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)); + let stdbuffer = ''; + if (cp.stdout) { + cp.stdout.on('data', (data) => { + if (this.options.listeners && this.options.listeners.stdout) { + this.options.listeners.stdout(data); + } + if (!optionsNonNull.silent && optionsNonNull.outStream) { + optionsNonNull.outStream.write(data); + } + stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => { + if (this.options.listeners && this.options.listeners.stdline) { + this.options.listeners.stdline(line); + } + }); + }); + } + let errbuffer = ''; + if (cp.stderr) { + cp.stderr.on('data', (data) => { + state.processStderr = true; + if (this.options.listeners && this.options.listeners.stderr) { + this.options.listeners.stderr(data); + } + if (!optionsNonNull.silent && + optionsNonNull.errStream && + optionsNonNull.outStream) { + const s = optionsNonNull.failOnStdErr + ? optionsNonNull.errStream + : optionsNonNull.outStream; + s.write(data); + } + errbuffer = this._processLineBuffer(data, errbuffer, (line) => { + if (this.options.listeners && this.options.listeners.errline) { + this.options.listeners.errline(line); + } + }); + }); + } + cp.on('error', (err) => { + state.processError = err.message; + state.processExited = true; + state.processClosed = true; + state.CheckComplete(); + }); + cp.on('exit', (code) => { + state.processExitCode = code; + state.processExited = true; + this._debug(`Exit code ${code} received from tool '${this.toolPath}'`); + state.CheckComplete(); + }); + cp.on('close', (code) => { + state.processExitCode = code; + state.processExited = true; + state.processClosed = true; + this._debug(`STDIO streams have closed for tool '${this.toolPath}'`); + state.CheckComplete(); + }); + state.on('done', (error, exitCode) => { + if (stdbuffer.length > 0) { + this.emit('stdline', stdbuffer); + } + if (errbuffer.length > 0) { + this.emit('errline', errbuffer); + } + cp.removeAllListeners(); + if (error) { + reject(error); + } + else { + resolve(exitCode); + } + }); + if (this.options.input) { + if (!cp.stdin) { + throw new Error('child process missing stdin'); + } + cp.stdin.end(this.options.input); + } + })); + }); + } +} +/** + * Convert an arg string to an array of args. Handles escaping + * + * @param argString string of arguments + * @returns string[] array of arguments + */ +function argStringToArray(argString) { + const args = []; + let inQuotes = false; + let escaped = false; + let arg = ''; + function append(c) { + // we only escape double quotes. + if (escaped && c !== '"') { + arg += '\\'; + } + arg += c; + escaped = false; + } + for (let i = 0; i < argString.length; i++) { + const c = argString.charAt(i); + if (c === '"') { + if (!escaped) { + inQuotes = !inQuotes; + } + else { + append(c); + } + continue; + } + if (c === '\\' && escaped) { + append(c); + continue; + } + if (c === '\\' && inQuotes) { + escaped = true; + continue; + } + if (c === ' ' && !inQuotes) { + if (arg.length > 0) { + args.push(arg); + arg = ''; + } + continue; + } + append(c); + } + if (arg.length > 0) { + args.push(arg.trim()); + } + return args; +} +class ExecState extends external_events_.EventEmitter { + constructor(options, toolPath) { + super(); + this.processClosed = false; // tracks whether the process has exited and stdio is closed + this.processError = ''; + this.processExitCode = 0; + this.processExited = false; // tracks whether the process has exited + this.processStderr = false; // tracks whether stderr was written to + this.delay = 10000; // 10 seconds + this.done = false; + this.timeout = null; + if (!toolPath) { + throw new Error('toolPath must not be empty'); + } + this.options = options; + this.toolPath = toolPath; + if (options.delay) { + this.delay = options.delay; + } + } + CheckComplete() { + if (this.done) { + return; + } + if (this.processClosed) { + this._setResult(); + } + else if (this.processExited) { + this.timeout = (0,external_timers_namespaceObject.setTimeout)(ExecState.HandleTimeout, this.delay, this); + } + } + _debug(message) { + this.emit('debug', message); + } + _setResult() { + // determine whether there is an error + let error; + if (this.processExited) { + if (this.processError) { + error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`); + } + else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) { + error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`); + } + else if (this.processStderr && this.options.failOnStdErr) { + error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`); + } + } + // clear the timeout + if (this.timeout) { + clearTimeout(this.timeout); + this.timeout = null; + } + this.done = true; + this.emit('done', error, this.processExitCode); + } + static HandleTimeout(state) { + if (state.done) { + return; + } + if (!state.processClosed && state.processExited) { + const message = `The STDIO streams did not close within ${state.delay / 1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + state._debug(message); + } + state._setResult(); + } +} +//# sourceMappingURL=toolrunner.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/exec/lib/exec.js +var exec_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +/** + * Exec a command. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code + */ +function exec_exec(commandLine, args, options) { + return exec_awaiter(this, void 0, void 0, function* () { + const commandArgs = argStringToArray(commandLine); + if (commandArgs.length === 0) { + throw new Error(`Parameter 'commandLine' cannot be null or empty.`); + } + // Path to tool to execute should be first arg + const toolPath = commandArgs[0]; + args = commandArgs.slice(1).concat(args || []); + const runner = new ToolRunner(toolPath, args, options); + return runner.exec(); + }); +} +/** + * Exec a command and get the output. + * Output will be streamed to the live console. + * Returns promise with the exit code and collected stdout and stderr + * + * @param commandLine command to execute (can include additional args). Must be correctly escaped. + * @param args optional arguments for tool. Escaping is handled by the lib. + * @param options optional exec options. See ExecOptions + * @returns Promise exit code, stdout, and stderr + */ +function getExecOutput(commandLine, args, options) { + return exec_awaiter(this, void 0, void 0, function* () { + var _a, _b; + let stdout = ''; + let stderr = ''; + //Using string decoder covers the case where a mult-byte character is split + const stdoutDecoder = new StringDecoder('utf8'); + const stderrDecoder = new StringDecoder('utf8'); + const originalStdoutListener = (_a = options === null || options === void 0 ? void 0 : options.listeners) === null || _a === void 0 ? void 0 : _a.stdout; + const originalStdErrListener = (_b = options === null || options === void 0 ? void 0 : options.listeners) === null || _b === void 0 ? void 0 : _b.stderr; + const stdErrListener = (data) => { + stderr += stderrDecoder.write(data); + if (originalStdErrListener) { + originalStdErrListener(data); + } + }; + const stdOutListener = (data) => { + stdout += stdoutDecoder.write(data); + if (originalStdoutListener) { + originalStdoutListener(data); + } + }; + const listeners = Object.assign(Object.assign({}, options === null || options === void 0 ? void 0 : options.listeners), { stdout: stdOutListener, stderr: stdErrListener }); + const exitCode = yield exec_exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners })); + //flush any remaining characters + stdout += stdoutDecoder.end(); + stderr += stderrDecoder.end(); + return { + exitCode, + stdout, + stderr + }; + }); +} +//# sourceMappingURL=exec.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/platform.js +var platform_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +const getWindowsInfo = () => platform_awaiter(void 0, void 0, void 0, function* () { + const { stdout: version } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Version"', undefined, { + silent: true + }); + const { stdout: name } = yield exec.getExecOutput('powershell -command "(Get-CimInstance -ClassName Win32_OperatingSystem).Caption"', undefined, { + silent: true + }); + return { + name: name.trim(), + version: version.trim() + }; +}); +const getMacOsInfo = () => platform_awaiter(void 0, void 0, void 0, function* () { + var _a, _b, _c, _d; + const { stdout } = yield exec.getExecOutput('sw_vers', undefined, { + silent: true + }); + const version = (_b = (_a = stdout.match(/ProductVersion:\s*(.+)/)) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : ''; + const name = (_d = (_c = stdout.match(/ProductName:\s*(.+)/)) === null || _c === void 0 ? void 0 : _c[1]) !== null && _d !== void 0 ? _d : ''; + return { + name, + version + }; +}); +const getLinuxInfo = () => platform_awaiter(void 0, void 0, void 0, function* () { + const { stdout } = yield exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], { + silent: true + }); + const [name, version] = stdout.trim().split('\n'); + return { + name, + version + }; +}); +const platform = external_os_namespaceObject.platform(); +const arch = external_os_namespaceObject.arch(); +const isWindows = platform === 'win32'; +const isMacOS = platform === 'darwin'; +const isLinux = platform === 'linux'; +function getDetails() { + return platform_awaiter(this, void 0, void 0, function* () { + return Object.assign(Object.assign({}, (yield (isWindows + ? getWindowsInfo() + : isMacOS + ? getMacOsInfo() + : getLinuxInfo()))), { platform, + arch, + isWindows, + isMacOS, + isLinux }); + }); +} +//# sourceMappingURL=platform.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/core/lib/core.js +var core_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode || (ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + return issueFileCommand('ENV', prepareKeyValueMessage(name, val)); + } + issueCommand('set-env', { name }, convertedVal); +} +/** + * Registers a secret which will get masked from logs + * + * @param secret - Value of the secret to be masked + * @remarks + * This function instructs the Actions runner to mask the specified value in any + * logs produced during the workflow run. Once registered, the secret value will + * be replaced with asterisks (***) whenever it appears in console output, logs, + * or error messages. + * + * This is useful for protecting sensitive information such as: + * - API keys + * - Access tokens + * - Authentication credentials + * - URL parameters containing signatures (SAS tokens) + * + * Note that masking only affects future logs; any previous appearances of the + * secret in logs before calling this function will remain unmasked. + * + * @example + * ```typescript + * // Register an API token as a secret + * const apiToken = "abc123xyz456"; + * setSecret(apiToken); + * + * // Now any logs containing this value will show *** instead + * console.log(`Using token: ${apiToken}`); // Outputs: "Using token: ***" + * ``` + */ +function core_setSecret(secret) { + issueCommand('add-mask', {}, secret); +} +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_issueFileCommand('PATH', inputPath); + } + else { + command_issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${external_path_.delimiter}${process.env['PATH']}`; +} +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); +} +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map(input => input.trim()); +} +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE']; + const falseValue = ['false', 'False', 'FALSE']; + const val = getInput(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) { + return issueFileCommand('OUTPUT', prepareKeyValueMessage(name, value)); + } + process.stdout.write(os.EOL); + issueCommand('set-output', { name }, toCommandValue(value)); +} +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + issue('echo', enabled ? 'on' : 'off'); +} +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + core_error(message); +} +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +/** + * Writes debug message to user log + * @param message debug message + */ +function core_debug(message) { + command_issueCommand('debug', {}, message); +} +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function core_error(message, properties = {}) { + command_issueCommand('error', utils_toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function warning(message, properties = {}) { + command_issueCommand('warning', utils_toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + issueCommand('notice', toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + external_os_namespaceObject.EOL); +} +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + issue('group', name); +} +/** + * End an output group. + */ +function endGroup() { + issue('endgroup'); +} +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return core_awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + const filePath = process.env['GITHUB_STATE'] || ''; + if (filePath) { + return issueFileCommand('STATE', prepareKeyValueMessage(name, value)); + } + issueCommand('save-state', { name }, toCommandValue(value)); +} +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +function getIDToken(aud) { + return core_awaiter(this, void 0, void 0, function* () { + return yield OidcClient.getIDToken(aud); + }); +} +/** + * Summary exports + */ + +/** + * @deprecated use core.summary + */ + +/** + * Path exports + */ + +/** + * Platform utilities exports + */ + +//# sourceMappingURL=core.js.map +// EXTERNAL MODULE: external "node:crypto" +var external_node_crypto_ = __nccwpck_require__(7598); +;// CONCATENATED MODULE: external "node:fs" +const external_node_fs_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:fs"); +;// CONCATENATED MODULE: external "node:os" +const external_node_os_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:os"); +;// CONCATENATED MODULE: external "node:path" +const external_node_path_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("node:path"); +// EXTERNAL MODULE: external "node:util" +var external_node_util_ = __nccwpck_require__(7975); +// EXTERNAL MODULE: ./node_modules/semver/index.js +var node_modules_semver = __nccwpck_require__(2088); +;// CONCATENATED MODULE: ./node_modules/@actions/tool-cache/lib/manifest.js +var manifest_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + +// Internal object for testability (allows mocking in ESM) +const _internal = { + readLinuxVersionFile() { + const lsbReleaseFile = '/etc/lsb-release'; + const osReleaseFile = '/etc/os-release'; + let contents = ''; + if (external_fs_.existsSync(lsbReleaseFile)) { + contents = external_fs_.readFileSync(lsbReleaseFile).toString(); + } + else if (external_fs_.existsSync(osReleaseFile)) { + contents = external_fs_.readFileSync(osReleaseFile).toString(); + } + return contents; + } +}; +function _findMatch(versionSpec, stable, candidates, archFilter) { + return manifest_awaiter(this, void 0, void 0, function* () { + const platFilter = os.platform(); + let result; + let match; + let file; + for (const candidate of candidates) { + const version = candidate.version; + debug(`check ${version} satisfies ${versionSpec}`); + if (semver.satisfies(version, versionSpec) && + (!stable || candidate.stable === stable)) { + file = candidate.files.find(item => { + debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`); + let chk = item.arch === archFilter && item.platform === platFilter; + if (chk && item.platform_version) { + const osVersion = _getOsVersion(); + if (osVersion === item.platform_version) { + chk = true; + } + else { + chk = semver.satisfies(osVersion, item.platform_version); + } + } + return chk; + }); + if (file) { + debug(`matched ${candidate.version}`); + match = candidate; + break; + } + } + } + if (match && file) { + // clone since we're mutating the file list to be only the file that matches + result = Object.assign({}, match); + result.files = [file]; + } + return result; + }); +} +function _getOsVersion() { + // TODO: add windows and other linux, arm variants + // right now filtering on version is only an ubuntu and macos scenario for tools we build for hosted (python) + const plat = os.platform(); + let version = ''; + if (plat === 'darwin') { + version = cp.execSync('sw_vers -productVersion').toString(); + } + else if (plat === 'linux') { + // lsb_release process not in some containers, readfile + // Run cat /etc/lsb-release + // DISTRIB_ID=Ubuntu + // DISTRIB_RELEASE=18.04 + // DISTRIB_CODENAME=bionic + // DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS" + const lsbContents = _internal.readLinuxVersionFile(); + if (lsbContents) { + const lines = lsbContents.split('\n'); + for (const line of lines) { + const parts = line.split('='); + if (parts.length === 2 && + (parts[0].trim() === 'VERSION_ID' || + parts[0].trim() === 'DISTRIB_RELEASE')) { + version = parts[1].trim().replace(/^"/, '').replace(/"$/, ''); + break; + } + } + } + } + return version; +} +// Alias for backwards compatibility +function _readLinuxVersionFile() { + return _internal.readLinuxVersionFile(); +} +//# sourceMappingURL=manifest.js.map +// EXTERNAL MODULE: external "stream" +var external_stream_ = __nccwpck_require__(2203); +// EXTERNAL MODULE: external "util" +var external_util_ = __nccwpck_require__(9023); +;// CONCATENATED MODULE: ./node_modules/@actions/tool-cache/lib/retry-helper.js +var retry_helper_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + +/** + * Internal class for retries + */ +class RetryHelper { + constructor(maxAttempts, minSeconds, maxSeconds) { + if (maxAttempts < 1) { + throw new Error('max attempts should be greater than or equal to 1'); + } + this.maxAttempts = maxAttempts; + this.minSeconds = Math.floor(minSeconds); + this.maxSeconds = Math.floor(maxSeconds); + if (this.minSeconds > this.maxSeconds) { + throw new Error('min seconds should be less than or equal to max seconds'); + } + } + execute(action, isRetryable) { + return retry_helper_awaiter(this, void 0, void 0, function* () { + let attempt = 1; + while (attempt < this.maxAttempts) { + // Try + try { + return yield action(); + } + catch (err) { + if (isRetryable && !isRetryable(err)) { + throw err; + } + info(err.message); + } + // Sleep + const seconds = this.getSleepAmount(); + info(`Waiting ${seconds} seconds before trying again`); + yield this.sleep(seconds); + attempt++; + } + // Last attempt + return yield action(); + }); + } + getSleepAmount() { + return (Math.floor(Math.random() * (this.maxSeconds - this.minSeconds + 1)) + + this.minSeconds); + } + sleep(seconds) { + return retry_helper_awaiter(this, void 0, void 0, function* () { + return new Promise(resolve => setTimeout(resolve, seconds * 1000)); + }); + } +} +//# sourceMappingURL=retry-helper.js.map +;// CONCATENATED MODULE: ./node_modules/@actions/tool-cache/lib/tool-cache.js +var tool_cache_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + + + + + + + +class HTTPError extends Error { + constructor(httpStatusCode) { + super(`Unexpected HTTP response: ${httpStatusCode}`); + this.httpStatusCode = httpStatusCode; + Object.setPrototypeOf(this, new.target.prototype); + } +} +const tool_cache_IS_WINDOWS = process.platform === 'win32'; +const IS_MAC = process.platform === 'darwin'; +const userAgent = 'actions/tool-cache'; +/** + * Download a tool from an url and stream it into a file + * + * @param url url of tool to download + * @param dest path to download tool + * @param auth authorization header + * @param headers other headers + * @returns path to downloaded tool + */ +function downloadTool(url, dest, auth, headers) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + dest = dest || external_path_.join(_getTempDirectory(), external_crypto_.randomUUID()); + yield mkdirP(external_path_.dirname(dest)); + core_debug(`Downloading ${url}`); + core_debug(`Destination ${dest}`); + const maxAttempts = 3; + const minSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MIN_SECONDS', 10); + const maxSeconds = _getGlobal('TEST_DOWNLOAD_TOOL_RETRY_MAX_SECONDS', 20); + const retryHelper = new RetryHelper(maxAttempts, minSeconds, maxSeconds); + return yield retryHelper.execute(() => tool_cache_awaiter(this, void 0, void 0, function* () { + return yield downloadToolAttempt(url, dest || '', auth, headers); + }), (err) => { + if (err instanceof HTTPError && err.httpStatusCode) { + // Don't retry anything less than 500, except 408 Request Timeout and 429 Too Many Requests + if (err.httpStatusCode < 500 && + err.httpStatusCode !== 408 && + err.httpStatusCode !== 429) { + return false; + } + } + // Otherwise retry + return true; + }); + }); +} +function downloadToolAttempt(url, dest, auth, headers) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + if (external_fs_.existsSync(dest)) { + throw new Error(`Destination file path ${dest} already exists`); + } + // Get the response headers + const http = new lib_HttpClient(userAgent, [], { + allowRetries: false + }); + if (auth) { + core_debug('set auth'); + if (headers === undefined) { + headers = {}; + } + headers.authorization = auth; + } + const response = yield http.get(url, headers); + if (response.message.statusCode !== 200) { + const err = new HTTPError(response.message.statusCode); + core_debug(`Failed to download from "${url}". Code(${response.message.statusCode}) Message(${response.message.statusMessage})`); + throw err; + } + // Download the response body + const pipeline = external_util_.promisify(external_stream_.pipeline); + const responseMessageFactory = _getGlobal('TEST_DOWNLOAD_TOOL_RESPONSE_MESSAGE_FACTORY', () => response.message); + const readStream = responseMessageFactory(); + let succeeded = false; + try { + yield pipeline(readStream, external_fs_.createWriteStream(dest)); + core_debug('download complete'); + succeeded = true; + return dest; + } + finally { + // Error, delete dest before retry + if (!succeeded) { + core_debug('download failed'); + try { + yield rmRF(dest); + } + catch (err) { + core_debug(`Failed to delete '${dest}'. ${err.message}`); + } + } + } + }); +} +/** + * Extract a .7z file + * + * @param file path to the .7z file + * @param dest destination directory. Optional. + * @param _7zPath path to 7zr.exe. Optional, for long path support. Most .7z archives do not have this + * problem. If your .7z archive contains very long paths, you can pass the path to 7zr.exe which will + * gracefully handle long paths. By default 7zdec.exe is used because it is a very small program and is + * bundled with the tool lib. However it does not support long paths. 7zr.exe is the reduced command line + * interface, it is smaller than the full command line interface, and it does support long paths. At the + * time of this writing, it is freely available from the LZMA SDK that is available on the 7zip website. + * Be sure to check the current license agreement. If 7zr.exe is bundled with your action, then the path + * to 7zr.exe can be pass to this function. + * @returns path to the destination directory + */ +function extract7z(file, dest, _7zPath) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + ok(tool_cache_IS_WINDOWS, 'extract7z() not supported on current OS'); + ok(file, 'parameter "file" is required'); + dest = yield _createExtractFolder(dest); + const originalCwd = process.cwd(); + process.chdir(dest); + if (_7zPath) { + try { + const logLevel = core.isDebug() ? '-bb1' : '-bb0'; + const args = [ + 'x', // eXtract files with full paths + logLevel, // -bb[0-3] : set output log level + '-bd', // disable progress indicator + '-sccUTF-8', // set charset for for console input/output + file + ]; + const options = { + silent: true + }; + yield exec(`"${_7zPath}"`, args, options); + } + finally { + process.chdir(originalCwd); + } + } + else { + const escapedScript = path + .join(__dirname, '..', 'scripts', 'Invoke-7zdec.ps1') + .replace(/'/g, "''") + .replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines + const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); + const escapedTarget = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ''); + const command = `& '${escapedScript}' -Source '${escapedFile}' -Target '${escapedTarget}'`; + const args = [ + '-NoLogo', + '-Sta', + '-NoProfile', + '-NonInteractive', + '-ExecutionPolicy', + 'Unrestricted', + '-Command', + command + ]; + const options = { + silent: true + }; + try { + const powershellPath = yield io.which('powershell', true); + yield exec(`"${powershellPath}"`, args, options); + } + finally { + process.chdir(originalCwd); + } + } + return dest; + }); +} +/** + * Extract a compressed tar archive + * + * @param file path to the tar + * @param dest destination directory. Optional. + * @param flags flags for the tar command to use for extraction. Defaults to 'xz' (extracting gzipped tars). Optional. + * @returns path to the destination directory + */ +function extractTar(file_1, dest_1) { + return tool_cache_awaiter(this, arguments, void 0, function* (file, dest, flags = 'xz') { + if (!file) { + throw new Error("parameter 'file' is required"); + } + // Create dest + dest = yield _createExtractFolder(dest); + // Determine whether GNU tar + core_debug('Checking tar --version'); + let versionOutput = ''; + yield exec_exec('tar --version', [], { + ignoreReturnCode: true, + silent: true, + listeners: { + stdout: (data) => (versionOutput += data.toString()), + stderr: (data) => (versionOutput += data.toString()) + } + }); + core_debug(versionOutput.trim()); + const isGnuTar = versionOutput.toUpperCase().includes('GNU TAR'); + // Initialize args + let args; + if (flags instanceof Array) { + args = flags; + } + else { + args = [flags]; + } + if (isDebug() && !flags.includes('v')) { + args.push('-v'); + } + let destArg = dest; + let fileArg = file; + if (tool_cache_IS_WINDOWS && isGnuTar) { + args.push('--force-local'); + destArg = dest.replace(/\\/g, '/'); + // Technically only the dest needs to have `/` but for aesthetic consistency + // convert slashes in the file arg too. + fileArg = file.replace(/\\/g, '/'); + } + if (isGnuTar) { + // Suppress warnings when using GNU tar to extract archives created by BSD tar + args.push('--warning=no-unknown-keyword'); + args.push('--overwrite'); + } + args.push('-C', destArg, '-f', fileArg); + yield exec_exec(`tar`, args); + return dest; + }); +} +/** + * Extract a xar compatible archive + * + * @param file path to the archive + * @param dest destination directory. Optional. + * @param flags flags for the xar. Optional. + * @returns path to the destination directory + */ +function extractXar(file_1, dest_1) { + return tool_cache_awaiter(this, arguments, void 0, function* (file, dest, flags = []) { + ok(IS_MAC, 'extractXar() not supported on current OS'); + ok(file, 'parameter "file" is required'); + dest = yield _createExtractFolder(dest); + let args; + if (flags instanceof Array) { + args = flags; + } + else { + args = [flags]; + } + args.push('-x', '-C', dest, '-f', file); + if (core.isDebug()) { + args.push('-v'); + } + const xarPath = yield io.which('xar', true); + yield exec(`"${xarPath}"`, _unique(args)); + return dest; + }); +} +/** + * Extract a zip + * + * @param file path to the zip + * @param dest destination directory. Optional. + * @returns path to the destination directory + */ +function extractZip(file, dest) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + if (!file) { + throw new Error("parameter 'file' is required"); + } + dest = yield _createExtractFolder(dest); + if (tool_cache_IS_WINDOWS) { + yield extractZipWin(file, dest); + } + else { + yield extractZipNix(file, dest); + } + return dest; + }); +} +function extractZipWin(file, dest) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + // build the powershell command + const escapedFile = file.replace(/'/g, "''").replace(/"|\n|\r/g, ''); // double-up single quotes, remove double quotes and newlines + const escapedDest = dest.replace(/'/g, "''").replace(/"|\n|\r/g, ''); + const pwshPath = yield which('pwsh', false); + //To match the file overwrite behavior on nix systems, we use the overwrite = true flag for ExtractToDirectory + //and the -Force flag for Expand-Archive as a fallback + if (pwshPath) { + //attempt to use pwsh with ExtractToDirectory, if this fails attempt Expand-Archive + const pwshCommand = [ + `$ErrorActionPreference = 'Stop' ;`, + `try { Add-Type -AssemblyName System.IO.Compression.ZipFile } catch { } ;`, + `try { [System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }`, + `catch { if (($_.Exception.GetType().FullName -eq 'System.Management.Automation.MethodException') -or ($_.Exception.GetType().FullName -eq 'System.Management.Automation.RuntimeException') ){ Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force } else { throw $_ } } ;` + ].join(' '); + const args = [ + '-NoLogo', + '-NoProfile', + '-NonInteractive', + '-ExecutionPolicy', + 'Unrestricted', + '-Command', + pwshCommand + ]; + core_debug(`Using pwsh at path: ${pwshPath}`); + yield exec_exec(`"${pwshPath}"`, args); + } + else { + const powershellCommand = [ + `$ErrorActionPreference = 'Stop' ;`, + `try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ;`, + `if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath '${escapedFile}' -DestinationPath '${escapedDest}' -Force }`, + `else {[System.IO.Compression.ZipFile]::ExtractToDirectory('${escapedFile}', '${escapedDest}', $true) }` + ].join(' '); + const args = [ + '-NoLogo', + '-Sta', + '-NoProfile', + '-NonInteractive', + '-ExecutionPolicy', + 'Unrestricted', + '-Command', + powershellCommand + ]; + const powershellPath = yield which('powershell', true); + core_debug(`Using powershell at path: ${powershellPath}`); + yield exec_exec(`"${powershellPath}"`, args); + } + }); +} +function extractZipNix(file, dest) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + const unzipPath = yield which('unzip', true); + const args = [file]; + if (!isDebug()) { + args.unshift('-q'); + } + args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run + yield exec_exec(`"${unzipPath}"`, args, { cwd: dest }); + }); +} +/** + * Caches a directory and installs it into the tool cacheDir + * + * @param sourceDir the directory to cache into tools + * @param tool tool name + * @param version version of the tool. semver format + * @param arch architecture of the tool. Optional. Defaults to machine architecture + */ +function cacheDir(sourceDir, tool, version, arch) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + version = node_modules_semver.clean(version) || version; + arch = arch || external_os_namespaceObject.arch(); + core_debug(`Caching tool ${tool} ${version} ${arch}`); + core_debug(`source dir: ${sourceDir}`); + if (!external_fs_.statSync(sourceDir).isDirectory()) { + throw new Error('sourceDir is not a directory'); + } + // Create the tool dir + const destPath = yield _createToolPath(tool, version, arch); + // copy each child item. do not move. move can fail on Windows + // due to anti-virus software having an open handle on a file. + for (const itemName of external_fs_.readdirSync(sourceDir)) { + const s = external_path_.join(sourceDir, itemName); + yield io_cp(s, destPath, { recursive: true }); + } + // write .complete + _completeToolPath(tool, version, arch); + return destPath; + }); +} +/** + * Caches a downloaded file (GUID) and installs it + * into the tool cache with a given targetName + * + * @param sourceFile the file to cache into tools. Typically a result of downloadTool which is a guid. + * @param targetFile the name of the file name in the tools directory + * @param tool tool name + * @param version version of the tool. semver format + * @param arch architecture of the tool. Optional. Defaults to machine architecture + */ +function cacheFile(sourceFile, targetFile, tool, version, arch) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + version = semver.clean(version) || version; + arch = arch || os.arch(); + core.debug(`Caching tool ${tool} ${version} ${arch}`); + core.debug(`source file: ${sourceFile}`); + if (!fs.statSync(sourceFile).isFile()) { + throw new Error('sourceFile is not a file'); + } + // create the tool dir + const destFolder = yield _createToolPath(tool, version, arch); + // copy instead of move. move can fail on Windows due to + // anti-virus software having an open handle on a file. + const destPath = path.join(destFolder, targetFile); + core.debug(`destination file ${destPath}`); + yield io.cp(sourceFile, destPath); + // write .complete + _completeToolPath(tool, version, arch); + return destFolder; + }); +} +/** + * Finds the path to a tool version in the local installed tool cache + * + * @param toolName name of the tool + * @param versionSpec version of the tool + * @param arch optional arch. defaults to arch of computer + */ +function find(toolName, versionSpec, arch) { + if (!toolName) { + throw new Error('toolName parameter is required'); + } + if (!versionSpec) { + throw new Error('versionSpec parameter is required'); + } + arch = arch || external_os_namespaceObject.arch(); + // attempt to resolve an explicit version + if (!isExplicitVersion(versionSpec)) { + const localVersions = findAllVersions(toolName, arch); + const match = evaluateVersions(localVersions, versionSpec); + versionSpec = match; + } + // check for the explicit version in the cache + let toolPath = ''; + if (versionSpec) { + versionSpec = node_modules_semver.clean(versionSpec) || ''; + const cachePath = external_path_.join(_getCacheDirectory(), toolName, versionSpec, arch); + core_debug(`checking cache: ${cachePath}`); + if (external_fs_.existsSync(cachePath) && external_fs_.existsSync(`${cachePath}.complete`)) { + core_debug(`Found tool in cache ${toolName} ${versionSpec} ${arch}`); + toolPath = cachePath; + } + else { + core_debug('not found'); + } + } + return toolPath; +} +/** + * Finds the paths to all versions of a tool that are installed in the local tool cache + * + * @param toolName name of the tool + * @param arch optional arch. defaults to arch of computer + */ +function findAllVersions(toolName, arch) { + const versions = []; + arch = arch || external_os_namespaceObject.arch(); + const toolPath = external_path_.join(_getCacheDirectory(), toolName); + if (external_fs_.existsSync(toolPath)) { + const children = external_fs_.readdirSync(toolPath); + for (const child of children) { + if (isExplicitVersion(child)) { + const fullPath = external_path_.join(toolPath, child, arch || ''); + if (external_fs_.existsSync(fullPath) && external_fs_.existsSync(`${fullPath}.complete`)) { + versions.push(child); + } + } + } + } + return versions; +} +function getManifestFromRepo(owner_1, repo_1, auth_1) { + return tool_cache_awaiter(this, arguments, void 0, function* (owner, repo, auth, branch = 'master') { + let releases = []; + const treeUrl = `https://api.github.com/repos/${owner}/${repo}/git/trees/${branch}`; + const http = new httpm.HttpClient('tool-cache'); + const headers = {}; + if (auth) { + core.debug('set auth'); + headers.authorization = auth; + } + const response = yield http.getJson(treeUrl, headers); + if (!response.result) { + return releases; + } + let manifestUrl = ''; + for (const item of response.result.tree) { + if (item.path === 'versions-manifest.json') { + manifestUrl = item.url; + break; + } + } + headers['accept'] = 'application/vnd.github.VERSION.raw'; + let versionsRaw = yield (yield http.get(manifestUrl, headers)).readBody(); + if (versionsRaw) { + // shouldn't be needed but protects against invalid json saved with BOM + versionsRaw = versionsRaw.replace(/^\uFEFF/, ''); + try { + releases = JSON.parse(versionsRaw); + } + catch (_a) { + core.debug('Invalid json'); + } + } + return releases; + }); +} +function findFromManifest(versionSpec_1, stable_1, manifest_1) { + return tool_cache_awaiter(this, arguments, void 0, function* (versionSpec, stable, manifest, archFilter = os.arch()) { + // wrap the internal impl + const match = yield mm._findMatch(versionSpec, stable, manifest, archFilter); + return match; + }); +} +function _createExtractFolder(dest) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + if (!dest) { + // create a temp dir + dest = external_path_.join(_getTempDirectory(), external_crypto_.randomUUID()); + } + yield mkdirP(dest); + return dest; + }); +} +function _createToolPath(tool, version, arch) { + return tool_cache_awaiter(this, void 0, void 0, function* () { + const folderPath = external_path_.join(_getCacheDirectory(), tool, node_modules_semver.clean(version) || version, arch || ''); + core_debug(`destination ${folderPath}`); + const markerPath = `${folderPath}.complete`; + yield rmRF(folderPath); + yield rmRF(markerPath); + yield mkdirP(folderPath); + return folderPath; + }); +} +function _completeToolPath(tool, version, arch) { + const folderPath = external_path_.join(_getCacheDirectory(), tool, node_modules_semver.clean(version) || version, arch || ''); + const markerPath = `${folderPath}.complete`; + external_fs_.writeFileSync(markerPath, ''); + core_debug('finished caching tool'); +} +/** + * Check if version string is explicit + * + * @param versionSpec version string to check + */ +function isExplicitVersion(versionSpec) { + const c = node_modules_semver.clean(versionSpec) || ''; + core_debug(`isExplicit: ${c}`); + const valid = node_modules_semver.valid(c) != null; + core_debug(`explicit? ${valid}`); + return valid; +} +/** + * Get the highest satisfiying semantic version in `versions` which satisfies `versionSpec` + * + * @param versions array of versions to evaluate + * @param versionSpec semantic version spec to satisfy + */ +function evaluateVersions(versions, versionSpec) { + let version = ''; + core_debug(`evaluating ${versions.length} versions`); + versions = versions.sort((a, b) => { + if (node_modules_semver.gt(a, b)) { + return 1; + } + return -1; + }); + for (let i = versions.length - 1; i >= 0; i--) { + const potential = versions[i]; + const satisfied = node_modules_semver.satisfies(potential, versionSpec); + if (satisfied) { + version = potential; + break; + } + } + if (version) { + core_debug(`matched: ${version}`); + } + else { + core_debug('match not found'); + } + return version; +} +/** + * Gets RUNNER_TOOL_CACHE + */ +function _getCacheDirectory() { + const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || ''; + (0,external_assert_.ok)(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined'); + return cacheDirectory; +} +/** + * Gets RUNNER_TEMP + */ +function _getTempDirectory() { + const tempDirectory = process.env['RUNNER_TEMP'] || ''; + (0,external_assert_.ok)(tempDirectory, 'Expected RUNNER_TEMP to be defined'); + return tempDirectory; +} +/** + * Gets a global variable + */ +function _getGlobal(key, defaultValue) { + /* eslint-disable @typescript-eslint/no-explicit-any */ + const value = global[key]; + /* eslint-enable @typescript-eslint/no-explicit-any */ + return value !== undefined ? value : defaultValue; +} +/** + * Returns an array of unique values. + * @param values Values to make unique. + */ +function _unique(values) { + return Array.from(new Set(values)); +} +//# sourceMappingURL=tool-cache.js.map +;// CONCATENATED MODULE: ./lib/installer.js +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + + + + + + + + + + +const osPlat = (0,external_node_os_namespaceObject.platform)(); +const osArch = (0,external_node_os_namespaceObject.arch)(); +// Retrieve a list of versions scraping tags from the Github API +async function fetchVersions(repoToken, maxRetries) { + const http = new lib_HttpClient("setup-task", [], { + allowRetries: true, + maxRetries, + }); + const headers = repoToken ? { Authorization: `Bearer ${repoToken}` } : undefined; + const tags = (await http.getJson("https://api.github.com/repos/go-task/task/releases?per_page=100", headers)).result || []; + return tags.map((tag) => tag.tag_name.replace(/^v/, "")); +} +// Make partial versions semver compliant. +function normalizeVersion(version) { + const preStrings = ["beta", "rc", "preview"]; + const versionPart = version.split("."); + if (versionPart[1] == null) { + // append minor and patch version if not available + // e.g. 2 -> 2.0.0 + return version.concat(".0.0"); + } + // handle beta and rc + // e.g. 1.10beta1 -? 1.10.0-beta1, 1.10rc1 -> 1.10.0-rc1 + if (preStrings.some((el) => versionPart[1].includes(el))) { + versionPart[1] = versionPart[1] + .replace("beta", ".0-beta") + .replace("rc", ".0-rc") + .replace("preview", ".0-preview"); + return versionPart.join("."); + } + if (versionPart[2] == null) { + // append patch version if not available + // e.g. 2.1 -> 2.1.0 + return version.concat(".0"); + } + // handle beta and rc + // e.g. 1.8.5beta1 -> 1.8.5-beta1, 1.8.5rc1 -> 1.8.5-rc1 + if (preStrings.some((el) => versionPart[2].includes(el))) { + versionPart[2] = versionPart[2] + .replace("beta", "-beta") + .replace("rc", "-rc") + .replace("preview", "-preview"); + return versionPart.join("."); + } + return version; +} +// Compute an actual version starting from the `version` configuration param. +async function computeVersion(version, repoToken, maxRetries) { + // return if passed version is a valid semver + if ((0,node_modules_semver.valid)(version)) { + core_debug("valid semver provided, skipping computing actual version"); + return `v${version}`; // Task releases are v-prefixed + } + let versionPrefix = version; + // strip leading `v` char (will be re-added later) + if (versionPrefix.startsWith("v")) { + versionPrefix = versionPrefix.slice(1, versionPrefix.length); + } + // strip trailing .x chars + if (versionPrefix.endsWith(".x")) { + versionPrefix = versionPrefix.slice(0, versionPrefix.length - 2); + } + const allVersions = await fetchVersions(repoToken, maxRetries); + const possibleVersions = allVersions.filter((v) => v.startsWith(versionPrefix)); + const versionMap = new Map(); + possibleVersions.forEach((v) => versionMap.set(normalizeVersion(v), v)); + const versions = Array.from(versionMap.keys()) + .sort(node_modules_semver.rcompare) + .map((v) => versionMap.get(v)); + core_debug(`evaluating ${versions.length} versions`); + if (versions.length === 0) { + throw new Error("unable to get latest version"); + } + core_debug(`matched: ${versions[0]}`); + return `v${versions[0]}`; +} +function getFileName() { + const taskPlatform = osPlat === "win32" ? "windows" : osPlat; + const arches = { + arm: "arm", + arm64: "arm64", + x64: "amd64", + ia32: "386", + }; + const taskArch = arches[osArch] ?? osArch; + const ext = osPlat === "win32" ? "zip" : "tar.gz"; + const filename = (0,external_node_util_.format)("task_%s_%s.%s", taskPlatform, taskArch, ext); + return filename; +} +async function computeSHA256(filePath) { + return new Promise((resolve, reject) => { + const hash = (0,external_node_crypto_.createHash)("sha256"); + (0,external_node_fs_namespaceObject.createReadStream)(filePath) + .on("data", (chunk) => hash.update(chunk)) + .on("end", () => resolve(hash.digest("hex"))) + .on("error", reject); + }); +} +async function verifyChecksum(filePath, version, fileName, repoToken, maxRetries) { + const http = new lib_HttpClient("setup-task", [], { allowRetries: true, maxRetries }); + const headers = repoToken ? { Authorization: `Bearer ${repoToken}` } : undefined; + const checksumUrl = `https://github.com/go-task/task/releases/download/${version}/task_checksums.txt`; + let body; + try { + const response = await http.get(checksumUrl, headers); + body = await response.readBody(); + } + catch { + warning("Unable to fetch checksums. Proceeding without integrity verification."); + return; + } + const expectedLine = body.split("\n").find((line) => line.trim().endsWith(fileName)); + if (!expectedLine) { + warning(`No checksum entry found for ${fileName}. Proceeding without integrity verification.`); + return; + } + const expectedHash = expectedLine.trim().split(/\s+/)[0]; + const actualHash = await computeSHA256(filePath); + if (actualHash !== expectedHash) { + throw new Error(`Checksum mismatch for ${fileName}: expected ${expectedHash}, got ${actualHash}`); + } + info(`Checksum verified for ${fileName}`); +} +async function downloadRelease(version, repoToken, maxRetries) { + // Download + const fileName = getFileName(); + const downloadUrl = (0,external_node_util_.format)("https://github.com/go-task/task/releases/download/%s/%s", version, fileName); + let downloadPath = null; + try { + downloadPath = await downloadTool(downloadUrl); + } + catch (error) { + if (typeof error === "string" || error instanceof Error) { + core_debug(error.toString()); + } + throw new Error(`Failed to download version ${version}: ${error}`); + } + // Verify integrity via checksum file + await verifyChecksum(downloadPath, version, fileName, repoToken, maxRetries); + // Extract + let extPath = null; + if (osPlat === "win32") { + extPath = await extractZip(downloadPath); + // Create a bin/ folder and move `task` there + await mkdirP((0,external_node_path_namespaceObject.join)(extPath, "bin")); + await mv((0,external_node_path_namespaceObject.join)(extPath, "task.exe"), (0,external_node_path_namespaceObject.join)(extPath, "bin")); + } + else { + extPath = await extractTar(downloadPath); + // Create a bin/ folder and move `task` there + await mkdirP((0,external_node_path_namespaceObject.join)(extPath, "bin")); + await mv((0,external_node_path_namespaceObject.join)(extPath, "task"), (0,external_node_path_namespaceObject.join)(extPath, "bin")); + } + // Install into the local tool cache - node extracts with a root folder that matches the fileName downloaded + return cacheDir(extPath, "task", version); +} +async function getTask(version, repoToken, maxRetries = 3) { + // resolve the version number + const targetVersion = await computeVersion(version, repoToken, maxRetries); + // look if the binary is cached + let toolPath; + toolPath = find("task", targetVersion); + // if not: download, extract and cache + if (!toolPath) { + toolPath = await downloadRelease(targetVersion, repoToken, maxRetries); + core_debug(`Task cached under ${toolPath}`); + } + toolPath = (0,external_node_path_namespaceObject.join)(toolPath, "bin"); + addPath(toolPath); + info(`Successfully setup Task version ${targetVersion}`); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/bind.js + + +/** + * Create a bound version of a function with a specified `this` context + * + * @param {Function} fn - The function to bind + * @param {*} thisArg - The value to be passed as the `this` parameter + * @returns {Function} A new function that will call the original function with the specified `this` context + */ +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/utils.js + + + + +// utils is a library of generic helper functions non-specific to axios + +const { toString: utils_toString } = Object.prototype; +const { getPrototypeOf } = Object; +const { iterator, toStringTag } = Symbol; + +/* Creating a function that will check if an object has a property. */ +const utils_hasOwnProperty = ( + ({ hasOwnProperty }) => + (obj, prop) => + hasOwnProperty.call(obj, prop) +)(Object.prototype); + +/** + * Walk the prototype chain (excluding the shared Object.prototype) looking for + * an own `prop`. This distinguishes genuine own/inherited members — including + * class accessors and template prototypes — from members injected via + * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which + * live on Object.prototype itself and are therefore never matched. + * + * @param {*} thing The value whose chain to inspect + * @param {string|symbol} prop The property key to look for + * + * @returns {boolean} True when `prop` is owned below Object.prototype + */ +const hasOwnInPrototypeChain = (thing, prop) => { + let obj = thing; + const seen = []; + + while (obj != null && obj !== Object.prototype) { + if (seen.indexOf(obj) !== -1) { + return false; + } + seen.push(obj); + + if (utils_hasOwnProperty(obj, prop)) { + return true; + } + obj = getPrototypeOf(obj); + } + return false; +}; + +/** + * Read `obj[prop]` only when it is safe from Object.prototype pollution. Own + * properties and members inherited from a non-Object.prototype source (a class + * instance or template object) are honored; a value reachable only through a + * polluted Object.prototype is ignored and `undefined` is returned. + * + * @param {*} obj The source object + * @param {string|symbol} prop The property key to read + * + * @returns {*} The resolved value, or undefined when unsafe/absent + */ +const getSafeProp = (obj, prop) => + obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined; + +const kindOf = ((cache) => (thing) => { + const str = utils_toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type; +}; + +const typeOfTest = (type) => (thing) => typeof thing === type; + +/** + * Determine if a value is a non-null object + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const { isArray } = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return ( + val !== null && + !isUndefined(val) && + val.constructor !== null && + !isUndefined(val.constructor) && + isFunction(val.constructor.isBuffer) && + val.constructor.isBuffer(val) + ); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && isArrayBuffer(val.buffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = (thing) => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (!isObject(val)) { + return false; + } + + const prototype = getPrototypeOf(val); + return ( + (prototype === null || + prototype === Object.prototype || + getPrototypeOf(prototype) === null) && + // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or + // Symbol.iterator as evidence the value is a tagged/iterable type rather + // than a plain object, while ignoring keys injected onto Object.prototype. + !hasOwnInPrototypeChain(val, toStringTag) && + !hasOwnInPrototypeChain(val, iterator) + ); +}; + +/** + * Determine if a value is an empty object (safely handles Buffers) + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an empty object, otherwise false + */ +const isEmptyObject = (val) => { + // Early return for non-objects or Buffers to prevent RangeError + if (!isObject(val) || isBuffer(val)) { + return false; + } + + try { + return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype; + } catch (e) { + // Fallback for any other objects that might cause RangeError with Object.keys() + return false; + } +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a React Native Blob + * React Native "blob": an object with a `uri` attribute. Optionally, it can + * also have a `name` and `type` attribute to specify filename and content type + * + * @see https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Network/FormData.js#L68-L71 + * + * @param {*} value The value to test + * + * @returns {boolean} True if value is a React Native Blob, otherwise false + */ +const isReactNativeBlob = (value) => { + return !!(value && typeof value.uri !== 'undefined'); +}; + +/** + * Determine if environment is React Native + * ReactNative `FormData` has a non-standard `getParts()` method + * + * @param {*} formData The formData to test + * + * @returns {boolean} True if environment is React Native, otherwise false + */ +const isReactNative = (formData) => formData && typeof formData.getParts !== 'undefined'; + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a FileList, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +function getGlobal() { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + return {}; +} + +const G = getGlobal(); +const FormDataCtor = typeof G.FormData !== 'undefined' ? G.FormData : undefined; + +const isFormData = (thing) => { + if (!thing) return false; + if (FormDataCtor && thing instanceof FormDataCtor) return true; + // Reject plain objects inheriting directly from Object.prototype so prototype-pollution gadgets can't spoof FormData. + const proto = getPrototypeOf(thing); + if (!proto || proto === Object.prototype) return false; + if (!isFunction(thing.append)) return false; + const kind = kindOf(thing); + return ( + kind === 'formdata' || + // detect form-data instance + (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]') + ); +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +const [isReadableStream, isRequest, isResponse, isHeaders] = [ + 'ReadableStream', + 'Request', + 'Response', + 'Headers', +].map(kindOfTest); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => { + return str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); +}; +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, { allOwnKeys = false } = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Buffer check + if (isBuffer(obj)) { + return; + } + + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +/** + * Finds a key in an object, case-insensitive, returning the actual key name. + * Returns null if the object is a Buffer or if no match is found. + * + * @param {Object} obj - The object to search. + * @param {string} key - The key to find (case-insensitive). + * @returns {?string} The actual key name if found, otherwise null. + */ +function findKey(obj, key) { + if (isBuffer(obj)) { + return null; + } + + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== 'undefined') return globalThis; + return typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : global; +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * const result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(...objs) { + const { caseless, skipUndefined } = (isContextDefined(this) && this) || {}; + const result = {}; + const assignValue = (val, key) => { + // Skip dangerous property names to prevent prototype pollution + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return; + } + + // findKey lowercases the key, so caseless lookup only applies to strings — + // symbol keys are identity-matched. + const targetKey = (caseless && typeof key === 'string' && findKey(result, key)) || key; + // Read via own-prop only — a bare `result[targetKey]` walks the prototype + // chain, so a polluted Object.prototype value could surface here and get + // copied into the merged result. + const existing = utils_hasOwnProperty(result, targetKey) ? result[targetKey] : undefined; + if (isPlainObject(existing) && isPlainObject(val)) { + result[targetKey] = merge(existing, val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else if (!skipUndefined || !isUndefined(val)) { + result[targetKey] = val; + } + }; + + for (let i = 0, l = objs.length; i < l; i++) { + const source = objs[i]; + if (!source || isBuffer(source)) { + continue; + } + + forEach(source, assignValue); + + if (typeof source !== 'object' || isArray(source)) { + continue; + } + + const symbols = Object.getOwnPropertySymbols(source); + for (let j = 0; j < symbols.length; j++) { + const symbol = symbols[j]; + if (propertyIsEnumerable.call(source, symbol)) { + assignValue(source[symbol], symbol); + } + } + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Object} [options] + * @param {Boolean} [options.allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, { allOwnKeys } = {}) => { + forEach( + b, + (val, key) => { + if (thisArg && isFunction(val)) { + Object.defineProperty(a, key, { + // Null-proto descriptor so a polluted Object.prototype.get cannot + // hijack defineProperty's accessor-vs-data resolution. + __proto__: null, + value: bind(val, thisArg), + writable: true, + enumerable: true, + configurable: true, + }); + } else { + Object.defineProperty(a, key, { + __proto__: null, + value: val, + writable: true, + enumerable: true, + configurable: true, + }); + } + }, + { allOwnKeys } + ); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xfeff) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + Object.defineProperty(constructor.prototype, 'constructor', { + __proto__: null, + value: constructor, + writable: true, + enumerable: false, + configurable: true, + }); + Object.defineProperty(constructor, 'super', { + __proto__: null, + value: superConstructor.prototype, + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = ((TypedArray) => { + // eslint-disable-next-line func-names + return (thing) => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[iterator]; + + const _iterator = generator.call(obj); + + let result; + + while ((result = _iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = (str) => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + }); +}; + +const { propertyIsEnumerable } = Object.prototype; + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + let ret; + if ((ret = reducer(descriptor, name, obj)) !== false) { + reducedDescriptors[name] = ret || descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].includes(name)) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error("Can not rewrite read-only method '" + name + "'"); + }; + } + }); +}; + +/** + * Converts an array or a delimited string into an object set with values as keys and true as values. + * Useful for fast membership checks. + * + * @param {Array|string} arrayOrString - The array or string to convert. + * @param {string} delimiter - The delimiter to use if input is a string. + * @returns {Object} An object with keys from the array or string, values set to true. + */ +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach((value) => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + return value != null && Number.isFinite((value = +value)) ? value : defaultValue; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!( + thing && + isFunction(thing.append) && + thing[toStringTag] === 'FormData' && + thing[iterator] + ); +} + +/** + * Recursively converts an object to a JSON-compatible object, handling circular references and Buffers. + * + * @param {Object} obj - The object to convert. + * @returns {Object} The JSON-compatible object. + */ +const toJSONObject = (obj) => { + const visited = new WeakSet(); + + const visit = (source) => { + if (isObject(source)) { + if (visited.has(source)) { + return; + } + + //Buffer check + if (isBuffer(source)) { + return source; + } + + if (!('toJSON' in source)) { + // add-on descent / delete-on-ascent: preserves path semantics, so DAG nodes serialise at every occurrence (see #7230). + visited.add(source); + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + visited.delete(source); + + return target; + } + } + + return source; + }; + + return visit(obj); +}; + +/** + * Determines if a value is an async function. + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is an async function, otherwise false. + */ +const isAsyncFn = kindOfTest('AsyncFunction'); + +/** + * Determines if a value is thenable (has then and catch methods). + * + * @param {*} thing - The value to test. + * @returns {boolean} True if value is thenable, otherwise false. + */ +const isThenable = (thing) => + thing && + (isObject(thing) || isFunction(thing)) && + isFunction(thing.then) && + isFunction(thing.catch); + +// original code +// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34 + +/** + * Provides a cross-platform setImmediate implementation. + * Uses native setImmediate if available, otherwise falls back to postMessage or setTimeout. + * + * @param {boolean} setImmediateSupported - Whether setImmediate is supported. + * @param {boolean} postMessageSupported - Whether postMessage is supported. + * @returns {Function} A function to schedule a callback asynchronously. + */ +const _setImmediate = ((setImmediateSupported, postMessageSupported) => { + if (setImmediateSupported) { + return setImmediate; + } + + return postMessageSupported + ? ((token, callbacks) => { + _global.addEventListener( + 'message', + ({ source, data }) => { + if (source === _global && data === token) { + callbacks.length && callbacks.shift()(); + } + }, + false + ); + + return (cb) => { + callbacks.push(cb); + _global.postMessage(token, '*'); + }; + })(`axios@${Math.random()}`, []) + : (cb) => setTimeout(cb); +})(typeof setImmediate === 'function', isFunction(_global.postMessage)); + +/** + * Schedules a microtask or asynchronous callback as soon as possible. + * Uses queueMicrotask if available, otherwise falls back to process.nextTick or _setImmediate. + * + * @type {Function} + */ +const asap = + typeof queueMicrotask !== 'undefined' + ? queueMicrotask.bind(_global) + : (typeof process !== 'undefined' && process.nextTick) || _setImmediate; + +// ********************* + +const isIterable = (thing) => thing != null && isFunction(thing[iterator]); + +/** + * Determine if a value is iterable via an iterator that is NOT sourced solely + * from a polluted Object.prototype. Use this instead of `isIterable` whenever + * the iterable comes from untrusted input (e.g. user-supplied header sources), + * so `Object.prototype[Symbol.iterator] = ...` cannot turn an ordinary object + * into an attacker-controlled entries iterator. + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value has a non-polluted iterator + */ +const isSafeIterable = (thing) => + thing != null && hasOwnInPrototypeChain(thing, iterator) && isIterable(thing); + +/* harmony default export */ const utils = ({ + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isEmptyObject, + isReadableStream, + isRequest, + isResponse, + isHeaders, + isUndefined, + isDate, + isFile, + isReactNativeBlob, + isReactNative, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty: utils_hasOwnProperty, + hasOwnProp: utils_hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + hasOwnInPrototypeChain, + getSafeProp, + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + isSpecCompliantForm, + toJSONObject, + isAsyncFn, + isThenable, + setImmediate: _setImmediate, + asap, + isIterable, + isSafeIterable, +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/parseHeaders.js + + + + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils.toObjectSet([ + 'age', + 'authorization', + 'content-length', + 'content-type', + 'etag', + 'expires', + 'from', + 'host', + 'if-modified-since', + 'if-unmodified-since', + 'last-modified', + 'location', + 'max-forwards', + 'proxy-authorization', + 'referer', + 'retry-after', + 'user-agent', +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +/* harmony default export */ const parseHeaders = ((rawHeaders) => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && + rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/sanitizeHeaderValue.js + + + + +function trimSPorHTAB(str) { + let start = 0; + let end = str.length; + + while (start < end) { + const code = str.charCodeAt(start); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + start += 1; + } + + while (end > start) { + const code = str.charCodeAt(end - 1); + + if (code !== 0x09 && code !== 0x20) { + break; + } + + end -= 1; + } + + return start === 0 && end === str.length ? str : str.slice(start, end); +} + +// The control-code ranges are intentional: header sanitization strips C0/DEL bytes. +// eslint-disable-next-line no-control-regex +const INVALID_UNICODE_HEADER_VALUE_CHARS = new RegExp('[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+', 'g'); +// eslint-disable-next-line no-control-regex +const INVALID_BYTE_STRING_HEADER_VALUE_CHARS = new RegExp('[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+', 'g'); + +function sanitizeValue(value, invalidChars) { + if (utils.isArray(value)) { + return value.map((item) => sanitizeValue(item, invalidChars)); + } + + return trimSPorHTAB(String(value).replace(invalidChars, '')); +} + +const sanitizeHeaderValue = (value) => + sanitizeValue(value, INVALID_UNICODE_HEADER_VALUE_CHARS); + +const sanitizeByteStringHeaderValue = (value) => + sanitizeValue(value, INVALID_BYTE_STRING_HEADER_VALUE_CHARS); + +function toByteStringHeaderObject(headers) { + const byteStringHeaders = Object.create(null); + + utils.forEach(headers.toJSON(), (value, header) => { + byteStringHeaders[header] = sanitizeByteStringHeaderValue(value); + }); + + return byteStringHeaders; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/AxiosHeaders.js + + + + + + +const $internals = Symbol('internals'); + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils.isArray(value) ? value.map(normalizeValue) : sanitizeHeaderValue(String(value)); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +const isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils.isString(value)) return; + + if (utils.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header + .trim() + .toLowerCase() + .replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach((methodName) => { + Object.defineProperty(obj, methodName + accessorName, { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, + value: function (arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true, + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + return; + } + + const key = utils.findKey(self, lHeader); + + if ( + !key || + self[key] === undefined || + _rewrite === true || + (_rewrite === undefined && self[key] !== false) + ) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if (utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else if (utils.isObject(header) && utils.isSafeIterable(header)) { + let obj = Object.create(null), + dest, + key; + for (const entry of header) { + if (!utils.isArray(entry)) { + throw new TypeError('Object iterator must return a key-value pair'); + } + + key = entry[0]; + + if (utils.hasOwnProp(obj, key)) { + dest = obj[key]; + obj[key] = utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]; + } else { + obj[key] = entry[1]; + } + } + + setHeaders(obj, valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + return !!( + key && + this[key] !== undefined && + (!matcher || matchHeaderValue(this, this[key], key, matcher)) + ); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils.forEach(this, (value, header) => { + const key = utils.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils.forEach(this, (value, header) => { + value != null && + value !== false && + (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()) + .map(([header, value]) => header + ': ' + value) + .join('\n'); + } + + getSetCookie() { + return this.get('set-cookie') || []; + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = + (this[$internals] = + this[$internals] = + { + accessors: {}, + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor([ + 'Content-Type', + 'Content-Length', + 'Accept', + 'Accept-Encoding', + 'User-Agent', + 'Authorization', +]); + +// reserved names hotfix +utils.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key) => { + let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set` + return { + get: () => value, + set(headerValue) { + this[mapped] = headerValue; + }, + }; +}); + +utils.freezeMethods(AxiosHeaders); + +/* harmony default export */ const core_AxiosHeaders = (AxiosHeaders); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/AxiosError.js + + + + + +const REDACTED = '[REDACTED ****]'; + +function hasOwnOrPrototypeToJSON(source) { + if (utils.hasOwnProp(source, 'toJSON')) { + return true; + } + + let prototype = Object.getPrototypeOf(source); + + while (prototype && prototype !== Object.prototype) { + if (utils.hasOwnProp(prototype, 'toJSON')) { + return true; + } + + prototype = Object.getPrototypeOf(prototype); + } + + return false; +} + +// Build a plain-object snapshot of `config` and replace the value of any key +// (case-insensitive) listed in `redactKeys` with REDACTED. Walks through arrays +// and AxiosHeaders, and short-circuits on circular references. +function redactConfig(config, redactKeys) { + const lowerKeys = new Set(redactKeys.map((k) => String(k).toLowerCase())); + const seen = []; + + const visit = (source) => { + if (source === null || typeof source !== 'object') return source; + if (utils.isBuffer(source)) return source; + if (seen.indexOf(source) !== -1) return undefined; + + if (source instanceof core_AxiosHeaders) { + source = source.toJSON(); + } + + seen.push(source); + + let result; + if (utils.isArray(source)) { + result = []; + source.forEach((v, i) => { + const reducedValue = visit(v); + if (!utils.isUndefined(reducedValue)) { + result[i] = reducedValue; + } + }); + } else { + if (!utils.isPlainObject(source) && hasOwnOrPrototypeToJSON(source)) { + seen.pop(); + return source; + } + + result = Object.create(null); + for (const [key, value] of Object.entries(source)) { + const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value); + if (!utils.isUndefined(reducedValue)) { + result[key] = reducedValue; + } + } + } + + seen.pop(); + return result; + }; + + return visit(config); +} + +class AxiosError extends Error { + static from(error, code, config, request, response, customProps) { + const axiosError = new AxiosError(error.message, code || error.code, config, request, response); + // Match native `Error` `cause` semantics: non-enumerable. The wrapped + // error often carries circular internals (sockets, requests, agents), so + // an enumerable `cause` makes structured loggers (pino/winston) and any + // own-property walk throw "Converting circular structure to JSON". + // Regression from #6982; see #7205. `__proto__: null` mirrors the + // `message` descriptor below (prototype-pollution-safe descriptor). + Object.defineProperty(axiosError, 'cause', { + __proto__: null, + value: error, + writable: true, + enumerable: false, + configurable: true, + }); + axiosError.name = error.name; + + // Preserve status from the original error if not already set from response + if (error.status != null && axiosError.status == null) { + axiosError.status = error.status; + } + + customProps && Object.assign(axiosError, customProps); + return axiosError; + } + + /** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ + constructor(message, code, config, request, response) { + super(message); + + // Make message enumerable to maintain backward compatibility + // The native Error constructor sets message as non-enumerable, + // but axios < v1.13.3 had it as enumerable + Object.defineProperty(this, 'message', { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, + value: message, + enumerable: true, + writable: true, + configurable: true, + }); + + this.name = 'AxiosError'; + this.isAxiosError = true; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + if (response) { + this.response = response; + this.status = response.status; + } + } + + toJSON() { + // Opt-in redaction: when the request config carries a `redact` array, the + // value of any matching key (case-insensitive, at any depth) is replaced + // with REDACTED in the serialized snapshot. Undefined or empty leaves the + // existing serialization behavior unchanged. + const config = this.config; + const redactKeys = config && utils.hasOwnProp(config, 'redact') ? config.redact : undefined; + const serializedConfig = + utils.isArray(redactKeys) && redactKeys.length > 0 + ? redactConfig(config, redactKeys) + : utils.toJSONObject(config); + + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: serializedConfig, + code: this.code, + status: this.status, + }; + } +} + +// This can be changed to static properties as soon as the parser options in .eslint.cjs are updated. +AxiosError.ERR_BAD_OPTION_VALUE = 'ERR_BAD_OPTION_VALUE'; +AxiosError.ERR_BAD_OPTION = 'ERR_BAD_OPTION'; +AxiosError.ECONNABORTED = 'ECONNABORTED'; +AxiosError.ETIMEDOUT = 'ETIMEDOUT'; +AxiosError.ECONNREFUSED = 'ECONNREFUSED'; +AxiosError.ERR_NETWORK = 'ERR_NETWORK'; +AxiosError.ERR_FR_TOO_MANY_REDIRECTS = 'ERR_FR_TOO_MANY_REDIRECTS'; +AxiosError.ERR_DEPRECATED = 'ERR_DEPRECATED'; +AxiosError.ERR_BAD_RESPONSE = 'ERR_BAD_RESPONSE'; +AxiosError.ERR_BAD_REQUEST = 'ERR_BAD_REQUEST'; +AxiosError.ERR_CANCELED = 'ERR_CANCELED'; +AxiosError.ERR_NOT_SUPPORT = 'ERR_NOT_SUPPORT'; +AxiosError.ERR_INVALID_URL = 'ERR_INVALID_URL'; +AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED = 'ERR_FORM_DATA_DEPTH_EXCEEDED'; + +/* harmony default export */ const core_AxiosError = (AxiosError); + +// EXTERNAL MODULE: ./node_modules/axios/node_modules/form-data/lib/form_data.js +var form_data = __nccwpck_require__(5416); +;// CONCATENATED MODULE: ./node_modules/axios/lib/platform/node/classes/FormData.js + + +/* harmony default export */ const classes_FormData = (form_data); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/toFormData.js + + + + +// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored + + +// Default nesting limit shared with the inverse transform (formDataToJSON) so +// the FormData <-> JSON round-trip stays symmetric. +const DEFAULT_FORM_DATA_MAX_DEPTH = 100; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils.isPlainObject(thing) || utils.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path + .concat(key) + .map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }) + .join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (classes_FormData || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils.toFlatObject( + options, + { + metaTokens: true, + dots: false, + indexes: false, + }, + false, + function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils.isUndefined(source[option]); + } + ); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob); + const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth; + const useBlob = _Blob && utils.isSpecCompliantForm(formData); + const stack = []; + + if (!utils.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils.isDate(value)) { + return value.toISOString(); + } + + if (utils.isBoolean(value)) { + return value.toString(); + } + + if (!useBlob && utils.isBlob(value)) { + throw new core_AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + if (useBlob && typeof _Blob === 'function') { + return new _Blob([value]); + } + if (typeof Buffer !== 'undefined') { + return Buffer.from(value); + } + throw new core_AxiosError('Blob is not supported. Use a Buffer instead.', core_AxiosError.ERR_NOT_SUPPORT); + } + + return value; + } + + function throwIfMaxDepthExceeded(depth) { + if (depth > maxDepth) { + throw new core_AxiosError( + 'Object is too deeply nested (' + depth + ' levels). Max depth: ' + maxDepth, + core_AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } + } + + function stringifyWithDepthLimit(value, depth) { + if (maxDepth === Infinity) { + return JSON.stringify(value); + } + + const ancestors = []; + + return JSON.stringify(value, function limitDepth(_key, currentValue) { + if (!utils.isObject(currentValue)) { + return currentValue; + } + + while (ancestors.length && ancestors[ancestors.length - 1] !== this) { + ancestors.pop(); + } + + ancestors.push(currentValue); + throwIfMaxDepthExceeded(depth + ancestors.length - 1); + + return currentValue; + }); + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (utils.isReactNative(formData) && utils.isReactNativeBlob(value)) { + formData.append(renderKey(path, key, dots), convertValue(value)); + return false; + } + + if (value && !path && typeof value === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = stringifyWithDepthLimit(value, 1); + } else if ( + (utils.isArray(value) && isFlatArray(value)) || + ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))) + ) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils.isUndefined(el) || el === null) && + formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true + ? renderKey([key], index, dots) + : indexes === null + ? key + : key + '[]', + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable, + }); + + function build(value, path, depth = 0) { + if (utils.isUndefined(value)) return; + + throwIfMaxDepthExceeded(depth); + + if (stack.indexOf(value) !== -1) { + throw new Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils.forEach(value, function each(el, key) { + const result = + !(utils.isUndefined(el) || el === null) && + visitor.call(formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers); + + if (result === true) { + build(el, path ? path.concat(key) : [key], depth + 1); + } + }); + + stack.pop(); + } + + if (!utils.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/* harmony default export */ const helpers_toFormData = (toFormData); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js + + + + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + }; + return encodeURIComponent(str).replace(/[!'()~]|%20/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && helpers_toFormData(params, this, options); +} + +const AxiosURLSearchParams_prototype = AxiosURLSearchParams.prototype; + +AxiosURLSearchParams_prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +AxiosURLSearchParams_prototype.toString = function toString(encoder) { + const _encode = encoder + ? (value) => encoder.call(this, value, encode) + : encode; + + return this._pairs + .map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '') + .join('&'); +}; + +/* harmony default export */ const helpers_AxiosURLSearchParams = (AxiosURLSearchParams); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/buildURL.js + + + + + +/** + * It replaces URL-encoded forms of `:`, `$`, `,`, and spaces with + * their plain counterparts (`:`, `$`, `,`, `+`). + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function buildURL_encode(val) { + return encodeURIComponent(val) + .replace(/%3A/gi, ':') + .replace(/%24/g, '$') + .replace(/%2C/gi, ',') + .replace(/%20/g, '+'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?(object|Function)} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + if (!params) { + return url; + } + url = url || ''; + + const _options = utils.isFunction(options) + ? { + serialize: options, + } + : options; + + // Read serializer options pollution-safely: own properties and methods on a + // class/template prototype are honored, but values injected onto a polluted + // Object.prototype are ignored. + const _encode = utils.getSafeProp(_options, 'encode') || buildURL_encode; + const serializeFn = utils.getSafeProp(_options, 'serialize'); + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, _options); + } else { + serializedParams = utils.isURLSearchParams(params) + ? params.toString() + : new helpers_AxiosURLSearchParams(params, _options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf('#'); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/InterceptorManager.js + + + + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * @param {Object} options The options for the interceptor, synchronous and runWhen + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null, + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {void} + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +/* harmony default export */ const core_InterceptorManager = (InterceptorManager); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/defaults/transitional.js + + +/* harmony default export */ const defaults_transitional = ({ + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false, + legacyInterceptorReqResOrdering: true, + advertiseZstdAcceptEncoding: false, + validateStatusUndefinedResolves: true, +}); + +// EXTERNAL MODULE: external "url" +var external_url_ = __nccwpck_require__(7016); +;// CONCATENATED MODULE: ./node_modules/axios/lib/platform/node/classes/URLSearchParams.js + + + +/* harmony default export */ const main_URLSearchParams = (external_url_.URLSearchParams); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/platform/node/index.js + + + + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT, +}; + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const { length } = alphabet; + const randomValues = new Uint32Array(size); + external_crypto_.randomFillSync(randomValues); + for (let i = 0; i < size; i++) { + str += alphabet[randomValues[i] % length]; + } + + return str; +}; + +/* harmony default export */ const node = ({ + isNode: true, + classes: { + URLSearchParams: main_URLSearchParams, + FormData: classes_FormData, + Blob: (typeof Blob !== 'undefined' && Blob) || null, + }, + ALPHABET, + generateString, + protocols: ['http', 'https', 'file', 'data'], +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/platform/common/utils.js +const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined'; + +const _navigator = (typeof navigator === 'object' && navigator) || undefined; + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + * + * @returns {boolean} + */ +const hasStandardBrowserEnv = + hasBrowserEnv && + (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0); + +/** + * Determine if we're running in a standard browser webWorker environment + * + * Although the `isStandardBrowserEnv` method indicates that + * `allows axios to run in a web worker`, the WebWorker will still be + * filtered out due to its judgment standard + * `typeof window !== 'undefined' && typeof document !== 'undefined'`. + * This leads to a problem when axios post `FormData` in webWorker + */ +const hasStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + +const origin = (hasBrowserEnv && window.location.href) || 'http://localhost'; + + + +;// CONCATENATED MODULE: ./node_modules/axios/lib/platform/index.js + + + +/* harmony default export */ const lib_platform = ({ + ...common_utils_namespaceObject, + ...node, +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/toURLEncodedForm.js + + + + + + +function toURLEncodedForm(data, options) { + return helpers_toFormData(data, new lib_platform.classes.URLSearchParams(), { + visitor: function (value, key, path, helpers) { + if (lib_platform.isNode && utils.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + }, + ...options, + }); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/formDataToJSON.js + + + + + + +const MAX_DEPTH = DEFAULT_FORM_DATA_MAX_DEPTH; + +function throwIfDepthExceeded(index) { + if (index > MAX_DEPTH) { + throw new core_AxiosError( + 'FormData field is too deeply nested (' + index + ' levels). Max depth: ' + MAX_DEPTH, + core_AxiosError.ERR_FORM_DATA_DEPTH_EXCEEDED + ); + } +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + const path = []; + const pattern = /\w+|\[(\w*)]/g; + let match; + + while ((match = pattern.exec(name)) !== null) { + throwIfDepthExceeded(path.length); + path.push(match[0] === '[]' ? '' : match[1] || match[0]); + } + + return path; +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + throwIfDepthExceeded(index); + + let name = path[index++]; + + if (name === '__proto__') return true; + + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils.isArray(target) ? target.length : name; + + if (isLast) { + if (utils.hasOwnProp(target, name)) { + target[name] = utils.isArray(target[name]) + ? target[name].concat(value) + : [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!utils.hasOwnProp(target, name) || !utils.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { + const obj = {}; + + utils.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +/* harmony default export */ const helpers_formDataToJSON = (formDataToJSON); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/defaults/index.js + + + + + + + + + + +const own = (obj, key) => (obj != null && utils.hasOwnProp(obj, key) ? obj[key] : undefined); + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + transitional: defaults_transitional, + + adapter: ['xhr', 'http', 'fetch'], + + transformRequest: [ + function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils.isObject(data); + + if (isObjectPayload && utils.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils.isFormData(data); + + if (isFormData) { + return hasJSONContentType ? JSON.stringify(helpers_formDataToJSON(data)) : data; + } + + if ( + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) || + utils.isReadableStream(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + const formSerializer = own(this, 'formSerializer'); + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, formSerializer).toString(); + } + + if ( + (isFileList = utils.isFileList(data)) || + contentType.indexOf('multipart/form-data') > -1 + ) { + const env = own(this, 'env'); + const _FormData = env && env.FormData; + + return helpers_toFormData( + isFileList ? { 'files[]': data } : data, + _FormData && new _FormData(), + formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }, + ], + + transformResponse: [ + function transformResponse(data) { + const transitional = own(this, 'transitional') || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const responseType = own(this, 'responseType'); + const JSONRequested = responseType === 'json'; + + if (utils.isResponse(data) || utils.isReadableStream(data)) { + return data; + } + + if ( + data && + utils.isString(data) && + ((forcedJSONParsing && !responseType) || JSONRequested) + ) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data, own(this, 'parseReviver')); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw core_AxiosError.from(e, core_AxiosError.ERR_BAD_RESPONSE, this, null, own(this, 'response')); + } + throw e; + } + } + } + + return data; + }, + ], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: lib_platform.classes.FormData, + Blob: lib_platform.classes.Blob, + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + Accept: 'application/json, text/plain, */*', + 'Content-Type': undefined, + }, + }, +}; + +utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => { + defaults.headers[method] = {}; +}); + +/* harmony default export */ const lib_defaults = (defaults); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/transformData.js + + + + + + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || lib_defaults; + const context = response || config; + const headers = core_AxiosHeaders.from(context.headers); + let data = context.data; + + utils.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/cancel/isCancel.js + + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/cancel/CanceledError.js + + + + +class CanceledError extends core_AxiosError { + /** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ + constructor(message, config, request) { + super(message == null ? 'canceled' : message, core_AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + this.__CANCEL__ = true; + } +} + +/* harmony default export */ const cancel_CanceledError = (CanceledError); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/settle.js + + + + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new core_AxiosError( + 'Request failed with status code ' + response.status, + response.status >= 400 && response.status < 500 ? core_AxiosError.ERR_BAD_REQUEST : core_AxiosError.ERR_BAD_RESPONSE, + response.config, + response.request, + response + )); + } +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/isAbsoluteURL.js + + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + if (typeof url !== 'string') { + return false; + } + + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/combineURLs.js + + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/?\/$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/buildFullPath.js + + + + + + +const malformedHttpProtocol = /^https?:(?!\/\/)/i; +const httpProtocolControlCharacters = /[\t\n\r]/g; + +function stripLeadingC0ControlOrSpace(url) { + let i = 0; + while (i < url.length && url.charCodeAt(i) <= 0x20) { + i++; + } + return url.slice(i); +} + +function normalizeURLForProtocolCheck(url) { + return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, ''); +} + +function assertValidHttpProtocolURL(url, config) { + if (typeof url === 'string' && malformedHttpProtocol.test(normalizeURLForProtocolCheck(url))) { + throw new core_AxiosError( + 'Invalid URL: missing "//" after protocol', + core_AxiosError.ERR_INVALID_URL, + config + ); + } +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls, config) { + assertValidHttpProtocolURL(requestedURL, config); + let isRelativeUrl = !isAbsoluteURL(requestedURL); + if (baseURL && (isRelativeUrl || allowAbsoluteUrls === false)) { + assertValidHttpProtocolURL(baseURL, config); + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +;// CONCATENATED MODULE: ./node_modules/axios/node_modules/proxy-from-env/index.js + + +var DEFAULT_PORTS = { + ftp: 21, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443, +}; + +function parseUrl(urlString) { + try { + return new URL(urlString); + } catch { + return null; + } +} + +/** + * @param {string|object|URL} url - The URL as a string or URL instance, or a + * compatible object (such as the result from legacy url.parse). + * @return {string} The URL of the proxy that should handle the request to the + * given URL. If no proxy is set, this will be an empty string. + */ +function getProxyForUrl(url) { + var parsedUrl = (typeof url === 'string' ? parseUrl(url) : url) || {}; + var proto = parsedUrl.protocol; + var hostname = parsedUrl.host; + var port = parsedUrl.port; + if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { + return ''; // Don't proxy URLs without a valid scheme or host. + } + + proto = proto.split(':', 1)[0]; + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, ''); + port = parseInt(port) || DEFAULT_PORTS[proto] || 0; + if (!shouldProxy(hostname, port)) { + return ''; // Don't proxy URLs that match NO_PROXY. + } + + var proxy = getEnv(proto + '_proxy') || getEnv('all_proxy'); + if (proxy && proxy.indexOf('://') === -1) { + // Missing scheme in proxy, default to the requested URL's scheme. + proxy = proto + '://' + proxy; + } + return proxy; +} + +/** + * Determines whether a given URL should be proxied. + * + * @param {string} hostname - The host name of the URL. + * @param {number} port - The effective port of the URL. + * @returns {boolean} Whether the given URL should be proxied. + * @private + */ +function shouldProxy(hostname, port) { + var NO_PROXY = getEnv('no_proxy').toLowerCase(); + if (!NO_PROXY) { + return true; // Always proxy if NO_PROXY is not set. + } + if (NO_PROXY === '*') { + return false; // Never proxy if wildcard is set. + } + + return NO_PROXY.split(/[,\s]/).every(function(proxy) { + if (!proxy) { + return true; // Skip zero-length hosts. + } + var parsedProxy = proxy.match(/^(.+):(\d+)$/); + var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; + var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; + if (parsedProxyPort && parsedProxyPort !== port) { + return true; // Skip if ports don't match. + } + + if (!/^[.*]/.test(parsedProxyHostname)) { + // No wildcards, so stop proxying if there is an exact match. + return hostname !== parsedProxyHostname; + } + + if (parsedProxyHostname.charAt(0) === '*') { + // Remove leading wildcard. + parsedProxyHostname = parsedProxyHostname.slice(1); + } + // Stop proxying if the hostname ends with the no_proxy host. + return !hostname.endsWith(parsedProxyHostname); + }); +} + +/** + * Get the value for an environment variable. + * + * @param {string} key - The name of the environment variable. + * @return {string} The value of the environment variable. + * @private + */ +function getEnv(key) { + return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; +} + +// EXTERNAL MODULE: ./node_modules/axios/node_modules/https-proxy-agent/dist/index.js +var dist = __nccwpck_require__(8996); +;// CONCATENATED MODULE: external "http2" +const external_http2_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("http2"); +// EXTERNAL MODULE: ./node_modules/follow-redirects/index.js +var follow_redirects = __nccwpck_require__(1573); +;// CONCATENATED MODULE: external "zlib" +const external_zlib_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("zlib"); +;// CONCATENATED MODULE: ./node_modules/axios/lib/env/data.js +const VERSION = "1.18.1"; +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/parseProtocol.js + + +function parseProtocol(url) { + const match = /^([-+\w]{1,25}):(?:\/\/)?/.exec(url); + return (match && match[1]) || ''; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/fromDataURI.js + + + + + + +// RFC 2397: data:[][;base64], +// mediatype = type/subtype followed by optional ;name=value parameters +const DATA_URL_PATTERN = /^([^,;]+\/[^,;]+)?((?:;[^,;=]+=[^,;]+)*)(;base64)?,([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +function fromDataURI(uri, asBlob, options) { + const _Blob = (options && options.Blob) || lib_platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new core_AxiosError('Invalid URL', core_AxiosError.ERR_INVALID_URL); + } + + const type = match[1]; + const params = match[2]; + const encoding = match[3] ? 'base64' : 'utf8'; + const body = match[4]; + + // RFC 2397 section 3: default mediatype is text/plain;charset=US-ASCII + // Bare `data:,` leaves mime undefined; Blob normalises that to "" per spec. + let mime = ''; + if (type) { + mime = params ? type + params : type; + } else if (params) { + mime = 'text/plain' + params; + } + + const buffer = encoding === 'base64' + ? Buffer.from(body, 'base64') + : Buffer.from(decodeURIComponent(body), encoding); + + if (asBlob) { + if (!_Blob) { + throw new core_AxiosError('Blob is not supported', core_AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], { type: mime }); + } + + return buffer; + } + + throw new core_AxiosError('Unsupported protocol ' + protocol, core_AxiosError.ERR_NOT_SUPPORT); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/AxiosTransformStream.js + + + + + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends external_stream_.Transform { + constructor(options) { + options = utils.toFlatObject( + options, + { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15, + }, + null, + (prop, source) => { + return !utils.isUndefined(source[prop]); + } + ); + + super({ + readableHighWaterMark: options.chunkSize, + }); + + const internals = (this[kInternals] = { + timeWindow: options.timeWindow, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null, + }); + + this.on('newListener', (event) => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = maxRate / divider; + const minChunkSize = + internals.minChunkSize !== false + ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) + : 0; + + const pushChunk = (_chunk, _callback) => { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + internals.isCaptured && this.emit('progress', internals.bytesSeen); + + if (this.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + }; + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = now - internals.ts) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && chunkSize - maxChunkSize > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk( + _chunk, + chunkRemainder + ? () => { + process.nextTick(_callback, null, chunkRemainder); + } + : _callback + ); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } +} + +/* harmony default export */ const helpers_AxiosTransformStream = (AxiosTransformStream); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/readBlob.js +const { asyncIterator } = Symbol; + +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +}; + +/* harmony default export */ const helpers_readBlob = (readBlob); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/formDataToStream.js + + + + + + +const BOUNDARY_ALPHABET = lib_platform.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new external_util_.TextEncoder(); + +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; + +class FormDataPart { + constructor(name, value) { + const { escapeName } = this.constructor; + const isStringValue = utils.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + const safeType = String(value.type || 'application/octet-stream').replace(/[\r\n]/g, ''); + headers += `Content-Type: ${safeType}${CRLF}`; + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode() { + yield this.headers; + + const { value } = this; + + if (utils.isTypedArray(value)) { + yield value; + } else { + yield* helpers_readBlob(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace( + /[\r\n"]/g, + (match) => + ({ + '\r': '%0D', + '\n': '%0A', + '"': '%22', + })[match] + ); + } +} + +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + lib_platform.generateString(size, BOUNDARY_ALPHABET), + } = options || {}; + + if (!utils.isFormData(form)) { + throw new TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw new Error('boundary must be 1-70 characters long'); + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}`, + }; + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return external_stream_.Readable.from( + (async function* () { + for (const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })() + ); +}; + +/* harmony default export */ const helpers_formDataToStream = (formDataToStream); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js + + + + +class ZlibHeaderTransformStream extends external_stream_.Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { + // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } +} + +/* harmony default export */ const helpers_ZlibHeaderTransformStream = (ZlibHeaderTransformStream); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/Http2Sessions.js + + +// Node-only: relies on the built-in `http2` module. Browser/react-native +// builds replace `lib/adapters/http.js` (the sole importer) with `lib/helpers/null.js` +// via the `browser` package.json field, so this module is never reached in +// those environments. Do not import it from any browser-reachable code path. + + + + +class Http2Sessions { + constructor() { + this.sessions = Object.create(null); + } + + getSession(authority, options) { + options = Object.assign( + { + sessionTimeout: 1000, + }, + options + ); + + let authoritySessions = this.sessions[authority]; + + if (authoritySessions) { + let len = authoritySessions.length; + + for (let i = 0; i < len; i++) { + const [sessionHandle, sessionOptions] = authoritySessions[i]; + if ( + !sessionHandle.destroyed && + !sessionHandle.closed && + external_util_.isDeepStrictEqual(sessionOptions, options) + ) { + return sessionHandle; + } + } + } + + const session = external_http2_namespaceObject.connect(authority, options); + + let removed; + let timer; + + const removeSession = () => { + if (removed) { + return; + } + + removed = true; + + if (timer) { + clearTimeout(timer); + timer = null; + } + + let entries = authoritySessions, + len = entries.length, + i = len; + + while (i--) { + if (entries[i][0] === session) { + if (len === 1) { + delete this.sessions[authority]; + } else { + entries.splice(i, 1); + } + if (!session.closed) { + session.close(); + } + return; + } + } + }; + + const originalRequestFn = session.request; + + const { sessionTimeout } = options; + + if (sessionTimeout != null) { + let streamsCount = 0; + + session.request = function () { + const stream = originalRequestFn.apply(this, arguments); + + streamsCount++; + + if (timer) { + clearTimeout(timer); + timer = null; + } + + stream.once('close', () => { + if (!--streamsCount) { + timer = setTimeout(() => { + timer = null; + removeSession(); + }, sessionTimeout); + } + }); + + return stream; + }; + } + + session.once('close', removeSession); + + let entry = [session, options]; + + authoritySessions + ? authoritySessions.push(entry) + : (authoritySessions = this.sessions[authority] = [entry]); + + return session; + } +} + +/* harmony default export */ const helpers_Http2Sessions = (Http2Sessions); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/callbackify.js + + +const callbackify = (fn, reducer) => { + return utils.isAsyncFn(fn) + ? function (...args) { + const cb = args.pop(); + fn.apply(this, args).then((value) => { + try { + reducer ? cb(null, ...reducer(value)) : cb(null, value); + } catch (err) { + cb(err); + } + }, cb); + } + : fn; +}; + +/* harmony default export */ const helpers_callbackify = (callbackify); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/shouldBypassProxy.js +const LOOPBACK_HOSTNAMES = new Set(['localhost', '0.0.0.0']); + +const isIPv4Loopback = (host) => { + const parts = host.split('.'); + if (parts.length !== 4) return false; + if (parts[0] !== '127') return false; + return parts.every((p) => /^\d+$/.test(p) && Number(p) >= 0 && Number(p) <= 255); +}; + +const isIPv6ZeroGroup = (group) => /^0{1,4}$/.test(group); + +// The unspecified address (IPv4 0.0.0.0 / IPv6 ::) resolves to the local host +// for outbound connections, so treat it as loopback-equivalent for NO_PROXY +// matching. 0.0.0.0 is covered by LOOPBACK_HOSTNAMES; this handles compressed +// and full IPv6 all-zero forms so both families bypass symmetrically. +const isIPv6Unspecified = (host) => { + if (host === '::') return true; + + const compressionIndex = host.indexOf('::'); + + if (compressionIndex !== -1) { + if (compressionIndex !== host.lastIndexOf('::')) return false; + + const left = host.slice(0, compressionIndex); + const right = host.slice(compressionIndex + 2); + const leftGroups = left ? left.split(':') : []; + const rightGroups = right ? right.split(':') : []; + const explicitGroups = leftGroups.length + rightGroups.length; + + return ( + explicitGroups < 8 && + leftGroups.every(isIPv6ZeroGroup) && + rightGroups.every(isIPv6ZeroGroup) + ); + } + + const groups = host.split(':'); + return groups.length === 8 && groups.every(isIPv6ZeroGroup); +}; + +const isIPv6Loopback = (host) => { + // Collapse all-zero groups: any form of ::1 / 0:0:...:0:1 + // First, strip any leading "::" by normalising with Set lookup of common forms, + // then fall back to structural check. + if (host === '::1') return true; + + // Check IPv4-mapped IPv6 loopback: ::ffff: or ::ffff: + // Node's URL parser normalises ::ffff:127.0.0.1 → ::ffff:7f00:1 + const v4MappedDotted = host.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i); + if (v4MappedDotted) return isIPv4Loopback(v4MappedDotted[1]); + + const v4MappedHex = host.match(/^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i); + if (v4MappedHex) { + const high = parseInt(v4MappedHex[1], 16); + // High 16 bits must start with 127 (0x7f) — i.e. 0x7f00..0x7fff + return high >= 0x7f00 && high <= 0x7fff; + } + + // Full-form ::1 variants: any number of zero groups followed by trailing 1 + // e.g. 0:0:0:0:0:0:0:1, 0000:...:0001 + const groups = host.split(':'); + if (groups.length === 8) { + for (let i = 0; i < 7; i++) { + if (!/^0+$/.test(groups[i])) return false; + } + return /^0*1$/.test(groups[7]); + } + + return false; +}; + +const isLoopback = (host) => { + if (!host) return false; + if (LOOPBACK_HOSTNAMES.has(host)) return true; + if (isIPv4Loopback(host)) return true; + if (isIPv6Unspecified(host)) return true; + return isIPv6Loopback(host); +}; + +const shouldBypassProxy_DEFAULT_PORTS = { + http: 80, + https: 443, + ws: 80, + wss: 443, + ftp: 21, +}; + +const parseNoProxyEntry = (entry) => { + let entryHost = entry; + let entryPort = 0; + + if (entryHost.charAt(0) === '[') { + const bracketIndex = entryHost.indexOf(']'); + + if (bracketIndex !== -1) { + const host = entryHost.slice(1, bracketIndex); + const rest = entryHost.slice(bracketIndex + 1); + + if (rest.charAt(0) === ':' && /^\d+$/.test(rest.slice(1))) { + entryPort = Number.parseInt(rest.slice(1), 10); + } + + return [host, entryPort]; + } + } + + const firstColon = entryHost.indexOf(':'); + const lastColon = entryHost.lastIndexOf(':'); + + if ( + firstColon !== -1 && + firstColon === lastColon && + /^\d+$/.test(entryHost.slice(lastColon + 1)) + ) { + entryPort = Number.parseInt(entryHost.slice(lastColon + 1), 10); + entryHost = entryHost.slice(0, lastColon); + } + + return [entryHost, entryPort]; +}; + +// Convert IPv4-mapped IPv6 (::ffff:0:0/96 prefix) to IPv4 dotted form so both +// sides of a NO_PROXY comparison see the same canonical address. Without this, +// `NO_PROXY=192.168.1.5` would not match a request to `http://[::ffff:192.168.1.5]/` +// (Node's URL parser normalises that to `[::ffff:c0a8:105]`), and vice-versa, +// allowing the proxy-bypass policy to be circumvented by using the alternate +// representation. Returns the input unchanged when not IPv4-mapped. +const IPV4_MAPPED_DOTTED_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:(\d+\.\d+\.\d+\.\d+)$/i; +const IPV4_MAPPED_HEX_RE = /^(?:::|(?:0{1,4}:){1,4}:|(?:0{1,4}:){5})ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i; + +const unmapIPv4MappedIPv6 = (host) => { + if (typeof host !== 'string' || host.indexOf(':') === -1) return host; + + const dotted = host.match(IPV4_MAPPED_DOTTED_RE); + if (dotted) return dotted[1]; + + const hex = host.match(IPV4_MAPPED_HEX_RE); + if (hex) { + const high = parseInt(hex[1], 16); + const low = parseInt(hex[2], 16); + return `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`; + } + + return host; +}; + +const normalizeNoProxyHost = (hostname) => { + if (!hostname) { + return hostname; + } + + if (hostname.charAt(0) === '[' && hostname.charAt(hostname.length - 1) === ']') { + hostname = hostname.slice(1, -1); + } + + return unmapIPv4MappedIPv6(hostname.replace(/\.+$/, '')); +}; + +function shouldBypassProxy(location) { + let parsed; + + try { + parsed = new URL(location); + } catch (_err) { + return false; + } + + const noProxy = (process.env.no_proxy || process.env.NO_PROXY || '').toLowerCase(); + + if (!noProxy) { + return false; + } + + if (noProxy === '*') { + return true; + } + + const port = + Number.parseInt(parsed.port, 10) || shouldBypassProxy_DEFAULT_PORTS[parsed.protocol.split(':', 1)[0]] || 0; + + const hostname = normalizeNoProxyHost(parsed.hostname.toLowerCase()); + + return noProxy.split(/[\s,]+/).some((entry) => { + if (!entry) { + return false; + } + + let [entryHost, entryPort] = parseNoProxyEntry(entry); + + entryHost = normalizeNoProxyHost(entryHost); + + if (!entryHost) { + return false; + } + + if (entryPort && entryPort !== port) { + return false; + } + + if (entryHost.charAt(0) === '*') { + entryHost = entryHost.slice(1); + } + + if (entryHost.charAt(0) === '.') { + return hostname.endsWith(entryHost); + } + + return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost)); + }); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/speedometer.js + + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round((bytesCount * 1000) / passed) : undefined; + }; +} + +/* harmony default export */ const helpers_speedometer = (speedometer); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/throttle.js +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + let threshold = 1000 / freq; + let lastArgs; + let timer; + + const invoke = (args, now = Date.now()) => { + timestamp = now; + lastArgs = null; + if (timer) { + clearTimeout(timer); + timer = null; + } + fn(...args); + }; + + const throttled = (...args) => { + const now = Date.now(); + const passed = now - timestamp; + if (passed >= threshold) { + invoke(args, now); + } else { + lastArgs = args; + if (!timer) { + timer = setTimeout(() => { + timer = null; + invoke(lastArgs); + }, threshold - passed); + } + } + }; + + const flush = () => lastArgs && invoke(lastArgs); + + return [throttled, flush]; +} + +/* harmony default export */ const helpers_throttle = (throttle); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/progressEventReducer.js + + + + +const progressEventReducer = (listener, isDownloadStream, freq = 3) => { + let bytesNotified = 0; + const _speedometer = helpers_speedometer(50, 250); + + return helpers_throttle((e) => { + if (!e || typeof e.loaded !== 'number') { + return; + } + const rawLoaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const loaded = total != null ? Math.min(rawLoaded, total) : rawLoaded; + const progressBytes = Math.max(0, loaded - bytesNotified); + const rate = _speedometer(progressBytes); + + bytesNotified = Math.max(bytesNotified, loaded); + + const data = { + loaded, + total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total ? (total - loaded) / rate : undefined, + event: e, + lengthComputable: total != null, + [isDownloadStream ? 'download' : 'upload']: true, + }; + + listener(data); + }, freq); +}; + +const progressEventDecorator = (total, throttled) => { + const lengthComputable = total != null; + + return [ + (loaded) => + throttled[0]({ + lengthComputable, + total, + loaded, + }), + throttled[1], + ]; +}; + +const asyncDecorator = + (fn) => + (...args) => + utils.asap(() => fn(...args)); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +/** + * Estimate decoded byte length of a data:// URL *without* allocating large buffers. + * - For base64: compute exact decoded size using length and padding; + * handle %XX at the character-count level (no string allocation). + * - For non-base64: compute the exact percent-decoded UTF-8 byte length. + * + * @param {string} url + * @returns {number} + */ +const isHexDigit = (charCode) => + (charCode >= 48 && charCode <= 57) || + (charCode >= 65 && charCode <= 70) || + (charCode >= 97 && charCode <= 102); + +const isPercentEncodedByte = (str, i, len) => + i + 2 < len && isHexDigit(str.charCodeAt(i + 1)) && isHexDigit(str.charCodeAt(i + 2)); + +function estimateDataURLDecodedBytes(url) { + if (!url || typeof url !== 'string') return 0; + if (!url.startsWith('data:')) return 0; + + const comma = url.indexOf(','); + if (comma < 0) return 0; + + const meta = url.slice(5, comma); + const body = url.slice(comma + 1); + const isBase64 = /;base64/i.test(meta); + + if (isBase64) { + let effectiveLen = body.length; + const len = body.length; // cache length + + for (let i = 0; i < len; i++) { + if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) { + const a = body.charCodeAt(i + 1); + const b = body.charCodeAt(i + 2); + const isHex = isHexDigit(a) && isHexDigit(b); + + if (isHex) { + effectiveLen -= 2; + i += 2; + } + } + } + + let pad = 0; + let idx = len - 1; + + const tailIsPct3D = (j) => + j >= 2 && + body.charCodeAt(j - 2) === 37 && // '%' + body.charCodeAt(j - 1) === 51 && // '3' + (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd' + + if (idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + idx--; + } else if (tailIsPct3D(idx)) { + pad++; + idx -= 3; + } + } + + if (pad === 1 && idx >= 0) { + if (body.charCodeAt(idx) === 61 /* '=' */) { + pad++; + } else if (tailIsPct3D(idx)) { + pad++; + } + } + + const groups = Math.floor(effectiveLen / 4); + const bytes = groups * 3 - (pad || 0); + return bytes > 0 ? bytes : 0; + } + + // Compute UTF-8 byte length directly from UTF-16 code units without allocating + // a byte buffer (TextEncoder.encode would defeat the DoS guard on large bodies). + // Valid %XX triplets count as one decoded byte; this matches the bytes that + // decodeURIComponent(body) would produce before Buffer re-encodes the string. + let bytes = 0; + for (let i = 0, len = body.length; i < len; i++) { + const c = body.charCodeAt(i); + if (c === 37 /* '%' */ && isPercentEncodedByte(body, i, len)) { + bytes += 1; + i += 2; + } else if (c < 0x80) { + bytes += 1; + } else if (c < 0x800) { + bytes += 2; + } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < len) { + const next = body.charCodeAt(i + 1); + if (next >= 0xdc00 && next <= 0xdfff) { + bytes += 4; + i++; + } else { + bytes += 3; + } + } else { + bytes += 3; + } + } + return bytes; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/adapters/http.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +const zlibOptions = { + flush: external_zlib_namespaceObject.constants.Z_SYNC_FLUSH, + finishFlush: external_zlib_namespaceObject.constants.Z_SYNC_FLUSH, +}; + +const brotliOptions = { + flush: external_zlib_namespaceObject.constants.BROTLI_OPERATION_FLUSH, + finishFlush: external_zlib_namespaceObject.constants.BROTLI_OPERATION_FLUSH, +}; + +const zstdOptions = { + flush: external_zlib_namespaceObject.constants.ZSTD_e_flush, + finishFlush: external_zlib_namespaceObject.constants.ZSTD_e_flush, +}; + +const isBrotliSupported = utils.isFunction(external_zlib_namespaceObject.createBrotliDecompress); +const isZstdSupported = utils.isFunction(external_zlib_namespaceObject.createZstdDecompress); +const ACCEPT_ENCODING = 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''); +const ACCEPT_ENCODING_WITH_ZSTD = ACCEPT_ENCODING + (isZstdSupported ? ', zstd' : ''); + +const { http: httpFollow, https: httpsFollow } = follow_redirects; + +const http_isHttps = /https:?/; +const FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; + +function setFormDataHeaders(headers, formHeaders, policy) { + if (policy !== 'content-only') { + headers.set(formHeaders); + return; + } + + Object.entries(formHeaders).forEach(([key, val]) => { + if (FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); +} + +// Symbols used to bind a single 'error' listener to a pooled socket and track +// the request currently owning that socket across keep-alive reuse (issue #10780). +const kAxiosSocketListener = Symbol('axios.http.socketListener'); +const kAxiosCurrentReq = Symbol('axios.http.currentReq'); + +// Tags HttpsProxyAgent instances installed by setProxy() so the redirect path +// can strip them without clobbering a user-supplied agent that happens to be +// an HttpsProxyAgent. +const kAxiosInstalledTunnel = Symbol('axios.http.installedTunnel'); + +// Cache of CONNECT-tunneling agents keyed by proxy config so repeat requests +// through the same proxy reuse a single agent (and its socket pool). The +// keyspace is bounded by the set of distinct proxy configs the process uses, +// so unbounded growth is not a concern in practice. +const tunnelingAgentCache = new Map(); +const tunnelingAgentCacheUser = new WeakMap(); +// Minimum minor versions where Node's HTTP Agent supports native proxyEnv +// handling. Checking the selected agent below also covers startup modes such +// as NODE_OPTIONS=--use-env-proxy and --no-use-env-proxy precedence. +const NODE_NATIVE_ENV_PROXY_SUPPORT = { + 22: 21, + 24: 5, +}; + +function isNodeNativeEnvProxySupported(nodeVersion = process.versions && process.versions.node) { + if (!nodeVersion) { + return false; + } + + const [major, minor] = nodeVersion.split('.').map((part) => Number(part)); + + if (!Number.isInteger(major) || !Number.isInteger(minor)) { + return false; + } + + if (major > 24) { + return true; + } + + return ( + NODE_NATIVE_ENV_PROXY_SUPPORT[major] != null && minor >= NODE_NATIVE_ENV_PROXY_SUPPORT[major] + ); +} + +function isNodeEnvProxyEnabled(agent, nodeVersion = process.versions && process.versions.node) { + if (!isNodeNativeEnvProxySupported(nodeVersion)) { + return false; + } + + const agentOptions = agent && agent.options; + + return Boolean( + agentOptions && + utils.hasOwnProp(agentOptions, 'proxyEnv') && + agentOptions.proxyEnv != null + ); +} + +function getProxyEnvAgent(options, configHttpAgent, configHttpsAgent) { + return http_isHttps.test(options.protocol) + ? (configHttpsAgent || external_https_.globalAgent) + : (configHttpAgent || external_http_.globalAgent); +} + +function getTunnelingAgent(agentOptions, userHttpsAgent) { + const key = + agentOptions.protocol + + '//' + + agentOptions.hostname + + ':' + + (agentOptions.port || '') + + '#' + + (agentOptions.auth || ''); + const cache = userHttpsAgent + ? (tunnelingAgentCacheUser.get(userHttpsAgent) || + tunnelingAgentCacheUser.set(userHttpsAgent, new Map()).get(userHttpsAgent)) + : tunnelingAgentCache; + let agent = cache.get(key); + if (agent) return agent; + // Forward the user's TLS options (custom CA, rejectUnauthorized, client cert, + // etc.) into the tunneling agent so they apply to the origin TLS upgrade + // performed after CONNECT. Our proxy fields take precedence on conflict. + const merged = userHttpsAgent && userHttpsAgent.options + ? { ...userHttpsAgent.options, ...agentOptions } + : agentOptions; + agent = new dist(merged); + if (userHttpsAgent && userHttpsAgent.options) { + const originTLSOptions = { ...userHttpsAgent.options }; + const callback = agent.callback; + agent.callback = function axiosTunnelingAgentCallback(req, opts) { + // HttpsProxyAgent v5 reads callback opts for the post-CONNECT origin TLS upgrade. + return callback.call(this, req, { ...originTLSOptions, ...opts }); + }; + } + agent[kAxiosInstalledTunnel] = true; + cache.set(key, agent); + return agent; +} + +const supportedProtocols = lib_platform.protocols.map((protocol) => { + return protocol + ':'; +}); + +// Node's WHATWG URL parser returns `username` and `password` percent-encoded. +// Decode before composing the `auth` option so credentials such as +// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the +// original value for malformed input so a bad encoding never throws. +const decodeURIComponentSafe = (value) => { + if (!utils.isString(value)) { + return value; + } + + try { + return decodeURIComponent(value); + } catch (error) { + return value; + } +}; + +const flushOnFinish = (stream, [throttled, flush]) => { + stream.on('end', flush).on('error', flush); + + return throttled; +}; + +const http2Sessions = new helpers_Http2Sessions(); + +/** + * If the proxy, auth, sensitive header, or config beforeRedirects functions are defined, + * call them with the options object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ +function dispatchBeforeRedirect(options, responseDetails, requestDetails) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.auth) { + options.beforeRedirects.auth(options); + } + if (options.beforeRedirects.sensitiveHeaders) { + options.beforeRedirects.sensitiveHeaders(options, requestDetails); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options, responseDetails, requestDetails); + } +} + +function stripMatchingHeaders(headers, sensitiveSet) { + if (!headers) { + return; + } + + Object.keys(headers).forEach((header) => { + if (sensitiveSet.has(header.toLowerCase())) { + delete headers[header]; + } + }); +} + +function isSameOriginRedirect(redirectOptions, requestDetails) { + if (!requestDetails) { + return false; + } + + try { + return new URL(requestDetails.url).origin === new URL(redirectOptions.href).origin; + } catch (e) { + // If origin comparison fails, treat the redirect as unsafe. + return false; + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location, isRedirect, configHttpsAgent, configHttpAgent) { + let proxy = configProxy; + const proxyEnvAgent = getProxyEnvAgent(options, configHttpAgent, configHttpsAgent); + if (!proxy && proxy !== false && !isNodeEnvProxyEnabled(proxyEnvAgent)) { + const proxyUrl = getProxyForUrl(location); + if (proxyUrl) { + if (!shouldBypassProxy(location)) { + proxy = new URL(proxyUrl); + } + } + } + // On redirect re-invocation, strip any stale Proxy-Authorization header carried + // over from the prior request (e.g. new target no longer uses a proxy, or uses + // a different proxy). Skip on the initial request so user-supplied headers are + // preserved. Header names are case-insensitive, so remove every case variant. + if (isRedirect && options.headers) { + for (const name of Object.keys(options.headers)) { + if (name.toLowerCase() === 'proxy-authorization') { + delete options.headers[name]; + } + } + } + // Strip any tunneling agent we installed for the previous hop so a redirect + // that drops the proxy or crosses an HTTPS↔HTTP boundary doesn't reuse a + // stale one. Match on our Symbol marker so a user-supplied HttpsProxyAgent + // (which won't carry the marker) is left alone. + if (isRedirect && options.agent && options.agent[kAxiosInstalledTunnel]) { + options.agent = undefined; + } + if (proxy) { + // Read proxy fields without traversing the prototype chain. URL instances expose + // username/password/hostname/host/port/protocol via getters on URL.prototype (so + // direct reads are shielded), but plain object proxies — and the `auth` field + // (which URL does not expose) — must be guarded so a polluted Object.prototype + // (e.g. Object.prototype.auth = { username, password }) cannot inject + // attacker-controlled credentials into the Proxy-Authorization header or + // redirect proxying to an attacker-controlled host. + const isProxyURL = proxy instanceof URL; + const readProxyField = (key) => + isProxyURL || utils.hasOwnProp(proxy, key) ? proxy[key] : undefined; + + const proxyUsername = readProxyField('username'); + const proxyPassword = readProxyField('password'); + let proxyAuth = utils.hasOwnProp(proxy, 'auth') ? proxy.auth : undefined; + + // Basic proxy authorization + if (proxyUsername) { + proxyAuth = (proxyUsername || '') + ':' + (proxyPassword || ''); + } + + if (proxyAuth) { + // Support proxy auth object form. Read sub-fields via own-prop checks so a + // plain object inheriting from polluted Object.prototype cannot leak creds. + const authIsObject = typeof proxyAuth === 'object'; + const authUsername = + authIsObject && utils.hasOwnProp(proxyAuth, 'username') ? proxyAuth.username : undefined; + const authPassword = + authIsObject && utils.hasOwnProp(proxyAuth, 'password') ? proxyAuth.password : undefined; + const validProxyAuth = Boolean(authUsername || authPassword); + + if (validProxyAuth) { + proxyAuth = (authUsername || '') + ':' + (authPassword || ''); + } else if (authIsObject) { + throw new core_AxiosError('Invalid proxy authorization', core_AxiosError.ERR_BAD_OPTION, { proxy }); + } + } + + const targetIsHttps = http_isHttps.test(options.protocol); + + if (targetIsHttps) { + // CONNECT-tunneling path for HTTPS targets. Preserves end-to-end TLS to + // the origin so the proxy cannot inspect the URL, headers, or body — the + // behavior already promised by THREATMODEL.md (T-R9). HttpsProxyAgent + // sends Proxy-Authorization on the CONNECT request only, never on the + // wrapped TLS request, which is why we don't stamp it onto + // options.headers here. If the user already supplied an HttpsProxyAgent, + // they own tunneling end-to-end and we leave them alone; otherwise we + // install our own tunneling agent and forward their TLS options (if any) + // so a custom httpsAgent for cert pinning / rejectUnauthorized still + // applies to the origin TLS upgrade. + if (!(configHttpsAgent instanceof dist)) { + const proxyHost = readProxyField('hostname') || readProxyField('host'); + const proxyPort = readProxyField('port'); + const rawProxyProtocol = readProxyField('protocol'); + const normalizedProtocol = rawProxyProtocol + ? rawProxyProtocol.includes(':') + ? rawProxyProtocol + : `${rawProxyProtocol}:` + : 'http:'; + // Bracket IPv6 literals for URL parsing; URL.hostname strips the + // brackets again on read so the agent receives the raw form. + const proxyHostForURL = + proxyHost && proxyHost.includes(':') && !proxyHost.startsWith('[') + ? `[${proxyHost}]` + : proxyHost; + const proxyURL = new URL( + `${normalizedProtocol}//${proxyHostForURL}${proxyPort ? ':' + proxyPort : ''}` + ); + const agentOptions = { + protocol: proxyURL.protocol, + hostname: proxyURL.hostname.replace(/^\[|\]$/g, ''), + port: proxyURL.port, + auth: proxyAuth && typeof proxyAuth === 'string' ? proxyAuth : undefined, + }; + if (proxyURL.protocol === 'https:') { + agentOptions.ALPNProtocols = ['http/1.1']; + } + const tunnelingAgent = getTunnelingAgent(agentOptions, configHttpsAgent); + // Set both: `options.agent` is consumed by the native https.request path + // (maxRedirects === 0); `options.agents.https` is consumed by + // follow-redirects, which ignores `options.agent` when `options.agents` + // is present. + options.agent = tunnelingAgent; + if (options.agents) { + options.agents.https = tunnelingAgent; + } + } + } else { + // Forward-proxy mode for plaintext HTTP targets. The request line carries + // the absolute URL and the proxy sees everything — acceptable for plain + // HTTP since the wire was already plaintext. + if (proxyAuth) { + const base64 = Buffer.from(proxyAuth, 'utf8').toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + // Preserve a user-supplied Host header (case-insensitive) so callers can override + // the value forwarded to the proxy; otherwise default to the request URL's host. + let hasUserHostHeader = false; + for (const name of Object.keys(options.headers)) { + if (name.toLowerCase() === 'host') { + hasUserHostHeader = true; + break; + } + } + if (!hasUserHostHeader) { + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + } + const proxyHost = readProxyField('hostname') || readProxyField('host'); + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = readProxyField('port'); + options.path = location; + const proxyProtocol = readProxyField('protocol'); + if (proxyProtocol) { + options.protocol = proxyProtocol.includes(':') ? proxyProtocol : `${proxyProtocol}:`; + } + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy( + redirectOptions, + configProxy, + redirectOptions.href, + true, + configHttpsAgent, + configHttpAgent + ); + }; +} + +const isHttpAdapterSupported = + typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + }; + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }); +}; + +const resolveFamily = ({ address, family }) => { + if (!utils.isString(address)) { + throw TypeError('address must be a string'); + } + return { + address, + family: family || (address.indexOf('.') < 0 ? 6 : 4), + }; +}; + +const buildAddressEntry = (address, family) => + resolveFamily(utils.isObject(address) ? address : { address, family }); + +const http2Transport = { + request(options, cb) { + const authority = + options.protocol + + '//' + + options.hostname + + ':' + + (options.port || (options.protocol === 'https:' ? 443 : 80)); + + const { http2Options, headers } = options; + + const session = http2Sessions.getSession(authority, http2Options); + + const { HTTP2_HEADER_SCHEME, HTTP2_HEADER_METHOD, HTTP2_HEADER_PATH, HTTP2_HEADER_STATUS } = + external_http2_namespaceObject.constants; + + const http2Headers = { + [HTTP2_HEADER_SCHEME]: options.protocol.replace(':', ''), + [HTTP2_HEADER_METHOD]: options.method, + [HTTP2_HEADER_PATH]: options.path, + }; + + utils.forEach(headers, (header, name) => { + name.charAt(0) !== ':' && (http2Headers[name] = header); + }); + + const req = session.request(http2Headers); + + req.once('response', (responseHeaders) => { + const response = req; //duplex + + responseHeaders = Object.assign({}, responseHeaders); + + const status = responseHeaders[HTTP2_HEADER_STATUS]; + + delete responseHeaders[HTTP2_HEADER_STATUS]; + + response.headers = responseHeaders; + + response.statusCode = +status; + + cb(response); + }); + + return req; + }, +}; + +/*eslint consistent-return:0*/ +/* harmony default export */ const http = (isHttpAdapterSupported && + function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + // Read config pollution-safely: own properties and members inherited from + // a non-Object.prototype source (e.g. an Object.create(defaults) template) + // are honored, but values injected onto a polluted Object.prototype are + // ignored. All behavior-affecting reads in this adapter go through own() + // so the protection boundary stays consistent. + const own = (key) => utils.getSafeProp(config, key); + const transitional = own('transitional') || defaults_transitional; + let data = own('data'); + let lookup = own('lookup'); + let family = own('family'); + let httpVersion = own('httpVersion'); + if (httpVersion === undefined) httpVersion = 1; + let http2Options = own('http2Options'); + const httpAgent = own('httpAgent'); + const httpsAgent = own('httpsAgent'); + const configProxy = own('proxy'); + const responseType = own('responseType'); + const responseEncoding = own('responseEncoding'); + const socketPath = own('socketPath'); + const method = own('method').toUpperCase(); + const maxRedirects = own('maxRedirects'); + const maxBodyLength = own('maxBodyLength'); + const maxContentLength = own('maxContentLength'); + const decompress = own('decompress'); + let isDone; + let rejected = false; + let req; + let connectPhaseTimer; + + httpVersion = +httpVersion; + + if (Number.isNaN(httpVersion)) { + throw TypeError(`Invalid protocol version: '${config.httpVersion}' is not a number`); + } + + if (httpVersion !== 1 && httpVersion !== 2) { + throw TypeError(`Unsupported protocol version '${httpVersion}'`); + } + + const isHttp2 = httpVersion === 2; + + if (lookup) { + const _lookup = helpers_callbackify(lookup, (value) => (utils.isArray(value) ? value : [value])); + // hotfix to support opt.all option which is required for node 20.x + lookup = (hostname, opt, cb) => { + _lookup(hostname, opt, (err, arg0, arg1) => { + if (err) { + return cb(err); + } + + const addresses = utils.isArray(arg0) + ? arg0.map((addr) => buildAddressEntry(addr)) + : [buildAddressEntry(arg0, arg1)]; + + opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family); + }); + }; + } + + const abortEmitter = new external_events_.EventEmitter(); + + function abort(reason) { + try { + abortEmitter.emit( + 'abort', + !reason || reason.type ? new cancel_CanceledError(null, config, req) : reason + ); + } catch (err) { + // ignore emit errors + } + } + + function clearConnectPhaseTimer() { + if (connectPhaseTimer) { + clearTimeout(connectPhaseTimer); + connectPhaseTimer = null; + } + } + + function createTimeoutError() { + const configTimeout = own('timeout'); + let timeoutErrorMessage = configTimeout + ? 'timeout of ' + configTimeout + 'ms exceeded' + : 'timeout exceeded'; + const configTimeoutErrorMessage = own('timeoutErrorMessage'); + if (configTimeoutErrorMessage) { + timeoutErrorMessage = configTimeoutErrorMessage; + } + return new core_AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? core_AxiosError.ETIMEDOUT : core_AxiosError.ECONNABORTED, + config, + req + ); + } + + abortEmitter.once('abort', reject); + + const onFinished = () => { + clearConnectPhaseTimer(); + + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + abortEmitter.removeAllListeners(); + }; + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + onDone((response, isRejected) => { + isDone = true; + clearConnectPhaseTimer(); + + if (isRejected) { + rejected = true; + onFinished(); + return; + } + + const { data } = response; + + if (data instanceof external_stream_.Readable || data instanceof external_stream_.Duplex) { + const offListeners = external_stream_.finished(data, () => { + offListeners(); + onFinished(); + }); + } else { + onFinished(); + } + }); + + // Parse url + const fullPath = buildFullPath(own('baseURL'), own('url'), own('allowAbsoluteUrls'), config); + // Unix-socket requests (own socketPath) commonly pass a path-only url + // like '/foo'; supply a synthetic base so new URL() can still parse it. + // Use the own-property value (not config.socketPath) so a polluted + // prototype cannot influence URL base selection. + const urlBase = socketPath + ? 'http://localhost' + : (lib_platform.hasBrowserEnv ? lib_platform.origin : undefined); + const parsed = new URL(fullPath, urlBase); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set. + if (maxContentLength > -1) { + // Use the exact string passed to fromDataURI (the configured url); fall back to fullPath if needed. + const dataUrl = String(own('url') || fullPath || ''); + const estimated = estimateDataURLDecodedBytes(dataUrl); + + if (estimated > maxContentLength) { + return reject( + new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config + ) + ); + } + } + + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config, + }); + } + + try { + convertedData = fromDataURI(own('url'), responseType === 'blob', { + Blob: config.env && config.env.Blob, + }); + } catch (err) { + throw core_AxiosError.from(err, core_AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = external_stream_.Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new core_AxiosHeaders(), + config, + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject( + new core_AxiosError('Unsupported protocol ' + protocol, core_AxiosError.ERR_BAD_REQUEST, config) + ); + } + + const headers = core_AxiosHeaders.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const { onUploadProgress, onDownloadProgress } = config; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = helpers_formDataToStream( + data, + (formHeaders) => { + headers.set(formHeaders); + }, + { + tag: `axios-${VERSION}-boundary`, + boundary: (userBoundary && userBoundary[1]) || undefined, + } + ); + // support for https://www.npmjs.com/package/form-data api + } else if ( + utils.isFormData(data) && + utils.isFunction(data.getHeaders) && + data.getHeaders !== Object.prototype.getHeaders + ) { + setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); + + if (!headers.hasContentLength()) { + try { + const knownLength = await external_util_.promisify(data.getLength).call(data); + Number.isFinite(knownLength) && + knownLength >= 0 && + headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) {} + } + } else if (utils.isBlob(data) || utils.isFile(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = external_stream_.Readable.from(helpers_readBlob(data)); + } else if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + // Nothing to do... + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject( + new core_AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + core_AxiosError.ERR_BAD_REQUEST, + config + ) + ); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (maxBodyLength > -1 && data.length > maxBodyLength) { + return reject( + new core_AxiosError( + 'Request body larger than maxBodyLength limit', + core_AxiosError.ERR_BAD_REQUEST, + config + ) + ); + } + } + + const contentLength = utils.toFiniteNumber(headers.getContentLength()); + + if (utils.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils.isStream(data)) { + data = external_stream_.Readable.from(data, { objectMode: false }); + } + + data = external_stream_.pipeline( + [ + data, + new helpers_AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxUploadRate), + }), + ], + utils.noop + ); + + onUploadProgress && + data.on( + 'progress', + flushOnFinish( + data, + progressEventDecorator( + contentLength, + progressEventReducer(asyncDecorator(onUploadProgress), false, 3) + ) + ) + ); + } + + // HTTP basic authentication + let auth = undefined; + const configAuth = own('auth'); + if (configAuth) { + const username = utils.getSafeProp(configAuth, 'username') || ''; + const password = utils.getSafeProp(configAuth, 'password') || ''; + auth = username + ':' + password; + } + + if (!auth && (parsed.username || parsed.password)) { + const urlUsername = decodeURIComponentSafe(parsed.username); + const urlPassword = decodeURIComponentSafe(parsed.password); + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + own('params'), + own('paramsSerializer') + ).replace(/^\?/, ''); + } catch (err) { + return reject( + core_AxiosError.from(err, core_AxiosError.ERR_BAD_REQUEST, config, null, null, { + url: own('url'), + exists: true + }) + ); + } + + headers.set( + 'Accept-Encoding', + utils.hasOwnProp(transitional, 'advertiseZstdAcceptEncoding') && + transitional.advertiseZstdAcceptEncoding === true ? ACCEPT_ENCODING_WITH_ZSTD : ACCEPT_ENCODING, + false + ); + + // Null-prototype to block prototype pollution gadgets on properties read + // directly by Node's http.request (e.g. insecureHTTPParser, lookup). + const options = Object.assign(Object.create(null), { + path, + method: method, + headers: toByteStringHeaderObject(headers), + agents: { http: httpAgent, https: httpsAgent }, + auth, + protocol, + family, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: Object.create(null), + http2Options, + }); + + // cacheable-lookup integration hotfix + !utils.isUndefined(lookup) && (options.lookup = lookup); + + if (socketPath) { + if (typeof socketPath !== 'string') { + return reject( + new core_AxiosError('socketPath must be a string', core_AxiosError.ERR_BAD_OPTION_VALUE, config) + ); + } + + const allowedSocketPaths = own('allowedSocketPaths'); + if (allowedSocketPaths != null) { + const allowed = Array.isArray(allowedSocketPaths) + ? allowedSocketPaths + : [allowedSocketPaths]; + + const resolvedSocket = (0,external_path_.resolve)(socketPath); + const isAllowed = allowed.some( + (entry) => typeof entry === 'string' && (0,external_path_.resolve)(entry) === resolvedSocket + ); + + if (!isAllowed) { + return reject( + new core_AxiosError( + `socketPath "${socketPath}" is not permitted by allowedSocketPaths`, + core_AxiosError.ERR_BAD_OPTION_VALUE, + config + ) + ); + } + } + + options.socketPath = socketPath; + } else { + options.hostname = parsed.hostname.startsWith('[') + ? parsed.hostname.slice(1, -1) + : parsed.hostname; + options.port = parsed.port; + setProxy( + options, + configProxy, + protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path, + false, + httpsAgent, + httpAgent + ); + } + let transport; + let isNativeTransport = false; + // True only for the follow-redirects transport, which applies + // options.maxBodyLength itself. Every other transport (http2, native + // http/https, a user-supplied custom transport) needs the explicit + // byte-counting pipeline below to enforce maxBodyLength on streamed uploads. + let transportEnforcesMaxBodyLength = false; + const isHttpsRequest = http_isHttps.test(options.protocol); + // Don't clobber a CONNECT-tunneling agent installed by setProxy() for an + // HTTPS target. + if (options.agent == null) { + options.agent = isHttpsRequest ? httpsAgent : httpAgent; + } + + if (isHttp2) { + transport = http2Transport; + } else { + const configTransport = own('transport'); + if (configTransport) { + transport = configTransport; + } else if (maxRedirects === 0) { + transport = isHttpsRequest ? external_https_ : external_http_; + isNativeTransport = true; + } else { + transportEnforcesMaxBodyLength = true; + options.sensitiveHeaders = []; + if (maxRedirects) { + options.maxRedirects = maxRedirects; + } + const configBeforeRedirect = own('beforeRedirect'); + if (configBeforeRedirect) { + options.beforeRedirects.config = configBeforeRedirect; + } + if (auth) { + // Restore HTTP Basic credentials on same-origin redirects only. + // follow-redirects >= 1.15.8 strips Authorization on every redirect (see #6929); + // cross-origin stripping is the documented mitigation for T-R2 in THREATMODEL.md + // and is preserved by deliberately not restoring on origin change. + const requestOrigin = parsed.origin; + const authToRestore = auth; + options.beforeRedirects.auth = function beforeRedirectAuth(redirectOptions) { + try { + if (new URL(redirectOptions.href).origin === requestOrigin) { + redirectOptions.auth = authToRestore; + } + } catch (e) { + // ignore malformed URL: leaving auth stripped is fail-safe + } + }; + } + const sensitiveHeaders = own('sensitiveHeaders'); + if (sensitiveHeaders != null) { + if (!utils.isArray(sensitiveHeaders)) { + return reject( + new core_AxiosError( + 'sensitiveHeaders must be an array of strings', + core_AxiosError.ERR_BAD_OPTION_VALUE, + config + ) + ); + } + + const sensitiveSet = new Set(); + for (const header of sensitiveHeaders) { + if (!utils.isString(header)) { + return reject( + new core_AxiosError( + 'sensitiveHeaders must be an array of strings', + core_AxiosError.ERR_BAD_OPTION_VALUE, + config + ) + ); + } + + sensitiveSet.add(header.toLowerCase()); + } + + if (sensitiveSet.size) { + options.sensitiveHeaders = Array.from(sensitiveSet); + options.beforeRedirects.sensitiveHeaders = function beforeRedirectSensitiveHeaders( + redirectOptions, + requestDetails + ) { + if (!isSameOriginRedirect(redirectOptions, requestDetails)) { + stripMatchingHeaders(redirectOptions.headers, sensitiveSet); + } + }; + } + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + } + + // Set an explicit maxBodyLength option for transports that inspect it. + // When maxBodyLength is -1 (default/unlimited), use Infinity so + // follow-redirects does not fall back to its own 10MB default. + if (maxBodyLength > -1) { + options.maxBodyLength = maxBodyLength; + } else { + options.maxBodyLength = Infinity; + } + + // Always set an explicit own value so a polluted + // Object.prototype.insecureHTTPParser cannot enable the lenient parser + // through Node's internal options copy + options.insecureHTTPParser = Boolean(own('insecureHTTPParser')); + + // Create the request + req = transport.request(options, function handleResponse(res) { + clearConnectPhaseTimer(); + + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = utils.toFiniteNumber(res.headers['content-length']); + + if (onDownloadProgress || maxDownloadRate) { + const transformStream = new helpers_AxiosTransformStream({ + maxRate: utils.toFiniteNumber(maxDownloadRate), + }); + + onDownloadProgress && + transformStream.on( + 'progress', + flushOnFinish( + transformStream, + progressEventDecorator( + responseLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true, 3) + ) + ) + ); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch ((res.headers['content-encoding'] || '').toLowerCase()) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(external_zlib_namespaceObject.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new helpers_ZlibHeaderTransformStream()); + + // add the unzipper to the body stream processing pipeline + streams.push(external_zlib_namespaceObject.createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(external_zlib_namespaceObject.createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + break; + case 'zstd': + if (isZstdSupported) { + streams.push(external_zlib_namespaceObject.createZstdDecompress(zstdOptions)); + delete res.headers['content-encoding']; + } + break; + } + } + + responseStream = streams.length > 1 ? external_stream_.pipeline(streams, utils.noop) : streams[0]; + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new core_AxiosHeaders(res.headers), + config, + request: lastRequest, + }; + + if (responseType === 'stream') { + // Enforce maxContentLength on streamed responses; previously this + // was applied only to buffered responses. + if (maxContentLength > -1) { + const limit = maxContentLength; + const source = responseStream; + async function* enforceMaxContentLength() { + let totalResponseBytes = 0; + for await (const chunk of source) { + totalResponseBytes += chunk.length; + if (totalResponseBytes > limit) { + throw new core_AxiosError( + 'maxContentLength size of ' + limit + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + } + yield chunk; + } + } + responseStream = external_stream_.Readable.from(enforceMaxContentLength(), { + objectMode: false, + }); + } + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (maxContentLength > -1 && totalResponseBytes > maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + abort( + new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ) + ); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new core_AxiosError( + 'stream has been aborted', + core_AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest, + response + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (rejected) return; + reject(core_AxiosError.from(err, null, config, lastRequest, response)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = + responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + return reject(core_AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + abortEmitter.once('abort', (err) => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + abortEmitter.once('abort', (err) => { + if (req.close) { + req.close(); + } else { + req.destroy(err); + } + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + reject(core_AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + // Track every socket bound to this outer RedirectableRequest so a single + // 'close' listener can release ownership on all of them. follow-redirects + // re-emits the 'socket' event for each hop's native request onto the same + // outer request, so attaching per-request listeners inside this handler + // would accumulate across hops and trigger MaxListenersExceededWarning at + // >= 11 redirects. Clearing only the last-bound socket would leave stale + // kAxiosCurrentReq refs on earlier hop sockets returned to the keep-alive + // pool, causing an idle-pool 'error' to be attributed to a closed req. + const boundSockets = new Set(); + + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + // proxy agents (e.g. agent-base) may return a generic Duplex stream + // that doesn't have setKeepAlive, so guard before calling + if (typeof socket.setKeepAlive === 'function') { + socket.setKeepAlive(true, 1000 * 60); + } + + // Install a single 'error' listener per socket (not per request) to avoid + // accumulating listeners on pooled keep-alive sockets that get reassigned + // to new requests before the previous request's 'close' fires (issue #10780). + // The listener is bound to the socket's currently-active request via a + // symbol, which is swapped as the socket is reassigned. + if (!socket[kAxiosSocketListener]) { + socket.on('error', function handleSocketError(err) { + const current = socket[kAxiosCurrentReq]; + if (current && !current.destroyed) { + current.destroy(err); + } + }); + socket[kAxiosSocketListener] = true; + } + + socket[kAxiosCurrentReq] = req; + boundSockets.add(socket); + }); + + req.once('close', function clearCurrentReq() { + clearConnectPhaseTimer(); + + for (const socket of boundSockets) { + if (socket[kAxiosCurrentReq] === req) { + socket[kAxiosCurrentReq] = null; + } + } + boundSockets.clear(); + }); + + // Handle request timeout + if (own('timeout')) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(own('timeout'), 10); + + if (Number.isNaN(timeout)) { + abort( + new core_AxiosError( + 'error trying to parse `config.timeout` to int', + core_AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + ) + ); + + return; + } + + const handleTimeout = function handleTimeout() { + if (isDone) return; + abort(createTimeoutError()); + }; + + if (isNativeTransport && timeout > 0) { + // Native ClientRequest#setTimeout starts from the socket lifecycle and + // may not fire while TCP connect is still pending. Mirror the + // follow-redirects wall-clock timer for the maxRedirects === 0 path. + connectPhaseTimer = setTimeout(handleTimeout, timeout); + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, handleTimeout); + } else { + // explicitly reset the socket timeout value for a possible `keep-alive` request + req.setTimeout(0); + } + + // Send the request + if (utils.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', (err) => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new cancel_CanceledError('Request stream has been aborted', config, req)); + } + }); + + // Enforce maxBodyLength for streamed uploads on every transport that + // does not apply options.maxBodyLength itself (native http/https, http2, + // and user-supplied custom transports). The follow-redirects transport + // enforces it on the redirected HTTP/1 path. + let uploadStream = data; + if (maxBodyLength > -1 && !transportEnforcesMaxBodyLength) { + const limit = maxBodyLength; + let bytesSent = 0; + uploadStream = external_stream_.pipeline( + [ + data, + new external_stream_.Transform({ + transform(chunk, _enc, cb) { + bytesSent += chunk.length; + if (bytesSent > limit) { + return cb( + new core_AxiosError( + 'Request body larger than maxBodyLength limit', + core_AxiosError.ERR_BAD_REQUEST, + config, + req + ) + ); + } + cb(null, chunk); + }, + }), + ], + utils.noop + ); + uploadStream.on('error', (err) => { + if (!req.destroyed) req.destroy(err); + }); + } + + uploadStream.pipe(req); + } else { + data && req.write(data); + req.end(); + } + }); + }); + +const __setProxy = (/* unused pure expression or super */ null && (setProxy)); +const __isNodeEnvProxyEnabled = (/* unused pure expression or super */ null && (isNodeEnvProxyEnabled)); +const __isSameOriginRedirect = (/* unused pure expression or super */ null && (isSameOriginRedirect)); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/isURLSameOrigin.js + + +/* harmony default export */ const isURLSameOrigin = (lib_platform.hasStandardBrowserEnv + ? ((origin, isMSIE) => (url) => { + url = new URL(url, lib_platform.origin); + + return ( + origin.protocol === url.protocol && + origin.host === url.host && + (isMSIE || origin.port === url.port) + ); + })( + new URL(lib_platform.origin), + lib_platform.navigator && /(msie|trident)/i.test(lib_platform.navigator.userAgent) + ) + : () => true); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/cookies.js + + + +/* harmony default export */ const cookies = (lib_platform.hasStandardBrowserEnv + ? // Standard browser envs support document.cookie + { + write(name, value, expires, path, domain, secure, sameSite) { + if (typeof document === 'undefined') return; + + const cookie = [`${name}=${encodeURIComponent(value)}`]; + + if (utils.isNumber(expires)) { + cookie.push(`expires=${new Date(expires).toUTCString()}`); + } + if (utils.isString(path)) { + cookie.push(`path=${path}`); + } + if (utils.isString(domain)) { + cookie.push(`domain=${domain}`); + } + if (secure === true) { + cookie.push('secure'); + } + if (utils.isString(sameSite)) { + cookie.push(`SameSite=${sameSite}`); + } + + document.cookie = cookie.join('; '); + }, + + read(name) { + if (typeof document === 'undefined') return null; + // Match name=value by splitting on the semicolon separator instead of building a + // RegExp from `name` — interpolating an unescaped string into a RegExp would let + // metacharacters (e.g. `.+?` in an attacker-influenced cookie name) cause ReDoS or + // match the wrong cookie. Browsers may serialize cookie pairs as either ";" or + // "; ", so ignore optional whitespace before each cookie name. + const cookies = document.cookie.split(';'); + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i].replace(/^\s+/, ''); + const eq = cookie.indexOf('='); + if (eq !== -1 && cookie.slice(0, eq) === name) { + try { + return decodeURIComponent(cookie.slice(eq + 1)); + } catch (e) { + return cookie.slice(eq + 1); + } + } + } + return null; + }, + + remove(name) { + this.write(name, '', Date.now() - 86400000, '/'); + }, + } + : // Non-standard browser env (web workers, react-native) lack needed support. + { + write() {}, + read() { + return null; + }, + remove() {}, + }); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/mergeConfig.js + + + + + +const headersToObject = (thing) => (thing instanceof core_AxiosHeaders ? { ...thing } : thing); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config1 = config1 || {}; + config2 = config2 || {}; + + // Use a null-prototype object so that downstream reads such as `config.auth` + // or `config.baseURL` cannot inherit polluted values from Object.prototype. + // `hasOwnProperty` is restored as a non-enumerable own slot to preserve + // ergonomics for user code that relies on it. + const config = Object.create(null); + Object.defineProperty(config, 'hasOwnProperty', { + // Null-proto descriptor so a polluted Object.prototype.get cannot turn + // this data descriptor into an accessor descriptor on the way in. + __proto__: null, + value: Object.prototype.hasOwnProperty, + enumerable: false, + writable: true, + configurable: true, + }); + + function getMergedValue(target, source, prop, caseless) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge.call({ caseless }, target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(a, b, prop, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, prop, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, prop, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + function getMergedTransitionalOption(prop) { + const transitional2 = utils.hasOwnProp(config2, 'transitional') ? config2.transitional : undefined; + + if (!utils.isUndefined(transitional2)) { + if (utils.isPlainObject(transitional2)) { + if (utils.hasOwnProp(transitional2, prop)) { + return transitional2[prop]; + } + } else { + return undefined; + } + } + + const transitional1 = utils.hasOwnProp(config1, 'transitional') ? config1.transitional : undefined; + + if (utils.isPlainObject(transitional1) && utils.hasOwnProp(transitional1, prop)) { + return transitional1[prop]; + } + + return undefined; + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (utils.hasOwnProp(config2, prop)) { + return getMergedValue(a, b); + } else if (utils.hasOwnProp(config1, prop)) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + withXSRFToken: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + allowedSocketPaths: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b, prop) => + mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true), + }; + + utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) { + if (prop === '__proto__' || prop === 'constructor' || prop === 'prototype') return; + const merge = utils.hasOwnProp(mergeMap, prop) ? mergeMap[prop] : mergeDeepProperties; + const a = utils.hasOwnProp(config1, prop) ? config1[prop] : undefined; + const b = utils.hasOwnProp(config2, prop) ? config2[prop] : undefined; + const configValue = merge(a, b, prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + if ( + utils.hasOwnProp(config2, 'validateStatus') && + utils.isUndefined(config2.validateStatus) && + getMergedTransitionalOption('validateStatusUndefinedResolves') === false + ) { + if (utils.hasOwnProp(config1, 'validateStatus')) { + config.validateStatus = getMergedValue(undefined, config1.validateStatus); + } else { + delete config.validateStatus; + } + } + + return config; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/resolveConfig.js + + + + + + + + + + +const resolveConfig_FORM_DATA_CONTENT_HEADERS = ['content-type', 'content-length']; + +function resolveConfig_setFormDataHeaders(headers, formHeaders, policy) { + if (policy !== 'content-only') { + headers.set(formHeaders); + return; + } + + Object.entries(formHeaders || {}).forEach(([key, val]) => { + if (resolveConfig_FORM_DATA_CONTENT_HEADERS.includes(key.toLowerCase())) { + headers.set(key, val); + } + }); +} + +/** + * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). + * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. + * + * @param {string} str The string to encode + * + * @returns {string} UTF-8 bytes as a Latin-1 string + */ +const encodeUTF8 = (str) => + encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => + String.fromCharCode(parseInt(hex, 16)) + ); + +function resolveConfig(config) { + const newConfig = mergeConfig({}, config); + + // Read only own properties to prevent prototype pollution gadgets + // (e.g. Object.prototype.baseURL = 'https://evil.com'). + const own = (key) => (utils.hasOwnProp(newConfig, key) ? newConfig[key] : undefined); + + const data = own('data'); + let withXSRFToken = own('withXSRFToken'); + const xsrfHeaderName = own('xsrfHeaderName'); + const xsrfCookieName = own('xsrfCookieName'); + let headers = own('headers'); + const auth = own('auth'); + const baseURL = own('baseURL'); + const allowAbsoluteUrls = own('allowAbsoluteUrls'); + const url = own('url'); + + newConfig.headers = headers = core_AxiosHeaders.from(headers); + + newConfig.url = buildURL( + buildFullPath(baseURL, url, allowAbsoluteUrls, newConfig), + own('params'), + own('paramsSerializer') + ); + + // HTTP basic authentication + if (auth) { + const username = utils.getSafeProp(auth, 'username') || ''; + const password = utils.getSafeProp(auth, 'password') || ''; + + try { + headers.set( + 'Authorization', + 'Basic ' + btoa(username + ':' + (password ? encodeUTF8(password) : '')) + ); + } catch (e) { + throw core_AxiosError.from(e, core_AxiosError.ERR_BAD_OPTION_VALUE, config); + } + } + + if (utils.isFormData(data)) { + if ( + lib_platform.hasStandardBrowserEnv || + lib_platform.hasStandardBrowserWebWorkerEnv || + utils.isReactNative(data) + ) { + headers.setContentType(undefined); // browser/web worker/RN handles it + } else if (utils.isFunction(data.getHeaders)) { + // Node.js FormData (like form-data package) + resolveConfig_setFormDataHeaders(headers, data.getHeaders(), own('formDataHeaderPolicy')); + } + } + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + + if (lib_platform.hasStandardBrowserEnv) { + if (utils.isFunction(withXSRFToken)) { + withXSRFToken = withXSRFToken(newConfig); + } + + // Strict boolean check — prevents proto-pollution gadgets (e.g. Object.prototype.withXSRFToken = 1) + // and misconfigurations (e.g. "false") from short-circuiting the same-origin check and leaking + // the XSRF token cross-origin. + const shouldSendXSRF = + withXSRFToken === true || (withXSRFToken == null && isURLSameOrigin(newConfig.url)); + + if (shouldSendXSRF) { + const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName); + + if (xsrfValue) { + headers.set(xsrfHeaderName, xsrfValue); + } + } + } + + return newConfig; +} + +/* harmony default export */ const helpers_resolveConfig = (resolveConfig); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/adapters/xhr.js + + + + + + + + + + + + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +/* harmony default export */ const xhr = (isXHRAdapterSupported && + function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + const _config = helpers_resolveConfig(config); + let requestData = _config.data; + const requestHeaders = core_AxiosHeaders.from(_config.headers).normalize(); + let { responseType, onUploadProgress, onDownloadProgress } = _config; + let onCanceled; + let uploadThrottled, downloadThrottled; + let flushUpload, flushDownload; + + function done() { + flushUpload && flushUpload(); // flush events + flushDownload && flushDownload(); // flush events + + _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled); + + _config.signal && _config.signal.removeEventListener('abort', onCanceled); + } + + let request = new XMLHttpRequest(); + + request.open(_config.method.toUpperCase(), _config.url, true); + + // Set the request timeout in MS + request.timeout = _config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = core_AxiosHeaders.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = + !responseType || responseType === 'text' || responseType === 'json' + ? request.responseText + : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request, + }; + + settle( + function _resolve(value) { + resolve(value); + done(); + }, + function _reject(err) { + reject(err); + done(); + }, + response + ); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if ( + request.status === 0 && + !(request.responseURL && request.responseURL.startsWith('file:')) + ) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new core_AxiosError('Request aborted', core_AxiosError.ECONNABORTED, config, request)); + done(); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError(event) { + // Browsers deliver a ProgressEvent in XHR onerror + // (message may be empty; when present, surface it) + // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event + const msg = event && event.message ? event.message : 'Network Error'; + const err = new core_AxiosError(msg, core_AxiosError.ERR_NETWORK, config, request); + // attach the underlying event for consumers who want details + err.event = event || null; + reject(err); + done(); + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = _config.timeout + ? 'timeout of ' + _config.timeout + 'ms exceeded' + : 'timeout exceeded'; + const transitional = _config.transitional || defaults_transitional; + if (_config.timeoutErrorMessage) { + timeoutErrorMessage = _config.timeoutErrorMessage; + } + reject( + new core_AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? core_AxiosError.ETIMEDOUT : core_AxiosError.ECONNABORTED, + config, + request + ) + ); + done(); + + // Clean up request + request = null; + }; + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(toByteStringHeaderObject(requestHeaders), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(_config.withCredentials)) { + request.withCredentials = !!_config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = _config.responseType; + } + + // Handle progress if needed + if (onDownloadProgress) { + [downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true); + request.addEventListener('progress', downloadThrottled); + } + + // Not all browsers support upload events + if (onUploadProgress && request.upload) { + [uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress); + + request.upload.addEventListener('progress', uploadThrottled); + + request.upload.addEventListener('loadend', flushUpload); + } + + if (_config.cancelToken || _config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = (cancel) => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new cancel_CanceledError(null, config, request) : cancel); + request.abort(); + done(); + request = null; + }; + + _config.cancelToken && _config.cancelToken.subscribe(onCanceled); + if (_config.signal) { + _config.signal.aborted + ? onCanceled() + : _config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(_config.url); + + if (protocol && !lib_platform.protocols.includes(protocol)) { + reject( + new core_AxiosError( + 'Unsupported protocol ' + protocol + ':', + core_AxiosError.ERR_BAD_REQUEST, + config + ) + ); + done(); + return; + } + + // Send the request + request.send(requestData || null); + }); + }); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/composeSignals.js + + + + +const composeSignals = (signals, timeout) => { + signals = signals ? signals.filter(Boolean) : []; + + if (!timeout && !signals.length) { + return; + } + + const controller = new AbortController(); + + let aborted = false; + + const onabort = function (reason) { + if (!aborted) { + aborted = true; + unsubscribe(); + const err = reason instanceof Error ? reason : this.reason; + controller.abort( + err instanceof core_AxiosError + ? err + : new cancel_CanceledError(err instanceof Error ? err.message : err) + ); + } + }; + + let timer = + timeout && + setTimeout(() => { + timer = null; + onabort(new core_AxiosError(`timeout of ${timeout}ms exceeded`, core_AxiosError.ETIMEDOUT)); + }, timeout); + + const unsubscribe = () => { + if (!signals) { return; } + timer && clearTimeout(timer); + timer = null; + signals.forEach((signal) => { + signal.unsubscribe + ? signal.unsubscribe(onabort) + : signal.removeEventListener('abort', onabort); + }); + signals = null; + }; + + signals.forEach((signal) => signal.addEventListener('abort', onabort, { once: true })); + + const { signal } = controller; + + signal.unsubscribe = () => utils.asap(unsubscribe); + + return signal; +}; + +/* harmony default export */ const helpers_composeSignals = (composeSignals); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/trackStream.js +const streamChunk = function* (chunk, chunkSize) { + let len = chunk.byteLength; + + if (!chunkSize || len < chunkSize) { + yield chunk; + return; + } + + let pos = 0; + let end; + + while (pos < len) { + end = pos + chunkSize; + yield chunk.slice(pos, end); + pos = end; + } +}; + +const readBytes = async function* (iterable, chunkSize) { + for await (const chunk of readStream(iterable)) { + yield* streamChunk(chunk, chunkSize); + } +}; + +const readStream = async function* (stream) { + if (stream[Symbol.asyncIterator]) { + yield* stream; + return; + } + + const reader = stream.getReader(); + try { + for (;;) { + const { done, value } = await reader.read(); + if (done) { + break; + } + yield value; + } + } finally { + await reader.cancel(); + } +}; + +const trackStream = (stream, chunkSize, onProgress, onFinish) => { + const iterator = readBytes(stream, chunkSize); + + let bytes = 0; + let done; + let _onFinish = (e) => { + if (!done) { + done = true; + onFinish && onFinish(e); + } + }; + + return new ReadableStream( + { + async pull(controller) { + try { + const { done, value } = await iterator.next(); + + if (done) { + _onFinish(); + controller.close(); + return; + } + + let len = value.byteLength; + if (onProgress) { + let loadedBytes = (bytes += len); + onProgress(loadedBytes); + } + controller.enqueue(new Uint8Array(value)); + } catch (err) { + _onFinish(err); + throw err; + } + }, + cancel(reason) { + _onFinish(reason); + return iterator.return(); + }, + }, + { + highWaterMark: 2, + } + ); +}; + +;// CONCATENATED MODULE: ./node_modules/axios/lib/adapters/fetch.js + + + + + + + + + + + + + +const DEFAULT_CHUNK_SIZE = 64 * 1024; + +const { isFunction: fetch_isFunction } = utils; + +/** + * Encode a UTF-8 string to a Latin-1 byte string for use with btoa(). + * This is a modern replacement for the deprecated unescape(encodeURIComponent(str)) pattern. + * + * @param {string} str The string to encode + * + * @returns {string} UTF-8 bytes as a Latin-1 string + */ +const fetch_encodeUTF8 = (str) => + encodeURIComponent(str).replace(/%([0-9A-F]{2})/gi, (_, hex) => + String.fromCharCode(parseInt(hex, 16)) + ); + +// Node's WHATWG URL parser returns `username` and `password` percent-encoded. +// Decode before composing the `auth` option so credentials such as +// `my%40email.com:pass` are sent as `my@email.com:pass`. Falls back to the +// original value for malformed input so a bad encoding never throws. +const fetch_decodeURIComponentSafe = (value) => { + if (!utils.isString(value)) { + return value; + } + + try { + return decodeURIComponent(value); + } catch (error) { + return value; + } +}; + +const test = (fn, ...args) => { + try { + return !!fn(...args); + } catch (e) { + return false; + } +}; + +const maybeWithAuthCredentials = (url) => { + const protocolIndex = url.indexOf('://'); + let urlToCheck = url; + if (protocolIndex !== -1) { + urlToCheck = urlToCheck.slice(protocolIndex + 3); + } + return urlToCheck.includes('@') || urlToCheck.includes(':'); +}; + +const factory = (env) => { + const globalObject = + utils.global !== undefined && utils.global !== null + ? utils.global + : globalThis; + const { ReadableStream, TextEncoder } = globalObject; + + env = utils.merge.call( + { + skipUndefined: true, + }, + { + Request: globalObject.Request, + Response: globalObject.Response, + }, + env + ); + + const { fetch: envFetch, Request, Response } = env; + const isFetchSupported = envFetch ? fetch_isFunction(envFetch) : typeof fetch === 'function'; + const isRequestSupported = fetch_isFunction(Request); + const isResponseSupported = fetch_isFunction(Response); + + if (!isFetchSupported) { + return false; + } + + const isReadableStreamSupported = isFetchSupported && fetch_isFunction(ReadableStream); + + const encodeText = + isFetchSupported && + (typeof TextEncoder === 'function' + ? ( + (encoder) => (str) => + encoder.encode(str) + )(new TextEncoder()) + : async (str) => new Uint8Array(await new Request(str).arrayBuffer())); + + const supportsRequestStream = + isRequestSupported && + isReadableStreamSupported && + test(() => { + let duplexAccessed = false; + + const request = new Request(lib_platform.origin, { + body: new ReadableStream(), + method: 'POST', + get duplex() { + duplexAccessed = true; + return 'half'; + }, + }); + + const hasContentType = request.headers.has('Content-Type'); + + if (request.body != null) { + request.body.cancel(); + } + + return duplexAccessed && !hasContentType; + }); + + const supportsResponseStream = + isResponseSupported && + isReadableStreamSupported && + test(() => utils.isReadableStream(new Response('').body)); + + const resolvers = { + stream: supportsResponseStream && ((res) => res.body), + }; + + isFetchSupported && + (() => { + ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach((type) => { + !resolvers[type] && + (resolvers[type] = (res, config) => { + let method = res && res[type]; + + if (method) { + return method.call(res); + } + + throw new core_AxiosError( + `Response type '${type}' is not supported`, + core_AxiosError.ERR_NOT_SUPPORT, + config + ); + }); + }); + })(); + + const getBodyLength = async (body) => { + if (body == null) { + return 0; + } + + if (utils.isBlob(body)) { + return body.size; + } + + if (utils.isSpecCompliantForm(body)) { + const _request = new Request(lib_platform.origin, { + method: 'POST', + body, + }); + return (await _request.arrayBuffer()).byteLength; + } + + if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) { + return body.byteLength; + } + + if (utils.isURLSearchParams(body)) { + body = body + ''; + } + + if (utils.isString(body)) { + return (await encodeText(body)).byteLength; + } + }; + + const resolveBodyLength = async (headers, body) => { + const length = utils.toFiniteNumber(headers.getContentLength()); + + return length == null ? getBodyLength(body) : length; + }; + + return async (config) => { + let { + url, + method, + data, + signal, + cancelToken, + timeout, + onDownloadProgress, + onUploadProgress, + responseType, + headers, + withCredentials = 'same-origin', + fetchOptions, + maxContentLength, + maxBodyLength, + } = helpers_resolveConfig(config); + + const hasMaxContentLength = utils.isNumber(maxContentLength) && maxContentLength > -1; + const hasMaxBodyLength = utils.isNumber(maxBodyLength) && maxBodyLength > -1; + const own = (key) => (utils.hasOwnProp(config, key) ? config[key] : undefined); + + let _fetch = envFetch || fetch; + + responseType = responseType ? (responseType + '').toLowerCase() : 'text'; + + let composedSignal = helpers_composeSignals( + [signal, cancelToken && cancelToken.toAbortSignal()], + timeout + ); + + let request = null; + + const unsubscribe = + composedSignal && + composedSignal.unsubscribe && + (() => { + composedSignal.unsubscribe(); + }); + + let requestContentLength; + + // AxiosError we raise while the request body is being streamed. Captured + // by identity so the catch block can surface it directly, regardless of + // how the runtime wraps the resulting fetch rejection (undici exposes it + // as `err.cause`; some browsers drop the original error entirely). + let pendingBodyError = null; + + const maxBodyLengthError = () => + new core_AxiosError( + 'Request body larger than maxBodyLength limit', + core_AxiosError.ERR_BAD_REQUEST, + config, + request + ); + + try { + // HTTP basic authentication + let auth = undefined; + const configAuth = own('auth'); + + if (configAuth) { + const username = utils.getSafeProp(configAuth, 'username') || ''; + const password = utils.getSafeProp(configAuth, 'password') || ''; + auth = { + username, + password + }; + } + + if (maybeWithAuthCredentials(url)) { + const parsedURL = new URL(url, lib_platform.origin); + + if (!auth && (parsedURL.username || parsedURL.password)) { + const urlUsername = fetch_decodeURIComponentSafe(parsedURL.username); + const urlPassword = fetch_decodeURIComponentSafe(parsedURL.password); + auth = { + username: urlUsername, + password: urlPassword + }; + } + + if (parsedURL.username || parsedURL.password) { + parsedURL.username = ''; + parsedURL.password = ''; + url = parsedURL.href; + } + } + + if (auth) { + headers.delete('authorization'); + headers.set( + 'Authorization', + 'Basic ' + btoa(fetch_encodeUTF8((auth.username || '') + ':' + (auth.password || ''))) + ); + } + + // Enforce maxContentLength for data: URLs up-front so we never materialize + // an oversized payload. The HTTP adapter applies the same check (see http.js + // "if (protocol === 'data:')" branch). + if (hasMaxContentLength && typeof url === 'string' && url.startsWith('data:')) { + const estimated = estimateDataURLDecodedBytes(url); + if (estimated > maxContentLength) { + throw new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + request + ); + } + } + + // Enforce maxBodyLength against known-size bodies before dispatch using + // the body's *actual* size — never a caller-declared Content-Length, + // which could under-report to slip an oversized body past the check. + // Unknown-size streams return undefined here and are counted per-chunk + // below as fetch consumes them. + if (hasMaxBodyLength && method !== 'get' && method !== 'head') { + const outboundLength = await getBodyLength(data); + if (typeof outboundLength === 'number' && isFinite(outboundLength)) { + requestContentLength = outboundLength; + if (outboundLength > maxBodyLength) { + throw maxBodyLengthError(); + } + } + } + + // A streamed body under maxBodyLength must be counted as fetch consumes + // it; its size is never trusted from a caller-declared Content-Length. + const mustEnforceStreamBody = + hasMaxBodyLength && (utils.isReadableStream(data) || utils.isStream(data)); + + const trackRequestStream = (stream, onProgress, flush) => + trackStream( + stream, + DEFAULT_CHUNK_SIZE, + (loadedBytes) => { + if (hasMaxBodyLength && loadedBytes > maxBodyLength) { + throw (pendingBodyError = maxBodyLengthError()); + } + onProgress && onProgress(loadedBytes); + }, + flush + ); + + if ( + supportsRequestStream && + method !== 'get' && + method !== 'head' && + (onUploadProgress || mustEnforceStreamBody) + ) { + requestContentLength = + requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength; + + // A declared length of 0 is only trusted to skip the wrap when we are + // not enforcing a stream limit (which must not rely on that header). + if (requestContentLength !== 0 || mustEnforceStreamBody) { + let _request = new Request(url, { + method: 'POST', + body: data, + duplex: 'half', + }); + + let contentTypeHeader; + + if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) { + headers.setContentType(contentTypeHeader); + } + + if (_request.body) { + const [onProgress, flush] = + (onUploadProgress && + progressEventDecorator( + requestContentLength, + progressEventReducer(asyncDecorator(onUploadProgress)) + )) || + []; + + data = trackRequestStream(_request.body, onProgress, flush); + } + } + } else if ( + mustEnforceStreamBody && + !isRequestSupported && + isReadableStreamSupported && + method !== 'get' && + method !== 'head' + ) { + data = trackRequestStream(data); + } else if ( + mustEnforceStreamBody && + isRequestSupported && + !supportsRequestStream && + method !== 'get' && + method !== 'head' + ) { + throw new core_AxiosError( + 'Stream request bodies are not supported by the current fetch implementation', + core_AxiosError.ERR_NOT_SUPPORT, + config, + request + ); + } + + if (!utils.isString(withCredentials)) { + withCredentials = withCredentials ? 'include' : 'omit'; + } + + // Cloudflare Workers throws when credentials are defined + // see https://github.com/cloudflare/workerd/issues/902 + const isCredentialsSupported = isRequestSupported && 'credentials' in Request.prototype; + + // If data is FormData and Content-Type is multipart/form-data without boundary, + // delete it so fetch can set it correctly with the boundary + if (utils.isFormData(data)) { + const contentType = headers.getContentType(); + if ( + contentType && + /^multipart\/form-data/i.test(contentType) && + !/boundary=/i.test(contentType) + ) { + headers.delete('content-type'); + } + } + + // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js) + headers.set('User-Agent', 'axios/' + VERSION, false); + + const resolvedOptions = { + ...fetchOptions, + signal: composedSignal, + method: method.toUpperCase(), + headers: toByteStringHeaderObject(headers.normalize()), + body: data, + duplex: 'half', + credentials: isCredentialsSupported ? withCredentials : undefined, + }; + + request = isRequestSupported && new Request(url, resolvedOptions); + + let response = await (isRequestSupported + ? _fetch(request, fetchOptions) + : _fetch(url, resolvedOptions)); + + const responseHeaders = core_AxiosHeaders.from(response.headers); + + // Cheap pre-check: if the server honestly declares a content-length that + // already exceeds the cap, reject before we start streaming. + if (hasMaxContentLength) { + const declaredLength = utils.toFiniteNumber(responseHeaders.getContentLength()); + if (declaredLength != null && declaredLength > maxContentLength) { + throw new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + request + ); + } + } + + const isStreamResponse = + supportsResponseStream && (responseType === 'stream' || responseType === 'response'); + + if ( + supportsResponseStream && + response.body && + (onDownloadProgress || hasMaxContentLength || (isStreamResponse && unsubscribe)) + ) { + const options = {}; + + ['status', 'statusText', 'headers'].forEach((prop) => { + options[prop] = response[prop]; + }); + + const responseContentLength = utils.toFiniteNumber(responseHeaders.getContentLength()); + + const [onProgress, flush] = + (onDownloadProgress && + progressEventDecorator( + responseContentLength, + progressEventReducer(asyncDecorator(onDownloadProgress), true) + )) || + []; + + let bytesRead = 0; + const onChunkProgress = (loadedBytes) => { + if (hasMaxContentLength) { + bytesRead = loadedBytes; + if (bytesRead > maxContentLength) { + throw new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + request + ); + } + } + onProgress && onProgress(loadedBytes); + }; + + response = new Response( + trackStream(response.body, DEFAULT_CHUNK_SIZE, onChunkProgress, () => { + flush && flush(); + unsubscribe && unsubscribe(); + }), + options + ); + } + + responseType = responseType || 'text'; + + let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text']( + response, + config + ); + + // Fallback enforcement for environments without ReadableStream support + // (legacy runtimes). Detect materialized size from typed output; skip + // streams/Response passthrough since the user will read those themselves. + if (hasMaxContentLength && !supportsResponseStream && !isStreamResponse) { + let materializedSize; + if (responseData != null) { + if (typeof responseData.byteLength === 'number') { + materializedSize = responseData.byteLength; + } else if (typeof responseData.size === 'number') { + materializedSize = responseData.size; + } else if (typeof responseData === 'string') { + materializedSize = + typeof TextEncoder === 'function' + ? new TextEncoder().encode(responseData).byteLength + : responseData.length; + } + } + if (typeof materializedSize === 'number' && materializedSize > maxContentLength) { + throw new core_AxiosError( + 'maxContentLength size of ' + maxContentLength + ' exceeded', + core_AxiosError.ERR_BAD_RESPONSE, + config, + request + ); + } + } + + !isStreamResponse && unsubscribe && unsubscribe(); + + return await new Promise((resolve, reject) => { + settle(resolve, reject, { + data: responseData, + headers: core_AxiosHeaders.from(response.headers), + status: response.status, + statusText: response.statusText, + config, + request, + }); + }); + } catch (err) { + unsubscribe && unsubscribe(); + + // Safari can surface fetch aborts as a DOMException-like object whose + // branded getters throw. Prefer our composed signal reason before reading + // the caught error, preserving timeout vs cancellation semantics. + if (composedSignal && composedSignal.aborted && composedSignal.reason instanceof core_AxiosError) { + const canceledError = composedSignal.reason; + canceledError.config = config; + request && (canceledError.request = request); + if (err !== canceledError) { + // Non-enumerable to match native Error `cause` semantics so loggers + // don't recurse into circular fetch internals (see #7205). + Object.defineProperty(canceledError, 'cause', { + __proto__: null, + value: err, + writable: true, + enumerable: false, + configurable: true, + }); + } + throw canceledError; + } + + // Surface a maxBodyLength violation we raised while the request body was + // being streamed. Matching by identity (rather than reading + // `err.cause.isAxiosError`) keeps the error deterministic across runtimes + // and avoids both prototype-pollution reads and mis-attributing a foreign + // AxiosError that merely happened to land in `err.cause`. + if (pendingBodyError) { + request && !pendingBodyError.request && (pendingBodyError.request = request); + throw pendingBodyError; + } + + // Re-throw AxiosErrors we raised synchronously (data: URL / content-length + // pre-checks, response size enforcement) without re-wrapping them. + if (err instanceof core_AxiosError) { + request && !err.request && (err.request = request); + throw err; + } + + if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) { + const networkError = new core_AxiosError( + 'Network Error', + core_AxiosError.ERR_NETWORK, + config, + request, + err && err.response + ); + // Non-enumerable to match native Error `cause` semantics so loggers + // don't recurse into circular fetch internals (see #7205). + Object.defineProperty(networkError, 'cause', { + __proto__: null, + value: err.cause || err, + writable: true, + enumerable: false, + configurable: true, + }); + throw networkError; + } + + throw core_AxiosError.from(err, err && err.code, config, request, err && err.response); + } + }; +}; + +const seedCache = new Map(); + +const getFetch = (config) => { + let env = (config && config.env) || {}; + const { fetch, Request, Response } = env; + const seeds = [Request, Response, fetch]; + + let len = seeds.length, + i = len, + seed, + target, + map = seedCache; + + while (i--) { + seed = seeds[i]; + target = map.get(seed); + + target === undefined && map.set(seed, (target = i ? new Map() : factory(env))); + + map = target; + } + + return target; +}; + +const adapter = getFetch(); + +/* harmony default export */ const adapters_fetch = ((/* unused pure expression or super */ null && (adapter))); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/adapters/adapters.js + + + + + + +/** + * Known adapters mapping. + * Provides environment-specific adapters for Axios: + * - `http` for Node.js + * - `xhr` for browsers + * - `fetch` for fetch API-based requests + * + * @type {Object} + */ +const knownAdapters = { + http: http, + xhr: xhr, + fetch: { + get: getFetch, + }, +}; + +// Assign adapter names for easier debugging and identification +utils.forEach(knownAdapters, (fn, value) => { + if (fn) { + try { + // Null-proto descriptors so a polluted Object.prototype.get cannot turn + // these data descriptors into accessor descriptors on the way in. + Object.defineProperty(fn, 'name', { __proto__: null, value }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { __proto__: null, value }); + } +}); + +/** + * Render a rejection reason string for unknown or unsupported adapters + * + * @param {string} reason + * @returns {string} + */ +const renderReason = (reason) => `- ${reason}`; + +/** + * Check if the adapter is resolved (function, null, or false) + * + * @param {Function|null|false} adapter + * @returns {boolean} + */ +const isResolvedHandle = (adapter) => + utils.isFunction(adapter) || adapter === null || adapter === false; + +/** + * Get the first suitable adapter from the provided list. + * Tries each adapter in order until a supported one is found. + * Throws an AxiosError if no adapter is suitable. + * + * @param {Array|string|Function} adapters - Adapter(s) by name or function. + * @param {Object} config - Axios request configuration + * @throws {AxiosError} If no suitable adapter is available + * @returns {Function} The resolved adapter function + */ +function getAdapter(adapters, config) { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const { length } = adapters; + let nameOrAdapter; + let adapter; + + const rejectedReasons = {}; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + let id; + + adapter = nameOrAdapter; + + if (!isResolvedHandle(nameOrAdapter)) { + adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()]; + + if (adapter === undefined) { + throw new core_AxiosError(`Unknown adapter '${id}'`); + } + } + + if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) { + break; + } + + rejectedReasons[id || '#' + i] = adapter; + } + + if (!adapter) { + const reasons = Object.entries(rejectedReasons).map( + ([id, state]) => + `adapter ${id} ` + + (state === false ? 'is not supported by the environment' : 'is not available in the build') + ); + + let s = length + ? reasons.length > 1 + ? 'since :\n' + reasons.map(renderReason).join('\n') + : ' ' + renderReason(reasons[0]) + : 'as no adapter specified'; + + throw new core_AxiosError( + `There is no suitable adapter to dispatch the request ` + s, + core_AxiosError.ERR_NOT_SUPPORT + ); + } + + return adapter; +} + +/** + * Exports Axios adapters and utility to resolve an adapter + */ +/* harmony default export */ const adapters = ({ + /** + * Resolve an adapter from a list of adapter names or functions. + * @type {Function} + */ + getAdapter, + + /** + * Exposes all known adapters + * @type {Object} + */ + adapters: knownAdapters, +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/dispatchRequest.js + + + + + + + + + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new cancel_CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = core_AxiosHeaders.from(config.headers); + + // Transform request data + config.data = transformData.call(config, config.transformRequest); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || lib_defaults.adapter, config); + + return adapter(config).then( + function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Expose the current response on config so that transformResponse can + // attach it to any AxiosError it throws (e.g. on JSON parse failure). + // We clean it up afterwards to avoid polluting the config object. + config.response = response; + try { + response.data = transformData.call(config, config.transformResponse, response); + } finally { + delete config.response; + } + + response.headers = core_AxiosHeaders.from(response.headers); + + return response; + }, + function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + config.response = reason.response; + try { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + } finally { + delete config.response; + } + reason.response.headers = core_AxiosHeaders.from(reason.response.headers); + } + } + + return Promise.reject(reason); + } + ); +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/validator.js + + + + + +const validators = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return ( + '[Axios v' + + VERSION + + "] Transitional option '" + + opt + + "'" + + desc + + (message ? '. ' + message : '') + ); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new core_AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + core_AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +validators.spelling = function spelling(correctSpelling) { + return (value, opt) => { + // eslint-disable-next-line no-console + console.warn(`${opt} is likely a misspelling of ${correctSpelling}`); + return true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object' || options === null) { + throw new core_AxiosError('options must be an object', core_AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + // Use hasOwnProperty so a polluted Object.prototype. cannot supply + // a non-function validator and cause a TypeError. + const validator = Object.prototype.hasOwnProperty.call(schema, opt) ? schema[opt] : undefined; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new core_AxiosError( + 'option ' + opt + ' must be ' + result, + core_AxiosError.ERR_BAD_OPTION_VALUE + ); + } + continue; + } + if (allowUnknown !== true) { + throw new core_AxiosError('Unknown option ' + opt, core_AxiosError.ERR_BAD_OPTION); + } + } +} + +/* harmony default export */ const validator = ({ + assertOptions, + validators, +}); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/core/Axios.js + + + + + + + + + + + + +const Axios_validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig || {}; + this.interceptors = { + request: new core_InterceptorManager(), + response: new core_InterceptorManager(), + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + async request(configOrUrl, config) { + try { + return await this._request(configOrUrl, config); + } catch (err) { + if (err instanceof Error) { + let dummy = {}; + + Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error()); + + // slice off the Error: ... line + const stack = (() => { + if (!dummy.stack) { + return ''; + } + + const firstNewlineIndex = dummy.stack.indexOf('\n'); + + return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1); + })(); + try { + if (!err.stack) { + err.stack = stack; + // match without the 2 top stack lines + } else if (stack) { + const firstNewlineIndex = stack.indexOf('\n'); + const secondNewlineIndex = + firstNewlineIndex === -1 ? -1 : stack.indexOf('\n', firstNewlineIndex + 1); + const stackWithoutTwoTopLines = + secondNewlineIndex === -1 ? '' : stack.slice(secondNewlineIndex + 1); + + if (!String(err.stack).endsWith(stackWithoutTwoTopLines)) { + err.stack += '\n' + stack; + } + } + } catch (e) { + // ignore the case where "stack" is an un-writable property + } + } + + throw err; + } + } + + _request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const { transitional, paramsSerializer, headers } = config; + + if (transitional !== undefined) { + validator.assertOptions( + transitional, + { + silentJSONParsing: Axios_validators.transitional(Axios_validators.boolean), + forcedJSONParsing: Axios_validators.transitional(Axios_validators.boolean), + clarifyTimeoutError: Axios_validators.transitional(Axios_validators.boolean), + legacyInterceptorReqResOrdering: Axios_validators.transitional(Axios_validators.boolean), + advertiseZstdAcceptEncoding: Axios_validators.transitional(Axios_validators.boolean), + validateStatusUndefinedResolves: Axios_validators.transitional(Axios_validators.boolean), + }, + false + ); + } + + if (paramsSerializer != null) { + if (utils.isFunction(paramsSerializer)) { + config.paramsSerializer = { + serialize: paramsSerializer, + }; + } else { + validator.assertOptions( + paramsSerializer, + { + encode: Axios_validators.function, + serialize: Axios_validators.function, + }, + true + ); + } + } + + // Set config.allowAbsoluteUrls + if (config.allowAbsoluteUrls !== undefined) { + // do nothing + } else if (this.defaults.allowAbsoluteUrls !== undefined) { + config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls; + } else { + config.allowAbsoluteUrls = true; + } + + validator.assertOptions( + config, + { + baseUrl: Axios_validators.spelling('baseURL'), + withXsrfToken: Axios_validators.spelling('withXSRFToken'), + }, + true + ); + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + // Flatten headers + let contextHeaders = headers && utils.merge(headers.common, headers[config.method]); + + headers && + utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => { + delete headers[method]; + }); + + config.headers = core_AxiosHeaders.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + const transitional = config.transitional || defaults_transitional; + const legacyInterceptorReqResOrdering = + transitional && transitional.legacyInterceptorReqResOrdering; + + if (legacyInterceptorReqResOrdering) { + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + } else { + requestInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + } + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift(...requestInterceptorChain); + chain.push(...responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls, config); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function (url, config) { + return this.request( + mergeConfig(config || {}, { + method, + url, + data: config && utils.hasOwnProp(config, 'data') ? config.data : undefined, + }) + ); + }; +}); + +utils.forEach(['post', 'put', 'patch', 'query'], function forEachMethodWithData(method) { + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request( + mergeConfig(config || {}, { + method, + headers: isForm + ? { + 'Content-Type': 'multipart/form-data', + } + : {}, + url, + data, + }) + ); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + // QUERY is a safe/idempotent read method; multipart form bodies don't fit + // its semantics, so no queryForm shorthand is generated. + if (method !== 'query') { + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + } +}); + +/* harmony default export */ const core_Axios = (Axios); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/cancel/CancelToken.js + + + + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then((cancel) => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = (onfulfilled) => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise((resolve) => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new cancel_CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + toAbortSignal() { + const controller = new AbortController(); + + const abort = (err) => { + controller.abort(err); + }; + + this.subscribe(abort); + + controller.signal.unsubscribe = () => this.unsubscribe(abort); + + return controller.signal; + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel, + }; + } +} + +/* harmony default export */ const cancel_CancelToken = (CancelToken); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/spread.js + + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * const args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/isAxiosError.js + + + + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils.isObject(payload) && payload.isAxiosError === true; +} + +;// CONCATENATED MODULE: ./node_modules/axios/lib/helpers/HttpStatusCode.js +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, + WebServerIsDown: 521, + ConnectionTimedOut: 522, + OriginIsUnreachable: 523, + TimeoutOccurred: 524, + SslHandshakeFailed: 525, + InvalidSslCertificate: 526, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +/* harmony default export */ const helpers_HttpStatusCode = (HttpStatusCode); + +;// CONCATENATED MODULE: ./node_modules/axios/lib/axios.js + + + + + + + + + + + + + + + + + + + + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new core_Axios(defaultConfig); + const instance = bind(core_Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, core_Axios.prototype, context, { allOwnKeys: true }); + + // Copy context to instance + utils.extend(instance, context, null, { allOwnKeys: true }); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(lib_defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = core_Axios; + +// Expose Cancel & CancelToken +axios.CanceledError = cancel_CanceledError; +axios.CancelToken = cancel_CancelToken; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = helpers_toFormData; + +// Expose AxiosError class +axios.AxiosError = core_AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = core_AxiosHeaders; + +axios.formToJSON = (thing) => helpers_formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.getAdapter = adapters.getAdapter; + +axios.HttpStatusCode = helpers_HttpStatusCode; + +axios.default = axios; + +// this module should only have a default export +/* harmony default export */ const lib_axios = (axios); + +;// CONCATENATED MODULE: ./node_modules/axios/index.js + + +// This module is intended to unwrap Axios default export as named. +// Keep top-level export same with static properties +// so that it can keep same with es module or cjs +const { + Axios: axios_Axios, + AxiosError: axios_AxiosError, + CanceledError: axios_CanceledError, + isCancel: axios_isCancel, + CancelToken: axios_CancelToken, + VERSION: axios_VERSION, + all: axios_all, + Cancel, + isAxiosError: axios_isAxiosError, + spread: axios_spread, + toFormData: axios_toFormData, + AxiosHeaders: axios_AxiosHeaders, + HttpStatusCode: axios_HttpStatusCode, + formToJSON, + getAdapter: axios_getAdapter, + mergeConfig: axios_mergeConfig, + create, +} = lib_axios; + + + +;// CONCATENATED MODULE: ./lib/subscription.js +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + + + +async function validateSubscription() { + const eventPath = process.env.GITHUB_EVENT_PATH; + let repoPrivate; + if (eventPath && external_fs_.existsSync(eventPath)) { + const eventData = JSON.parse(external_fs_.readFileSync(eventPath, "utf8")); + repoPrivate = eventData?.repository?.private; + } + const upstream = "go-task/setup-task"; + const action = process.env.GITHUB_ACTION_REPOSITORY; + const docsUrl = "https://docs.stepsecurity.io/actions/stepsecurity-maintained-actions"; + info(""); + info("\u001b[1;36mStepSecurity Maintained Action\u001b[0m"); + info(`Secure drop-in replacement for ${upstream}`); + if (repoPrivate === false) + info("\u001b[32m\u2713 Free for public repositories\u001b[0m"); + info(`\u001b[36mLearn more:\u001b[0m ${docsUrl}`); + info(""); + if (repoPrivate === false) + return; + const serverUrl = process.env.GITHUB_SERVER_URL || "https://github.com"; + const body = { action: action || "" }; + if (serverUrl !== "https://github.com") + body.ghes_server = serverUrl; + try { + await lib_axios.post(`https://agent.api.stepsecurity.io/v1/github/${process.env.GITHUB_REPOSITORY}/actions/maintained-actions-subscription`, body, { timeout: 3000 }); + } + catch (error) { + if (axios_isAxiosError(error) && error.response?.status === 403) { + core_error(`\u001b[1;31mThis action requires a StepSecurity subscription for private repositories.\u001b[0m`); + core_error(`\u001b[31mLearn how to enable a subscription: ${docsUrl}\u001b[0m`); + process.exit(1); + } + info("Timeout or API not reachable. Continuing to next step."); + } +} + +;// CONCATENATED MODULE: ./lib/main.js +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + + + +async function run() { + try { + await validateSubscription(); + const version = getInput("version", { required: true }); + const repoToken = getInput("repo-token"); + const maxRetries = parseInt(getInput("max-retries") || "3", 10); + await getTask(version, repoToken, maxRetries); + } + catch (error) { + if (error instanceof Error) { + setFailed(error.message); + } + else { + throw error; + } + } +} +run(); + diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/dist/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/dist/unzip b/dist/unzip new file mode 100644 index 0000000000000000000000000000000000000000..40824180954830c745c837044f339897f12dcab0 GIT binary patch literal 174216 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 VUgdd9+MdYxE~`IPR-o)Q_#X!!hD-ne literal 0 HcmV?d00001 diff --git a/dist/unzip-darwin b/dist/unzip-darwin new file mode 100644 index 0000000000000000000000000000000000000000..4ef15045d1fe73fa022aad47fb76416f7de91ae2 GIT binary patch literal 185536 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

tZ?u3bf1nk?0=t%ynkZGgP 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 G1OEpM=pN1h literal 0 HcmV?d00001 diff --git a/oxlint.json b/oxlint.json new file mode 100644 index 0000000..e0a5d62 --- /dev/null +++ b/oxlint.json @@ -0,0 +1,6 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "rules": { + "no-console": "off" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3f40896 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4870 @@ +{ + "name": "setup-task", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "setup-task", + "license": "GPL-3.0", + "dependencies": { + "@actions/core": "^3.0.0", + "@actions/http-client": "^4.0.0", + "@actions/io": "^3.0.2", + "@actions/tool-cache": "^4.0.0", + "axios": "^1.18.1", + "semver": "^7.7.4" + }, + "devDependencies": { + "@types/node": "^25.6.0", + "@types/semver": "^7.7.1", + "@vercel/ncc": "^0.38.4", + "ajv-cli": "^5.0.0", + "markdown-link-check": "^3.14.2", + "markdownlint-cli": "^0.48.0", + "nock": "^13.5.6", + "oxfmt": "^0.50.0", + "oxlint": "^1.60.0", + "strip-json-comments-cli": "^3.0.0", + "typescript": "^6.0.3", + "vitest": "^4.1.4" + }, + "engines": { + "node": "24.x" + } + }, + "node_modules/@actions/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@actions/core/-/core-3.0.1.tgz", + "integrity": "sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==", + "license": "MIT", + "dependencies": { + "@actions/exec": "^3.0.0", + "@actions/http-client": "^4.0.0" + } + }, + "node_modules/@actions/exec": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-3.0.0.tgz", + "integrity": "sha512-6xH/puSoNBXb72VPlZVm7vQ+svQpFyA96qdDBvhB8eNZOE8LtPf9L4oAsfzK/crCL8YZ+19fKYVnM63Sl+Xzlw==", + "license": "MIT", + "dependencies": { + "@actions/io": "^3.0.2" + } + }, + "node_modules/@actions/http-client": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-4.0.1.tgz", + "integrity": "sha512-+Nvd1ImaOZBSoPbsUtEhv+1z99H12xzncCkz0a3RuehINE81FZSe2QTj3uvAPTcJX/SCzUQHQ0D1GrPMbrPitg==", + "license": "MIT", + "dependencies": { + "tunnel": "^0.0.6", + "undici": "^6.23.0" + } + }, + "node_modules/@actions/io": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@actions/io/-/io-3.0.2.tgz", + "integrity": "sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==", + "license": "MIT" + }, + "node_modules/@actions/tool-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-4.0.0.tgz", + "integrity": "sha512-L8P9HbXvpvqjZDveb/fdsa55IVC0trfPgQ4ZwGo6r5af6YDVdM9vMGPZ7rgY2fAT9gGj4PSYd6bYlg3p3jD78A==", + "license": "MIT", + "dependencies": { + "@actions/core": "^3.0.0", + "@actions/exec": "^3.0.0", + "@actions/http-client": "^4.0.0", + "@actions/io": "^3.0.0", + "semver": "^7.7.3" + } + }, + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oozcitak/dom": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-2.0.2.tgz", + "integrity": "sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "^2.0.2", + "@oozcitak/url": "^3.0.0", + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/infra": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-2.0.2.tgz", + "integrity": "sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-3.0.0.tgz", + "integrity": "sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/infra": "^2.0.2", + "@oozcitak/util": "^10.0.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oozcitak/util": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-10.0.0.tgz", + "integrity": "sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxfmt/binding-android-arm-eabi": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.50.0.tgz", + "integrity": "sha512-ICXQVKrDvsWUtfx6EiVJxfWrajKTwTfRV8vz2XiMkxZeuCKJLgD4YAj6dE3BWvpqDlkVkie4VSTAtMUWO9LDXg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-android-arm64": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.50.0.tgz", + "integrity": "sha512-quwjLQFkuW6OwLHeDeIXsTzOmipQFQbqsYN9HLk2B5I01IlAQZHP1UiLIg0O7pP+dUgPD2AD7SCYA3gs6NH5/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-arm64": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.50.0.tgz", + "integrity": "sha512-ikU5umElcMi78/TNI334wtjr5WZ5F4nWa1aIDseAKKGL0W3ygxeYKkrIJ0fggWa8MOon66BmG3xCqmX1m9YAOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-darwin-x64": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.50.0.tgz", + "integrity": "sha512-WT4MOYG4mv9IXrH0m60vHsJh+rRMPSOKTQmwDpwmgQ+DuW/i5dU4pqc0HDO5uclO5vjz5IFX5z/taW86LSVe/g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-freebsd-x64": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.50.0.tgz", + "integrity": "sha512-gH0rycVXqV4juWkvLs2uPMtTyppDc7qEUVzXAxnQ7FpcSZNXqKowUgtjH8q67ngj416r8+4NnAlyR/D35zwwhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.50.0.tgz", + "integrity": "sha512-wL/k+o0hiTeRvi/gPzeC1L/yTHTXIeHDKWU09s2zTBmv7ma59wTm+fADNSGYxhJQDxyavQbwTf1QpW3Zj924tQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm-musleabihf": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.50.0.tgz", + "integrity": "sha512-Y59FKqoUM3Gf00E395b4ixfWyJGwO2GzaZawF5MZoVWcb3f6CkWUXyao0jyOvoIxDMzMybcVRuXyG7ih/Nxweg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm64-gnu": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.50.0.tgz", + "integrity": "sha512-OvXbfTjMignXWyJXg/NOFsiy996vFe8wb9tkxJaUq8ylq0XrzJg3ttavC5Tcmm6F8/GUs2r3XFJWWu9q/27uYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-arm64-musl": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.50.0.tgz", + "integrity": "sha512-rqmvHZm7vMa3NLYa0khwkhReCmp9tqKnF23TFZ7S5cYJLvIE4b0k8famWE7kO897/DXznJe675n5SohFBggbxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-ppc64-gnu": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.50.0.tgz", + "integrity": "sha512-49bAdYbMSde42tzPDtuHnBWzOgmoS0PT9THCjvMnDVYMQYiHzPc2Mv5rkpBHVQOXM+PHfafJlxgK0anXSWBVvw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-riscv64-gnu": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.50.0.tgz", + "integrity": "sha512-VFT25/6kckkIM62KeWB2bi+xCEmC/zC+DcMaIpEfaio8ulkGDLSiTz11TyK0eqgTl3x5OklYEGDWohvAgOr8Bw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-riscv64-musl": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.50.0.tgz", + "integrity": "sha512-BBJMuNy6jjkXjUUINF5UTQqb/nvjmtJad43Gp7bab0AAURAdthhJvduR7rHpWInpWYiaMzYsdrmURNcrmpxdZA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-s390x-gnu": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.50.0.tgz", + "integrity": "sha512-Xd4y+yjAYHKmryXhyUUwbyRD01iKfcvI74iE01L6p4F8SwjhZQXDshK+T8PcrPZLiFqH263P5xqJk94amjkjzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-x64-gnu": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.50.0.tgz", + "integrity": "sha512-Qp96rYJru7l++7mk4R+eh8qq9GFfFAMdmoN6VGoRHI8AA1XMnUIzH4u+zOcKZZwY+irHdsaBldDearwB4nOH7A==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-linux-x64-musl": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.50.0.tgz", + "integrity": "sha512-5XLGp+yd5w2Key5LMqJO+X3XVsJKgeeUKljy32+MBF/J/JZ5m8WHl6dI5eOQOr3ixopxPiXIyDAxn3slI3UXiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-openharmony-arm64": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.50.0.tgz", + "integrity": "sha512-QAxwzh7+GHugCD7WuERolVs8TKQwXNIAZXAHHTecbKVc9oWBkWzOiLauQuezXS57tVcof5zhi1IjZ8tOV0htTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-arm64-msvc": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.50.0.tgz", + "integrity": "sha512-3nKN/kqClm9iCFWTwtJ9UpR5SGyExp5l3nw6uIiBt+3XitQtszin+vjHrL7JHfDksZ7Svigdaow2zqz/IKCfqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-ia32-msvc": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.50.0.tgz", + "integrity": "sha512-3r6XZ8+X6qlLbXaPW2NygfiAWSpKbkE36pAVzS83mY+cYY+pSMalJ+qnCgkr92tr+Iqv988XKQ1CpARTg9ITbQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxfmt/binding-win32-x64-msvc": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.50.0.tgz", + "integrity": "sha512-BSE8D8KsvquMG9vU+Qt4qGuoOcZ36rxU5S6ZkHNguj+MlWkXWCBETnno3yJ9CfWvfCrbmieaN9LK6hdcdHNZ/w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.65.0.tgz", + "integrity": "sha512-jDVaGNURT5pEA9qcabh6WusIoBNybOMMDPCx+EFt+gxo6rVvoUf0+73Xy5x81+ZrxU+ewk5uRBYifjy5pgkcnA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.65.0.tgz", + "integrity": "sha512-v0z80IWNA7c9RhUydq9YprBxCVZrQ6Ixls2tdxUC1F/1FFqSfa7xTX+EJf0mj6+BKRg2zWXqWfcbJUnETlLlIw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.65.0.tgz", + "integrity": "sha512-pL/mG/5gMzBwp1gdc5+Cwi87F9j3XRnPxHGyVj5Zd+dCEV5YkKt0L70PB3EGmEEHxgn4H+jnMS3xLuXs6mZW/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.65.0.tgz", + "integrity": "sha512-jVTneaeuHtqTrKYnhrdH1buhnSorinvpy1sv43ayclfWx/e/DfdRWv+h1fopJcHQbYr5WMcZMmDvnfEBkPZ+1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.65.0.tgz", + "integrity": "sha512-8lJQ7B6RloYDUhwVdbSpwT2eKsCN5KP1Scn18ly1tytCuhXhbs0nkfKHT4jWWZBJqmynWuzd+78bF7wILrj6pw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.65.0.tgz", + "integrity": "sha512-EgmZY+DeWhLLEnNl70/49j3ltA8I6X9kxMfexupWi2Vwfp6RonGsBaHtGoedLolaU37ne7eDUgoxa3CFB95GZA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.65.0.tgz", + "integrity": "sha512-OJMWmAYRVBCPPxnYr3j5sXRwHPh1bAuMlTStGco1Z8q3HkvSH4h+A10E9MiRNYmLhUuli5a2P5wmfj8cagiF5Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.65.0.tgz", + "integrity": "sha512-D8uNi50LsYKgS0vGARZDRx05TBZeSxAVdLGddSEqQLSU7xsiqdImHPEw55xq8sKA5rCc/4au/5uS7FQALWdLCg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.65.0.tgz", + "integrity": "sha512-IpbA8QGbwFehQhO+YaHwmoI81f93xvywpspf8HrdPCWOIeKwYfM1dhVhO4YKfZewTRRQEPY/JFjTOXTgkwhKrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.65.0.tgz", + "integrity": "sha512-ZSe8HgaZdgyHSv2+/pTG68z10+OarB18CkFKQOhRs3lmmP/p2vuigedK2e9d0ztoG2DU/duJzhxXBSjy/492HQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.65.0.tgz", + "integrity": "sha512-DcTERf++v6HyPHukKAr0JFTRqB+YeDEvqzRgNDMaz7jITPf+tlJIwRxodlAqoXMYhNVEZhXdQM5RAAYH8/oPuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.65.0.tgz", + "integrity": "sha512-xjhMwuFJwRh40NOBzol4gM5gqAa0xPCJU+GQLM6BydV8TbfkIA7JeyCFNhyfbE9Q/5EWcKYTx62R0cRcjP7DAA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.65.0.tgz", + "integrity": "sha512-lrWSXb8JzboPWYBG6Kunt/eemvjo2oCFXktShsm3yMToY7HjzKLjxh7CljSvGnnZH9oohNFHOKc9xYpGKCPm6w==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.65.0.tgz", + "integrity": "sha512-A7xfghw250m4a1sPV+q44Mow2G5bhiC9FBvhAuIhJS6QovWnqzuL5AFQPEuwOB+PM4DhABkqxVa3Iwe3Y/nFlQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.65.0.tgz", + "integrity": "sha512-reqOun1+pWO3fW6cv7bsa8hHG0TN3t/82qPdaoJo90FwugXiMjKhZMChmH5Z01cFNRHmxN4+543Fy8478cM/iA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.65.0.tgz", + "integrity": "sha512-KQpqOb/juDBO0xyloDkVDhOVxDUgAfZ2OAAVq99TJScJDzT319xry1QzB9LQohV9QGnA7p6m/XATZkMXc84lwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.65.0.tgz", + "integrity": "sha512-xfqcOc3nJFeAd1kDY4T9d3XeJIhr00twaaW0kOAzGPyUHkruXtNJv6zz1Ra9fRtSek5VpW2Yoj5AcwPIlT0ZiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.65.0.tgz", + "integrity": "sha512-JV+pXm45p8sdgs3c7LOPAohW23optCNZETFOXUcjn6cS4PYZhEU/RI54Z5dHdMudab3nw7T48PZILthM+Q0COQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.65.0.tgz", + "integrity": "sha512-D7L/oBbskLss21bYrRbFuIs81AiSQV+wRzwck54dOkHIlq2qu1xjLz8u6jCqGH8Fltk8bB5DLBpVhE7v/fA8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/katex": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.8.0.tgz", + "integrity": "sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vercel/ncc": { + "version": "0.38.4", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.4.tgz", + "integrity": "sha512-8LwjnlP39s08C08J5NstzriPvW1SP8Zfpp1BvC2sI35kPeZnHfxVkCwu4/+Wodgnd60UtT1n8K8zw+Mp7J9JmQ==", + "dev": true, + "license": "MIT", + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.6.tgz", + "integrity": "sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.6", + "@vitest/utils": "4.1.6", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.6.tgz", + "integrity": "sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.6", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.6.tgz", + "integrity": "sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.6.tgz", + "integrity": "sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.6", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.6.tgz", + "integrity": "sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.6", + "@vitest/utils": "4.1.6", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.6.tgz", + "integrity": "sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.6.tgz", + "integrity": "sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.6", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-cli": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ajv-cli/-/ajv-cli-5.0.0.tgz", + "integrity": "sha512-LY4m6dUv44HTyhV+u2z5uX4EhPYTM38Iv1jdgDJJJCyOOuqB8KtZEGjPZ2T+sh5ZIJrXUfgErYx/j3gLd3+PlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0", + "fast-json-patch": "^2.0.0", + "glob": "^7.1.0", + "js-yaml": "^3.14.0", + "json-schema-migrate": "^2.0.0", + "json5": "^2.1.3", + "minimist": "^1.2.0" + }, + "bin": { + "ajv": "dist/index.js" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/axios/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axios/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/basic-ftp": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.1.0.tgz", + "integrity": "sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", + "integrity": "sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.0.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.12.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio/node_modules/undici": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.16.0.tgz", + "integrity": "sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-patch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.2.1.tgz", + "integrity": "sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^2.0.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fast-json-patch/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-link-extractor": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-link-extractor/-/html-link-extractor-1.0.5.tgz", + "integrity": "sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio": "^1.0.0-rc.10" + } + }, + "node_modules/htmlparser2": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", + "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.1", + "entities": "^6.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-relative-url": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-4.1.0.tgz", + "integrity": "sha512-vhIXKasjAuxS7n+sdv7pJQykEAgS+YU8VBQOENXwo/VZpOHDgBBsIbHo7zFKaWBjYWF4qxERdhbPRRtFAeJKfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute-url": "^4.0.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-migrate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-2.0.0.tgz", + "integrity": "sha512-r38SVTtojDRp4eD6WsCqiE0eNDt4v1WalBXb9cyZYw9ai5cGtBwzRNWjHzJl38w6TxFkXAIA7h+fyX3tnrAFhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/katex": { + "version": "0.16.27", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.27.tgz", + "integrity": "sha512-aeQoDkuRWSqQN6nSvVCEFvfXdqo1OQiCmmW1kc9xSdjutPv7BGO7pqY9sQRJpMOGrEdfDgF2TfRXe5eUAD2Waw==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/link-check": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/link-check/-/link-check-5.5.1.tgz", + "integrity": "sha512-GrtE4Zp/FBduvElmad375NrPeMYnKwNt9rH/TDG/rbQbHL0QVC4S/cEPVKZ0CkhXlVuiK+/5flGpRxQzoLbjEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-relative-url": "^4.1.0", + "ms": "^2.1.3", + "needle": "^3.3.1", + "node-email-verifier": "^3.4.1", + "proxy-agent": "^6.5.0" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/markdown-link-check": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.14.2.tgz", + "integrity": "sha512-DPJ+itd3D5fcfXD5s1i53lugH0Z/h80kkQxlYCBh8tFwEZGhyVgDcLl0rnKlWssAVDAmSmcbePpHpMEY+JcMMQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "async": "^3.2.6", + "chalk": "^5.6.2", + "commander": "^14.0.2", + "link-check": "^5.5.1", + "markdown-link-extractor": "^4.0.3", + "needle": "^3.3.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "xmlbuilder2": "^4.0.0" + }, + "bin": { + "markdown-link-check": "markdown-link-check" + } + }, + "node_modules/markdown-link-check/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/markdown-link-check/node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/markdown-link-extractor": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-4.0.3.tgz", + "integrity": "sha512-aEltJiQ4/oC0h6Jbw/uuATGSHZPkcH8DIunNH1A0e+GSFkvZ6BbBkdvBTVfIV8r6HapCU3yTd0eFdi3ZeM1eAQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "html-link-extractor": "^1.0.5", + "marked": "^17.0.0" + } + }, + "node_modules/markdownlint": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.40.0.tgz", + "integrity": "sha512-UKybllYNheWac61Ia7T6fzuQNDZimFIpCg2w6hHjgV1Qu0w1TV0LlSgryUGzM0bkKQCBhy2FDhEELB73Kb0kAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark": "4.0.2", + "micromark-core-commonmark": "2.0.3", + "micromark-extension-directive": "4.0.0", + "micromark-extension-gfm-autolink-literal": "2.1.0", + "micromark-extension-gfm-footnote": "2.1.0", + "micromark-extension-gfm-table": "2.1.1", + "micromark-extension-math": "3.1.0", + "micromark-util-types": "2.0.2", + "string-width": "8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.48.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.48.0.tgz", + "integrity": "sha512-NkZQNu2E0Q5qLEEHwWj674eYISTLD4jMHkBzDobujXd1kv+yCxi8jOaD/rZoQNW1FBBMMGQpuW5So8B51N/e0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "~14.0.3", + "deep-extend": "~0.6.0", + "ignore": "~7.0.5", + "js-yaml": "~4.1.1", + "jsonc-parser": "~3.3.1", + "jsonpointer": "~5.0.1", + "markdown-it": "~14.1.1", + "markdownlint": "~0.40.0", + "minimatch": "~10.2.4", + "run-con": "~1.3.2", + "smol-toml": "~1.6.0", + "tinyglobby": "~0.2.15" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/markdownlint-cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/markdownlint-cli/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/markdownlint-cli/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/marked": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-17.0.1.tgz", + "integrity": "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==", + "dev": true, + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", + "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/nock": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.6.tgz", + "integrity": "sha512-o2zOYiCpzRqSzPj0Zt/dQ/DqZeYoaQ7TUonc/xUPjCGl9WeHpNbxgVvOquXYAaJzI0M9BXV3HTzG0p8IUAbBTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/node-email-verifier": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/node-email-verifier/-/node-email-verifier-3.4.1.tgz", + "integrity": "sha512-69JMeWgEUrCji+dOLULirdSoosRxgAq2y+imfmHHBGvgTwyTKqvm65Ls3+W30DCIWMrYj5kKVb/DHTQDK7OVwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3", + "validator": "^13.15.15" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/oxfmt": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.50.0.tgz", + "integrity": "sha512-owwjTnhfM5aCOJhYeqDvk7iM504OeYFZpdRU7cxx7xtZMo4uVpjlryTUon+Cf76CugsvnqA32e6rC73pr1hXaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinypool": "2.1.0" + }, + "bin": { + "oxfmt": "bin/oxfmt" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxfmt/binding-android-arm-eabi": "0.50.0", + "@oxfmt/binding-android-arm64": "0.50.0", + "@oxfmt/binding-darwin-arm64": "0.50.0", + "@oxfmt/binding-darwin-x64": "0.50.0", + "@oxfmt/binding-freebsd-x64": "0.50.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.50.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.50.0", + "@oxfmt/binding-linux-arm64-gnu": "0.50.0", + "@oxfmt/binding-linux-arm64-musl": "0.50.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.50.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.50.0", + "@oxfmt/binding-linux-riscv64-musl": "0.50.0", + "@oxfmt/binding-linux-s390x-gnu": "0.50.0", + "@oxfmt/binding-linux-x64-gnu": "0.50.0", + "@oxfmt/binding-linux-x64-musl": "0.50.0", + "@oxfmt/binding-openharmony-arm64": "0.50.0", + "@oxfmt/binding-win32-arm64-msvc": "0.50.0", + "@oxfmt/binding-win32-ia32-msvc": "0.50.0", + "@oxfmt/binding-win32-x64-msvc": "0.50.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/oxlint": { + "version": "1.65.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.65.0.tgz", + "integrity": "sha512-ChUuE3Q7XnAbscvT4XLMsH7HFJmLgLVv9lu+RRgFL5wSXnDqUOzTp5IS8qWDBGd/ZDSzQ2tbX8fjAmijlGLC7A==", + "dev": true, + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.65.0", + "@oxlint/binding-android-arm64": "1.65.0", + "@oxlint/binding-darwin-arm64": "1.65.0", + "@oxlint/binding-darwin-x64": "1.65.0", + "@oxlint/binding-freebsd-x64": "1.65.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.65.0", + "@oxlint/binding-linux-arm-musleabihf": "1.65.0", + "@oxlint/binding-linux-arm64-gnu": "1.65.0", + "@oxlint/binding-linux-arm64-musl": "1.65.0", + "@oxlint/binding-linux-ppc64-gnu": "1.65.0", + "@oxlint/binding-linux-riscv64-gnu": "1.65.0", + "@oxlint/binding-linux-riscv64-musl": "1.65.0", + "@oxlint/binding-linux-s390x-gnu": "1.65.0", + "@oxlint/binding-linux-x64-gnu": "1.65.0", + "@oxlint/binding-linux-x64-musl": "1.65.0", + "@oxlint/binding-openharmony-arm64": "1.65.0", + "@oxlint/binding-win32-arm64-msvc": "1.65.0", + "@oxlint/binding-win32-ia32-msvc": "1.65.0", + "@oxlint/binding-win32-x64-msvc": "1.65.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=0.22.1" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "dev": true, + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/semver": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", + "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments-cli": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-json-comments-cli/-/strip-json-comments-cli-3.0.0.tgz", + "integrity": "sha512-7JWd7tagV9af5vEP9oTqHrMK2iDiCUe2lHhACBjwPtbsoPyTdG3bLWjKUvG5B+xLaAP7VS+zbb1ugsf0kTUe3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-stdin": "^9.0.0", + "meow": "^12.0.1", + "strip-json-comments": "^5.0.1" + }, + "bin": { + "strip-json-comments": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments-cli/node_modules/strip-json-comments": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", + "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-2.1.0.tgz", + "integrity": "sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.0.0 || >=22.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.25.0.tgz", + "integrity": "sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", + "dev": true, + "license": "MIT" + }, + "node_modules/validator": { + "version": "13.15.26", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.26.tgz", + "integrity": "sha512-spH26xU080ydGggxRyR1Yhcbgx+j3y5jbNXk/8L+iRvdIEQ4uTRH2Sgf2dokud6Q4oAtsbNvJ1Ft+9xmm6IZcA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vite": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.6.tgz", + "integrity": "sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.1.6", + "@vitest/mocker": "4.1.6", + "@vitest/pretty-format": "4.1.6", + "@vitest/runner": "4.1.6", + "@vitest/snapshot": "4.1.6", + "@vitest/spy": "4.1.6", + "@vitest/utils": "4.1.6", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.6", + "@vitest/browser-preview": "4.1.6", + "@vitest/browser-webdriverio": "4.1.6", + "@vitest/coverage-istanbul": "4.1.6", + "@vitest/coverage-v8": "4.1.6", + "@vitest/ui": "4.1.6", + "happy-dom": "*", + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + }, + "vite": { + "optional": false + } + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xmlbuilder2": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-4.0.3.tgz", + "integrity": "sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oozcitak/dom": "^2.0.2", + "@oozcitak/infra": "^2.0.2", + "@oozcitak/util": "^10.0.0", + "js-yaml": "^4.1.1" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/xmlbuilder2/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/xmlbuilder2/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a9ae4be --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "name": "setup-task", + "private": true, + "description": "Setup Task action", + "keywords": [ + "actions", + "setup", + "task", + "taskfile" + ], + "license": "GPL-3.0", + "author": "step-security", + "repository": { + "type": "git", + "url": "git+https://github.com/step-security/go-task-setup-task.git" + }, + "type": "module", + "main": "lib/main.js", + "dependencies": { + "@actions/core": "^3.0.0", + "@actions/http-client": "^4.0.0", + "@actions/io": "^3.0.2", + "@actions/tool-cache": "^4.0.0", + "axios": "^1.18.1", + "semver": "^7.7.4" + }, + "devDependencies": { + "@types/node": "^25.6.0", + "@types/semver": "^7.7.1", + "@vercel/ncc": "^0.38.4", + "ajv-cli": "^5.0.0", + "markdown-link-check": "^3.14.2", + "markdownlint-cli": "^0.48.0", + "nock": "^13.5.6", + "oxfmt": "^0.50.0", + "oxlint": "^1.60.0", + "strip-json-comments-cli": "^3.0.0", + "typescript": "^6.0.3", + "vitest": "^4.1.4" + }, + "engines": { + "node": "24.x" + } +} diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000..612f652 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,23 @@ +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. + +[[package]] +name = "codespell" +version = "2.4.2" +description = "Fix common misspellings in text files" +optional = false +python-versions = ">=3.9" +files = [ + {file = "codespell-2.4.2-py3-none-any.whl", hash = "sha256:97e0c1060cf46bd1d5db89a936c98db8c2b804e1fdd4b5c645e82a1ec6b1f886"}, + {file = "codespell-2.4.2.tar.gz", hash = "sha256:3c33be9ae34543807f088aeb4832dfad8cb2dae38da61cac0a7045dd376cfdf3"}, +] + +[package.extras] +dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"] +hard-encoding-detection = ["chardet"] +toml = ["tomli"] +types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.9" +content-hash = "39f2a7aa08c298a74012bbe3426926d49b5c4d49b1d2b0f2ec46882239ec29e1" diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..bb6ed0e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,11 @@ +[tool.poetry] +name = "setup-task" +version = "0.0.0" +description = "GitHub Actions action to install Task" +authors = ["StepSecurity "] + +[tool.poetry.dependencies] +python = "^3.9" + +[tool.poetry.dev-dependencies] +codespell = "^2.4.1" diff --git a/res/actions.png b/res/actions.png new file mode 100644 index 0000000000000000000000000000000000000000..7f58f57eaed4653039b988597bd6e56b9d56fda1 GIT binary patch literal 12975 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 literal 0 HcmV?d00001 diff --git a/res/task.png b/res/task.png new file mode 100644 index 0000000000000000000000000000000000000000..69d148549b3297fd25464b44c053702c22ef7cd0 GIT binary patch literal 5424 zcmZ{I2UHW!w|_`N2MI+%YUm(_1O%x<0O>`lM34?5y+{=VLhm3TO4Bb2B2|hMsZtU^ zsnSC43erI!7{s@p|L_0KdFOrK+1Z`5ckaD&%V+P*Y=WVICOr*14G09H*Veji4D@|} zZz>AlS&6B733O0r6@3*Ds3wi}+>RW0hdXE)>w`d#g+QQ)Xb|WZK#JG^f&5V*&<|S> zNd5%~#Oj^jY@`SbP}u8g-Uj{od;QZ^k_k|#y|wN=0)fQ&|K4Ol#mWI75ajz~Q;eUn zT_D`s*Xx0cyA#|m*xLynfjV+ex{FYNb62g6%6Mms0U<78|+jI0`8y?Uj8d25i? z+!cdJqIXItWOEeuGJg94!cmU9KWV`kC?eG@WH#$Q(dj8M&6(-&1}XLJ&872Q8JljR z!9%i#iC#T+kHTw`gfmLmD}H-xP6uunmeh``WGyxH36?kKZh;lwTwc||bk97*bm??A za@?JusL*d-9@=^+)LcZMt06O&h6j;0=5LYHXx&8=6Z71zon`Fm8|`Byo9fgrHrdm^ zN;7I&cqSxjv6$ytHIu<f*_WIX^Yw}m z^ayXA*`O35!!b*2B2XhnZfs{v!|tuA2p@xmi{sI(rvDRPX)P6x?TIl%n8_eTmxq?; z*a^-MQM~AaH+``!0`Ys^`kKW}yS~nBF4)6A%&0+jtoWm5$TenH(rfqVT*hN%hqf@0 zFE>}MMlp$;%U0$ua+F$}<&fi}%(Vx!xo(3+mQS}nT&Rf3@tw_u1y-w}KdpU<#lubS zo>H`=6n7)E$kmxT=>$Nm^w>)BoKN_-_wFb_awZIMrn=md18lIoGGmH+Q@$)C^A!B} zcV=NK!q;xryixVX#Z?Aus@~m)#&6%MN@w@zk@xLBo#a;lzsbG07(@kzv5ik^3c%*u3+K;NAL}sP zTt`Ru%K7yf+g8edq()`Pddt|}$r?HvkB`Z}nojNM!pvc;% zyV(_Y@Dj6qUTu5ETeEA=NMhqh2?gwxt~$d&bw6B@RtW*=oT zcf%GwUK` zMf7zc_Y59=^=6_exn5!|(N5u>4Z4I~%>t3rMPsJ$dG3)8y0sdI&mi2D=J-ip#PrM2 zi4!gU!5cTSi?ebk5mtS?#4(-+_zZlW

JVTQeM+i$@Iq=Fn$K^`UCOVP!+`lnx^ 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 K+f}Nzk^coGRPIy& literal 0 HcmV?d00001 diff --git a/scripts/extract-changelog-section.mjs b/scripts/extract-changelog-section.mjs new file mode 100644 index 0000000..8bebbca --- /dev/null +++ b/scripts/extract-changelog-section.mjs @@ -0,0 +1,21 @@ +import { readFileSync } from "node:fs"; + +const [version] = process.argv.slice(2); +if (!version) { + console.error("Usage: extract-changelog-section.mjs "); + process.exit(1); +} + +const lines = readFileSync("CHANGELOG.md", "utf8").split("\n"); +const header = `## v${version} `; +const start = lines.findIndex((l) => l.startsWith(header)); +if (start === -1) { + console.error(`Section for v${version} not found in CHANGELOG.md.`); + process.exit(1); +} + +const rest = lines.slice(start + 1); +const nextHeading = rest.findIndex((l) => l.startsWith("## ")); +const body = (nextHeading === -1 ? rest : rest.slice(0, nextHeading)).join("\n").trim(); + +process.stdout.write(body + "\n"); diff --git a/scripts/promote-changelog.mjs b/scripts/promote-changelog.mjs new file mode 100644 index 0000000..0901277 --- /dev/null +++ b/scripts/promote-changelog.mjs @@ -0,0 +1,19 @@ +import { readFileSync, writeFileSync } from "node:fs"; + +const [version, date] = process.argv.slice(2); +if (!version || !date) { + console.error("Usage: promote-changelog.mjs "); + process.exit(1); +} + +const path = "CHANGELOG.md"; +const content = readFileSync(path, "utf8"); + +if (!/^## Unreleased$/m.test(content)) { + console.error(`No "## Unreleased" section found in ${path}.`); + process.exit(1); +} + +const updated = content.replace(/^## Unreleased$/m, `## Unreleased\n\n## v${version} - ${date}`); + +writeFileSync(path, updated); diff --git a/src/installer.ts b/src/installer.ts new file mode 100644 index 0000000..6af1cbd --- /dev/null +++ b/src/installer.ts @@ -0,0 +1,255 @@ +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + +import { createHash } from "node:crypto"; +import { createReadStream } from "node:fs"; +import { arch, platform } from "node:os"; +import { join } from "node:path"; +import { format } from "node:util"; +import { HttpClient } from "@actions/http-client"; +import { rcompare, valid } from "semver"; +import { addPath, debug, info, warning } from "@actions/core"; +import { cacheDir, downloadTool, extractTar, extractZip, find } from "@actions/tool-cache"; +import { mkdirP, mv } from "@actions/io"; + +const osPlat: string = platform(); +const osArch: string = arch(); + +interface ITaskRelease { + tag_name: string; +} + +// Retrieve a list of versions scraping tags from the Github API +async function fetchVersions(repoToken: string, maxRetries: number): Promise { + const http = new HttpClient("setup-task", [], { + allowRetries: true, + maxRetries, + }); + const headers = repoToken ? { Authorization: `Bearer ${repoToken}` } : undefined; + + const tags: ITaskRelease[] = + ( + await http.getJson( + "https://api.github.com/repos/go-task/task/releases?per_page=100", + headers, + ) + ).result || []; + + return tags.map((tag) => tag.tag_name.replace(/^v/, "")); +} + +// Make partial versions semver compliant. +function normalizeVersion(version: string): string { + const preStrings = ["beta", "rc", "preview"]; + + const versionPart = version.split("."); + if (versionPart[1] == null) { + // append minor and patch version if not available + // e.g. 2 -> 2.0.0 + return version.concat(".0.0"); + } + // handle beta and rc + // e.g. 1.10beta1 -? 1.10.0-beta1, 1.10rc1 -> 1.10.0-rc1 + if (preStrings.some((el) => versionPart[1].includes(el))) { + versionPart[1] = versionPart[1] + .replace("beta", ".0-beta") + .replace("rc", ".0-rc") + .replace("preview", ".0-preview"); + return versionPart.join("."); + } + + if (versionPart[2] == null) { + // append patch version if not available + // e.g. 2.1 -> 2.1.0 + return version.concat(".0"); + } + // handle beta and rc + // e.g. 1.8.5beta1 -> 1.8.5-beta1, 1.8.5rc1 -> 1.8.5-rc1 + if (preStrings.some((el) => versionPart[2].includes(el))) { + versionPart[2] = versionPart[2] + .replace("beta", "-beta") + .replace("rc", "-rc") + .replace("preview", "-preview"); + return versionPart.join("."); + } + + return version; +} + +// Compute an actual version starting from the `version` configuration param. +async function computeVersion( + version: string, + repoToken: string, + maxRetries: number, +): Promise { + // return if passed version is a valid semver + if (valid(version)) { + debug("valid semver provided, skipping computing actual version"); + return `v${version}`; // Task releases are v-prefixed + } + + let versionPrefix = version; + // strip leading `v` char (will be re-added later) + if (versionPrefix.startsWith("v")) { + versionPrefix = versionPrefix.slice(1, versionPrefix.length); + } + + // strip trailing .x chars + if (versionPrefix.endsWith(".x")) { + versionPrefix = versionPrefix.slice(0, versionPrefix.length - 2); + } + + const allVersions = await fetchVersions(repoToken, maxRetries); + const possibleVersions = allVersions.filter((v) => v.startsWith(versionPrefix)); + + const versionMap = new Map(); + possibleVersions.forEach((v) => versionMap.set(normalizeVersion(v), v)); + + const versions = Array.from(versionMap.keys()) + .sort(rcompare) + .map((v) => versionMap.get(v)); + + debug(`evaluating ${versions.length} versions`); + + if (versions.length === 0) { + throw new Error("unable to get latest version"); + } + + debug(`matched: ${versions[0]}`); + + return `v${versions[0]}`; +} + +function getFileName() { + const taskPlatform: string = osPlat === "win32" ? "windows" : osPlat; + const arches = { + arm: "arm", + arm64: "arm64", + x64: "amd64", + ia32: "386", + }; + const taskArch: string = arches[osArch] ?? osArch; + const ext: string = osPlat === "win32" ? "zip" : "tar.gz"; + const filename: string = format("task_%s_%s.%s", taskPlatform, taskArch, ext); + + return filename; +} + +async function computeSHA256(filePath: string): Promise { + return new Promise((resolve, reject) => { + const hash = createHash("sha256"); + createReadStream(filePath) + .on("data", (chunk) => hash.update(chunk)) + .on("end", () => resolve(hash.digest("hex"))) + .on("error", reject); + }); +} + +async function verifyChecksum( + filePath: string, + version: string, + fileName: string, + repoToken: string, + maxRetries: number, +): Promise { + const http = new HttpClient("setup-task", [], { allowRetries: true, maxRetries }); + const headers = repoToken ? { Authorization: `Bearer ${repoToken}` } : undefined; + const checksumUrl = `https://github.com/go-task/task/releases/download/${version}/task_checksums.txt`; + + let body: string; + try { + const response = await http.get(checksumUrl, headers); + body = await response.readBody(); + } catch { + warning("Unable to fetch checksums. Proceeding without integrity verification."); + return; + } + + const expectedLine = body.split("\n").find((line) => line.trim().endsWith(fileName)); + if (!expectedLine) { + warning(`No checksum entry found for ${fileName}. Proceeding without integrity verification.`); + return; + } + + const expectedHash = expectedLine.trim().split(/\s+/)[0]; + const actualHash = await computeSHA256(filePath); + + if (actualHash !== expectedHash) { + throw new Error( + `Checksum mismatch for ${fileName}: expected ${expectedHash}, got ${actualHash}`, + ); + } + + info(`Checksum verified for ${fileName}`); +} + +async function downloadRelease( + version: string, + repoToken: string, + maxRetries: number, +): Promise { + // Download + const fileName: string = getFileName(); + const downloadUrl: string = format( + "https://github.com/go-task/task/releases/download/%s/%s", + version, + fileName, + ); + let downloadPath: string | null = null; + try { + downloadPath = await downloadTool(downloadUrl); + } catch (error) { + if (typeof error === "string" || error instanceof Error) { + debug(error.toString()); + } + throw new Error(`Failed to download version ${version}: ${error}`); + } + + // Verify integrity via checksum file + await verifyChecksum(downloadPath, version, fileName, repoToken, maxRetries); + + // Extract + let extPath: string | null = null; + if (osPlat === "win32") { + extPath = await extractZip(downloadPath); + // Create a bin/ folder and move `task` there + await mkdirP(join(extPath, "bin")); + await mv(join(extPath, "task.exe"), join(extPath, "bin")); + } else { + extPath = await extractTar(downloadPath); + // Create a bin/ folder and move `task` there + await mkdirP(join(extPath, "bin")); + await mv(join(extPath, "task"), join(extPath, "bin")); + } + + // Install into the local tool cache - node extracts with a root folder that matches the fileName downloaded + return cacheDir(extPath, "task", version); +} + +export async function getTask(version: string, repoToken: string, maxRetries: number = 3) { + // resolve the version number + const targetVersion = await computeVersion(version, repoToken, maxRetries); + + // look if the binary is cached + let toolPath: string; + toolPath = find("task", targetVersion); + + // if not: download, extract and cache + if (!toolPath) { + toolPath = await downloadRelease(targetVersion, repoToken, maxRetries); + debug(`Task cached under ${toolPath}`); + } + + toolPath = join(toolPath, "bin"); + addPath(toolPath); + info(`Successfully setup Task version ${targetVersion}`); +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..bf0b132 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,34 @@ +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + +import { getInput, setFailed } from "@actions/core"; +import { getTask } from "./installer.js"; +import { validateSubscription } from "./subscription.js"; + +async function run() { + try { + await validateSubscription(); + const version = getInput("version", { required: true }); + const repoToken = getInput("repo-token"); + const maxRetries = parseInt(getInput("max-retries") || "3", 10); + + await getTask(version, repoToken, maxRetries); + } catch (error) { + if (error instanceof Error) { + setFailed(error.message); + } else { + throw error; + } + } +} + +run(); diff --git a/src/subscription.ts b/src/subscription.ts new file mode 100644 index 0000000..84b592a --- /dev/null +++ b/src/subscription.ts @@ -0,0 +1,58 @@ +// Copyright (c) 2019 ARDUINO SA +// Copyright (c) 2026 StepSecurity +// The software is released under the GNU General Public License, which covers the main body +// of the arduino/setup-task code. The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to modify or +// otherwise use the software for commercial activities involving the Arduino +// software without disclosing the source code of your own applications. To purchase +// a commercial license, send an email to license@arduino.cc + +import axios, { isAxiosError } from "axios"; +import fs from "fs"; +import * as core from "@actions/core"; + +export async function validateSubscription() { + const eventPath = process.env.GITHUB_EVENT_PATH; + let repoPrivate: boolean | undefined; + + if (eventPath && fs.existsSync(eventPath)) { + const eventData = JSON.parse(fs.readFileSync(eventPath, "utf8")); + repoPrivate = eventData?.repository?.private; + } + + const upstream = "go-task/setup-task"; + const action = process.env.GITHUB_ACTION_REPOSITORY; + const docsUrl = "https://docs.stepsecurity.io/actions/stepsecurity-maintained-actions"; + + core.info(""); + core.info("\u001b[1;36mStepSecurity Maintained Action\u001b[0m"); + core.info(`Secure drop-in replacement for ${upstream}`); + if (repoPrivate === false) core.info("\u001b[32m\u2713 Free for public repositories\u001b[0m"); + core.info(`\u001b[36mLearn more:\u001b[0m ${docsUrl}`); + core.info(""); + + if (repoPrivate === false) return; + + const serverUrl = process.env.GITHUB_SERVER_URL || "https://github.com"; + const body: Record = { action: action || "" }; + if (serverUrl !== "https://github.com") body.ghes_server = serverUrl; + try { + await axios.post( + `https://agent.api.stepsecurity.io/v1/github/${process.env.GITHUB_REPOSITORY}/actions/maintained-actions-subscription`, + body, + { timeout: 3000 }, + ); + } catch (error) { + if (isAxiosError(error) && error.response?.status === 403) { + core.error( + `\u001b[1;31mThis action requires a StepSecurity subscription for private repositories.\u001b[0m`, + ); + core.error(`\u001b[31mLearn how to enable a subscription: ${docsUrl}\u001b[0m`); + process.exit(1); + } + core.info("Timeout or API not reachable. Continuing to next step."); + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9100340 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,64 @@ +{ + "compilerOptions": { + /* Basic Options */ + // "incremental": true, /* Enable incremental compilation */ + "target": "es2022" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "NodeNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "moduleResolution": "NodeNext", + // "allowJs": true, /* Allow javascript files to be compiled. */ + // "checkJs": true, /* Report errors in .js files. */ + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + // "declaration": true, /* Generates corresponding '.d.ts' file. */ + // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ + // "sourceMap": true, /* Generates corresponding '.map' file. */ + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./lib" /* Redirect output structure to the directory. */, + "rootDir": "./src" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + "noImplicitAny": false /* Raise error on expressions and declarations with an implied 'any' type. */, + // "strictNullChecks": true, /* Enable strict null checks. */ + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ + // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + // "types": [], /* Type declaration files to be included in compilation. */ + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + }, + "include": ["src/**/*"] +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..7293451 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + globals: true, + environment: "node", + include: ["**/*.test.ts"], + testTimeout: 120000, + retry: 2, + sequence: { + concurrent: false, + }, + }, +});