Compare commits

..

4 Commits

Author SHA1 Message Date
Tom Hu
ab904c41d6 chore(release): bump to 3.1.6 2024-01-30 11:17:54 -08:00
Tom Hu
a8c374ae46 Revert "action.yml: Update to Node.js 20 (#1228)"
This reverts commit 9140fdcf54.
2024-01-30 11:17:26 -08:00
Tom Hu
4fe8c5f003 chore(release): bump to 3.1.5 2024-01-25 10:44:09 -08:00
Robin Hallabro-Kokko
9140fdcf54 action.yml: Update to Node.js 20 (#1228)
Node.js 16 actions are deprecated.

This should suppress the deprecation notice: Please update the following actions to use Node.js 20: codecov/codecov-action@v3
2024-01-25 10:41:05 -08:00
35 changed files with 40564 additions and 1714 deletions

22
.eslintrc.json Normal file
View File

@@ -0,0 +1,22 @@
{
"env": {
"browser": true,
"commonjs": true,
"es2021": true
},
"extends": [
"google",
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 12
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"linebreak-style": 0
}
}

View File

@@ -12,10 +12,10 @@ name: "CodeQL"
on:
push:
branches: [ main ]
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
branches: [ master ]
schedule:
- cron: '24 6 * * 5'
@@ -37,11 +37,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.28.1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -52,7 +52,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3.28.1
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -66,4 +66,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.28.1
uses: github/codeql-action/analyze@v2

View File

@@ -1,14 +0,0 @@
name: Enforce License Compliance
on:
pull_request:
branches: [main]
jobs:
enforce-license-compliance:
runs-on: ubuntu-latest
steps:
- name: 'Enforce License Compliance'
uses: getsentry/action-enforce-license-compliance@57ba820387a1a9315a46115ee276b2968da51f3d # main
with:
fossa_api_key: ${{ secrets.FOSSA_API_KEY }}

View File

@@ -1,10 +1,38 @@
---
name: Workflow for Codecov Action
on: [push, pull_request]
permissions:
id-token: write
contents: read
jobs:
no-deps:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Upload coverage to Codecov (script)
uses: ./
with:
files: ./coverage/script/coverage-final.json
flags: script,${{ matrix.os }}
name: codecov-script
verbose: true
- name: Upload coverage to Codecov (demo)
uses: ./
with:
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
file: ./coverage/coverage-final.json
flags: demo,${{ matrix.os }}
name: codecov-demo
verbose: true
- name: Upload coverage to Codecov (version)
uses: ./
with:
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
file: ./coverage/coverage-final.json
flags: version,${{ matrix.os }}
name: codecov-version
version: v0.1.0_8880
verbose: true
run:
runs-on: ${{ matrix.os }}
strategy:
@@ -12,124 +40,34 @@ jobs:
os: [macos-latest, windows-latest, ubuntu-latest]
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
with:
submodules: 'true'
uses: actions/checkout@v3
- name: Install dependencies
run: pip install -r src/scripts/app/requirements.txt
run: npm install
- name: Lint
run: npm run lint
- name: Run tests and collect coverage
run: pytest src/scripts/app/ --cov
- name: Upload coverage to Codecov (script)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/script/coverage-final.json
flags: script-${{ matrix.os }}
name: codecov-script
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (demo)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: demo-${{ matrix.os }}
name: codecov-demo
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (version)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: version-${{ matrix.os }}
name: codecov-version
version: v9.1.0
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
run-macos-latest-xlarge:
if: github.head.repo.full_name == 'codecov/codecov-action'
runs-on: macos-latest-xlarge
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
with:
submodules: 'true'
- name: Install dependencies
run: pip install -r src/scripts/app/requirements.txt
- name: Run tests and collect coverage
run: pytest src/scripts/app/ --cov
- name: Upload coverage to Codecov (script)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/script/coverage-final.json
flags: script-macos-latest-xlarge
name: codecov-script
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (demo)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: demo-macos-latest-xlarge
name: codecov-demo
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (oidc)
uses: ./
with:
files: ./coverage/script/coverage-final.json
flags: script-${{ matrix.os }}
name: codecov-script
use_oidc: true
verbose: true
- name: Upload coverage to Codecov (version)
uses: ./
with:
fail_ci_if_error: true
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: version-maxos-latest-xlarge
name: codecov-version
version: v9.1.0
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
run-container:
runs-on: ubuntu-latest
container: python:latest
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
with:
submodules: 'true'
- name: Install deps
run: |
apt-get install git
run: npm run test
- name: Upload coverage to Codecov (script)
uses: ./
with:
files: ./coverage/script/coverage-final.json
flags: script-${{ matrix.os }}
flags: script,${{ matrix.os }}
name: codecov-script
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (demo)
uses: ./
with:
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: demo-${{ matrix.os }}
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
file: ./coverage/coverage-final.json
flags: demo,${{ matrix.os }}
name: codecov-demo
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codecov (version)
uses: ./
with:
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json,./coverage/coverage-final.json
flags: version-${{ matrix.os }}
files: ./coverage/calculator/coverage-final.json,./coverage/coverage-test/coverage-final.json
file: ./coverage/coverage-final.json
flags: version,${{ matrix.os }}
name: codecov-version
version: v9.1.0
version: v0.1.0_8880
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -5,14 +5,13 @@ on:
schedule:
- cron: '43 20 * * 1'
push:
branches: [ main ]
branches: [ master ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
if: github.repository == 'codecov/codecov-action'
name: Scorecards analysis
runs-on: ubuntu-latest
permissions:
@@ -25,12 +24,12 @@ jobs:
steps:
- name: "Checkout code"
uses: actions/checkout@v4.2.2 # v3.0.0
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # v3.0.0
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
uses: ossf/scorecard-action@80e868c13c90f172d68d1f4501dee99e2479f7af # v2.1.3
with:
results_file: results.sarif
results_format: sarif
@@ -49,7 +48,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
with:
name: SARIF file
path: results.sarif
@@ -57,6 +56,6 @@ jobs:
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@v3.28.1 # v1.0.26
uses: github/codeql-action/upload-sarif@5f532563584d71fdef14ee64d17bafb34f751ce5 # v1.0.26
with:
sarif_file: results.sarif

4
.gitmodules vendored
View File

@@ -1,4 +0,0 @@
[submodule "src/scripts"]
path = src/scripts
url = https://github.com/codecov/wrapper
branch = main

View File

@@ -1,848 +1,96 @@
## v5.3.1
### What's Changed
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.3.0..v5.3.1
## v5.3.0
### What's Changed
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.2.0..v5.3.0
## v5.2.0
### What's Changed
* Fix typo in README by @tserg in https://github.com/codecov/codecov-action/pull/1747
* Th/add commands by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1745
* use correct audience when requesting oidc token by @juho9000 in https://github.com/codecov/codecov-action/pull/1744
* build(deps): bump github/codeql-action from 3.27.9 to 3.28.1 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1742
* build(deps): bump actions/upload-artifact from 4.4.3 to 4.6.0 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1743
* chore(deps): bump wrapper to 0.0.32 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1740
* feat: add disable-telem feature by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1739
* fix: remove erroneous linebreak in readme by @Vampire in https://github.com/codecov/codecov-action/pull/1734
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.1.2..v5.2.0
## v5.1.2
### What's Changed
* fix: update statment by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1726
* fix: update action script by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1725
* fix: prevent oidc on tokenless due to permissioning by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1724
* chore(release): wrapper-0.0.31 by @app/codecov-releaser-app in https://github.com/codecov/codecov-action/pull/1723
* Put quotes around `${{ inputs.token }}` in `action.yml` by @jwodder in https://github.com/codecov/codecov-action/pull/1721
* build(deps): bump github/codeql-action from 3.27.6 to 3.27.9 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1722
* Remove mistake from options table by @Acconut in https://github.com/codecov/codecov-action/pull/1718
* build(deps): bump github/codeql-action from 3.27.5 to 3.27.6 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1717
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.1.1..v5.1.2
## v5.1.1
### What's Changed
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.1.0..v5.1.1
## v5.1.0
### What's Changed
* fix: hide unnecessary error on shasum by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1692
* build(deps): bump github/codeql-action from 3.27.4 to 3.27.5 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1701
* chore(release): wrapper-0.0.29 by @app/codecov-releaser-app in https://github.com/codecov/codecov-action/pull/1713
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.7..v5.1.0
## v5.0.7
### What's Changed
* fix: use HEAD_REPO by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1690
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.6..v5.0.7
## v5.0.6
### What's Changed
* fix: update CODECOV_TOKEN and fix tokenless by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1688
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.5..v5.0.6
## v5.0.5
### What's Changed
* chore(release): wrapper-0.0.27 by @app/codecov-releaser-app in https://github.com/codecov/codecov-action/pull/1685
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.4..v5.0.5
## v5.0.4
### What's Changed
* chore(deps): bump wrapper to 0.0.26 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1681
* fix: strip out a trailing \/n from input tokens by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1679
* fix: add action version by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1678
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.3..v5.0.4
## v5.0.3
### What's Changed
* fix: update OIDC audience by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1675
* fix: use double-quotes for OIDC by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1669
* fix: prevent always setting tokenless to be true by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1673
* fix: update CHANGELOG and automate by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1674
* fix: bump to v5 and update README by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1655
* build(deps): bump github/codeql-action from 3.27.0 to 3.27.4 by @app/dependabot in https://github.com/codecov/codecov-action/pull/1665
* fix: typo in `inputs.disable_safe_directory` by @mkroening in https://github.com/codecov/codecov-action/pull/1666
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.2..v5.0.3
## v5.0.2
### What's Changed
* fix: override commit and pr values for PR cases by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1657
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.1...v5.0.2
## v5.0.1
### What's Changed
* fix: use marketplace v5 badge by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1646
* fix: update tokenless branch logic by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1650
* chore(release): 5.0.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1656
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v5.0.0...v5.0.1
## v5.0.0
### v5 Release
`v5` of the Codecov GitHub Action will use the [Codecov Wrapper](https://github.com/codecov/wrapper) to encapsulate the [CLI](https://github.com/codecov/codecov-cli). This will help ensure that the Action gets updates quicker.
### Migration Guide
The `v5` release also coincides with the opt-out feature for tokens for public repositories. In the `Global Upload Token` section of the settings page of an organization in codecov.io, you can set the ability for Codecov to receive a coverage reports from any source. This will allow contributors or other members of a repository to upload without needing access to the Codecov token. For more details see [how to upload without a token](https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token).
> [!WARNING]
> **The following arguments have been changed**
> - `file` (this has been deprecated in favor of `files`)
> - `plugin` (this has been deprecated in favor of `plugins`)
The following arguments have been added:
- `binary`
- `gcov_args`
- `gcov_executable`
- `gcov_ignore`
- `gcov_include`
- `report_type`
- `skip_validation`
- `swift_project`
You can see their usage in the `action.yml` [file](https://github.com/codecov/codecov-action/blob/main/action.yml).
## What's Changed
* chore(deps): bump to eslint9+ and remove eslint-config-google by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1591
* build(deps-dev): bump @octokit/webhooks-types from 7.5.1 to 7.6.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1595
* build(deps-dev): bump typescript from 5.6.2 to 5.6.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1604
* build(deps-dev): bump @typescript-eslint/parser from 8.8.0 to 8.8.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1601
* build(deps): bump @actions/core from 1.11.0 to 1.11.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1597
* build(deps): bump github/codeql-action from 3.26.9 to 3.26.11 by @dependabot in https://github.com/codecov/codecov-action/pull/1596
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.8.0 to 8.8.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1600
* build(deps-dev): bump eslint from 9.11.1 to 9.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1598
* build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 by @dependabot in https://github.com/codecov/codecov-action/pull/1609
* build(deps): bump actions/checkout from 4.2.0 to 4.2.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1608
* build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1607
* build(deps-dev): bump @typescript-eslint/parser from 8.8.1 to 8.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1612
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.8.1 to 8.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1611
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.9.0 to 8.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1615
* build(deps-dev): bump eslint from 9.12.0 to 9.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1618
* build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 by @dependabot in https://github.com/codecov/codecov-action/pull/1617
* build(deps-dev): bump @typescript-eslint/parser from 8.9.0 to 8.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1614
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.10.0 to 8.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1620
* build(deps-dev): bump @typescript-eslint/parser from 8.10.0 to 8.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1619
* build(deps-dev): bump @types/jest from 29.5.13 to 29.5.14 by @dependabot in https://github.com/codecov/codecov-action/pull/1622
* build(deps): bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1625
* build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1624
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.11.0 to 8.12.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1626
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.12.1 to 8.12.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1629
* build(deps-dev): bump @typescript-eslint/parser from 8.11.0 to 8.12.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1628
* build(deps-dev): bump @typescript-eslint/parser from 8.12.2 to 8.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1635
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.12.2 to 8.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1634
* feat: use wrapper by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1621
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1639
* fix: add missing vars by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1638
* fix: update container builds by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1640
* fixL use the correct source by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1642
* chore(deps): bump wrapper to 0.0.23 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1644
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.6.0...v5.0.0
## v5.0.0-beta (Prerelease)
### What's Changed
* chore(deps): bump to eslint9+ and remove eslint-config-google by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1591
* build(deps-dev): bump @octokit/webhooks-types from 7.5.1 to 7.6.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1595
* build(deps-dev): bump typescript from 5.6.2 to 5.6.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1604
* build(deps-dev): bump @typescript-eslint/parser from 8.8.0 to 8.8.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1601
* build(deps): bump @actions/core from 1.11.0 to 1.11.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1597
* build(deps): bump github/codeql-action from 3.26.9 to 3.26.11 by @dependabot in https://github.com/codecov/codecov-action/pull/1596
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.8.0 to 8.8.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1600
* build(deps-dev): bump eslint from 9.11.1 to 9.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1598
* build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 by @dependabot in https://github.com/codecov/codecov-action/pull/1609
* build(deps): bump actions/checkout from 4.2.0 to 4.2.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1608
* build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1607
* build(deps-dev): bump @typescript-eslint/parser from 8.8.1 to 8.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1612
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.8.1 to 8.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1611
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.9.0 to 8.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1615
* build(deps-dev): bump eslint from 9.12.0 to 9.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1618
* build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 by @dependabot in https://github.com/codecov/codecov-action/pull/1617
* build(deps-dev): bump @typescript-eslint/parser from 8.9.0 to 8.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1614
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.10.0 to 8.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1620
* build(deps-dev): bump @typescript-eslint/parser from 8.10.0 to 8.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1619
* build(deps-dev): bump @types/jest from 29.5.13 to 29.5.14 by @dependabot in https://github.com/codecov/codecov-action/pull/1622
* build(deps): bump actions/checkout from 4.2.1 to 4.2.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1625
* build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1624
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.11.0 to 8.12.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1626
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.12.1 to 8.12.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1629
* build(deps-dev): bump @typescript-eslint/parser from 8.11.0 to 8.12.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1628
* build(deps-dev): bump @typescript-eslint/parser from 8.12.2 to 8.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1635
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.12.2 to 8.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1634
* feat: use wrapper by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1621
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1639
* fix: add missing vars by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1638
* fix: update container builds by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1640
* fixL use the correct source by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1642
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.6.0...v5.0.0-beta
## v4.6.0
### What's Changed
* build(deps): bump github/codeql-action from 3.25.8 to 3.25.10 by @dependabot in https://github.com/codecov/codecov-action/pull/1481
* build(deps): bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1480
* build(deps-dev): bump ts-jest from 29.1.4 to 29.1.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1479
* build(deps-dev): bump @typescript-eslint/parser from 7.13.0 to 7.13.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1485
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.13.0 to 7.13.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1484
* build(deps-dev): bump typescript from 5.4.5 to 5.5.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1490
* build(deps-dev): bump @typescript-eslint/parser from 7.13.1 to 7.14.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1493
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.13.1 to 7.14.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1492
* build(deps): bump github/codeql-action from 3.25.10 to 3.25.11 by @dependabot in https://github.com/codecov/codecov-action/pull/1496
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.14.1 to 7.15.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1501
* build(deps-dev): bump typescript from 5.5.2 to 5.5.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1500
* build(deps-dev): bump @typescript-eslint/parser from 7.14.1 to 7.15.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1499
* build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1502
* build(deps-dev): bump ts-jest from 29.1.5 to 29.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1504
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.15.0 to 7.16.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1503
* build(deps-dev): bump ts-jest from 29.2.0 to 29.2.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1507
* build(deps-dev): bump @typescript-eslint/parser from 7.15.0 to 7.16.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1505
* build(deps): bump github/codeql-action from 3.25.11 to 3.25.12 by @dependabot in https://github.com/codecov/codecov-action/pull/1509
* chore(ci): restrict scorecards to codecov/codecov-action by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1512
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.16.0 to 7.16.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1514
* build(deps-dev): bump @typescript-eslint/parser from 7.16.0 to 7.16.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1513
* test: `versionInfo` by @marcobiedermann in https://github.com/codecov/codecov-action/pull/1407
* build(deps-dev): bump ts-jest from 29.2.2 to 29.2.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1515
* build(deps): bump github/codeql-action from 3.25.12 to 3.25.13 by @dependabot in https://github.com/codecov/codecov-action/pull/1516
* build(deps-dev): bump typescript from 5.5.3 to 5.5.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1521
* build(deps-dev): bump @typescript-eslint/parser from 7.16.1 to 7.17.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1520
* build(deps-dev): bump @typescript-eslint/parser from 7.17.0 to 7.18.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1528
* build(deps): bump github/codeql-action from 3.25.13 to 3.25.15 by @dependabot in https://github.com/codecov/codecov-action/pull/1526
* build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1525
* build(deps-dev): bump ts-jest from 29.2.3 to 29.2.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1532
* build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1534
* build(deps): bump github/codeql-action from 3.25.15 to 3.26.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1542
* build(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1541
* ref: Tidy up types and remove string coercion by @nicholas-codecov in https://github.com/codecov/codecov-action/pull/1536
* build(deps-dev): bump @octokit/webhooks-types from 3.77.1 to 7.5.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1545
* build(deps): bump github/codeql-action from 3.26.0 to 3.26.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1551
* feat: pass tokenless value as branch override by @joseph-sentry in https://github.com/codecov/codecov-action/pull/1511
* build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1563
* Create makefile.yml by @Hawthorne001 in https://github.com/codecov/codecov-action/pull/1555
* build(deps): bump github/codeql-action from 3.26.2 to 3.26.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1562
* build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1557
* Spell `evenName` in the logs correctly by @webknjaz in https://github.com/codecov/codecov-action/pull/1560
* build(deps-dev): bump typescript from 5.5.4 to 5.6.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1566
* build(deps-dev): bump @types/jest from 29.5.12 to 29.5.13 by @dependabot in https://github.com/codecov/codecov-action/pull/1567
* build(deps): bump github/codeql-action from 3.26.6 to 3.26.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1569
* build(deps-dev): bump eslint from 8.57.0 to 8.57.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1571
* build(deps): bump github/codeql-action from 3.26.7 to 3.26.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1575
* build(deps-dev): bump @vercel/ncc from 0.38.1 to 0.38.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1577
* chore: fix typo of OSS by @shoothzj in https://github.com/codecov/codecov-action/pull/1578
* build(deps): bump github/codeql-action from 3.26.8 to 3.26.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1584
* build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1583
* fix: bump eslint parser deps by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1586
* chore(release):4.6.0 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1587
## New Contributors
* @nicholas-codecov made their first contribution in https://github.com/codecov/codecov-action/pull/1536
* @Hawthorne001 made their first contribution in https://github.com/codecov/codecov-action/pull/1555
* @webknjaz made their first contribution in https://github.com/codecov/codecov-action/pull/1560
* @shoothzj made their first contribution in https://github.com/codecov/codecov-action/pull/1578
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.5.0...v4.6.0
## v4.5.0
### What's Changed
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.9.0 to 7.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1446
* build(deps-dev): bump ts-jest from 29.1.2 to 29.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1443
* build(deps-dev): bump @typescript-eslint/parser from 7.9.0 to 7.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1445
* build(deps-dev): bump @typescript-eslint/parser from 7.10.0 to 7.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1459
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.10.0 to 7.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1458
* build(deps): bump github/codeql-action from 3.25.5 to 3.25.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1456
* build(deps-dev): bump ts-jest from 29.1.3 to 29.1.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1460
* build(deps): bump github/codeql-action from 3.25.6 to 3.25.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1466
* build(deps-dev): bump @typescript-eslint/parser from 7.11.0 to 7.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1467
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.11.0 to 7.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1468
* build(deps): bump github/codeql-action from 3.25.7 to 3.25.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1472
* fix: handle trailing commas by @joseph-sentry in https://github.com/codecov/codecov-action/pull/1470
* build(deps-dev): bump @typescript-eslint/parser from 7.12.0 to 7.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1474
* build(deps-dev): bump braces from 3.0.2 to 3.0.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1475
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.12.0 to 7.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1473
* feat: add support for tokenless v3 by @joseph-sentry in https://github.com/codecov/codecov-action/pull/1410
* Use an existing token even if the PR is from a fork by @leofeyer in https://github.com/codecov/codecov-action/pull/1471
* chore(release): bump to 4.5.0 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1477
## New Contributors
* @joseph-sentry made their first contribution in https://github.com/codecov/codecov-action/pull/1470
* @leofeyer made their first contribution in https://github.com/codecov/codecov-action/pull/1471
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.4.1...v4.5.0
## v4.4.1
### What's Changed
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.8.0 to 7.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1427
* fix: prevent xlarge from running on forks by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1432
* build(deps): bump github/codeql-action from 3.25.4 to 3.25.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1439
* build(deps): bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1438
* fix: isPullRequestFromFork returns false for any PR by @shahar-h in https://github.com/codecov/codecov-action/pull/1437
* chore(release): 4.4.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1441
## New Contributors
* @shahar-h made their first contribution in https://github.com/codecov/codecov-action/pull/1437
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.4.0...v4.4.1
## What's Changed
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.8.0 to 7.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1427
* fix: prevent xlarge from running on forks by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1432
* build(deps): bump github/codeql-action from 3.25.4 to 3.25.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1439
* build(deps): bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1438
* fix: isPullRequestFromFork returns false for any PR by @shahar-h in https://github.com/codecov/codecov-action/pull/1437
* chore(release): 4.4.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1441
## New Contributors
* @shahar-h made their first contribution in https://github.com/codecov/codecov-action/pull/1437
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.4.0...v4.4.1
## v4.4.0
### What's Changed
* chore: Clarify isPullRequestFromFork by @jsoref in https://github.com/codecov/codecov-action/pull/1411
* build(deps): bump actions/checkout from 4.1.4 to 4.1.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1423
* build(deps): bump github/codeql-action from 3.25.3 to 3.25.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1421
* build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1420
* feat: remove GPG and run on spawn by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1426
* build(deps-dev): bump @typescript-eslint/parser from 7.8.0 to 7.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1428
* chore(release): 4.4.0 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1430
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.3.1...v4.4.0
## v4.3.1
### What's Changed
* build(deps-dev): bump typescript from 5.4.4 to 5.4.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1370
* fix: more verbose log message when failing to import pgp key by @ReenigneArcher in https://github.com/codecov/codecov-action/pull/1371
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.6.0 to 7.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1374
* build(deps-dev): bump @typescript-eslint/parser from 7.6.0 to 7.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1375
* build(deps): bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1382
* build(deps): bump github/codeql-action from 3.24.10 to 3.25.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1381
* build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1380
* build(deps-dev): bump @typescript-eslint/parser from 7.7.0 to 7.7.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1384
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.7.0 to 7.7.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1383
* Update README.md to point to docs about tokenless by @rohan-at-sentry in https://github.com/codecov/codecov-action/pull/1395
* build(deps): bump actions/upload-artifact from 4.3.2 to 4.3.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1393
* build(deps): bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1392
* build(deps): bump github/codeql-action from 3.25.1 to 3.25.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1391
* style: Node Packages by @marcobiedermann in https://github.com/codecov/codecov-action/pull/1394
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.7.1 to 7.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1402
* build(deps-dev): bump @typescript-eslint/parser from 7.7.1 to 7.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1401
* docs: Type Annotations by @marcobiedermann in https://github.com/codecov/codecov-action/pull/1397
* docs: main branch by @marcobiedermann in https://github.com/codecov/codecov-action/pull/1396
* fix: bypass token checks for forks and OIDC by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1404
* chore(release): 4.3.1. by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1405
## New Contributors
* @ReenigneArcher made their first contribution in https://github.com/codecov/codecov-action/pull/1371
* @rohan-at-sentry made their first contribution in https://github.com/codecov/codecov-action/pull/1395
* @marcobiedermann made their first contribution in https://github.com/codecov/codecov-action/pull/1394
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.3.0...v4.3.1
## v4.3.0
### What's Changed
* fix: automatically detect if using GitHub enterprise by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1356
* build(deps-dev): bump typescript from 5.4.3 to 5.4.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1355
* build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 by @dependabot in https://github.com/codecov/codecov-action/pull/1360
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 7.5.0 to 7.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1364
* build(deps-dev): bump @typescript-eslint/parser from 7.5.0 to 7.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1363
* feat: add network params by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1365
* build(deps): bump undici from 5.28.3 to 5.28.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1361
* chore(release): v4.3.0 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1366
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.2.0...v4.3.0
## v4.2.0
### What's Changed
* chore(deps): update deps by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1351
* feat: allow for authentication via OIDC token by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1330
* fix: use_oidc shoudl be required false by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1353
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.1.1...v4.2.0
## v4.1.1
### What's Changed
* build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1315
* build(deps-dev): bump typescript from 5.3.3 to 5.4.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1319
* Removed mention of Mercurial by @drazisil-codecov in https://github.com/codecov/codecov-action/pull/1325
* build(deps): bump github/codeql-action from 3.24.6 to 3.24.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1332
* build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1331
* fix: force version by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1329
* build(deps-dev): bump typescript from 5.4.2 to 5.4.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1334
* build(deps): bump undici from 5.28.2 to 5.28.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1338
* build(deps): bump github/codeql-action from 3.24.7 to 3.24.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1341
* fix: typo in disable_safe_directory by @mkroening in https://github.com/codecov/codecov-action/pull/1343
* chore(release): 4.1.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1344
## New Contributors
* @mkroening made their first contribution in https://github.com/codecov/codecov-action/pull/1343
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.1.0...v4.1.1
## v4.1.0
### What's Changed
* fix: set safe directory by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1304
* build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1306
* build(deps-dev): bump eslint from 8.56.0 to 8.57.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1305
* chore(release): v4.1.0 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1307
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.0.2...v4.1.0
## v4.0.2
### What's Changed
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1251
* build(deps-dev): bump @types/jest from 29.5.11 to 29.5.12 by @dependabot in https://github.com/codecov/codecov-action/pull/1257
* build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1266
* Escape pipes in table of arguments by @jwodder in https://github.com/codecov/codecov-action/pull/1265
* Add link to docs on Dependabot secrets by @ianlewis in https://github.com/codecov/codecov-action/pull/1260
* fix: working-directory input for all stages by @Bo98 in https://github.com/codecov/codecov-action/pull/1272
* build(deps-dev): bump @typescript-eslint/parser from 6.20.0 to 6.21.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1271
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.20.0 to 6.21.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1269
* build(deps): bump github/codeql-action from 3.24.0 to 3.24.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1298
* Use updated syntax for GitHub Markdown notes by @jamacku in https://github.com/codecov/codecov-action/pull/1300
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.21.0 to 7.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1290
* build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1286
* chore(release): bump to 4.0.2 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1302
## New Contributors
* @jwodder made their first contribution in https://github.com/codecov/codecov-action/pull/1265
* @ianlewis made their first contribution in https://github.com/codecov/codecov-action/pull/1260
* @Bo98 made their first contribution in https://github.com/codecov/codecov-action/pull/1272
* @jamacku made their first contribution in https://github.com/codecov/codecov-action/pull/1300
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.0.1...v4.0.2
## v4.0.1
### What's Changed
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1243
* Add all args by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1245
* fix: show both token uses in readme by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1250
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.0.0...v4.0.1
## v4.0.0
#v4 of the Codecov Action uses the [CLI](https://docs.codecov.com/docs/the-codecov-cli) as the underlying upload. The CLI has helped to power new features including local upload, the global upload token, and new upcoming features.
## Breaking Changes
- The Codecov Action runs as a `node20` action due to `node16` deprecation. See [this post from GitHub](https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/) on how to migrate.
- Tokenless uploading is unsupported. However, PRs made from forks to the upstream public repos will support tokenless (e.g. contributors to OS projects do not need the upstream repo's Codecov token). This [doc](https://docs.codecov.com/docs/adding-the-codecov-token#github-actions) shows instructions on how to add the Codecov token.
- OS platforms have been added, though some may not be automatically detected. To see a list of platforms, see our [CLI download page](https://cli.codecov.io)
- Various arguments to the Action have been changed. Please be aware that the arguments match with the CLI's needs
`v3` versions and below will not have access to CLI features (e.g. global upload token, ATS).
## What's Changed
* build(deps): bump openpgp from 5.8.0 to 5.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/985
* build(deps): bump actions/checkout from 3.0.0 to 3.5.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1000
* build(deps): bump ossf/scorecard-action from 2.1.3 to 2.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1006
* build(deps): bump tough-cookie from 4.0.0 to 4.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1013
* build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1024
* build(deps): bump node-fetch from 3.3.1 to 3.3.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1031
* build(deps-dev): bump @types/node from 20.1.4 to 20.4.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1032
* build(deps): bump github/codeql-action from 1.0.26 to 2.21.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1033
* build commit,report and upload args based on codecovcli by @dana-yaish in https://github.com/codecov/codecov-action/pull/943
* build(deps-dev): bump @types/node from 20.4.5 to 20.5.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1055
* build(deps): bump github/codeql-action from 2.21.2 to 2.21.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1051
* build(deps-dev): bump @types/node from 20.5.3 to 20.5.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1058
* chore(deps): update outdated deps by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1059
* build(deps-dev): bump @types/node from 20.5.4 to 20.5.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1060
* build(deps-dev): bump @typescript-eslint/parser from 6.4.1 to 6.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1065
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.4.1 to 6.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1064
* build(deps): bump actions/checkout from 3.5.3 to 3.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1063
* build(deps-dev): bump eslint from 8.47.0 to 8.48.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1061
* build(deps-dev): bump @types/node from 20.5.6 to 20.5.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1062
* build(deps): bump openpgp from 5.9.0 to 5.10.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1066
* build(deps-dev): bump @types/node from 20.5.7 to 20.5.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1070
* build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1069
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.5.0 to 6.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1072
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1073
* build(deps-dev): bump @typescript-eslint/parser from 6.5.0 to 6.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1071
* build(deps-dev): bump @vercel/ncc from 0.36.1 to 0.38.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1074
* build(deps): bump @actions/core from 1.10.0 to 1.10.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1081
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.6.0 to 6.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1080
* build(deps): bump actions/checkout from 3.6.0 to 4.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1078
* build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1077
* build(deps-dev): bump @types/node from 20.5.9 to 20.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1075
* build(deps-dev): bump @typescript-eslint/parser from 6.6.0 to 6.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1079
* build(deps-dev): bump eslint from 8.48.0 to 8.49.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1076
* use cli instead of node uploader by @dana-yaish in https://github.com/codecov/codecov-action/pull/1068
* chore(release): 4.0.0-beta.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1084
* not adding -n if empty to do-upload command by @dana-yaish in https://github.com/codecov/codecov-action/pull/1085
* 4.0.0-beta.2 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1086
* build(deps-dev): bump jest from 29.6.4 to 29.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1082
* build(deps-dev): bump @types/jest from 29.5.4 to 29.5.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1092
* build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1094
* build(deps-dev): bump @types/node from 20.6.0 to 20.6.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1093
* build(deps): bump openpgp from 5.10.1 to 5.10.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1096
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.0 to 6.7.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1095
* build(deps-dev): bump @types/node from 20.6.2 to 20.6.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1098
* build(deps-dev): bump @typescript-eslint/parser from 6.7.0 to 6.7.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1097
* feat: add plugins by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1099
* build(deps-dev): bump eslint from 8.49.0 to 8.50.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1104
* build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1102
* build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1101
* build(deps-dev): bump @typescript-eslint/parser from 6.7.2 to 6.7.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1108
* build(deps-dev): bump @types/node from 20.6.3 to 20.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1107
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.2 to 6.7.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1106
* build(deps-dev): bump @types/node from 20.7.0 to 20.7.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1111
* build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1113
* build(deps-dev): bump @types/node from 20.7.1 to 20.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1112
* build(deps-dev): bump @types/node from 20.8.0 to 20.8.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1114
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.3 to 6.7.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1115
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.4 to 6.7.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1123
* build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1120
* build(deps): bump github/codeql-action from 2.21.9 to 2.22.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1119
* build(deps-dev): bump @typescript-eslint/parser from 6.7.3 to 6.7.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1122
* build(deps-dev): bump @types/node from 20.8.2 to 20.8.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1121
* build(deps-dev): bump eslint from 8.50.0 to 8.51.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1117
* build(deps): bump @actions/github from 5.1.1 to 6.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1124
* build(deps): bump github/codeql-action from 2.22.0 to 2.22.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1127
* build(deps-dev): bump @types/node from 20.8.4 to 20.8.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1126
* build(deps-dev): bump @babel/traverse from 7.22.11 to 7.23.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1129
* build(deps): bump undici from 5.25.4 to 5.26.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1128
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.5 to 6.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1130
* build(deps-dev): bump @typescript-eslint/parser from 6.7.5 to 6.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1131
* build(deps-dev): bump @types/node from 20.8.6 to 20.8.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1135
* build(deps-dev): bump @vercel/ncc from 0.38.0 to 0.38.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1136
* build(deps-dev): bump @types/jest from 29.5.5 to 29.5.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1137
* build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1142
* build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1141
* build(deps-dev): bump eslint from 8.51.0 to 8.52.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1140
* build(deps-dev): bump @typescript-eslint/parser from 6.8.0 to 6.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1147
* build(deps-dev): bump @types/node from 20.8.7 to 20.8.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1146
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.8.0 to 6.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1145
* chore(deps): move from node-fetch to undici by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1148
* build(deps): bump openpgp from 5.10.2 to 5.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1149
* build(deps-dev): bump @typescript-eslint/parser from 6.9.0 to 6.9.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1155
* build(deps): bump github/codeql-action from 2.22.4 to 2.22.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1152
* build(deps): bump ossf/scorecard-action from 2.3.0 to 2.3.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1151
* build(deps): bump undici from 5.26.5 to 5.27.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1150
* build(deps-dev): bump @types/jest from 29.5.6 to 29.5.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1153
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.9.0 to 6.9.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1154
* build(deps): bump undici from 5.27.0 to 5.27.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1157
* build(deps-dev): bump eslint from 8.52.0 to 8.53.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1156
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.9.1 to 6.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1159
* build(deps-dev): bump @typescript-eslint/parser from 6.9.1 to 6.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1158
* build(deps-dev): bump @types/jest from 29.5.7 to 29.5.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1161
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.10.0 to 6.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1164
* build(deps-dev): bump @typescript-eslint/parser from 6.10.0 to 6.11.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1163
* build(deps): bump github/codeql-action from 2.22.5 to 2.22.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1167
* build(deps-dev): bump eslint from 8.53.0 to 8.54.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1166
* build(deps-dev): bump @types/jest from 29.5.8 to 29.5.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1172
* build(deps-dev): bump typescript from 5.2.2 to 5.3.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1171
* build(deps-dev): bump @typescript-eslint/parser from 6.11.0 to 6.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1170
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.11.0 to 6.12.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1169
* build(deps): bump github/codeql-action from 2.22.7 to 2.22.8 by @dependabot in https://github.com/codecov/codecov-action/pull/1175
* build(deps): bump undici from 5.27.2 to 5.28.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1174
* build(deps-dev): bump @types/jest from 29.5.9 to 29.5.10 by @dependabot in https://github.com/codecov/codecov-action/pull/1173
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.12.0 to 6.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1178
* build(deps-dev): bump @typescript-eslint/parser from 6.12.0 to 6.13.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1180
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.13.0 to 6.13.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1181
* build(deps): bump undici from 5.28.0 to 5.28.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1179
* build(deps-dev): bump eslint from 8.54.0 to 8.55.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1183
* build(deps): bump undici from 5.28.1 to 5.28.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1182
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.13.1 to 6.13.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1185
* build(deps-dev): bump @typescript-eslint/parser from 6.13.1 to 6.13.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1184
* build(deps-dev): bump @types/jest from 29.5.10 to 29.5.11 by @dependabot in https://github.com/codecov/codecov-action/pull/1187
* build(deps): bump undici from 5.28.2 to 6.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1186
* build(deps-dev): bump typescript from 5.3.2 to 5.3.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1189
* build(deps): bump undici from 6.0.0 to 6.0.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1188
* build(deps): bump github/codeql-action from 2.22.8 to 2.22.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1191
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.13.2 to 6.14.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1193
* build(deps-dev): bump @typescript-eslint/parser from 6.13.2 to 6.14.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1192
* build(deps-dev): bump eslint from 8.55.0 to 8.56.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1194
* build(deps): bump github/codeql-action from 2.22.9 to 3.22.11 by @dependabot in https://github.com/codecov/codecov-action/pull/1195
* build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1196
* build(deps-dev): bump @typescript-eslint/parser from 6.14.0 to 6.15.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1198
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.14.0 to 6.15.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1197
* build(deps): bump undici from 6.0.1 to 6.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1199
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.15.0 to 6.17.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1206
* build(deps-dev): bump @typescript-eslint/parser from 6.15.0 to 6.17.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1205
* build(deps): bump undici from 6.2.0 to 6.2.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1201
* build(deps): bump github/codeql-action from 3.22.11 to 3.22.12 by @dependabot in https://github.com/codecov/codecov-action/pull/1200
* build(deps-dev): bump @typescript-eslint/parser from 6.17.0 to 6.18.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1208
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.17.0 to 6.18.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1207
* build(deps): bump undici from 6.2.1 to 6.3.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1211
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.18.0 to 6.18.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1210
* build(deps-dev): bump @typescript-eslint/parser from 6.18.0 to 6.18.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1209
* build(deps-dev): bump @typescript-eslint/parser from 6.18.1 to 6.19.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1215
* build(deps): bump github/codeql-action from 3.22.12 to 3.23.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1213
* build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1212
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.18.1 to 6.19.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1214
* fix: downgrade undici as it has a breaking change by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1219
* fix: remove openpgp dep due to licensing and use gpg by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1218
* chore(ci): add fossa workflow by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1216
* build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1222
* build(deps): bump github/codeql-action from 3.23.0 to 3.23.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1221
* build(deps-dev): bump @typescript-eslint/parser from 6.19.0 to 6.19.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1225
* build(deps-dev): bump ts-jest from 29.1.1 to 29.1.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1224
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.19.0 to 6.19.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1223
* build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1232
* build(deps): bump github/codeql-action from 3.23.1 to 3.23.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1231
* build(deps-dev): bump @typescript-eslint/parser from 6.19.1 to 6.20.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1235
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.19.1 to 6.20.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1234
* chore(ci): bump to node20 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1236
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1237
* Update package.json by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1238
* fix: allow for other archs by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1239
* fix: update action.yml by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1240
## New Contributors
* @dana-yaish made their first contribution in https://github.com/codecov/codecov-action/pull/943
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.6...v4.0.0
## v3.1.6
#**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.5...v3.1.6
## v3.1.5
### What's Changed
* action.yml: Update to Node.js 20 by @hallabro in https://github.com/codecov/codecov-action/pull/1228
## New Contributors
* @hallabro made their first contribution in https://github.com/codecov/codecov-action/pull/1228
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.4...v3.1.5
## v4.0.0-beta.3 (Prerelease)
### What's Changed
* build(deps-dev): bump jest from 29.6.4 to 29.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1082
* build(deps-dev): bump @types/jest from 29.5.4 to 29.5.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1092
* build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1094
* build(deps-dev): bump @types/node from 20.6.0 to 20.6.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1093
* build(deps): bump openpgp from 5.10.1 to 5.10.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1096
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.7.0 to 6.7.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1095
* build(deps-dev): bump @types/node from 20.6.2 to 20.6.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1098
* build(deps-dev): bump @typescript-eslint/parser from 6.7.0 to 6.7.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1097
* feat: add plugins by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1099
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.0.0-beta.2...v4.0.0-beta.3
## v4.0.0-beta.2 (Prerelease)
### What's Changed
* not adding -n if empty to do-upload command by @dana-yaish in https://github.com/codecov/codecov-action/pull/1085
* 4.0.0-beta.2 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1086
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v4.0.0-beta.1...v4.0.0-beta.2
## 4.0.0-beta.1 (Prerelease)
#`v4` represents a move from the [universal uploader](https://github.com/codecov/uploader) to the [Codecov CLI](https://github.com/codecov/codecov-cli). Although this will unlock new features for our users, the CLI is not yet at feature parity with the universal uploader.
## Breaking Changes
- No current support for `aarch64` and `alpine` architectures.
- Tokenless uploading is unsuported
- Various arguments to the Action have been removed
## What's Changed
* build(deps): bump openpgp from 5.8.0 to 5.9.0 by @dependabot in https://github.com/codecov/codecov-action/pull/985
* build(deps): bump actions/checkout from 3.0.0 to 3.5.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1000
* build(deps): bump ossf/scorecard-action from 2.1.3 to 2.2.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1006
* build(deps): bump tough-cookie from 4.0.0 to 4.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1013
* build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1024
* build(deps): bump node-fetch from 3.3.1 to 3.3.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1031
* build(deps-dev): bump @types/node from 20.1.4 to 20.4.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1032
* build(deps): bump github/codeql-action from 1.0.26 to 2.21.2 by @dependabot in https://github.com/codecov/codecov-action/pull/1033
* build commit,report and upload args based on codecovcli by @dana-yaish in https://github.com/codecov/codecov-action/pull/943
* build(deps-dev): bump @types/node from 20.4.5 to 20.5.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1055
* build(deps): bump github/codeql-action from 2.21.2 to 2.21.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1051
* build(deps-dev): bump @types/node from 20.5.3 to 20.5.4 by @dependabot in https://github.com/codecov/codecov-action/pull/1058
* chore(deps): update outdated deps by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1059
* build(deps-dev): bump @types/node from 20.5.4 to 20.5.6 by @dependabot in https://github.com/codecov/codecov-action/pull/1060
* build(deps-dev): bump @typescript-eslint/parser from 6.4.1 to 6.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1065
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.4.1 to 6.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1064
* build(deps): bump actions/checkout from 3.5.3 to 3.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1063
* build(deps-dev): bump eslint from 8.47.0 to 8.48.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1061
* build(deps-dev): bump @types/node from 20.5.6 to 20.5.7 by @dependabot in https://github.com/codecov/codecov-action/pull/1062
* build(deps): bump openpgp from 5.9.0 to 5.10.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1066
* build(deps-dev): bump @types/node from 20.5.7 to 20.5.9 by @dependabot in https://github.com/codecov/codecov-action/pull/1070
* build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 by @dependabot in https://github.com/codecov/codecov-action/pull/1069
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.5.0 to 6.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1072
* Update README.md by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1073
* build(deps-dev): bump @typescript-eslint/parser from 6.5.0 to 6.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1071
* build(deps-dev): bump @vercel/ncc from 0.36.1 to 0.38.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1074
* build(deps): bump @actions/core from 1.10.0 to 1.10.1 by @dependabot in https://github.com/codecov/codecov-action/pull/1081
* build(deps-dev): bump @typescript-eslint/eslint-plugin from 6.6.0 to 6.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1080
* build(deps): bump actions/checkout from 3.6.0 to 4.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1078
* build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/1077
* build(deps-dev): bump @types/node from 20.5.9 to 20.6.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1075
* build(deps-dev): bump @typescript-eslint/parser from 6.6.0 to 6.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1079
* build(deps-dev): bump eslint from 8.48.0 to 8.49.0 by @dependabot in https://github.com/codecov/codecov-action/pull/1076
* use cli instead of node uploader by @dana-yaish in https://github.com/codecov/codecov-action/pull/1068
* chore(release): 4.0.0-beta.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/1084
## New Contributors
* @dana-yaish made their first contribution in https://github.com/codecov/codecov-action/pull/943
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.4...v4.0.0-beta.1
## 3.1.4
### What's Changed
* build(deps-dev): bump @types/node from 18.15.12 to 18.16.3 by @dependabot in https://github.com/codecov/codecov-action/pull/970
* Fix typo in README.md by @hisaac in https://github.com/codecov/codecov-action/pull/967
* fix: add back in working dir by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/971
* fix: CLI option names for uploader by @kleisauke in https://github.com/codecov/codecov-action/pull/969
* build(deps-dev): bump @types/node from 18.16.3 to 20.1.0 by @dependabot in https://github.com/codecov/codecov-action/pull/975
* build(deps-dev): bump @types/node from 20.1.0 to 20.1.2 by @dependabot in https://github.com/codecov/codecov-action/pull/979
* build(deps-dev): bump @types/node from 20.1.2 to 20.1.4 by @dependabot in https://github.com/codecov/codecov-action/pull/981
* release: 3.1.4 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/983
### Fixes
- #967 Fix typo in README.md
- #971 fix: add back in working dir
- #969 fix: CLI option names for uploader
## New Contributors
* @hisaac made their first contribution in https://github.com/codecov/codecov-action/pull/967
* @kleisauke made their first contribution in https://github.com/codecov/codecov-action/pull/969
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.3...v3.1.4
### Dependencies
- #970 build(deps-dev): bump @types/node from 18.15.12 to 18.16.3
- #979 build(deps-dev): bump @types/node from 20.1.0 to 20.1.2
- #981 build(deps-dev): bump @types/node from 20.1.2 to 20.1.4
## 3.1.3
### What's Changed
* build(deps-dev): bump jest-junit from 15.0.0 to 16.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/957
* build(deps): bump openpgp from 5.7.0 to 5.8.0 by @dependabot in https://github.com/codecov/codecov-action/pull/958
* build(deps-dev): bump @types/node from 18.15.10 to 18.15.12 by @dependabot in https://github.com/codecov/codecov-action/pull/959
* fix: allow for aarch64 build by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/960
* chore(release): bump to 3.1.3 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/961
### Fixes
- #960 fix: allow for aarch64 build
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.2...v3.1.3
### Dependencies
- #957 build(deps-dev): bump jest-junit from 15.0.0 to 16.0.0
- #958 build(deps): bump openpgp from 5.7.0 to 5.8.0
- #959 build(deps-dev): bump @types/node from 18.15.10 to 18.15.12
## 3.1.2
### What's Changed
* build(deps): bump node-fetch from 3.2.4 to 3.2.10 by @dependabot in https://github.com/codecov/codecov-action/pull/835
* build(deps-dev): bump @types/node from 16.11.40 to 18.13.0 by @dependabot in https://github.com/codecov/codecov-action/pull/911
* build(deps-dev): bump @vercel/ncc from 0.34.0 to 0.36.1 by @dependabot in https://github.com/codecov/codecov-action/pull/900
* build(deps-dev): bump typescript from 4.7.4 to 4.9.5 by @dependabot in https://github.com/codecov/codecov-action/pull/905
* Update README.md by @stefanomunarini in https://github.com/codecov/codecov-action/pull/718
* build(deps): bump openpgp from 5.4.0 to 5.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/819
* build(deps): bump ossf/scorecard-action from 1.1.1 to 2.0.4 by @dependabot in https://github.com/codecov/codecov-action/pull/840
* build(deps): bump @actions/core from 1.9.1 to 1.10.0 by @dependabot in https://github.com/codecov/codecov-action/pull/841
* build(deps): bump @actions/github from 5.0.3 to 5.1.1 by @dependabot in https://github.com/codecov/codecov-action/pull/843
* build(deps): bump actions/upload-artifact from 3.1.0 to 3.1.2 by @dependabot in https://github.com/codecov/codecov-action/pull/896
* build(deps-dev): bump jest-junit from 13.2.0 to 15.0.0 by @dependabot in https://github.com/codecov/codecov-action/pull/872
* build(deps): bump node-fetch from 3.2.10 to 3.3.0 by @dependabot in https://github.com/codecov/codecov-action/pull/869
* build(deps): bump decode-uri-component from 0.2.0 to 0.2.2 by @dependabot in https://github.com/codecov/codecov-action/pull/879
* build(deps): bump json5 from 2.2.1 to 2.2.3 by @dependabot in https://github.com/codecov/codecov-action/pull/895
* codeql-analysis.yml by @minumulasri in https://github.com/codecov/codecov-action/pull/898
* build(deps): bump ossf/scorecard-action from 1.1.1 to 2.1.2 by @dependabot in https://github.com/codecov/codecov-action/pull/889
* build(deps-dev): bump @types/node from 18.13.0 to 18.14.0 by @dependabot in https://github.com/codecov/codecov-action/pull/922
* build(deps): bump openpgp from 5.5.0 to 5.7.0 by @dependabot in https://github.com/codecov/codecov-action/pull/924
* build(deps-dev): bump @types/node from 18.14.0 to 18.14.2 by @dependabot in https://github.com/codecov/codecov-action/pull/927
* Remove unsupported path_to_write_report argument by @jsoref in https://github.com/codecov/codecov-action/pull/851
* Update README to contain correct information - inputs and negate feature by @moshe-azaria-sage in https://github.com/codecov/codecov-action/pull/901
* build(deps-dev): bump @types/node from 18.14.2 to 18.14.6 by @dependabot in https://github.com/codecov/codecov-action/pull/933
* build(deps-dev): bump @types/node from 18.14.6 to 18.15.0 by @dependabot in https://github.com/codecov/codecov-action/pull/937
* build(deps-dev): bump @types/node from 18.15.0 to 18.15.5 by @dependabot in https://github.com/codecov/codecov-action/pull/945
* build(deps): bump node-fetch from 3.3.0 to 3.3.1 by @dependabot in https://github.com/codecov/codecov-action/pull/938
* build(deps-dev): bump @types/node from 18.15.5 to 18.15.6 by @dependabot in https://github.com/codecov/codecov-action/pull/946
* build(deps-dev): bump @types/node from 18.15.6 to 18.15.10 by @dependabot in https://github.com/codecov/codecov-action/pull/947
* build(deps): bump ossf/scorecard-action from 2.1.2 to 2.1.3 by @dependabot in https://github.com/codecov/codecov-action/pull/951
* fix: add in all the extra arguments for uploader by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/955
* chore(release): bump to 3.1.2 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/956
### Fixes
- #718 Update README.md
- #851 Remove unsupported path_to_write_report argument
- #898 codeql-analysis.yml
- #901 Update README to contain correct information - inputs and negate feature
- #955 fix: add in all the extra arguments for uploader
## New Contributors
* @stefanomunarini made their first contribution in https://github.com/codecov/codecov-action/pull/718
* @minumulasri made their first contribution in https://github.com/codecov/codecov-action/pull/898
* @jsoref made their first contribution in https://github.com/codecov/codecov-action/pull/851
* @moshe-azaria-sage made their first contribution in https://github.com/codecov/codecov-action/pull/901
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.1...v3.1.2
### Dependencies
- #819 build(deps): bump openpgp from 5.4.0 to 5.5.0
- #835 build(deps): bump node-fetch from 3.2.4 to 3.2.10
- #840 build(deps): bump ossf/scorecard-action from 1.1.1 to 2.0.4
- #841 build(deps): bump @actions/core from 1.9.1 to 1.10.0
- #843 build(deps): bump @actions/github from 5.0.3 to 5.1.1
- #869 build(deps): bump node-fetch from 3.2.10 to 3.3.0
- #872 build(deps-dev): bump jest-junit from 13.2.0 to 15.0.0
- #879 build(deps): bump decode-uri-component from 0.2.0 to 0.2.2
- #889 build(deps): bump ossf/scorecard-action from 1.1.1 to 2.1.2
- #895 build(deps): bump json5 from 2.2.1 to 2.2.3
- #896 build(deps): bump actions/upload-artifact from 3.1.0 to 3.1.2
- #900 build(deps-dev): bump @vercel/ncc from 0.34.0 to 0.36.1
- #905 build(deps-dev): bump typescript from 4.7.4 to 4.9.5
- #911 build(deps-dev): bump @types/node from 16.11.40 to 18.13.0
- #922 build(deps-dev): bump @types/node from 18.13.0 to 18.14.0
- #924 build(deps): bump openpgp from 5.5.0 to 5.7.0
- #927 build(deps-dev): bump @types/node from 18.14.0 to 18.14.2
- #933 build(deps-dev): bump @types/node from 18.14.2 to 18.14.6
- #937 build(deps-dev): bump @types/node from 18.14.6 to 18.15.0
- #938 build(deps): bump node-fetch from 3.3.0 to 3.3.1
- #945 build(deps-dev): bump @types/node from 18.15.0 to 18.15.5
- #946 build(deps-dev): bump @types/node from 18.15.5 to 18.15.6
- #947 build(deps-dev): bump @types/node from 18.15.6 to 18.15.10
- #951 build(deps): bump ossf/scorecard-action from 2.1.2 to 2.1.3
## 3.1.1
### What's Changed
* Update deprecation warning by @slifty in https://github.com/codecov/codecov-action/pull/661
* Create codeql-analysis.yml by @mitchell-codecov in https://github.com/codecov/codecov-action/pull/593
* build(deps): bump node-fetch from 3.2.3 to 3.2.4 by @dependabot in https://github.com/codecov/codecov-action/pull/714
* build(deps-dev): bump typescript from 4.6.3 to 4.6.4 by @dependabot in https://github.com/codecov/codecov-action/pull/713
* README: fix typo by @Evalir in https://github.com/codecov/codecov-action/pull/712
* build(deps): bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/codecov/codecov-action/pull/724
* build(deps-dev): bump @types/jest from 27.4.1 to 27.5.0 by @dependabot in https://github.com/codecov/codecov-action/pull/717
* fix: Remove a blank row by @johnmanjiro13 in https://github.com/codecov/codecov-action/pull/725
* Update README.md with correct badge version by @gsheni in https://github.com/codecov/codecov-action/pull/726
* build(deps-dev): bump @types/node from 17.0.25 to 17.0.33 by @dependabot in https://github.com/codecov/codecov-action/pull/729
* build(deps-dev): downgrade @types/node to 16.11.35 by @dependabot in https://github.com/codecov/codecov-action/pull/734
* build(deps): bump actions/checkout from 2 to 3 by @dependabot in https://github.com/codecov/codecov-action/pull/723
* build(deps): bump @actions/github from 5.0.1 to 5.0.3 by @dependabot in https://github.com/codecov/codecov-action/pull/733
* build(deps): bump @actions/core from 1.6.0 to 1.8.2 by @dependabot in https://github.com/codecov/codecov-action/pull/732
* build(deps-dev): bump @types/node from 16.11.35 to 16.11.36 by @dependabot in https://github.com/codecov/codecov-action/pull/737
* Create scorecards-analysis.yml by @mitchell-codecov in https://github.com/codecov/codecov-action/pull/633
* build(deps): bump ossf/scorecard-action from 1.0.1 to 1.1.0 by @dependabot in https://github.com/codecov/codecov-action/pull/749
* fix: add more verbosity to validation by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/747
* build(deps-dev): bump typescript from 4.6.4 to 4.7.3 by @dependabot in https://github.com/codecov/codecov-action/pull/755
* Regenerate scorecards-analysis.yml by @mitchell-codecov in https://github.com/codecov/codecov-action/pull/750
* build(deps-dev): bump @types/node from 16.11.36 to 16.11.39 by @dependabot in https://github.com/codecov/codecov-action/pull/759
* build(deps-dev): bump @types/node from 16.11.39 to 16.11.40 by @dependabot in https://github.com/codecov/codecov-action/pull/762
* build(deps-dev): bump @vercel/ncc from 0.33.4 to 0.34.0 by @dependabot in https://github.com/codecov/codecov-action/pull/746
* build(deps): bump ossf/scorecard-action from 1.1.0 to 1.1.1 by @dependabot in https://github.com/codecov/codecov-action/pull/757
* build(deps): bump openpgp from 5.2.1 to 5.3.0 by @dependabot in https://github.com/codecov/codecov-action/pull/760
* build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0 by @dependabot in https://github.com/codecov/codecov-action/pull/748
* build(deps-dev): bump typescript from 4.7.3 to 4.7.4 by @dependabot in https://github.com/codecov/codecov-action/pull/766
* Switch to v3 by @thomasrockhu in https://github.com/codecov/codecov-action/pull/774
* Fix `network` entry in table by @kevmoo in https://github.com/codecov/codecov-action/pull/783
* Trim arguments after splitting them by @mitchell-codecov in https://github.com/codecov/codecov-action/pull/791
* build(deps): bump openpgp from 5.3.0 to 5.4.0 by @dependabot in https://github.com/codecov/codecov-action/pull/799
* build(deps): bump @actions/core from 1.8.2 to 1.9.1 by @dependabot in https://github.com/codecov/codecov-action/pull/798
* Plumb failCi into verification function. by @RobbieMcKinstry in https://github.com/codecov/codecov-action/pull/769
* release: update changelog and version to 3.1.1 by @thomasrockhu-codecov in https://github.com/codecov/codecov-action/pull/828
### Fixes
- #661 Update deprecation warning
- #593 Create codeql-analysis.yml
- #712 README: fix typo
- #725 fix: Remove a blank row
- #726 Update README.md with correct badge version
- #633 Create scorecards-analysis.yml
- #747 fix: add more verbosity to validation
- #750 Regenerate scorecards-analysis.yml
- #774 Switch to v3
- #783 Fix network entry in table
- #791 Trim arguments after splitting them
- #769 Plumb failCi into verification function.
## New Contributors
* @slifty made their first contribution in https://github.com/codecov/codecov-action/pull/661
* @Evalir made their first contribution in https://github.com/codecov/codecov-action/pull/712
* @johnmanjiro13 made their first contribution in https://github.com/codecov/codecov-action/pull/725
* @gsheni made their first contribution in https://github.com/codecov/codecov-action/pull/726
* @kevmoo made their first contribution in https://github.com/codecov/codecov-action/pull/783
* @RobbieMcKinstry made their first contribution in https://github.com/codecov/codecov-action/pull/769
### Dependencies
- #713 build(deps-dev): bump typescript from 4.6.3 to 4.6.4
- #714 build(deps): bump node-fetch from 3.2.3 to 3.2.4
- #724 build(deps): bump github/codeql-action from 1 to 2
- #717 build(deps-dev): bump @types/jest from 27.4.1 to 27.5.0
- #729 build(deps-dev): bump @types/node from 17.0.25 to 17.0.33
- #734 build(deps-dev): downgrade @types/node to 16.11.35
- #723 build(deps): bump actions/checkout from 2 to 3
- #733 build(deps): bump @actions/github from 5.0.1 to 5.0.3
- #732 build(deps): bump @actions/core from 1.6.0 to 1.8.2
- #737 build(deps-dev): bump @types/node from 16.11.35 to 16.11.36
- #749 build(deps): bump ossf/scorecard-action from 1.0.1 to 1.1.0
- #755 build(deps-dev): bump typescript from 4.6.4 to 4.7.3
- #759 build(deps-dev): bump @types/node from 16.11.36 to 16.11.39
- #762 build(deps-dev): bump @types/node from 16.11.39 to 16.11.40
- #746 build(deps-dev): bump @vercel/ncc from 0.33.4 to 0.34.0
- #757 build(deps): bump ossf/scorecard-action from 1.1.0 to 1.1.1
- #760 build(deps): bump openpgp from 5.2.1 to 5.3.0
- #748 build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.0
- #766 build(deps-dev): bump typescript from 4.7.3 to 4.7.4
- #799 build(deps): bump openpgp from 5.3.0 to 5.4.0
- #798 build(deps): bump @actions/core from 1.8.2 to 1.9.1
**Full Changelog**: https://github.com/codecov/codecov-action/compare/v3.1.0...v3.1.1
## v3.1.0
### 3.1.0
## 3.1.0
### Features
- #699 Incorporate `xcode` arguments for the Codecov uploader
@@ -851,8 +99,8 @@ You can see their usage in the `action.yml` [file](https://github.com/codecov/co
- #696 build(deps-dev): bump @types/node from 17.0.23 to 17.0.25
- #698 build(deps-dev): bump jest-junit from 13.0.0 to 13.2.0
## v3.0.0
#### Breaking Changes
## 3.0.0
### Breaking Changes
- #689 Bump to node16 and small fixes
### Features
@@ -876,8 +124,7 @@ You can see their usage in the `action.yml` [file](https://github.com/codecov/co
- #676 build(deps): bump @actions/exec from 1.1.0 to 1.1.1
- #675 build(deps): bump openpgp from 5.1.0 to 5.2.1
## v2.1.0
### 2.1.0
## 2.1.0
### Features
- #515 Allow specifying version of Codecov uploader
@@ -886,8 +133,7 @@ You can see their usage in the `action.yml` [file](https://github.com/codecov/co
- #508 build(deps): bump openpgp from 5.0.0-5 to 5.0.0
- #514 build(deps-dev): bump @types/node from 16.6.0 to 16.9.0
## v2.0.3
### 2.0.3
## 2.0.3
### Fixes
- #464 Fix wrong link in the readme
- #485 fix: Add override OS and linux default to platform
@@ -907,22 +153,11 @@ You can see their usage in the `action.yml` [file](https://github.com/codecov/co
- #483 build(deps-dev): bump @vercel/ncc from 0.29.0 to 0.29.2
- #484 build(deps): bump @actions/core from 1.4.0 to 1.5.0
## v2.0.2
#### Fixes
## 2.0.2
### Fixes
- Underlying uploader fixes issues with tokens not being sent properly for users seeing
`Error!: Error: Error uploading to https://codecov.io: Error: Error uploading to Codecov: Error: Not Found`
- #432 fix: use import to destructure package.json
- #434 fix: openpgp and asn1.js
- #440 2.0.2 token fixes
### Dependencies
- #420 Bump eslint from 7.30.0 to 7.31.0
- #433 build(deps-dev): bump @types/node from 16.3.3 to 16.4.0
- #425 build(deps-dev): bump @typescript-eslint/eslint-plugin from 4.28.3 to 4.28.4
- #426 build(deps-dev): bump @typescript-eslint/parser from 4.28.3 to 4.28.4
- #438 Set up Dependabot for github-actions dependencies
`Error!: Error: Error uploading to https://codecov.io: Error: Error uploading to Codecov: Error: Not Found`
- #440 fix: Validation ordering
## 2.0.1
### Fixes

View File

@@ -1,7 +1,7 @@
deploy:
$(eval VERSION := $(shell cat src/version))
git tag -d v5
git push origin :v5
git tag v5
$(eval VERSION := $(shell cat package.json | grep '"version": ' | cut -d\" -f4))
git tag -d v3
git push origin :v3
git tag v3
git tag v$(VERSION) -s -m ""
git push origin --tags

187
README.md
View File

@@ -1,161 +1,94 @@
# Codecov GitHub Action
[![GitHub Marketplace](https://img.shields.io/badge/Marketplace-v5-undefined.svg?logo=github&logoColor=white&style=flat)](https://github.com/marketplace/actions/codecov)
[![GitHub Marketplace](https://img.shields.io/badge/Marketplace-v3-undefined.svg?logo=github&logoColor=white&style=flat)](https://github.com/marketplace/actions/codecov)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-action.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fcodecov%2Fcodecov-action?ref=badge_shield)
[![Workflow for Codecov Action](https://github.com/codecov/codecov-action/actions/workflows/main.yml/badge.svg)](https://github.com/codecov/codecov-action/actions/workflows/main.yml)
### Easily upload coverage reports to Codecov from GitHub Actions
## v5 Release
`v5` of the Codecov GitHub Action will use the [Codecov Wrapper](https://github.com/codecov/wrapper) to encapsulate the [CLI](https://github.com/codecov/codecov-cli). This will help ensure that the Action gets updates quicker.
>The latest release of this Action adds support for tokenless uploads from GitHub Actions!
### Migration Guide
The `v5` release also coincides with the opt-out feature for tokens for public repositories. In the `Global Upload Token` section of the settings page of an organization in codecov.io, you can set the ability for Codecov to receive a coverage reports from any source. This will allow contributors or other members of a repository to upload without needing access to the Codecov token. For more details see [how to upload without a token](https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token).
## ⚠️ Deprecation of v1
**As of February 1, 2022, v1 has been fully sunset and no longer functions**
> [!WARNING]
> **The following arguments have been changed**
> - `file` (this has been deprecated in favor of `files`)
> - `plugin` (this has been deprecated in favor of `plugins`)
Due to the [deprecation](https://about.codecov.io/blog/introducing-codecovs-new-uploader/) of the underlying bash uploader,
the Codecov GitHub Action has released `v2`/`v3` which will use the new [uploader](https://github.com/codecov/uploader). You can learn
more about our deprecation plan and the new uploader on our [blog](https://about.codecov.io/blog/introducing-codecovs-new-uploader/).
The following arguments have been added:
We will be restricting any updates to the `v1` Action to security updates and hotfixes.
- `binary`
- `gcov_args`
- `gcov_executable`
- `gcov_ignore`
- `gcov_include`
- `report_type`
- `skip_validation`
- `swift_project`
You can see their usage in the `action.yml` [file](https://github.com/codecov/codecov-action/blob/main/action.yml).
## v4 Release
`v4` of the Codecov GitHub Action will use the [Codecov CLI](https://github.com/codecov/codecov-cli) to upload coverage reports to Codecov.
### Breaking Changes
- Tokenless uploading is unsupported. However, PRs made from forks to the upstream public repos will support tokenless (e.g. contributors to OSS projects do not need the upstream repo's Codecov token). For details, [see our docs](https://docs.codecov.com/docs/codecov-uploader#supporting-token-less-uploads-for-forks-of-open-source-repos-using-codecov)
- Various arguments to the Action have been removed
### Dependabot
- For repositories using `Dependabot`, users will need to ensure that it has access to the Codecov token for PRs from Dependabot to upload coverage. To do this, please add your `CODECOV_TOKEN` as a Dependabot Secret. For more information, see ["Configuring access to private registries for Dependabot."](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot#storing-credentials-for-dependabot-to-use)
`v3` versions and below will not have access to CLI features (e.g. global upload token, ATS).
### Migration from `v1` to `v3`
The `v3` uploader has a few breaking changes for users
- Multiple fields have not been transferred from the bash uploader or have been deprecated. Notably
many of the `functionalities` and `gcov_` arguments have been removed. Please check the documentation
below for the full list.
## Usage
To integrate Codecov with your Actions pipeline, specify the name of this repository with a tag number (`@v5` is recommended) as a `step` within your `workflow.yml` file.
To integrate Codecov with your Actions pipeline, specify the name of this repository with a tag number (`@v3` is recommended) as a `step` within your `workflow.yml` file.
> [!WARNING]
> In order for the Action to work seamlessly, you will need to have `curl`, `git`, and `gpg` installed on your runner. You will also need to run the [actions/checkout](https://github.com/actions/checkout) before calling the Codecov action.
This Action also requires you to [provide an upload token](https://docs.codecov.io/docs/frequently-asked-questions#section-where-is-the-repository-upload-token-found-) from [codecov.io](https://www.codecov.io) (tip: in order to avoid exposing your token, [store it](https://docs.codecov.com/docs/adding-the-codecov-token#github-actions) as a `secret`).
Currently, the Action will identify linux, macos, and windows runners. However, the Action may misidentify other architectures. The OS can be specified as
- alpine
- alpine-arm64
- linux
- linux-arm64
- macos
- windows
If you have a *private repository*, this Action also requires you to [provide an upload token](https://docs.codecov.io/docs/frequently-asked-questions#section-where-is-the-repository-upload-token-found-) from [codecov.io](https://www.codecov.io) (tip: in order to avoid exposing your token, store it as a `secret`). Optionally, you can choose to include up to four additional inputs to customize the upload context. **For public repositories, no token is needed**
Inside your `.github/workflows/workflow.yml` file:
```yaml
steps:
- uses: actions/checkout@main
- uses: codecov/codecov-action@v5
- uses: actions/checkout@master
- uses: codecov/codecov-action@v3
with:
fail_ci_if_error: true # optional (default = false)
files: ./coverage1.xml,./coverage2.xml # optional
flags: unittests # optional
name: codecov-umbrella # optional
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true # optional (default = false)
```
The Codecov token can also be passed in via environment variables:
```yaml
steps:
- uses: actions/checkout@main
- uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true # optional (default = false)
files: ./coverage1.xml,./coverage2.xml # optional
flags: unittests # optional
name: codecov-umbrella # optional
fail_ci_if_error: true # optional (default = false)
verbose: true # optional (default = false)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
```
> [!NOTE]
> This assumes that you've set your Codecov token inside *Settings > Secrets* as `CODECOV_TOKEN`. If not, you can [get an upload token](https://docs.codecov.io/docs/frequently-asked-questions#section-where-is-the-repository-upload-token-found-) for your specific repo on [codecov.io](https://www.codecov.io). Keep in mind that secrets are *not* available to forks of repositories.
### Using OIDC
For users with [OpenID Connect(OIDC) enabled](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect), the Codecov token is not necessary. You can use OIDC with the `use_oidc` argument as following.
```yaml
- uses: codecov/codecov-action@v5
with:
use_oidc: true
```
Any token supplied will be ignored, as Codecov will default to the OIDC token for verification.
>**Note**: This assumes that you've set your Codecov token inside *Settings > Secrets* as `CODECOV_TOKEN`. If not, you can [get an upload token](https://docs.codecov.io/docs/frequently-asked-questions#section-where-is-the-repository-upload-token-found-) for your specific repo on [codecov.io](https://www.codecov.io). Keep in mind that secrets are *not* available to forks of repositories.
## Arguments
Codecov's Action supports inputs from the user. These inputs, along with their descriptions and usage contexts, are listed in the table below:
| Input | Description | Required |
| :--- | :--- | :---: |
| `base_sha` | 'The base SHA to select. This is only used in the "pr-base-picking" run command' | Optional
| `binary` | The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed. | Optional
| `codecov_yml_path` | The location of the codecov.yml file. This is currently ONLY used for automated test selection (https://docs.codecov.com/docs/getting-started-with-ats). Note that for all other cases, the Codecov yaml will need to be located as described here: https://docs.codecov.com/docs/codecov-yaml#can-i-name-the-file-codecovyml | Optional
| `commit_parent` | SHA (with 40 chars) of what should be the parent of this commit. | Optional
| `directory` | Folder to search for coverage files. Default to the current working directory | Optional
| `disable_file_fixes` | Disable file fixes to ignore common lines from coverage (e.g. blank lines or empty brackets). Read more here https://docs.codecov.com/docs/fixing-reports | Optional
| `disable_search` | Disable search for coverage files. This is helpful when specifying what files you want to upload with the files option. | Optional
| `disable_safe_directory` | Disable setting safe directory. Set to true to disable. | Optional
| `disable_telem` | Disable sending telemetry data to Codecov. Set to true to disable. | Optional
| Input | Description | Usage |
| :---: | :---: | :---: |
| `token` | Used to authorize coverage report uploads | *Required |
| `move_coverage_to_trash` | Move discovered coverage reports to the trash | Optional
| `commit_parent` | The commit SHA of the parent for which you are uploading coverage. If not present, the parent will be determined using the API of your repository provider. When using the repository provider's API, the parent is determined via finding the closest ancestor to the commit. | Optional
| `dry_run` | Don't upload files to Codecov | Optional
| `env_vars` | Environment variables to tag the upload with (e.g. PYTHON \| OS,PYTHON) | Optional
| `exclude` | Comma-separated list of folders to exclude from search. | Optional
| `fail_ci_if_error` | On error, exit with non-zero code | Optional
| `files` | Comma-separated explicit list of files to upload. These will be added to the coverage files found for upload. If you wish to only upload the specified files, please consider using "disable-search" to disable uploading other files. | Optional
| `flags` | Comma-separated list of flags to upload to group coverage metrics. | Optional
| `force` | Only used for empty-upload run command | Optional
| `git_service` | Override the git_service (e.g. github_enterprise) | Optional
| `env_vars` | Environment variables to tag the upload with. Multiple env variables can be separated with commas (e.g. `OS,PYTHON`) | Optional
| `fail_ci_if_error` | Specify if CI pipeline should fail when Codecov runs into errors during upload. *Defaults to **false*** | Optional
| `files` | Comma-separated paths to the coverage report(s). Negated paths are supported by starting with `!` | Optional
| `flags` | Flag the upload to group coverage metrics (unittests, uitests, etc.). Multiple flags are separated by a comma (ui,chrome) | Optional
| `full_report` | Specify the path of a full Codecov report to re-upload | Optional
| `functionalities` | Toggle functionalities | Optional
| -- `network` | Disable uploading the file network | Optional
| -- `fixes` | Enable file fixes to ignore common lines from coverage | Optional
| -- `search` | Disable searching for coverage files | Optional
| `gcov` | Run with gcov support | Optional
| `gcov_args` | Extra arguments to pass to gcov | Optional
| `gcov_executable` | gcov executable to run. Defaults to 'gcov' | Optional
| `gcov_ignore` | Paths to ignore during gcov gathering | Optional
| `gcov_include` | Paths to include during gcov gathering | Optional
| `handle_no_reports_found` | If no coverage reports are found, do not raise an exception. | Optional
| `job_code` | | Optional
| `name` | Custom defined name of the upload. Visible in the Codecov UI | Optional
| `network_filter` | Specify a filter on the files listed in the network section of the Codecov report. This will only add files whose path begin with the specified filter. Useful for upload-specific path fixing. | Optional
| `network_prefix` | Specify a prefix on files listed in the network section of the Codecov report. Useful to help resolve path fixing. | Optional
| `os` | Override the assumed OS. Options available at cli.codecov.io | Optional
| `override_branch` | Specify the branch to be displayed with this commit on Codecov | Optional
| `override_build` | Specify the build number manually | Optional
| `override_build_url` | The URL of the build where this is running | Optional
| `override_commit` | Commit SHA (with 40 chars) | Optional
| `override_pr` | Specify the pull request number manually. Used to override pre-existing CI environment variables. | Optional
| `plugins` | Comma-separated list of plugins to run. Specify `noop` to turn off all plugins | Optional
| `report_code` | The code of the report if using local upload. If unsure, leave unset. Read more here https://docs.codecov.com/docs/the-codecov-cli#how-to-use-local-upload | Optional
| `report_type` | The type of file to upload, coverage by default. Possible values are "testing", "coverage". | Optional
| `root_dir` | Root folder from which to consider paths on the network section. Defaults to current working directory. | Optional
| `run_command` | Choose which CLI command to run. Options are "upload-coverage", "empty-upload", "pr-base-picking", "send-notifications". "upload-coverage" is run by default.' | Optional
| `skip_validation` | Skip integrity checking of the CLI. This is NOT recommended. | Optional
| `slug` | [Required when using the org token] Set to the owner/repo slug used instead of the private repo token. Only applicable to some Enterprise users. | Optional
| `swift_project` | Specify the swift project name. Useful for optimization. | Optional
| `token` | Repository Codecov token. Used to authorize report uploads | Optional
| `url` | Set to the Codecov instance URl. Used by Dedicated Enterprise Cloud customers. | Optional
| `use_legacy_upload_endpoint` | Use the legacy upload endpoint. | Optional
| `use_oidc` | Use OIDC instead of token. This will ignore any token supplied | Optional
| `use_pypi` | Use the pypi version of the CLI instead of from cli.codecov.io | Optional
| `verbose` | Enable verbose logging | Optional
| `version` | Which version of the Codecov CLI to use (defaults to 'latest') | Optional
| `working-directory` | Directory in which to execute codecov.sh | Optional
| `gcov_executable` | gcov executable to run. Defaults to gcov. | Optional
| `name` | Custom defined name for the upload | Optional
| `network_filter` | Specify a filter on the files listed in the network section of the Codecov report. Useful for upload-specific path fixing | Optional
| `network_prefix` | Specify a prefix on files listed in the network section of the Codecov report. Useful to help resolve path fixing | Optional
| `os` | Specify the OS (linux, macos, windows, alpine) | Optional
| `override_branch` | Specify the branch name | Optional
| `override_build` | Specify the build number | Optional
| `override_commit` | Specify the commit SHA | Optional
| `override_pr` | Specify the pull request number | Optional
| `override_tag` | Specify the git tag | Optional
| `root_dir` | Used when not in git/hg project to identify project root directory | Optional
| `directory` | Directory to search for coverage reports. | Optional
| `slug` | Specify the slug manually (Enterprise use) | Optional
| `swift` | Run with swift coverage support | Optional
| -- `swift_project` | Specify the swift project to speed up coverage conversion | Optional
| `upstream_proxy` | The upstream http proxy server to connect through | Optional
| `url` | Change the upload host (Enterprise use) | Optional
| `verbose` | Specify whether the Codecov output should be verbose | Optional
| `version` | Specify which version of the Codecov Uploader should be used. Defaults to `latest` | Optional
| `working-directory` | Directory in which to execute `codecov.sh` | Optional
| `xtra_args` | Add additional uploader args that may be missing in the Action | Optional
### Example `workflow.yml` with Codecov Action
@@ -172,9 +105,9 @@ jobs:
OS: ${{ matrix.os }}
PYTHON: '3.10'
steps:
- uses: actions/checkout@main
- uses: actions/checkout@master
- name: Setup Python
uses: actions/setup-python@main
uses: actions/setup-python@master
with:
python-version: 3.10
- name: Generate coverage report
@@ -183,15 +116,15 @@ jobs:
pip install pytest-cov
pytest --cov=./ --cov-report=xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: ./coverage/reports/
env_vars: OS,PYTHON
fail_ci_if_error: true
files: ./coverage1.xml,./coverage2.xml,!./cache
flags: unittests
name: codecov-umbrella
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
```
## Contributing

View File

@@ -1,311 +1,124 @@
---
# yamllint disable rule:line-length
name: 'Codecov'
description: 'GitHub Action that uploads coverage reports for your repository to codecov.io'
author: 'Thomas Hu <@thomasrockhu-codecov> | Codecov'
author: 'Ibrahim Ali <@ibrahim0814> & Thomas Hu <@thomasrockhu> | Codecov'
inputs:
base_sha:
description: 'The base SHA to select. This is only used in the "pr-base-picking" run command'
token:
description: 'Repository upload token - get it from codecov.io. Required only for private repositories'
required: false
binary:
description: 'The file location of a pre-downloaded version of the CLI. If specified, integrity checking will be bypassed.'
file:
description: 'Path to coverage file to upload'
required: false
codecov_yml_path:
description: 'The location of the codecov.yml file. This is crrently ONLY used for automated test selection (https://docs.codecov.com/docs/getting-started-with-ats). Note that for all other cases, the Codecov yaml will need to be located as described here: https://docs.codecov.com/docs/codecov-yaml#can-i-name-the-file-codecovyml'
required: false
commit_parent:
description: 'SHA (with 40 chars) of what should be the parent of this commit.'
files:
description: 'Comma-separated list of files to upload'
required: false
directory:
description: 'Folder to search for coverage files. Default to the current working directory'
description: 'Directory to search for coverage reports.'
required: false
disable_file_fixes:
description: 'Disable file fixes to ignore common lines from coverage (e.g. blank lines or empty brackets). Read more here https://docs.codecov.com/docs/fixing-reports'
flags:
description: 'Flag upload to group coverage metrics (e.g. unittests | integration | ui,chrome)'
required: false
default: 'false'
disable_search:
description: 'Disable search for coverage files. This is helpful when specifying what files you want to upload with the files option.'
full_report:
description: Specify the path of a full Codecov report to re-upload
required: false
default: 'false'
disable_safe_directory:
description: 'Disable setting safe directory. Set to true to disable.'
commit_parent:
description: 'The commit SHA of the parent for which you are uploading coverage. If not present, the parent will be determined using the API of your repository provider. When using the repository providers API, the parent is determined via finding the closest ancestor to the commit.'
required: false
default: 'false'
disable_telem:
description: 'Disable sending telemetry data to Codecov. Set to true to disable.'
required: false
default: 'false'
dry_run:
description: "Don't upload files to Codecov"
required: false
default: 'false'
env_vars:
description: 'Environment variables to tag the upload with (e.g. PYTHON | OS,PYTHON)'
required: false
exclude:
description: 'Comma-separated list of folders to exclude from search.'
required: false
fail_ci_if_error:
description: 'On error, exit with non-zero code'
description: 'Specify whether or not CI build should fail if Codecov runs into an error during upload'
required: false
default: 'false'
files:
description: 'Comma-separated list of explicit files to upload. These will be added to the coverage files found for upload. If you wish to only upload the specified files, please consider using disable-search to disable uploading other files.'
functionalities:
description: 'Comma-separated list, see the README for options and their usage. Options include `network`, `fixes`, `search`.'
required: false
flags:
description: 'Comma-separated list of flags to upload to group coverage metrics.'
gcov:
description: 'Run with gcov support'
required: false
force:
description: 'Only used for empty-upload run command'
required: false
git_service:
description: 'Override the git_service (e.g. github_enterprise)'
required: false
default: 'github'
gcov_args:
description: 'Extra arguments to pass to gcov'
required: false
gcov_executable:
description: "gcov executable to run. Defaults to 'gcov'"
description: 'gcov executable to run. Defaults to gcov'
required: false
default: 'gcov'
gcov_ignore:
description: 'Paths to ignore during gcov gathering'
required: false
gcov_include:
description: "Paths to include during gcov gathering"
description: 'Paths to include during gcov gathering'
required: false
handle_no_reports_found:
description: 'If no coverage reports are found, do not raise an exception.'
required: false
default: 'false'
job_code:
description: ''
move_coverage_to_trash:
description: 'Move discovered coverage reports to the trash'
required: false
name:
description: 'Custom defined name of the upload. Visible in the Codecov UI'
description: 'User defined upload name. Visible in Codecov UI'
required: false
network_filter:
description: 'Specify a filter on the files listed in the network section of the Codecov report. This will only add files whose path begin with the specified filter. Useful for upload-specific path fixing.'
description: 'Specify a filter on the files listed in the network section of the Codecov report. Useful for upload-specific path fixing'
required: false
network_prefix:
description: 'Specify a prefix on files listed in the network section of the Codecov report. Useful to help resolve path fixing.'
description: 'Specify a prefix on files listed in the network section of the Codecov report. Useful to help resolve path fixing'
required: false
os:
description: 'Override the assumed OS. Options available at cli.codecov.io'
description: 'Override the assumed OS. Options are aarch64 | alpine | linux | macos | windows.'
required: false
override_branch:
description: 'Specify the branch to be displayed with this commit on Codecov'
description: 'Specify the branch name'
required: false
override_build:
description: 'Specify the build number manually'
required: false
override_build_url:
description: 'The URL of the build where this is running'
description: 'Specify the build number'
required: false
override_commit:
description: 'Commit SHA (with 40 chars)'
description: 'Specify the commit SHA'
required: false
override_pr:
description: 'Specify the pull request number manually. Used to override pre-existing CI environment variables.'
description: 'Specify the pull request number'
required: false
plugins:
description: 'Comma-separated list of plugins to run. Specify `noop` to turn off all plugins'
required: false
report_code:
description: 'The code of the report if using local upload. If unsure, leave default. Read more here https://docs.codecov.com/docs/the-codecov-cli#how-to-use-local-upload'
required: false
report_type:
description: 'The type of file to upload, coverage by default. Possible values are "testing", "coverage".'
override_tag:
description: 'Specify the git tag'
required: false
root_dir:
description: 'Root folder from which to consider paths on the network section. Defaults to current working directory.'
description: 'Used when not in git/hg project to identify project root directory'
required: false
run_command:
description: 'Choose which CLI command to run. Options are "upload-coverage", "empty-upload", "pr-base-picking", "send-notifications". "upload-coverage" is run by default.'
required: false
default: 'upload-coverage'
skip_validation:
description: 'Skip integrity checking of the CLI. This is NOT recommended.'
required: false
default: 'false'
slug:
description: '[Required when using the org token] Set to the owner/repo slug used instead of the private repo token. Only applicable to some Enterprise users.'
description: 'Specify the slug manually (Enterprise use)'
required: false
swift:
description: 'Run with swift coverage support'
required: false
swift_project:
description: 'Specify the swift project name. Useful for optimization.'
description: 'Specify the swift project to speed up coverage conversion'
required: false
token:
description: 'Repository Codecov token. Used to authorize report uploads'
upstream_proxy:
description: 'The upstream http proxy server to connect through'
required: false
url:
description: 'Set to the Codecov instance URl. Used by Dedicated Enterprise Cloud customers.'
description: 'Change the upload host (Enterprise use)'
required: false
use_legacy_upload_endpoint:
description: 'Use the legacy upload endpoint.'
required: false
default: 'false'
use_oidc:
description: 'Use OIDC instead of token. This will ignore any token supplied'
required: false
default: 'false'
use_pypi:
description: 'Use the pypi version of the CLI instead of from cli.codecov.io'
required: false
default: 'false'
verbose:
description: 'Enable verbose logging'
description: 'Specify whether the Codecov output should be verbose'
required: false
default: 'false'
version:
description: "Which version of the Codecov CLI to use (defaults to 'latest')"
description: 'Specify which version of the Codecov Uploader should be used. Defaults to `latest`'
required: false
default: 'latest'
working-directory:
description: 'Directory in which to execute codecov.sh'
required: false
xcode:
description: 'Run with xcode support'
required: false
xcode_archive_path:
description: 'Specify the xcode archive path. Likely specified as the -resultBundlePath and should end in .xcresult'
required: false
xtra_args:
description: 'Add additional uploader args that may be missing in the Action'
required: false
branding:
color: 'red'
icon: 'umbrella'
runs:
using: "composite"
steps:
- name: Action version
shell: bash
run: |
CC_ACTION_VERSION=$(cat ${GITHUB_ACTION_PATH}/src/version)
echo -e "\033[0;32m==>\033[0m Running Action version $CC_ACTION_VERSION"
- name: Set safe directory
if: ${{ inputs.disable_safe_directory != 'true' }}
shell: bash
run: |
git config --global --add safe.directory ${{ github.workspace }}
- name: Set fork
shell: bash
run: |
CC_FORK="false"
if [ -n "$GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FULL_NAME" ] && [ "$GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FULL_NAME" != "$GITHUB_REPOSITORY" ];
then
echo -e "\033[0;32m==>\033[0m Fork detected"
CC_FORK="true"
fi
echo "CC_FORK=$CC_FORK" >> "$GITHUB_ENV"
env:
GITHUB_EVENT_PULL_REQUEST_HEAD_LABEL: ${{ github.event.pull_request.head.label }}
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FULL_NAME: ${{ github.event.pull_request.head.repo.full_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
- name: Get and set token
shell: bash
run: |
if [ "${{ inputs.use_oidc }}" == 'true' ] && [ "$CC_FORK" != 'true' ];
then
# {"count":1984,"value":"***"}
echo -e "\033[0;32m==>\033[0m Requesting OIDC token from '$ACTIONS_ID_TOKEN_REQUEST_URL'"
CC_TOKEN=$(curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=$CC_OIDC_AUDIENCE" | cut -d\" -f6)
echo "CC_TOKEN=$CC_TOKEN" >> "$GITHUB_ENV"
elif [ -n "${{ env.CODECOV_TOKEN }}" ];
then
echo -e "\033[0;32m==>\033[0m Token set from env"
echo "CC_TOKEN=${{ env.CODECOV_TOKEN }}" >> "$GITHUB_ENV"
else
if [ -n "${{ inputs.token }}" ];
then
echo -e "\033[0;32m==>\033[0m Token set from input"
CC_TOKEN=$(echo "${{ inputs.token }}" | tr -d '\n')
echo "CC_TOKEN=$CC_TOKEN" >> "$GITHUB_ENV"
fi
fi
env:
CC_OIDC_AUDIENCE: ${{ inputs.url || 'https://codecov.io' }}
- name: Override branch for forks
shell: bash
run: |
if [ -z "$CC_BRANCH" ] && [ -z "$CC_TOKEN" ] && [ "$CC_FORK" == 'true' ]
then
echo -e "\033[0;32m==>\033[0m Fork detected, setting branch to $GITHUB_EVENT_PULL_REQUEST_HEAD_LABEL"
TOKENLESS="$GITHUB_EVENT_PULL_REQUEST_HEAD_LABEL"
CC_BRANCH="$GITHUB_EVENT_PULL_REQUEST_HEAD_LABEL"
echo "TOKENLESS=$TOKENLESS" >> "$GITHUB_ENV"
fi
echo "CC_BRANCH=$CC_BRANCH" >> "$GITHUB_ENV"
env:
CC_BRANCH: ${{ inputs.override_branch }}
GITHUB_EVENT_PULL_REQUEST_HEAD_LABEL: ${{ github.event.pull_request.head.label }}
GITHUB_EVENT_PULL_REQUEST_HEAD_REPO_FULL_NAME: ${{ github.event.pull_request.head.repo.full_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
- name: Override commits and pr for pull requests
shell: bash
run: |
if [ -z "$CC_SHA" ];
then
CC_SHA="$GITHUB_EVENT_PULL_REQUEST_HEAD_SHA"
fi
if [ -z "$CC_PR" ] && [ "${GITHUB_EVENT_NAME}" == "pull_request_target" ];
then
CC_PR="$GITHUB_EVENT_NUMBER"
fi
echo "CC_SHA=$CC_SHA" >> "$GITHUB_ENV"
echo "CC_PR=$CC_PR" >> "$GITHUB_ENV"
env:
CC_PR: ${{ inputs.override_pr }}
CC_SHA: ${{ inputs.override_commit }}
GITHUB_EVENT_NAME: ${{ github.event_name }}
GITHUB_EVENT_NUMBER: ${{ github.event.number }}
GITHUB_EVENT_PULL_REQUEST_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
- name: Upload coverage to Codecov
run: ${GITHUB_ACTION_PATH}/dist/codecov.sh
shell: bash
working-directory: ${{ inputs.working-directory }}
env:
CC_BASE_SHA: ${{ inputs.base_sha }}
CC_BINARY: ${{ inputs.binary }}
CC_BUILD: ${{ inputs.override_build }}
CC_BUILD_URL: ${{ inputs.override_build_url }}
CC_CODE: ${{ inputs.report_code }}
CC_DIR: ${{ inputs.directory }}
CC_DISABLE_FILE_FIXES: ${{ inputs.disable_file_fixes }}
CC_DISABLE_SEARCH: ${{ inputs.disable_search }}
CC_DISABLE_TELEM: ${{ inputs.disable_telem }}
CC_DRY_RUN: ${{ inputs.dry_run }}
CC_ENTERPRISE_URL: ${{ inputs.url }}
CC_ENV: ${{ inputs.env_vars }}
CC_EXCLUDES: ${{ inputs.exclude }}
CC_FAIL_ON_ERROR: ${{ inputs.fail_ci_if_error }}
CC_FILES: ${{ inputs.files }}
CC_FLAGS: ${{ inputs.flags }}
CC_FORCE: ${{ inputs.force }}
CC_GCOV_ARGS: ${{ inputs.gcov_args }}
CC_GCOV_EXECUTABLE: ${{ inputs.gcov_executable }}
CC_GCOV_IGNORE: ${{ inputs.gcov_ignore }}
CC_GCOV_INCLUDE: ${{ inputs.gcov_include }}
CC_GIT_SERVICE: ${{ inputs.git_service }}
CC_HANDLE_NO_REPORTS_FOUND: ${{ inputs.handle_no_reports_found }}
CC_JOB_CODE: ${{ inputs.job_code }}
CC_LEGACY: ${{ inputs.use_legacy_upload_endpoint }}
CC_NAME: ${{ inputs.name }}
CC_NETWORK_FILTER: ${{ inputs.network_filter }}
CC_NETWORK_PREFIX: ${{ inputs.network_prefix }}
CC_NETWORK_ROOT_FOLDER: ${{ inputs.root_dir }}
CC_OS: ${{ inputs.os }}
CC_PARENT_SHA: ${{ inputs.commit_parent }}
CC_PLUGINS: ${{ inputs.plugins }}
CC_REPORT_TYPE: ${{ inputs.report_type }}
CC_RUN_CMD: ${{ inputs.run_command }}
CC_SERVICE: ${{ inputs.git_service }}
CC_SKIP_VALIDATION: ${{ inputs.skip_validation }}
CC_SLUG: ${{ inputs.slug }}
CC_SWIFT_PROJECT: ${{ inputs.swift_project }}
CC_USE_PYPI: ${{ inputs.use_pypi }}
CC_VERBOSE: ${{ inputs.verbose }}
CC_VERSION: ${{ inputs.version }}
CC_YML_PATH: ${{ inputs.codecov_yml_path }}
using: 'node16'
main: 'dist/index.js'

View File

@@ -1,76 +0,0 @@
import json
import re
import subprocess
def update_changelog():
with open('src/version', 'r') as f:
version = f.read()
changelog = [f"## v{version}"]
changelog.append("### What\'s Changed")
with open('CHANGELOG.md', 'r') as f:
previous = f.readline().replace("##", '').strip()
if previous == version:
print(f"No changes to version {version}")
return
print(f"Adding logs from {previous}..v{version}")
raw_current_branch = subprocess.run([
"git",
"branch",
"--show-current",
], capture_output=True)
current_branch = raw_current_branch.stdout.decode('utf-8').strip()
raw_commits = subprocess.run([
"git",
"log",
f"{previous}..{current_branch}",
"--oneline",
], capture_output=True)
commits = [line[:7] for line in raw_commits.stdout.decode('utf-8').split('\n')]
print(commits)
prs = set()
for commit in commits:
if not commit:
continue
commit_output = subprocess.run([
'gh',
'pr',
'list',
'--json',
'author,number,title,url',
'--search',
f'"{commit}"',
'--state',
'merged',
], capture_output=True)
commit_details = commit_output.stdout.decode('utf-8')
if not commit_details or not json.loads(commit_details):
continue
commit_details = json.loads(commit_details)[0]
if not commit_details['number']:
continue
if commit_details['number'] in prs:
continue
prs.add(commit_details['number'])
changelog.append(f"* {commit_details['title']} by @{commit_details['author']['login']} in {commit_details['url']}")
changelog.append('\n')
changelog.append(f"**Full Changelog**: https://github.com/codecov/codecov-action/compare/{previous}..v{version}\n")
with open('CHANGELOG.md', 'r') as f:
for line in f:
changelog.append(line.strip())
with open('CHANGELOG.md', 'w') as f:
f.write('\n'.join(changelog))
if __name__=="__main__":
update_changelog()

453
dist/37.index.js vendored Normal file
View File

@@ -0,0 +1,453 @@
"use strict";
exports.id = 37;
exports.ids = [37];
exports.modules = {
/***/ 4037:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "toFormData": () => (/* binding */ toFormData)
/* harmony export */ });
/* harmony import */ var fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2777);
/* harmony import */ var formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8010);
let s = 0;
const S = {
START_BOUNDARY: s++,
HEADER_FIELD_START: s++,
HEADER_FIELD: s++,
HEADER_VALUE_START: s++,
HEADER_VALUE: s++,
HEADER_VALUE_ALMOST_DONE: s++,
HEADERS_ALMOST_DONE: s++,
PART_DATA_START: s++,
PART_DATA: s++,
END: s++
};
let f = 1;
const F = {
PART_BOUNDARY: f,
LAST_BOUNDARY: f *= 2
};
const LF = 10;
const CR = 13;
const SPACE = 32;
const HYPHEN = 45;
const COLON = 58;
const A = 97;
const Z = 122;
const lower = c => c | 0x20;
const noop = () => {};
class MultipartParser {
/**
* @param {string} boundary
*/
constructor(boundary) {
this.index = 0;
this.flags = 0;
this.onHeaderEnd = noop;
this.onHeaderField = noop;
this.onHeadersEnd = noop;
this.onHeaderValue = noop;
this.onPartBegin = noop;
this.onPartData = noop;
this.onPartEnd = noop;
this.boundaryChars = {};
boundary = '\r\n--' + boundary;
const ui8a = new Uint8Array(boundary.length);
for (let i = 0; i < boundary.length; i++) {
ui8a[i] = boundary.charCodeAt(i);
this.boundaryChars[ui8a[i]] = true;
}
this.boundary = ui8a;
this.lookbehind = new Uint8Array(this.boundary.length + 8);
this.state = S.START_BOUNDARY;
}
/**
* @param {Uint8Array} data
*/
write(data) {
let i = 0;
const length_ = data.length;
let previousIndex = this.index;
let {lookbehind, boundary, boundaryChars, index, state, flags} = this;
const boundaryLength = this.boundary.length;
const boundaryEnd = boundaryLength - 1;
const bufferLength = data.length;
let c;
let cl;
const mark = name => {
this[name + 'Mark'] = i;
};
const clear = name => {
delete this[name + 'Mark'];
};
const callback = (callbackSymbol, start, end, ui8a) => {
if (start === undefined || start !== end) {
this[callbackSymbol](ui8a && ui8a.subarray(start, end));
}
};
const dataCallback = (name, clear) => {
const markSymbol = name + 'Mark';
if (!(markSymbol in this)) {
return;
}
if (clear) {
callback(name, this[markSymbol], i, data);
delete this[markSymbol];
} else {
callback(name, this[markSymbol], data.length, data);
this[markSymbol] = 0;
}
};
for (i = 0; i < length_; i++) {
c = data[i];
switch (state) {
case S.START_BOUNDARY:
if (index === boundary.length - 2) {
if (c === HYPHEN) {
flags |= F.LAST_BOUNDARY;
} else if (c !== CR) {
return;
}
index++;
break;
} else if (index - 1 === boundary.length - 2) {
if (flags & F.LAST_BOUNDARY && c === HYPHEN) {
state = S.END;
flags = 0;
} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {
index = 0;
callback('onPartBegin');
state = S.HEADER_FIELD_START;
} else {
return;
}
break;
}
if (c !== boundary[index + 2]) {
index = -2;
}
if (c === boundary[index + 2]) {
index++;
}
break;
case S.HEADER_FIELD_START:
state = S.HEADER_FIELD;
mark('onHeaderField');
index = 0;
// falls through
case S.HEADER_FIELD:
if (c === CR) {
clear('onHeaderField');
state = S.HEADERS_ALMOST_DONE;
break;
}
index++;
if (c === HYPHEN) {
break;
}
if (c === COLON) {
if (index === 1) {
// empty header field
return;
}
dataCallback('onHeaderField', true);
state = S.HEADER_VALUE_START;
break;
}
cl = lower(c);
if (cl < A || cl > Z) {
return;
}
break;
case S.HEADER_VALUE_START:
if (c === SPACE) {
break;
}
mark('onHeaderValue');
state = S.HEADER_VALUE;
// falls through
case S.HEADER_VALUE:
if (c === CR) {
dataCallback('onHeaderValue', true);
callback('onHeaderEnd');
state = S.HEADER_VALUE_ALMOST_DONE;
}
break;
case S.HEADER_VALUE_ALMOST_DONE:
if (c !== LF) {
return;
}
state = S.HEADER_FIELD_START;
break;
case S.HEADERS_ALMOST_DONE:
if (c !== LF) {
return;
}
callback('onHeadersEnd');
state = S.PART_DATA_START;
break;
case S.PART_DATA_START:
state = S.PART_DATA;
mark('onPartData');
// falls through
case S.PART_DATA:
previousIndex = index;
if (index === 0) {
// boyer-moore derrived algorithm to safely skip non-boundary data
i += boundaryEnd;
while (i < bufferLength && !(data[i] in boundaryChars)) {
i += boundaryLength;
}
i -= boundaryEnd;
c = data[i];
}
if (index < boundary.length) {
if (boundary[index] === c) {
if (index === 0) {
dataCallback('onPartData', true);
}
index++;
} else {
index = 0;
}
} else if (index === boundary.length) {
index++;
if (c === CR) {
// CR = part boundary
flags |= F.PART_BOUNDARY;
} else if (c === HYPHEN) {
// HYPHEN = end boundary
flags |= F.LAST_BOUNDARY;
} else {
index = 0;
}
} else if (index - 1 === boundary.length) {
if (flags & F.PART_BOUNDARY) {
index = 0;
if (c === LF) {
// unset the PART_BOUNDARY flag
flags &= ~F.PART_BOUNDARY;
callback('onPartEnd');
callback('onPartBegin');
state = S.HEADER_FIELD_START;
break;
}
} else if (flags & F.LAST_BOUNDARY) {
if (c === HYPHEN) {
callback('onPartEnd');
state = S.END;
flags = 0;
} else {
index = 0;
}
} else {
index = 0;
}
}
if (index > 0) {
// when matching a possible boundary, keep a lookbehind reference
// in case it turns out to be a false lead
lookbehind[index - 1] = c;
} else if (previousIndex > 0) {
// if our boundary turned out to be rubbish, the captured lookbehind
// belongs to partData
const _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);
callback('onPartData', 0, previousIndex, _lookbehind);
previousIndex = 0;
mark('onPartData');
// reconsider the current character even so it interrupted the sequence
// it could be the beginning of a new sequence
i--;
}
break;
case S.END:
break;
default:
throw new Error(`Unexpected state entered: ${state}`);
}
}
dataCallback('onHeaderField');
dataCallback('onHeaderValue');
dataCallback('onPartData');
// Update properties for the next call
this.index = index;
this.state = state;
this.flags = flags;
}
end() {
if ((this.state === S.HEADER_FIELD_START && this.index === 0) ||
(this.state === S.PART_DATA && this.index === this.boundary.length)) {
this.onPartEnd();
} else if (this.state !== S.END) {
throw new Error('MultipartParser.end(): stream ended unexpectedly');
}
}
}
function _fileName(headerValue) {
// matches either a quoted-string or a token (RFC 2616 section 19.5.1)
const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
if (!m) {
return;
}
const match = m[2] || m[3] || '';
let filename = match.slice(match.lastIndexOf('\\') + 1);
filename = filename.replace(/%22/g, '"');
filename = filename.replace(/&#(\d{4});/g, (m, code) => {
return String.fromCharCode(code);
});
return filename;
}
async function toFormData(Body, ct) {
if (!/multipart/i.test(ct)) {
throw new TypeError('Failed to fetch');
}
const m = ct.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
if (!m) {
throw new TypeError('no or bad content-type header, no multipart boundary');
}
const parser = new MultipartParser(m[1] || m[2]);
let headerField;
let headerValue;
let entryValue;
let entryName;
let contentType;
let filename;
const entryChunks = [];
const formData = new formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__/* .FormData */ .Ct();
const onPartData = ui8a => {
entryValue += decoder.decode(ui8a, {stream: true});
};
const appendToFile = ui8a => {
entryChunks.push(ui8a);
};
const appendFileToFormData = () => {
const file = new fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__/* .File */ .$B(entryChunks, filename, {type: contentType});
formData.append(entryName, file);
};
const appendEntryToFormData = () => {
formData.append(entryName, entryValue);
};
const decoder = new TextDecoder('utf-8');
decoder.decode();
parser.onPartBegin = function () {
parser.onPartData = onPartData;
parser.onPartEnd = appendEntryToFormData;
headerField = '';
headerValue = '';
entryValue = '';
entryName = '';
contentType = '';
filename = null;
entryChunks.length = 0;
};
parser.onHeaderField = function (ui8a) {
headerField += decoder.decode(ui8a, {stream: true});
};
parser.onHeaderValue = function (ui8a) {
headerValue += decoder.decode(ui8a, {stream: true});
};
parser.onHeaderEnd = function () {
headerValue += decoder.decode();
headerField = headerField.toLowerCase();
if (headerField === 'content-disposition') {
// matches either a quoted-string or a token (RFC 2616 section 19.5.1)
const m = headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);
if (m) {
entryName = m[2] || m[3] || '';
}
filename = _fileName(headerValue);
if (filename) {
parser.onPartData = appendToFile;
parser.onPartEnd = appendFileToFormData;
}
} else if (headerField === 'content-type') {
contentType = headerValue;
}
headerValue = '';
headerField = '';
};
for await (const chunk of Body) {
parser.write(chunk);
}
parser.end();
return formData;
}
/***/ })
};
;
//# sourceMappingURL=37.index.js.map

1
dist/37.index.js.map vendored Normal file

File diff suppressed because one or more lines are too long

453
dist/629.index.js vendored Normal file
View File

@@ -0,0 +1,453 @@
exports.id = 629;
exports.ids = [629];
exports.modules = {
/***/ 6629:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "toFormData": () => (/* binding */ toFormData)
/* harmony export */ });
/* harmony import */ var fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4818);
/* harmony import */ var formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1402);
let s = 0;
const S = {
START_BOUNDARY: s++,
HEADER_FIELD_START: s++,
HEADER_FIELD: s++,
HEADER_VALUE_START: s++,
HEADER_VALUE: s++,
HEADER_VALUE_ALMOST_DONE: s++,
HEADERS_ALMOST_DONE: s++,
PART_DATA_START: s++,
PART_DATA: s++,
END: s++
};
let f = 1;
const F = {
PART_BOUNDARY: f,
LAST_BOUNDARY: f *= 2
};
const LF = 10;
const CR = 13;
const SPACE = 32;
const HYPHEN = 45;
const COLON = 58;
const A = 97;
const Z = 122;
const lower = c => c | 0x20;
const noop = () => {};
class MultipartParser {
/**
* @param {string} boundary
*/
constructor(boundary) {
this.index = 0;
this.flags = 0;
this.onHeaderEnd = noop;
this.onHeaderField = noop;
this.onHeadersEnd = noop;
this.onHeaderValue = noop;
this.onPartBegin = noop;
this.onPartData = noop;
this.onPartEnd = noop;
this.boundaryChars = {};
boundary = '\r\n--' + boundary;
const ui8a = new Uint8Array(boundary.length);
for (let i = 0; i < boundary.length; i++) {
ui8a[i] = boundary.charCodeAt(i);
this.boundaryChars[ui8a[i]] = true;
}
this.boundary = ui8a;
this.lookbehind = new Uint8Array(this.boundary.length + 8);
this.state = S.START_BOUNDARY;
}
/**
* @param {Uint8Array} data
*/
write(data) {
let i = 0;
const length_ = data.length;
let previousIndex = this.index;
let {lookbehind, boundary, boundaryChars, index, state, flags} = this;
const boundaryLength = this.boundary.length;
const boundaryEnd = boundaryLength - 1;
const bufferLength = data.length;
let c;
let cl;
const mark = name => {
this[name + 'Mark'] = i;
};
const clear = name => {
delete this[name + 'Mark'];
};
const callback = (callbackSymbol, start, end, ui8a) => {
if (start === undefined || start !== end) {
this[callbackSymbol](ui8a && ui8a.subarray(start, end));
}
};
const dataCallback = (name, clear) => {
const markSymbol = name + 'Mark';
if (!(markSymbol in this)) {
return;
}
if (clear) {
callback(name, this[markSymbol], i, data);
delete this[markSymbol];
} else {
callback(name, this[markSymbol], data.length, data);
this[markSymbol] = 0;
}
};
for (i = 0; i < length_; i++) {
c = data[i];
switch (state) {
case S.START_BOUNDARY:
if (index === boundary.length - 2) {
if (c === HYPHEN) {
flags |= F.LAST_BOUNDARY;
} else if (c !== CR) {
return;
}
index++;
break;
} else if (index - 1 === boundary.length - 2) {
if (flags & F.LAST_BOUNDARY && c === HYPHEN) {
state = S.END;
flags = 0;
} else if (!(flags & F.LAST_BOUNDARY) && c === LF) {
index = 0;
callback('onPartBegin');
state = S.HEADER_FIELD_START;
} else {
return;
}
break;
}
if (c !== boundary[index + 2]) {
index = -2;
}
if (c === boundary[index + 2]) {
index++;
}
break;
case S.HEADER_FIELD_START:
state = S.HEADER_FIELD;
mark('onHeaderField');
index = 0;
// falls through
case S.HEADER_FIELD:
if (c === CR) {
clear('onHeaderField');
state = S.HEADERS_ALMOST_DONE;
break;
}
index++;
if (c === HYPHEN) {
break;
}
if (c === COLON) {
if (index === 1) {
// empty header field
return;
}
dataCallback('onHeaderField', true);
state = S.HEADER_VALUE_START;
break;
}
cl = lower(c);
if (cl < A || cl > Z) {
return;
}
break;
case S.HEADER_VALUE_START:
if (c === SPACE) {
break;
}
mark('onHeaderValue');
state = S.HEADER_VALUE;
// falls through
case S.HEADER_VALUE:
if (c === CR) {
dataCallback('onHeaderValue', true);
callback('onHeaderEnd');
state = S.HEADER_VALUE_ALMOST_DONE;
}
break;
case S.HEADER_VALUE_ALMOST_DONE:
if (c !== LF) {
return;
}
state = S.HEADER_FIELD_START;
break;
case S.HEADERS_ALMOST_DONE:
if (c !== LF) {
return;
}
callback('onHeadersEnd');
state = S.PART_DATA_START;
break;
case S.PART_DATA_START:
state = S.PART_DATA;
mark('onPartData');
// falls through
case S.PART_DATA:
previousIndex = index;
if (index === 0) {
// boyer-moore derrived algorithm to safely skip non-boundary data
i += boundaryEnd;
while (i < bufferLength && !(data[i] in boundaryChars)) {
i += boundaryLength;
}
i -= boundaryEnd;
c = data[i];
}
if (index < boundary.length) {
if (boundary[index] === c) {
if (index === 0) {
dataCallback('onPartData', true);
}
index++;
} else {
index = 0;
}
} else if (index === boundary.length) {
index++;
if (c === CR) {
// CR = part boundary
flags |= F.PART_BOUNDARY;
} else if (c === HYPHEN) {
// HYPHEN = end boundary
flags |= F.LAST_BOUNDARY;
} else {
index = 0;
}
} else if (index - 1 === boundary.length) {
if (flags & F.PART_BOUNDARY) {
index = 0;
if (c === LF) {
// unset the PART_BOUNDARY flag
flags &= ~F.PART_BOUNDARY;
callback('onPartEnd');
callback('onPartBegin');
state = S.HEADER_FIELD_START;
break;
}
} else if (flags & F.LAST_BOUNDARY) {
if (c === HYPHEN) {
callback('onPartEnd');
state = S.END;
flags = 0;
} else {
index = 0;
}
} else {
index = 0;
}
}
if (index > 0) {
// when matching a possible boundary, keep a lookbehind reference
// in case it turns out to be a false lead
lookbehind[index - 1] = c;
} else if (previousIndex > 0) {
// if our boundary turned out to be rubbish, the captured lookbehind
// belongs to partData
const _lookbehind = new Uint8Array(lookbehind.buffer, lookbehind.byteOffset, lookbehind.byteLength);
callback('onPartData', 0, previousIndex, _lookbehind);
previousIndex = 0;
mark('onPartData');
// reconsider the current character even so it interrupted the sequence
// it could be the beginning of a new sequence
i--;
}
break;
case S.END:
break;
default:
throw new Error(`Unexpected state entered: ${state}`);
}
}
dataCallback('onHeaderField');
dataCallback('onHeaderValue');
dataCallback('onPartData');
// Update properties for the next call
this.index = index;
this.state = state;
this.flags = flags;
}
end() {
if ((this.state === S.HEADER_FIELD_START && this.index === 0) ||
(this.state === S.PART_DATA && this.index === this.boundary.length)) {
this.onPartEnd();
} else if (this.state !== S.END) {
throw new Error('MultipartParser.end(): stream ended unexpectedly');
}
}
}
function _fileName(headerValue) {
// matches either a quoted-string or a token (RFC 2616 section 19.5.1)
const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
if (!m) {
return;
}
const match = m[2] || m[3] || '';
let filename = match.slice(match.lastIndexOf('\\') + 1);
filename = filename.replace(/%22/g, '"');
filename = filename.replace(/&#(\d{4});/g, (m, code) => {
return String.fromCharCode(code);
});
return filename;
}
async function toFormData(Body, ct) {
if (!/multipart/i.test(ct)) {
throw new TypeError('Failed to fetch');
}
const m = ct.match(/boundary=(?:"([^"]+)"|([^;]+))/i);
if (!m) {
throw new TypeError('no or bad content-type header, no multipart boundary');
}
const parser = new MultipartParser(m[1] || m[2]);
let headerField;
let headerValue;
let entryValue;
let entryName;
let contentType;
let filename;
const entryChunks = [];
const formData = new formdata_polyfill_esm_min_js__WEBPACK_IMPORTED_MODULE_1__/* .FormData */ .Ct();
const onPartData = ui8a => {
entryValue += decoder.decode(ui8a, {stream: true});
};
const appendToFile = ui8a => {
entryChunks.push(ui8a);
};
const appendFileToFormData = () => {
const file = new fetch_blob_from_js__WEBPACK_IMPORTED_MODULE_0__/* .File */ .$B(entryChunks, filename, {type: contentType});
formData.append(entryName, file);
};
const appendEntryToFormData = () => {
formData.append(entryName, entryValue);
};
const decoder = new TextDecoder('utf-8');
decoder.decode();
parser.onPartBegin = function () {
parser.onPartData = onPartData;
parser.onPartEnd = appendEntryToFormData;
headerField = '';
headerValue = '';
entryValue = '';
entryName = '';
contentType = '';
filename = null;
entryChunks.length = 0;
};
parser.onHeaderField = function (ui8a) {
headerField += decoder.decode(ui8a, {stream: true});
};
parser.onHeaderValue = function (ui8a) {
headerValue += decoder.decode(ui8a, {stream: true});
};
parser.onHeaderEnd = function () {
headerValue += decoder.decode();
headerField = headerField.toLowerCase();
if (headerField === 'content-disposition') {
// matches either a quoted-string or a token (RFC 2616 section 19.5.1)
const m = headerValue.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);
if (m) {
entryName = m[2] || m[3] || '';
}
filename = _fileName(headerValue);
if (filename) {
parser.onPartData = appendToFile;
parser.onPartEnd = appendFileToFormData;
}
} else if (headerField === 'content-type') {
contentType = headerValue;
}
headerValue = '';
headerField = '';
};
for await (const chunk of Body) {
parser.write(chunk);
}
parser.end();
return formData;
}
/***/ })
};
;
//# sourceMappingURL=629.index.js.map

1
dist/629.index.js.map vendored Normal file

File diff suppressed because one or more lines are too long

258
dist/codecov.sh vendored
View File

@@ -1,258 +0,0 @@
#!/usr/bin/env bash
CC_WRAPPER_VERSION="0.1.0"
set +u
say() {
echo -e "$1"
}
exit_if_error() {
say "$r==> $1$x"
if [ "$CC_FAIL_ON_ERROR" = true ];
then
say "$r Exiting...$x"
exit 1;
fi
}
lower() {
echo $(echo $1 | sed 's/CC//' | sed 's/_/-/g' | tr '[:upper:]' '[:lower:]')
}
k_arg() {
if [ -n "$(eval echo \$"CC_$1")" ];
then
echo "--$(lower "$1")"
fi
}
v_arg() {
if [ -n "$(eval echo \$"CC_$1")" ];
then
echo "$(eval echo \$"CC_$1")"
fi
}
write_truthy_args() {
if [ "$(eval echo \$$1)" = "true" ] || [ "$(eval echo \$$1)" = "1" ];
then
echo "-$(lower $1)"
fi
}
b="\033[0;36m" # variables/constants
g="\033[0;32m" # info/debug
r="\033[0;31m" # errors
x="\033[0m"
say " _____ _
/ ____| | |
| | ___ __| | ___ ___ _____ __
| | / _ \\ / _\` |/ _ \\/ __/ _ \\ \\ / /
| |___| (_) | (_| | __/ (_| (_) \\ V /
\\_____\\___/ \\__,_|\\___|\\___\\___/ \\_/
$r Wrapper-$CC_WRAPPER_VERSION$x
"
CC_VERSION="${CC_VERSION:-latest}"
CC_FAIL_ON_ERROR="${CC_FAIL_ON_ERROR:-false}"
CC_RUN_CMD="${CC_RUN_CMD:-upload-coverage}"
if [ -n "$CC_BINARY" ];
then
if [ -f "$CC_BINARY" ];
then
cc_filename=$CC_BINARY
cc_command=$CC_BINARY
else
exit_if_error "Could not find binary file $CC_BINARY"
fi
elif [ "$CC_USE_PYPI" == "true" ];
then
if ! pip install codecov-cli"$([ "$CC_VERSION" == "latest" ] && echo "" || echo "==$CC_VERSION" )"; then
exit_if_error "Could not install via pypi."
exit
fi
cc_command="codecovcli"
else
if [ -n "$CC_OS" ];
then
say "$g==>$x Overridden OS: $b${CC_OS}$x"
else
CC_OS="windows"
family=$(uname -s | tr '[:upper:]' '[:lower:]')
[[ $family == "darwin" ]] && CC_OS="macos"
[[ $family == "linux" ]] && CC_OS="linux"
[[ $CC_OS == "linux" ]] && \
osID=$(grep -e "^ID=" /etc/os-release | cut -c4-)
[[ $osID == "alpine" ]] && CC_OS="alpine"
[[ $(arch) == "aarch64" && $family == "linux" ]] && CC_OS+="-arm64"
say "$g==>$x Detected $b${CC_OS}$x"
fi
cc_filename="codecov"
[[ $CC_OS == "windows" ]] && cc_filename+=".exe"
cc_command="./$cc_filename"
[[ $CC_OS == "macos" ]] && \
! command -v gpg 2>&1 >/dev/null && \
HOMEBREW_NO_AUTO_UPDATE=1 brew install gpg
cc_url="https://cli.codecov.io"
cc_url="$cc_url/${CC_VERSION}"
cc_url="$cc_url/${CC_OS}/${cc_filename}"
say "$g ->$x Downloading $b${cc_url}$x"
curl -O --retry 5 --retry-delay 2 "$cc_url"
say "$g==>$x Finishing downloading $b${CC_OS}:${CC_VERSION}$x"
version_url="https://cli.codecov.io/api/${CC_OS}/${CC_VERSION}"
version=$(curl -s "$version_url" -H "Accept:application/json" | tr \{ '\n' | tr , '\n' | tr \} '\n' | grep "\"version\"" | awk -F'"' '{print $4}' | tail -1)
say " Version: $b$version$x"
say " "
fi
if [ "$CC_SKIP_VALIDATION" == "true" ] || [ -n "$CC_BINARY" ] || [ "$CC_USE_PYPI" == "true" ];
then
say "$r==>$x Bypassing validation..."
else
CC_PUBLIC_PGP_KEY=$(curl -s https://keybase.io/codecovsecurity/pgp_keys.asc)
echo "${CC_PUBLIC_PGP_KEY}" | \
gpg --no-default-keyring --import
# One-time step
say "$g==>$x Verifying GPG signature integrity"
sha_url="https://cli.codecov.io"
sha_url="${sha_url}/${CC_VERSION}/${CC_OS}"
sha_url="${sha_url}/${cc_filename}.SHA256SUM"
say "$g ->$x Downloading $b${sha_url}$x"
say "$g ->$x Downloading $b${sha_url}.sig$x"
say " "
curl -Os --retry 5 --retry-delay 2 --connect-timeout 2 "$sha_url"
curl -Os --retry 5 --retry-delay 2 --connect-timeout 2 "${sha_url}.sig"
if ! gpg --verify "${cc_filename}.SHA256SUM.sig" "${cc_filename}.SHA256SUM";
then
exit_if_error "Could not verify signature. Please contact Codecov if problem continues"
fi
if ! (shasum -a 256 -c "${cc_filename}.SHA256SUM" 2>/dev/null || \
sha256sum -c "${cc_filename}.SHA256SUM");
then
exit_if_error "Could not verify SHASUM. Please contact Codecov if problem continues"
fi
say "$g==>$x CLI integrity verified"
say
chmod +x "$cc_command"
fi
if [ -n "$CC_BINARY_LOCATION" ];
then
mkdir -p "$CC_BINARY_LOCATION" && mv "$cc_filename" $_
say "$g==>$x Codecov binary moved to ${CC_BINARY_LOCATION}"
fi
if [ "$CC_DOWNLOAD_ONLY" = "true" ];
then
say "$g==>$x Codecov download only called. Exiting..."
fi
cc_cli_args=()
cc_cli_args+=( $(k_arg AUTO_LOAD_PARAMS_FROM) $(v_arg AUTO_LOAD_PARAMS_FROM))
cc_cli_args+=( $(k_arg ENTERPRISE_URL) $(v_arg ENTERPRISE_URL))
if [ -n "$CC_YML_PATH" ]
then
cc_cli_args+=( "--codecov-yml-path" )
cc_cli_args+=( "$CC_YML_PATH" )
fi
cc_cli_args+=( $(write_truthy_args CC_DISABLE_TELEM) )
cc_cli_args+=( $(write_truthy_args CC_VERBOSE) )
if [ -n "$CC_TOKEN_VAR" ];
then
token="$(eval echo \$$CC_TOKEN_VAR)"
else
token="$(eval echo $CC_TOKEN)"
fi
say "$g ->$x Token of length ${#token} detected"
token_str=""
token_arg=()
if [ -n "$token" ];
then
token_str+=" -t <redacted>"
token_arg+=( " -t " "$token")
fi
if [ "$CC_RUN_CMD" == "upload-coverage" ]; then
cc_args=()
# Args for create commit
cc_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_args+=( $(k_arg PARENT_SHA) $(v_arg PARENT_SHA))
cc_args+=( $(k_arg PR) $(v_arg PR))
cc_args+=( $(k_arg SHA) $(v_arg SHA))
cc_args+=( $(k_arg SLUG) $(v_arg SLUG))
# Args for create report
cc_args+=( $(k_arg CODE) $(v_arg CODE))
# Args for do upload
cc_args+=( $(k_arg ENV) $(v_arg ENV))
OLDIFS=$IFS;IFS=,
cc_args+=( $(k_arg BRANCH) $(v_arg BRANCH))
cc_args+=( $(k_arg BUILD) $(v_arg BUILD))
cc_args+=( $(k_arg BUILD_URL) $(v_arg BUILD_URL))
cc_args+=( $(k_arg DIR) $(v_arg DIR))
cc_args+=( $(write_truthy_args CC_DISABLE_FILE_FIXES) )
cc_args+=( $(write_truthy_args CC_DISABLE_SEARCH) )
cc_args+=( $(write_truthy_args CC_DRY_RUN) )
if [ -n "$CC_EXCLUDES" ];
then
for directory in $CC_EXCLUDES; do
cc_args+=( "--exclude" "$directory" )
done
fi
if [ -n "$CC_FILES" ];
then
for file in $CC_FILES; do
cc_args+=( "--file" "$file" )
done
fi
if [ -n "$CC_FLAGS" ];
then
for flag in $CC_FLAGS; do
cc_args+=( "--flag" "$flag" )
done
fi
cc_args+=( $(k_arg GCOV_ARGS) $(v_arg GCOV_ARGS))
cc_args+=( $(k_arg GCOV_EXECUTABLE) $(v_arg GCOV_EXECUTABLE))
cc_args+=( $(k_arg GCOV_IGNORE) $(v_arg GCOV_IGNORE))
cc_args+=( $(k_arg GCOV_INCLUDE) $(v_arg GCOV_INCLUDE))
cc_args+=( $(write_truthy_args CC_HANDLE_NO_REPORTS_FOUND) )
cc_args+=( $(k_arg JOB_CODE) $(v_arg JOB_CODE))
cc_args+=( $(write_truthy_args CC_LEGACY) )
if [ -n "$CC_NAME" ];
then
cc_args+=( "--name" "$CC_NAME" )
fi
cc_args+=( $(k_arg NETWORK_FILTER) $(v_arg NETWORK_FILTER))
cc_args+=( $(k_arg NETWORK_PREFIX) $(v_arg NETWORK_PREFIX))
cc_args+=( $(k_arg NETWORK_ROOT_FOLDER) $(v_arg NETWORK_ROOT_FOLDER))
if [ -n "$CC_PLUGINS" ];
then
for plugin in $CC_PLUGINS; do
cc_args+=( "--plugin" "$plugin" )
done
fi
cc_args+=( $(k_arg REPORT_TYPE) $(v_arg REPORT_TYPE))
cc_args+=( $(k_arg SWIFT_PROJECT) $(v_arg SWIFT_PROJECT))
IFS=$OLDIFS
elif [ "$CC_RUN_CMD" == "empty-upload" ]; then
cc_args=()
cc_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_args+=( $(write_truthy_args CC_FORCE) )
cc_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_args+=( $(k_arg SHA) $(v_arg SHA))
cc_args+=( $(k_arg SLUG) $(v_arg SLUG))
elif [ "$CC_RUN_CMD" == "pr-base-picking" ]; then
cc_args=()
cc_args+=( $(k_arg BASE_SHA) $(v_arg BASE_SHA))
cc_args+=( $(k_arg PR) $(v_arg PR))
cc_args+=( $(k_arg SLUG) $(v_arg SLUG))
cc_args+=( $(k_arg SERVICE) $(v_arg SERVICE))
elif [ "$CC_RUN_CMD" == "send-notifications" ]; then
cc_args=()
cc_args+=( $(k_arg SHA) $(v_arg SHA))
cc_args+=( $(write_truthy_args CC_FAIL_ON_ERROR) )
cc_args+=( $(k_arg GIT_SERVICE) $(v_arg GIT_SERVICE))
cc_args+=( $(k_arg SLUG) $(v_arg SLUG))
else
exit_if_error "Invalid run command specified: $CC_RUN_CMD"
exit
fi
unset NODE_OPTIONS
# See https://github.com/codecov/uploader/issues/475
say "$g==>$x Running $CC_RUN_CMD"
say " $b$cc_command $(echo "${cc_cli_args[@]}")$CC_RUN_CMD$token_str $(echo "${cc_args[@]}")$x"
if ! $cc_command \
${cc_cli_args[*]} \
${CC_RUN_CMD} \
${token_arg[*]} \
"${cc_args[@]}";
then
exit_if_error "Failed to run $CC_RUN_CMD"
fi

24635
dist/index.js vendored Executable file

File diff suppressed because one or more lines are too long

1
dist/index.js.map vendored Normal file

File diff suppressed because one or more lines are too long

52
dist/pgp_keys.asc vendored Normal file
View File

@@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGCsMn0BEACiCKZOhkbhUjb+obvhH49p3ShjJzU5b/GqAXSDhRhdXUq7ZoGq
KEKCd7sQHrCf16Pi5UVacGIyE9hS93HwY15kMlLwM+lNeAeCglEscOjpCly1qUIr
sN1wjkd2cwDXS6zHBJTqJ7wSOiXbZfTAeKhd6DuLEpmA+Rz4Yc+4qZP+fVxVG3Pv
2v06m+E5CP/JQVQPO8HYi+S36hJImTh+zaDspu+VujSai5KzJ6YKmgwslVNIp5X5
GnEr2uAh5w6UTnt9UQUjFFliAvQ3lPLWzm7DWs6AP9hslYxSWzwbzVF5qbOIjUJL
KfoUpvCYDs2ObgRn8WUQO0ndkRCBIxhlF3HGGYWKQaCEsiom7lyi8VbAszmUCDjw
HdbQHFmm5yHLpTXJbg+iaxQzKnhWVXzye5/x92IJmJswW81Ky346VxYdC1XFL/+Y
zBaj9oMmV7WfRpdch09Gf4TgosMzWf3NjJbtKE5xkaghJckIgxwzcrRmF/RmCJue
IMqZ8A5qUUlK7NBzj51xmAQ4BtkUa2bcCBRV/vP+rk9wcBWz2LiaW+7Mwlfr/C/Q
Swvv/JW2LsQ4iWc1BY7m7ksn9dcdypEq/1JbIzVLCRDG7pbMj9yLgYmhe5TtjOM3
ygk25584EhXSgUA3MZw+DIqhbHQBYgrKndTr2N/wuBQY62zZg1YGQByD4QARAQAB
tEpDb2RlY292IFVwbG9hZGVyIChDb2RlY292IFVwbG9hZGVyIFZlcmlmaWNhdGlv
biBLZXkpIDxzZWN1cml0eUBjb2RlY292LmlvPokCTgQTAQoAOBYhBCcDTn/bhQ4L
vCxi/4Brsortd5hpBQJgrDJ9AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ
EIBrsortd5hpxLMP/3Fbgx5EG7zUUOqPZ+Ya9z8JlZFIkh3FxYMfMFE8jH9Es26F
V2ZTJLO259MxM+5N0XzObi3h4XqIzBn42pDRfwtojY5wl2STJ9Bzu+ykPog7OB1u
yfWXDRKcqPTUIxI1/WdU+c0/WNE6wjyzK+lRc1YUlp4pdNU7l+j2vKN+jGi2b6nV
PTPRsMcwy3B90fKf5h2wNMNqO+KX/rjgpG9Uhej+xyFWkGM1tZDQQYFj+ugQUj61
BMsQrUmxOnaVVnix21cHnACDCaxqgQZH3iZyEOKPNMsRFRP+0fLEnUMP+DVnQE6J
Brk1Z+XhtjGI9PISQVx5KKDKscreS/D5ae2Cw/FUlQMf57kir6mkbZVhz2khtccz
atD0r59WomNywIDyk1QfAKV0+O0WeJg8A69/Jk6yegsrUb5qEfkih/I38vvI0OVL
BYve/mQIHuQo5ziBptNytCrN5TXHXzguX9GOW1V1+3DR+w/vXcnz67sjlYDysf1f
JUZv9edZ2RGKW7agbrgOw2hB+zuWZ10tjoEcsaSGOLtKRGFDfmu/dBxzl8yopUpa
Tn79QKOieleRm5+uCcKCPTeKV0GbhDntCZJ+Yiw6ZPmrpcjDowAoMQ9kiMVa10+Q
WwwoaRWuqhf+dL6Q2OLFOxlyCDKVSyW0YF4Vrf3fKGyxKJmszAL+NS1mVcdxuQIN
BGCsMn0BEADLrIesbpfdAfWRvUFDN+PoRfa0ROwa/JOMhEgVsowQuk9No8yRva/X
VyiA6oCq6na7IvZXMxT7di4FWDjDtw5xHjbtFg336IJTGBcnzm7WIsjvyyw8kKfB
8cvG7D2OkzAUF8SVXLarJ1zdBP/Dr1Nz6F/gJsx5+BM8wGHEz4DsdMRV7ZMTVh6b
PaGuPZysPjSEw62R8MFJ1fSyDGCKJYwMQ/sKFzseNaY/kZVR5lq0dmhiYjNVQeG9
HJ6ZCGSGT5PKNOwx/UEkT6jhvzWgfr2eFVGJTcdwSLEgIrJIDzP7myHGxuOiuCmJ
ENgL1f7mzGkJ/hYXq1RWqsn1Fh2I9KZMHggqu4a+s3RiscmNcbIlIhJLXoE1bxZ/
TfYZ9Aod6Bd5TsSMTZNwV2am9zelhDiFF60FWww/5nEbhm/X4suC9W86qWBxs3Kh
vk1dxhElRjtgwUEHA5OFOO48ERHfR7COH719D/YmqLU3EybBgJbGoC/yjlGJxv0R
kOMAiG2FneNKEZZihReh8A5Jt6jYrSoHFRwL6oJIZfLezB7Rdajx1uH7uYcUyIaE
SiDWlkDw/IFM315NYFA8c1TCSIfnabUYaAxSLNFRmXnt+GQpm44qAK1x8EGhY633
e5B4FWorIXx0tTmsVM4rkQ6IgAodeywKG+c2Ikd+5dQLFmb7dW/6CwARAQABiQI2
BBgBCgAgFiEEJwNOf9uFDgu8LGL/gGuyiu13mGkFAmCsMn0CGwwACgkQgGuyiu13
mGkYWxAAkzF64SVpYvY9nY/QSYikL8UHlyyqirs6eFZ3Mj9lMRpHM2Spn9a3c701
0Ge4wDbRP2oftCyPP+p9pdUA77ifMTlRcoMYX8oXAuyE5RT2emBDiWvSR6hQQ8bZ
WFNXal+bUPpaRiruCCUPD2b8Od1ftzLqbYOosxr/m5Du0uahgOuGw6zlGBJCVOo7
UB2Y++oZ8P7oDGF722opepWQ+bl2a6TRMLNWWlj4UANknyjlhyZZ7PKhWLjoC6MU
dAKcwQUdp+XYLc/3b00bvgju0e99QgHZMX2fN3d3ktdN5Q2fqiAi5R6BmCCO4ISF
o5j10gGU/sdqGHvNhv5C21ibun7HEzMtxBhnhGmytfBJzrsj7GOReePsfTLoCoUq
dFMOAVUDciVfRtL2m8cv42ZJOXtPfDjsFOf8AKJk40/tc8mMMqZP7RVBr9RWOoq5
y9D37NfI6UB8rPZ6qs0a1Vfm8lIh2/k1AFECduXgftMDTsmmXOgXXS37HukGW7AL
QKWiWJQF/XopkXwkyAYpyuyRMZ77oF7nuqLFnl5VVEiRo0Fwu45erebc6ccSwYZU
8pmeSx7s0aJtxCZPSZEKZ3mn0BXOR32Cgs48CjzFWf6PKucTwOy/YO0/4Gt/upNJ
3DyeINcYcKyD08DEIF9f5tLyoiD4xz+N23ltTBoMPyv4f3X/wCQ=
=ch7z
-----END PGP PUBLIC KEY BLOCK-----

1
dist/sourcemap-register.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,8 @@
set -e
cp src/scripts/dist/codecov.sh dist/codecov.sh
git add dist/codecov.sh
git diff --cached --name-only | if grep --quiet "src/version"
then
python changelog.py
fi
git add CHANGELOG.md
npm install
npm run lint
npm run build
git add dist/
git add package-lock.json

4
jest.config.js Normal file
View File

@@ -0,0 +1,4 @@
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node',
};

13794
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

45
package.json Normal file
View File

@@ -0,0 +1,45 @@
{
"name": "codecov-action",
"version": "3.1.6",
"description": "Upload coverage reports to Codecov from GitHub Actions",
"main": "index.js",
"scripts": {
"build": "ncc build src/index.ts --source-map",
"lint": "eslint src/**/*.ts",
"test": "npm run test-script && npm run test-calculator && npm run test-coverage",
"test-calculator": "jest --testPathPattern=demo/calculator/ --coverage --coverageDirectory=coverage/calculator",
"test-coverage": "jest --testPathPattern=demo/coverage-test/ --coverage --coverageDirectory=coverage/coverage-test",
"test-script": "jest --testPathPattern=src/ --coverage --coverageDirectory=coverage/script"
},
"repository": {
"type": "git",
"url": "git+https://github.com/codecov/codecov-action.git"
},
"keywords": [],
"author": "Codecov",
"license": "MIT",
"bugs": {
"url": "https://github.com/codecov/codecov-action/issues"
},
"homepage": "https://github.com/codecov/codecov-action#readme",
"dependencies": {
"@actions/core": "^1.10.0",
"@actions/exec": "^1.1.1",
"@actions/github": "^5.1.1",
"node-fetch": "^3.3.1",
"openpgp": "5.8"
},
"devDependencies": {
"@types/jest": "^27.5.0",
"@types/node": "^20.1.4",
"@typescript-eslint/eslint-plugin": "^4.29.2",
"@typescript-eslint/parser": "^4.29.2",
"@vercel/ncc": "^0.36.1",
"eslint": "^7.32.0",
"eslint-config-google": "^0.14.0",
"jest": "^26.6.3",
"jest-junit": "^16.0.0",
"ts-jest": "^26.5.6",
"typescript": "^4.9.5"
}
}

224
src/buildExec.test.ts Normal file
View File

@@ -0,0 +1,224 @@
import * as github from '@actions/github';
import buildExec from './buildExec';
/* eslint-disable @typescript-eslint/no-var-requires */
const {version} = require('../package.json');
const context = github.context;
test('no arguments', () => {
const {execArgs, failCi} = buildExec();
const args = [
'-n',
'',
'-Q',
`github-action-${version}`,
];
if (context.eventName == 'pull_request') {
args.push('-C', `${context.payload.pull_request.head.sha}`);
}
expect(execArgs).toEqual(args);
expect(failCi).toBeFalsy();
});
test('all arguments', () => {
const envs = {
'commit_parent': '83231650328f11695dfb754ca0f540516f188d27',
'directory': 'coverage/',
'dry_run': 'true',
'env_vars': 'OS,PYTHON',
'fail_ci_if_error': 'true',
'file': 'coverage.xml',
'files': 'dir1/coverage.xml,dir2/coverage.xml',
'flags': 'test,test2',
'functionalities': 'network',
'full_report': 'oldDir/oldReport.json',
'gcov': 'true',
'gcov_args': '-v',
'gcov_ignore': '*.fake',
'gcov_include': 'real_file',
'gcov_executable': 'gcov2',
'move_coverage_to_trash': 'true',
'name': 'codecov',
'network_filter': 'src/',
'network_prefix': 'build/',
'override_branch': 'thomasrockhu/test',
'override_build': '1',
'override_commit': '9caabca5474b49de74ef5667deabaf74cdacc244',
'override_pr': '2',
'override_tag': 'v1.2',
'root_dir': 'root/',
'swift': 'true',
'swift_project': 'MyApp',
'slug': 'fakeOwner/fakeRepo',
'token': 'd3859757-ab80-4664-924d-aef22fa7557b',
'upstream_proxy': 'https://codecov.example.com',
'url': 'https://codecov.enterprise.com',
'verbose': 't',
'xcode': 'true',
'xcode_archive_path': '/test.xcresult',
'xtra_args': '--some --other --args',
};
for (const env of Object.keys(envs)) {
process.env['INPUT_' + env.toUpperCase()] = envs[env];
}
const {execArgs, failCi} = buildExec();
expect(execArgs).toEqual([
'-n',
'codecov',
'-Q',
`github-action-${version}`,
'-c',
'-N',
'83231650328f11695dfb754ca0f540516f188d27',
'-d',
'-e',
'OS,PYTHON',
'-X',
'network',
'-Z',
'-f',
'coverage.xml',
'-f',
'dir1/coverage.xml',
'-f',
'dir2/coverage.xml',
'--full',
'oldDir/oldReport.json',
'-F',
'test',
'-F',
'test2',
'-g',
'--ga',
'-v',
'--gi',
'*.fake',
'--gI',
'real_file',
'--gx',
'gcov2',
'-i',
'src/',
'-k',
'build/',
'-B',
'thomasrockhu/test',
'-b',
'1',
'-C',
'9caabca5474b49de74ef5667deabaf74cdacc244',
'-P',
'2',
'-T',
'v1.2',
'-R',
'root/',
'-s',
'coverage/',
'-r',
'fakeOwner/fakeRepo',
'--xs',
'--xsp',
'MyApp',
'-U',
'https://codecov.example.com',
'-u',
'https://codecov.enterprise.com',
'-v',
'--xc',
'--xp',
'/test.xcresult',
'--some --other --args',
]);
expect(failCi).toBeTruthy();
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});
describe('trim arguments after splitting them', () => {
const baseExpectation = [
'-n',
expect.stringContaining(''),
'-Q',
expect.stringContaining('github-action'),
];
test('files', () => {
const envs = {'files': './client-coverage.txt, ./lcov.info'};
for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}
const {execArgs} = buildExec();
expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-f',
'./client-coverage.txt',
'-f',
'./lcov.info',
]),
);
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});
test('flags', () => {
const envs = {'flags': 'ios, mobile'};
for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}
const {execArgs} = buildExec();
expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-F',
'ios',
'-F',
'mobile',
]),
);
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});
test('functionalities', () => {
const envs = {'functionalities': 'network, gcov'};
for (const [name, value] of Object.entries(envs)) {
process.env['INPUT_' + name.toUpperCase()] = value;
}
const {execArgs} = buildExec();
expect(execArgs).toEqual(
expect.arrayContaining([
...baseExpectation,
'-X',
'network',
'-X',
'gcov',
]),
);
for (const env of Object.keys(envs)) {
delete process.env['INPUT_' + env.toUpperCase()];
}
});
});

221
src/buildExec.ts Normal file
View File

@@ -0,0 +1,221 @@
import * as core from '@actions/core';
import * as github from '@actions/github';
import {version} from '../package.json';
const context = github.context;
const isTrue = (variable) => {
const lowercase = variable.toLowerCase();
return (
lowercase === '1' ||
lowercase === 't' ||
lowercase === 'true' ||
lowercase === 'y' ||
lowercase === 'yes'
);
};
const buildExec = () => {
const clean = core.getInput('move_coverage_to_trash');
const commitParent = core.getInput('commit_parent');
const dryRun = isTrue(core.getInput('dry_run'));
const envVars = core.getInput('env_vars');
const failCi = isTrue(core.getInput('fail_ci_if_error'));
const file = core.getInput('file');
const files = core.getInput('files');
const flags = core.getInput('flags');
const fullReport = core.getInput('full_report');
const functionalities = core.getInput('functionalities');
const gcov = core.getInput('gcov');
const gcovArgs = core.getInput('gcov_args');
const gcovExecutable = core.getInput('gcov_executable');
const gcovIgnore = core.getInput('gcov_ignore');
const gcovInclude = core.getInput('gcov_include');
const name = core.getInput('name');
const networkFilter = core.getInput('network_filter');
const networkPrefix = core.getInput('network_prefix');
const os = core.getInput('os');
const overrideBranch = core.getInput('override_branch');
const overrideBuild = core.getInput('override_build');
const overrideCommit = core.getInput('override_commit');
const overridePr = core.getInput('override_pr');
const overrideTag = core.getInput('override_tag');
const rootDir = core.getInput('root_dir');
const searchDir = core.getInput('directory');
const slug = core.getInput('slug');
const swift = core.getInput('swift');
const swiftProject = core.getInput('swift_project');
const token = core.getInput('token');
const upstream = core.getInput('upstream_proxy');
const url = core.getInput('url');
const verbose = isTrue(core.getInput('verbose'));
const workingDir = core.getInput('working-directory');
const xcode = core.getInput('xcode');
const xcodeArchivePath = core.getInput('xcode_archive_path');
const xtraArgs = core.getInput('xtra_args');
let uploaderVersion = core.getInput('version');
const execArgs = [];
execArgs.push(
'-n',
`${name}`,
'-Q',
`github-action-${version}`,
);
const options:any = {};
options.env = Object.assign(process.env, {
GITHUB_ACTION: process.env.GITHUB_ACTION,
GITHUB_RUN_ID: process.env.GITHUB_RUN_ID,
GITHUB_REF: process.env.GITHUB_REF,
GITHUB_REPOSITORY: process.env.GITHUB_REPOSITORY,
GITHUB_SHA: process.env.GITHUB_SHA,
GITHUB_HEAD_REF: process.env.GITHUB_HEAD_REF || '',
});
const envVarsArg = [];
for (const envVar of envVars.split(',')) {
const envVarClean = envVar.trim();
if (envVarClean) {
options.env[envVarClean] = process.env[envVarClean];
envVarsArg.push(envVarClean);
}
}
if (token) {
options.env.CODECOV_TOKEN = token;
}
if (clean) {
execArgs.push('-c');
}
if (commitParent) {
execArgs.push('-N', `${commitParent}`);
}
if (dryRun) {
execArgs.push('-d');
}
if (envVarsArg.length) {
execArgs.push('-e', envVarsArg.join(','));
}
if (functionalities) {
functionalities.split(',').map((f) => f.trim()).forEach((f) => {
execArgs.push('-X', `${f}`);
});
}
if (failCi) {
execArgs.push('-Z');
}
if (file) {
execArgs.push('-f', `${file}`);
}
if (files) {
files.split(',').map((f) => f.trim()).forEach((f) => {
execArgs.push('-f', `${f}`);
});
}
if (fullReport) {
execArgs.push('--full', `${fullReport}`);
}
if (flags) {
flags.split(',').map((f) => f.trim()).forEach((f) => {
execArgs.push('-F', `${f}`);
});
}
if (gcov) {
execArgs.push('-g');
}
if (gcovArgs) {
execArgs.push('--ga', `${gcovArgs}`);
}
if (gcovIgnore) {
execArgs.push('--gi', `${gcovIgnore}`);
}
if (gcovInclude) {
execArgs.push('--gI', `${gcovInclude}`);
}
if (gcovExecutable) {
execArgs.push('--gx', `${gcovExecutable}`);
}
if (networkFilter) {
execArgs.push('-i', `${networkFilter}`);
}
if (networkPrefix) {
execArgs.push('-k', `${networkPrefix}`);
}
if (overrideBranch) {
execArgs.push('-B', `${overrideBranch}`);
}
if (overrideBuild) {
execArgs.push('-b', `${overrideBuild}`);
}
if (overrideCommit) {
execArgs.push('-C', `${overrideCommit}`);
} else if (
`${context.eventName}` == 'pull_request' ||
`${context.eventName}` == 'pull_request_target'
) {
execArgs.push('-C', `${context.payload.pull_request.head.sha}`);
}
if (overridePr) {
execArgs.push('-P', `${overridePr}`);
} else if (
`${context.eventName}` == 'pull_request_target'
) {
execArgs.push('-P', `${context.payload.number}`);
}
if (overrideTag) {
execArgs.push('-T', `${overrideTag}`);
}
if (rootDir) {
execArgs.push('-R', `${rootDir}`);
}
if (searchDir) {
execArgs.push('-s', `${searchDir}`);
}
if (slug) {
execArgs.push('-r', `${slug}`);
}
if (swift) {
execArgs.push('--xs');
}
if (swift && swiftProject) {
execArgs.push('--xsp', `${swiftProject}`);
}
if (upstream) {
execArgs.push('-U', `${upstream}`);
}
if (url) {
execArgs.push('-u', `${url}`);
}
if (verbose) {
execArgs.push('-v');
}
if (xcode && xcodeArchivePath) {
execArgs.push('--xc');
execArgs.push('--xp', `${xcodeArchivePath}`);
}
if (uploaderVersion == '') {
uploaderVersion = 'latest';
}
if (verbose) {
console.debug({execArgs});
}
if (workingDir) {
options.cwd = workingDir;
}
if (xtraArgs) {
execArgs.push(`${xtraArgs}`);
}
return {execArgs, options, failCi, os, uploaderVersion, verbose};
};
export default buildExec;

72
src/helpers.test.ts Normal file
View File

@@ -0,0 +1,72 @@
import {
getBaseUrl,
getPlatform,
isValidPlatform,
isWindows,
PLATFORMS,
} from './helpers';
let OLDOS = process.env.RUNNER_OS;
beforeEach(() => {
jest.resetModules();
OLDOS = process.env.RUNNER_OS;
});
afterAll(() => {
process.env.RUNNER_OS = OLDOS;
});
test('getPlatform', () => {
expect(getPlatform('linux')).toBe('linux');
expect(getPlatform('windows')).toBe('windows');
const defaultPlatform =
process.env.RUNNER_OS ? process.env.RUNNER_OS.toLowerCase() : 'linux';
expect(getPlatform('fakeos')).toBe(defaultPlatform);
expect(getPlatform()).toBe(defaultPlatform);
process.env.RUNNER_OS = 'macos';
expect(getPlatform('fakeos')).toBe('macos');
expect(getPlatform()).toBe('macos');
process.env.RUNNER_OS = 'alsofakeos';
expect(getPlatform()).toBe('linux');
expect(getPlatform('fakeos')).toBe('linux');
});
test('getBaseUrl', () => {
expect(PLATFORMS.map((platform) => {
return getBaseUrl(platform, 'latest');
})).toEqual([
'https://uploader.codecov.io/latest/aarch64/codecov',
'https://uploader.codecov.io/latest/alpine/codecov',
'https://uploader.codecov.io/latest/linux/codecov',
'https://uploader.codecov.io/latest/macos/codecov',
'https://uploader.codecov.io/latest/windows/codecov.exe',
]);
expect(PLATFORMS.map((platform) => {
return getBaseUrl(platform, 'v0.1.0_8880');
})).toEqual([
'https://uploader.codecov.io/v0.1.0_8880/aarch64/codecov',
'https://uploader.codecov.io/v0.1.0_8880/alpine/codecov',
'https://uploader.codecov.io/v0.1.0_8880/linux/codecov',
'https://uploader.codecov.io/v0.1.0_8880/macos/codecov',
'https://uploader.codecov.io/v0.1.0_8880/windows/codecov.exe',
]);
});
test('isWindows', () => {
expect(PLATFORMS.map((platform) => {
return isWindows(platform);
})).toEqual([false, false, false, false, true]);
});
test('isValidPlatform', () => {
expect(PLATFORMS.map((platform) => {
return isValidPlatform(platform);
})).toEqual([true, true, true, true, true]);
expect(isValidPlatform('fakeos')).toBeFalsy();
});

64
src/helpers.ts Normal file
View File

@@ -0,0 +1,64 @@
import * as core from '@actions/core';
const PLATFORMS = [
'aarch64',
'alpine',
'linux',
'macos',
'windows',
];
const setFailure = (message: string, failCi: boolean): void => {
failCi ? core.setFailed(message) : core.warning(message);
if (failCi) {
process.exit();
}
};
const getUploaderName = (platform: string): string => {
if (isWindows(platform)) {
return 'codecov.exe';
} else {
return 'codecov';
}
};
const isValidPlatform = (platform: string): boolean => {
return PLATFORMS.includes(platform);
};
const isWindows = (platform: string): boolean => {
return platform === 'windows';
};
const getPlatform = (os?: string): string => {
if (isValidPlatform(os)) {
core.info(`==> ${os} OS provided`);
return os;
}
const platform = process.env.RUNNER_OS?.toLowerCase();
if (isValidPlatform(platform)) {
core.info(`==> ${platform} OS detected`);
return platform;
}
core.info(
'==> Could not detect OS or provided OS is invalid. Defaulting to linux',
);
return 'linux';
};
const getBaseUrl = (platform: string, version: string): string => {
return `https://uploader.codecov.io/${version}/${platform}/${getUploaderName(platform)}`;
};
export {
PLATFORMS,
getBaseUrl,
getPlatform,
getUploaderName,
isValidPlatform,
isWindows,
setFailure,
};

65
src/index.ts Normal file
View File

@@ -0,0 +1,65 @@
import * as fs from 'fs';
import * as https from 'https';
import * as path from 'path';
import * as exec from '@actions/exec';
import buildExec from './buildExec';
import {
getBaseUrl,
getPlatform,
getUploaderName,
setFailure,
} from './helpers';
import verify from './validate';
import versionInfo from './version';
let failCi;
try {
const {execArgs, options, failCi, os, uploaderVersion, verbose} = buildExec();
const platform = getPlatform(os);
const filename = path.join( __dirname, getUploaderName(platform));
https.get(getBaseUrl(platform, uploaderVersion), (res) => {
// Image will be stored at this path
const filePath = fs.createWriteStream(filename);
res.pipe(filePath);
filePath
.on('error', (err) => {
setFailure(
`Codecov: Failed to write uploader binary: ${err.message}`,
true,
);
}).on('finish', async () => {
filePath.close();
await verify(filename, platform, uploaderVersion, verbose, failCi);
await versionInfo(platform, uploaderVersion);
await fs.chmodSync(filename, '777');
const unlink = () => {
fs.unlink(filename, (err) => {
if (err) {
setFailure(
`Codecov: Could not unlink uploader: ${err.message}`,
failCi,
);
}
});
};
await exec.exec(filename, execArgs, options)
.catch((err) => {
setFailure(
`Codecov: Failed to properly upload: ${err.message}`,
failCi,
);
}).then(() => {
unlink();
});
});
});
} catch (err) {
setFailure(`Codecov: Encountered an unexpected error ${err.message}`, failCi);
}

52
src/pgp_keys.asc Normal file
View File

@@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGCsMn0BEACiCKZOhkbhUjb+obvhH49p3ShjJzU5b/GqAXSDhRhdXUq7ZoGq
KEKCd7sQHrCf16Pi5UVacGIyE9hS93HwY15kMlLwM+lNeAeCglEscOjpCly1qUIr
sN1wjkd2cwDXS6zHBJTqJ7wSOiXbZfTAeKhd6DuLEpmA+Rz4Yc+4qZP+fVxVG3Pv
2v06m+E5CP/JQVQPO8HYi+S36hJImTh+zaDspu+VujSai5KzJ6YKmgwslVNIp5X5
GnEr2uAh5w6UTnt9UQUjFFliAvQ3lPLWzm7DWs6AP9hslYxSWzwbzVF5qbOIjUJL
KfoUpvCYDs2ObgRn8WUQO0ndkRCBIxhlF3HGGYWKQaCEsiom7lyi8VbAszmUCDjw
HdbQHFmm5yHLpTXJbg+iaxQzKnhWVXzye5/x92IJmJswW81Ky346VxYdC1XFL/+Y
zBaj9oMmV7WfRpdch09Gf4TgosMzWf3NjJbtKE5xkaghJckIgxwzcrRmF/RmCJue
IMqZ8A5qUUlK7NBzj51xmAQ4BtkUa2bcCBRV/vP+rk9wcBWz2LiaW+7Mwlfr/C/Q
Swvv/JW2LsQ4iWc1BY7m7ksn9dcdypEq/1JbIzVLCRDG7pbMj9yLgYmhe5TtjOM3
ygk25584EhXSgUA3MZw+DIqhbHQBYgrKndTr2N/wuBQY62zZg1YGQByD4QARAQAB
tEpDb2RlY292IFVwbG9hZGVyIChDb2RlY292IFVwbG9hZGVyIFZlcmlmaWNhdGlv
biBLZXkpIDxzZWN1cml0eUBjb2RlY292LmlvPokCTgQTAQoAOBYhBCcDTn/bhQ4L
vCxi/4Brsortd5hpBQJgrDJ9AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJ
EIBrsortd5hpxLMP/3Fbgx5EG7zUUOqPZ+Ya9z8JlZFIkh3FxYMfMFE8jH9Es26F
V2ZTJLO259MxM+5N0XzObi3h4XqIzBn42pDRfwtojY5wl2STJ9Bzu+ykPog7OB1u
yfWXDRKcqPTUIxI1/WdU+c0/WNE6wjyzK+lRc1YUlp4pdNU7l+j2vKN+jGi2b6nV
PTPRsMcwy3B90fKf5h2wNMNqO+KX/rjgpG9Uhej+xyFWkGM1tZDQQYFj+ugQUj61
BMsQrUmxOnaVVnix21cHnACDCaxqgQZH3iZyEOKPNMsRFRP+0fLEnUMP+DVnQE6J
Brk1Z+XhtjGI9PISQVx5KKDKscreS/D5ae2Cw/FUlQMf57kir6mkbZVhz2khtccz
atD0r59WomNywIDyk1QfAKV0+O0WeJg8A69/Jk6yegsrUb5qEfkih/I38vvI0OVL
BYve/mQIHuQo5ziBptNytCrN5TXHXzguX9GOW1V1+3DR+w/vXcnz67sjlYDysf1f
JUZv9edZ2RGKW7agbrgOw2hB+zuWZ10tjoEcsaSGOLtKRGFDfmu/dBxzl8yopUpa
Tn79QKOieleRm5+uCcKCPTeKV0GbhDntCZJ+Yiw6ZPmrpcjDowAoMQ9kiMVa10+Q
WwwoaRWuqhf+dL6Q2OLFOxlyCDKVSyW0YF4Vrf3fKGyxKJmszAL+NS1mVcdxuQIN
BGCsMn0BEADLrIesbpfdAfWRvUFDN+PoRfa0ROwa/JOMhEgVsowQuk9No8yRva/X
VyiA6oCq6na7IvZXMxT7di4FWDjDtw5xHjbtFg336IJTGBcnzm7WIsjvyyw8kKfB
8cvG7D2OkzAUF8SVXLarJ1zdBP/Dr1Nz6F/gJsx5+BM8wGHEz4DsdMRV7ZMTVh6b
PaGuPZysPjSEw62R8MFJ1fSyDGCKJYwMQ/sKFzseNaY/kZVR5lq0dmhiYjNVQeG9
HJ6ZCGSGT5PKNOwx/UEkT6jhvzWgfr2eFVGJTcdwSLEgIrJIDzP7myHGxuOiuCmJ
ENgL1f7mzGkJ/hYXq1RWqsn1Fh2I9KZMHggqu4a+s3RiscmNcbIlIhJLXoE1bxZ/
TfYZ9Aod6Bd5TsSMTZNwV2am9zelhDiFF60FWww/5nEbhm/X4suC9W86qWBxs3Kh
vk1dxhElRjtgwUEHA5OFOO48ERHfR7COH719D/YmqLU3EybBgJbGoC/yjlGJxv0R
kOMAiG2FneNKEZZihReh8A5Jt6jYrSoHFRwL6oJIZfLezB7Rdajx1uH7uYcUyIaE
SiDWlkDw/IFM315NYFA8c1TCSIfnabUYaAxSLNFRmXnt+GQpm44qAK1x8EGhY633
e5B4FWorIXx0tTmsVM4rkQ6IgAodeywKG+c2Ikd+5dQLFmb7dW/6CwARAQABiQI2
BBgBCgAgFiEEJwNOf9uFDgu8LGL/gGuyiu13mGkFAmCsMn0CGwwACgkQgGuyiu13
mGkYWxAAkzF64SVpYvY9nY/QSYikL8UHlyyqirs6eFZ3Mj9lMRpHM2Spn9a3c701
0Ge4wDbRP2oftCyPP+p9pdUA77ifMTlRcoMYX8oXAuyE5RT2emBDiWvSR6hQQ8bZ
WFNXal+bUPpaRiruCCUPD2b8Od1ftzLqbYOosxr/m5Du0uahgOuGw6zlGBJCVOo7
UB2Y++oZ8P7oDGF722opepWQ+bl2a6TRMLNWWlj4UANknyjlhyZZ7PKhWLjoC6MU
dAKcwQUdp+XYLc/3b00bvgju0e99QgHZMX2fN3d3ktdN5Q2fqiAi5R6BmCCO4ISF
o5j10gGU/sdqGHvNhv5C21ibun7HEzMtxBhnhGmytfBJzrsj7GOReePsfTLoCoUq
dFMOAVUDciVfRtL2m8cv42ZJOXtPfDjsFOf8AKJk40/tc8mMMqZP7RVBr9RWOoq5
y9D37NfI6UB8rPZ6qs0a1Vfm8lIh2/k1AFECduXgftMDTsmmXOgXXS37HukGW7AL
QKWiWJQF/XopkXwkyAYpyuyRMZ77oF7nuqLFnl5VVEiRo0Fwu45erebc6ccSwYZU
8pmeSx7s0aJtxCZPSZEKZ3mn0BXOR32Cgs48CjzFWf6PKucTwOy/YO0/4Gt/upNJ
3DyeINcYcKyD08DEIF9f5tLyoiD4xz+N23ltTBoMPyv4f3X/wCQ=
=ch7z
-----END PGP PUBLIC KEY BLOCK-----

Submodule src/scripts deleted from ad7c6465b6

91
src/validate.ts Normal file
View File

@@ -0,0 +1,91 @@
import * as crypto from 'crypto';
import * as fs from 'fs';
import * as path from 'path';
import * as core from '@actions/core';
import * as openpgp from 'openpgp';
import * as fetch from 'node-fetch';
import {
getBaseUrl,
getUploaderName,
setFailure,
} from './helpers';
const verify = async (
filename: string,
platform: string,
version: string,
verbose: boolean,
failCi: boolean,
): Promise<void> => {
try {
const uploaderName = getUploaderName(platform);
// Read in public key
const publicKeyArmored = await fs.readFileSync(
path.join(__dirname, 'pgp_keys.asc'),
'utf-8',
);
// Get SHASUM and SHASUM signature files
console.log(`${getBaseUrl(platform, version)}.SHA256SUM`);
const shasumRes = await fetch.default(
`${getBaseUrl(platform, version)}.SHA256SUM`,
);
const shasum = await shasumRes.text();
if (verbose) {
console.log(`Received SHA256SUM ${shasum}`);
}
const shaSigRes = await fetch.default(
`${getBaseUrl(platform, version)}.SHA256SUM.sig`,
);
const shaSig = await shaSigRes.text();
if (verbose) {
console.log(`Received SHA256SUM signature ${shaSig}`);
}
// Verify shasum
const verified = await openpgp.verify({
message: await openpgp.createMessage({text: shasum}),
signature: await openpgp.readSignature({armoredSignature: shaSig}),
verificationKeys: await openpgp.readKeys({armoredKeys: publicKeyArmored}),
});
const valid = await verified.signatures[0].verified;
if (valid) {
core.info('==> SHASUM file signed by key id ' +
verified.signatures[0].keyID.toHex(),
);
} else {
setFailure('Codecov: Error validating SHASUM signature', failCi);
}
const calculateHash = async (filename: string) => {
const stream = fs.createReadStream(filename);
const uploaderSha = crypto.createHash(`sha256`);
stream.pipe(uploaderSha);
return new Promise((resolve, reject) => {
stream.on('end', () => resolve(
`${uploaderSha.digest('hex')} ${uploaderName}`,
));
stream.on('error', reject);
});
};
const hash = await calculateHash(filename);
if (hash === shasum) {
core.info(`==> Uploader SHASUM verified (${hash})`);
} else {
setFailure(
'Codecov: Uploader shasum does not match -- ' +
`uploader hash: ${hash}, public hash: ${shasum}`,
failCi,
);
}
} catch (err) {
setFailure(`Codecov: Error validating uploader: ${err.message}`, failCi);
}
};
export default verify;

View File

@@ -1 +0,0 @@
5.3.1

22
src/version.ts Normal file
View File

@@ -0,0 +1,22 @@
import * as core from '@actions/core';
import * as fetch from 'node-fetch';
const versionInfo = async (
platform: string,
version?: string,
): Promise<void> => {
if (version) {
core.info(`==> Running version ${version}`);
}
try {
const metadataRes = await fetch.default( `https://uploader.codecov.io/${platform}/latest`, {
headers: {'Accept': 'application/json'},
});
const metadata = await metadataRes.json();
core.info(`==> Running version ${metadata['version']}`);
} catch (err) {
core.info(`Could not pull latest version information: ${err}`);
}
};
export default versionInfo;

17
tsconfig.json Normal file
View File

@@ -0,0 +1,17 @@
{
"compilerOptions": {
"esModuleInterop": true,
"moduleResolution": "node",
"outDir": "dist/",
"resolveJsonModule": true,
"rootDir": ".",
"sourceMap": true,
"target": "es2015"
},
"include": [
"src/**/*.ts"
],
"exclude": [
"src/**/*.test.ts"
]
}