mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 07:30:32 +00:00 
			
		
		
		
	Compare commits
	
		
			14 Commits
		
	
	
		
			releases/v
			...
			v4.1.2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 9bb56186c3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8eb1f6a495 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 556e4c3cb0 | ||
|   | b32f140b0c | ||
|   | 2650dbd060 | ||
|   | aadec89964 | ||
|   | df0bcddf6d | ||
|   | 473055ba18 | ||
|   | b4ffde65f4 | ||
|   | 8530928916 | ||
|   | 7cdaf2fbc0 | ||
|   | 8ade135a41 | ||
|   | c533a0a4cf | ||
|   | 72f2cec99f | 
							
								
								
									
										27
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -7,6 +7,11 @@ on: | |||||||
|       - main |       - main | ||||||
|       - releases/* |       - releases/* | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Note that when you see patterns like "ref: test-data/v2/basic" within this workflow,  | ||||||
|  | # these refer to "test-data" branches on this actions/checkout repo. | ||||||
|  | # (For example, test-data/v2/basic -> https://github.com/actions/checkout/tree/test-data/v2/basic) | ||||||
|  |  | ||||||
| jobs: | jobs: | ||||||
|   build: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
| @@ -72,6 +77,16 @@ jobs: | |||||||
|         shell: bash |         shell: bash | ||||||
|         run: __test__/verify-side-by-side.sh |         run: __test__/verify-side-by-side.sh | ||||||
|  |  | ||||||
|  |       # Filter | ||||||
|  |       - name: Fetch filter | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           filter: 'blob:none' | ||||||
|  |           path: fetch-filter | ||||||
|  |  | ||||||
|  |       - name: Verify fetch filter | ||||||
|  |         run: __test__/verify-fetch-filter.sh | ||||||
|  |  | ||||||
|       # Sparse checkout |       # Sparse checkout | ||||||
|       - name: Sparse checkout |       - name: Sparse checkout | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -85,6 +100,16 @@ jobs: | |||||||
|       - name: Verify sparse checkout |       - name: Verify sparse checkout | ||||||
|         run: __test__/verify-sparse-checkout.sh |         run: __test__/verify-sparse-checkout.sh | ||||||
|  |  | ||||||
|  |       # Disabled sparse checkout in existing checkout | ||||||
|  |       - name: Disabled sparse checkout | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           path: sparse-checkout | ||||||
|  |  | ||||||
|  |       - name: Verify disabled sparse checkout | ||||||
|  |         shell: bash | ||||||
|  |         run: set -x && ls -l sparse-checkout/src/git-command-manager.ts | ||||||
|  |  | ||||||
|       # Sparse checkout (non-cone mode) |       # Sparse checkout (non-cone mode) | ||||||
|       - name: Sparse checkout (non-cone mode) |       - name: Sparse checkout (non-cone mode) | ||||||
|         uses: ./ |         uses: ./ | ||||||
| @@ -165,7 +190,7 @@ jobs: | |||||||
|   test-proxy: |   test-proxy: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     container: |     container: | ||||||
|       image: alpine/git:latest |       image: ghcr.io/actions/test-ubuntu-git:main.20240221.114913.703z | ||||||
|       options: --dns 127.0.0.1 |       options: --dns 127.0.0.1 | ||||||
|     services: |     services: | ||||||
|       squid-proxy: |       squid-proxy: | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								.github/workflows/update-test-ubuntu-git.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.github/workflows/update-test-ubuntu-git.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | |||||||
|  | name: Publish test-ubuntu-git Container | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   # Use an on demand workflow trigger.   | ||||||
|  |   # (Forked copies of actions/checkout won't have permission to update GHCR.io/actions,  | ||||||
|  |   #  so avoid trigger events that run automatically.) | ||||||
|  |   workflow_dispatch: | ||||||
|  |     inputs: | ||||||
|  |       publish: | ||||||
|  |         description:  'Publish to ghcr.io? (main branch only)' | ||||||
|  |         type: boolean | ||||||
|  |         required: true | ||||||
|  |         default: false | ||||||
|  |  | ||||||
|  | env: | ||||||
|  |   REGISTRY: ghcr.io | ||||||
|  |   IMAGE_NAME: actions/test-ubuntu-git | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   build-and-push-image: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. | ||||||
|  |     permissions: | ||||||
|  |       contents: read | ||||||
|  |       packages: write | ||||||
|  |   | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout repository | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       # Use `docker/login-action` to log in to GHCR.io.  | ||||||
|  |       # Once published, the packages are scoped to the account defined here. | ||||||
|  |       - name: Log in to the ghcr.io container registry | ||||||
|  |         uses: docker/login-action@v3.0.0 | ||||||
|  |         with: | ||||||
|  |           registry: ${{ env.REGISTRY }} | ||||||
|  |           username: ${{ github.actor }} | ||||||
|  |           password: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |  | ||||||
|  |       - name: Format Timestamp | ||||||
|  |         id: timestamp | ||||||
|  |         # Use `date` with a custom format to achieve the key=value format GITHUB_OUTPUT expects. | ||||||
|  |         run: date -u "+now=%Y%m%d.%H%M%S.%3NZ" >> "$GITHUB_OUTPUT" | ||||||
|  |  | ||||||
|  |       - name: Issue Image Publish Warning | ||||||
|  |         if:  ${{ inputs.publish && github.ref_name != 'main' }} | ||||||
|  |         run: echo "::warning::test-ubuntu-git images can only be published from the actions/checkout 'main' branch.  Workflow will continue with push/publish disabled." | ||||||
|  |  | ||||||
|  |       # Use `docker/build-push-action` to build (and optionally publish) the image.  | ||||||
|  |       - name: Build Docker Image (with optional Push) | ||||||
|  |         uses: docker/build-push-action@v5.1.0 | ||||||
|  |         with: | ||||||
|  |           context: . | ||||||
|  |           file: images/test-ubuntu-git.Dockerfile | ||||||
|  |           # For now, attempts to push to ghcr.io must target the `main` branch. | ||||||
|  |           # In the future, consider also allowing attempts from `releases/*` branches. | ||||||
|  |           push: ${{ inputs.publish && github.ref_name == 'main' }} | ||||||
|  |           tags: | | ||||||
|  |             ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}.${{ steps.timestamp.outputs.now }} | ||||||
							
								
								
									
										10
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,5 +1,15 @@ | |||||||
| # Changelog | # Changelog | ||||||
|  |  | ||||||
|  | ## v4.1.2 | ||||||
|  | - Fix: Disable sparse checkout whenever `sparse-checkout` option is not present @dscho in https://github.com/actions/checkout/pull/1598 | ||||||
|  |  | ||||||
|  | ## v4.1.1 | ||||||
|  | - Correct link to GitHub Docs by @peterbe in https://github.com/actions/checkout/pull/1511 | ||||||
|  | - Link to release page from what's new section by @cory-miller in https://github.com/actions/checkout/pull/1514 | ||||||
|  |  | ||||||
|  | ## v4.1.0 | ||||||
|  | - [Add support for partial checkout filters](https://github.com/actions/checkout/pull/1396) | ||||||
|  |  | ||||||
| ## v4.0.0 | ## v4.0.0 | ||||||
| - [Support fetching without the --progress option](https://github.com/actions/checkout/pull/1067) | - [Support fetching without the --progress option](https://github.com/actions/checkout/pull/1067) | ||||||
| - [Update to node20](https://github.com/actions/checkout/pull/1436) | - [Update to node20](https://github.com/actions/checkout/pull/1436) | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| * @actions/actions-runtime | * @actions/actions-launch | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,10 +1,10 @@ | |||||||
| [](https://github.com/actions/checkout/actions/workflows/test.yml) | [](https://github.com/actions/checkout/actions/workflows/test.yml) | ||||||
|  |  | ||||||
| # Checkout V3 | # Checkout V4 | ||||||
|  |  | ||||||
| This action checks-out your repository under `$GITHUB_WORKSPACE`, so your workflow can access it. | This action checks-out your repository under `$GITHUB_WORKSPACE`, so your workflow can access it. | ||||||
|  |  | ||||||
| Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. Set `fetch-depth: 0` to fetch all history for all branches and tags. Refer [here](https://help.github.com/en/articles/events-that-trigger-workflows) to learn which commit `$GITHUB_SHA` points to for different events. | Only a single commit is fetched by default, for the ref/SHA that triggered the workflow. Set `fetch-depth: 0` to fetch all history for all branches and tags. Refer [here](https://docs.github.com/actions/using-workflows/events-that-trigger-workflows) to learn which commit `$GITHUB_SHA` points to for different events. | ||||||
|  |  | ||||||
| The auth token is persisted in the local git config. This enables your scripts to run authenticated git commands. The token is removed during post-job cleanup. Set `persist-credentials: false` to opt-out. | The auth token is persisted in the local git config. This enables your scripts to run authenticated git commands. The token is removed during post-job cleanup. Set `persist-credentials: false` to opt-out. | ||||||
|  |  | ||||||
| @@ -12,14 +12,13 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|  |  | ||||||
| # What's new | # What's new | ||||||
|  |  | ||||||
| - Updated to the node16 runtime by default | Please refer to the [release page](https://github.com/actions/checkout/releases/latest) for the latest release notes. | ||||||
|   - This requires a minimum [Actions Runner](https://github.com/actions/runner/releases/tag/v2.285.0) version of v2.285.0 to run, which is by default available in GHES 3.4 or later. |  | ||||||
|  |  | ||||||
| # Usage | # Usage | ||||||
|  |  | ||||||
| <!-- start usage --> | <!-- start usage --> | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     # Repository name with owner. For example, actions/checkout |     # Repository name with owner. For example, actions/checkout | ||||||
|     # Default: ${{ github.repository }} |     # Default: ${{ github.repository }} | ||||||
| @@ -74,8 +73,12 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|     # Default: true |     # Default: true | ||||||
|     clean: '' |     clean: '' | ||||||
|  |  | ||||||
|  |     # Partially clone against a given filter. Overrides sparse-checkout if set. | ||||||
|  |     # Default: null | ||||||
|  |     filter: '' | ||||||
|  |  | ||||||
|     # Do a sparse checkout on given patterns. Each pattern should be separated with |     # Do a sparse checkout on given patterns. Each pattern should be separated with | ||||||
|     # new lines |     # new lines. | ||||||
|     # Default: null |     # Default: null | ||||||
|     sparse-checkout: '' |     sparse-checkout: '' | ||||||
|  |  | ||||||
| @@ -139,7 +142,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Fetch only the root files | ## Fetch only the root files | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     sparse-checkout: . |     sparse-checkout: . | ||||||
| ``` | ``` | ||||||
| @@ -147,7 +150,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Fetch only the root files and `.github` and `src` folder | ## Fetch only the root files and `.github` and `src` folder | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     sparse-checkout: | |     sparse-checkout: | | ||||||
|       .github |       .github | ||||||
| @@ -157,7 +160,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Fetch only a single file | ## Fetch only a single file | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     sparse-checkout: | |     sparse-checkout: | | ||||||
|       README.md |       README.md | ||||||
| @@ -167,7 +170,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Fetch all history for all tags and branches | ## Fetch all history for all tags and branches | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     fetch-depth: 0 |     fetch-depth: 0 | ||||||
| ``` | ``` | ||||||
| @@ -175,7 +178,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Checkout a different branch | ## Checkout a different branch | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     ref: my-branch |     ref: my-branch | ||||||
| ``` | ``` | ||||||
| @@ -183,7 +186,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Checkout HEAD^ | ## Checkout HEAD^ | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     fetch-depth: 2 |     fetch-depth: 2 | ||||||
| - run: git checkout HEAD^ | - run: git checkout HEAD^ | ||||||
| @@ -193,12 +196,12 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     path: main |     path: main | ||||||
|  |  | ||||||
| - name: Checkout tools repo | - name: Checkout tools repo | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-tools |     repository: my-org/my-tools | ||||||
|     path: my-tools |     path: my-tools | ||||||
| @@ -209,10 +212,10 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|  |  | ||||||
| - name: Checkout tools repo | - name: Checkout tools repo | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-tools |     repository: my-org/my-tools | ||||||
|     path: my-tools |     path: my-tools | ||||||
| @@ -223,12 +226,12 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - name: Checkout | - name: Checkout | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     path: main |     path: main | ||||||
|  |  | ||||||
| - name: Checkout private tools | - name: Checkout private tools | ||||||
|   uses: actions/checkout@v3 |   uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     repository: my-org/my-private-tools |     repository: my-org/my-private-tools | ||||||
|     token: ${{ secrets.GH_PAT }} # `GH_PAT` is a secret that contains your PAT |     token: ${{ secrets.GH_PAT }} # `GH_PAT` is a secret that contains your PAT | ||||||
| @@ -241,7 +244,7 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl | |||||||
| ## Checkout pull request HEAD commit instead of merge commit | ## Checkout pull request HEAD commit instead of merge commit | ||||||
|  |  | ||||||
| ```yaml | ```yaml | ||||||
| - uses: actions/checkout@v3 | - uses: actions/checkout@v4 | ||||||
|   with: |   with: | ||||||
|     ref: ${{ github.event.pull_request.head.sha }} |     ref: ${{ github.event.pull_request.head.sha }} | ||||||
| ``` | ``` | ||||||
| @@ -257,7 +260,7 @@ jobs: | |||||||
|   build: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v4 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Push a commit using the built-in token | ## Push a commit using the built-in token | ||||||
| @@ -268,7 +271,7 @@ jobs: | |||||||
|   build: |   build: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|       - uses: actions/checkout@v3 |       - uses: actions/checkout@v4 | ||||||
|       - run: | |       - run: | | ||||||
|           date > generated.txt |           date > generated.txt | ||||||
|           git config user.name github-actions |           git config user.name github-actions | ||||||
|   | |||||||
| @@ -727,6 +727,7 @@ async function setup(testName: string): Promise<void> { | |||||||
|     branchDelete: jest.fn(), |     branchDelete: jest.fn(), | ||||||
|     branchExists: jest.fn(), |     branchExists: jest.fn(), | ||||||
|     branchList: jest.fn(), |     branchList: jest.fn(), | ||||||
|  |     disableSparseCheckout: jest.fn(), | ||||||
|     sparseCheckout: jest.fn(), |     sparseCheckout: jest.fn(), | ||||||
|     sparseCheckoutNonConeMode: jest.fn(), |     sparseCheckoutNonConeMode: jest.fn(), | ||||||
|     checkout: jest.fn(), |     checkout: jest.fn(), | ||||||
| @@ -802,6 +803,7 @@ async function setup(testName: string): Promise<void> { | |||||||
|     authToken: 'some auth token', |     authToken: 'some auth token', | ||||||
|     clean: true, |     clean: true, | ||||||
|     commit: '', |     commit: '', | ||||||
|  |     filter: undefined, | ||||||
|     sparseCheckout: [], |     sparseCheckout: [], | ||||||
|     sparseCheckoutConeMode: true, |     sparseCheckoutConeMode: true, | ||||||
|     fetchDepth: 1, |     fetchDepth: 1, | ||||||
|   | |||||||
| @@ -462,6 +462,7 @@ async function setup(testName: string): Promise<void> { | |||||||
|     branchList: jest.fn(async () => { |     branchList: jest.fn(async () => { | ||||||
|       return [] |       return [] | ||||||
|     }), |     }), | ||||||
|  |     disableSparseCheckout: jest.fn(), | ||||||
|     sparseCheckout: jest.fn(), |     sparseCheckout: jest.fn(), | ||||||
|     sparseCheckoutNonConeMode: jest.fn(), |     sparseCheckoutNonConeMode: jest.fn(), | ||||||
|     checkout: jest.fn(), |     checkout: jest.fn(), | ||||||
|   | |||||||
| @@ -79,6 +79,7 @@ describe('input-helper tests', () => { | |||||||
|     expect(settings.clean).toBe(true) |     expect(settings.clean).toBe(true) | ||||||
|     expect(settings.commit).toBeTruthy() |     expect(settings.commit).toBeTruthy() | ||||||
|     expect(settings.commit).toBe('1234567890123456789012345678901234567890') |     expect(settings.commit).toBe('1234567890123456789012345678901234567890') | ||||||
|  |     expect(settings.filter).toBe(undefined) | ||||||
|     expect(settings.sparseCheckout).toBe(undefined) |     expect(settings.sparseCheckout).toBe(undefined) | ||||||
|     expect(settings.sparseCheckoutConeMode).toBe(true) |     expect(settings.sparseCheckoutConeMode).toBe(true) | ||||||
|     expect(settings.fetchDepth).toBe(1) |     expect(settings.fetchDepth).toBe(1) | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								__test__/verify-fetch-filter.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								__test__/verify-fetch-filter.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | # Verify .git folder | ||||||
|  | if [ ! -d "./fetch-filter/.git" ]; then | ||||||
|  |   echo "Expected ./fetch-filter/.git folder to exist" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # Verify .git/config contains partialclonefilter | ||||||
|  |  | ||||||
|  | CLONE_FILTER=$(git -C fetch-filter config --local --get remote.origin.partialclonefilter) | ||||||
|  |  | ||||||
|  | if [ "$CLONE_FILTER" != "blob:none" ]; then | ||||||
|  |   echo "Expected ./fetch-filter/.git/config to have 'remote.origin.partialclonefilter' set to 'blob:none'" | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
| @@ -53,10 +53,15 @@ inputs: | |||||||
|   clean: |   clean: | ||||||
|     description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' |     description: 'Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching' | ||||||
|     default: true |     default: true | ||||||
|  |   filter: | ||||||
|  |     description: > | ||||||
|  |       Partially clone against a given filter. | ||||||
|  |       Overrides sparse-checkout if set. | ||||||
|  |     default: null | ||||||
|   sparse-checkout: |   sparse-checkout: | ||||||
|     description: > |     description: > | ||||||
|       Do a sparse checkout on given patterns. |       Do a sparse checkout on given patterns. | ||||||
|       Each pattern should be separated with new lines |       Each pattern should be separated with new lines. | ||||||
|     default: null |     default: null | ||||||
|   sparse-checkout-cone-mode: |   sparse-checkout-cone-mode: | ||||||
|     description: > |     description: > | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -576,6 +576,11 @@ class GitCommandManager { | |||||||
|             return result; |             return result; | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|  |     disableSparseCheckout() { | ||||||
|  |         return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |             yield this.execGit(['sparse-checkout', 'disable']); | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|     sparseCheckout(sparseCheckout) { |     sparseCheckout(sparseCheckout) { | ||||||
|         return __awaiter(this, void 0, void 0, function* () { |         return __awaiter(this, void 0, void 0, function* () { | ||||||
|             yield this.execGit(['sparse-checkout', 'set', ...sparseCheckout]); |             yield this.execGit(['sparse-checkout', 'set', ...sparseCheckout]); | ||||||
| @@ -1244,8 +1249,12 @@ function getSource(settings) { | |||||||
|             // Fetch |             // Fetch | ||||||
|             core.startGroup('Fetching the repository'); |             core.startGroup('Fetching the repository'); | ||||||
|             const fetchOptions = {}; |             const fetchOptions = {}; | ||||||
|             if (settings.sparseCheckout) |             if (settings.filter) { | ||||||
|  |                 fetchOptions.filter = settings.filter; | ||||||
|  |             } | ||||||
|  |             else if (settings.sparseCheckout) { | ||||||
|                 fetchOptions.filter = 'blob:none'; |                 fetchOptions.filter = 'blob:none'; | ||||||
|  |             } | ||||||
|             if (settings.fetchDepth <= 0) { |             if (settings.fetchDepth <= 0) { | ||||||
|                 // Fetch all branches and tags |                 // Fetch all branches and tags | ||||||
|                 let refSpec = refHelper.getRefSpecForAllHistory(settings.ref, settings.commit); |                 let refSpec = refHelper.getRefSpecForAllHistory(settings.ref, settings.commit); | ||||||
| @@ -1278,7 +1287,10 @@ function getSource(settings) { | |||||||
|                 core.endGroup(); |                 core.endGroup(); | ||||||
|             } |             } | ||||||
|             // Sparse checkout |             // Sparse checkout | ||||||
|             if (settings.sparseCheckout) { |             if (!settings.sparseCheckout) { | ||||||
|  |                 yield git.disableSparseCheckout(); | ||||||
|  |             } | ||||||
|  |             else { | ||||||
|                 core.startGroup('Setting up sparse checkout'); |                 core.startGroup('Setting up sparse checkout'); | ||||||
|                 if (settings.sparseCheckoutConeMode) { |                 if (settings.sparseCheckoutConeMode) { | ||||||
|                     yield git.sparseCheckout(settings.sparseCheckout); |                     yield git.sparseCheckout(settings.sparseCheckout); | ||||||
| @@ -1723,6 +1735,12 @@ function getInputs() { | |||||||
|         // Clean |         // Clean | ||||||
|         result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE'; |         result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE'; | ||||||
|         core.debug(`clean = ${result.clean}`); |         core.debug(`clean = ${result.clean}`); | ||||||
|  |         // Filter | ||||||
|  |         const filter = core.getInput('filter'); | ||||||
|  |         if (filter) { | ||||||
|  |             result.filter = filter; | ||||||
|  |         } | ||||||
|  |         core.debug(`filter = ${result.filter}`); | ||||||
|         // Sparse checkout |         // Sparse checkout | ||||||
|         const sparseCheckout = core.getMultilineInput('sparse-checkout'); |         const sparseCheckout = core.getMultilineInput('sparse-checkout'); | ||||||
|         if (sparseCheckout.length) { |         if (sparseCheckout.length) { | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								images/test-ubuntu-git.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								images/test-ubuntu-git.Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | # Defines the test-ubuntu-git Container Image. | ||||||
|  | # Consumed by actions/checkout CI/CD validation workflows. | ||||||
|  |  | ||||||
|  | FROM ubuntu:latest | ||||||
|  |  | ||||||
|  | RUN apt update | ||||||
|  | RUN apt install -y git | ||||||
|  |  | ||||||
|  | LABEL org.opencontainers.image.title="Ubuntu + git (validation image)" | ||||||
|  | LABEL org.opencontainers.image.description="Ubuntu image with git pre-installed. Intended primarily for testing `actions/checkout` during CI/CD workflows." | ||||||
|  | LABEL org.opencontainers.image.documentation="https://github.com/actions/checkout/tree/main/images/test-ubuntu-git.md" | ||||||
|  | LABEL org.opencontainers.image.licenses=MIT | ||||||
							
								
								
									
										15
									
								
								images/test-ubuntu-git.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								images/test-ubuntu-git.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | # `test-ubuntu-git` Container Image | ||||||
|  |  | ||||||
|  | [](https://github.com/actions/checkout/actions/workflows/update-test-ubuntu-git.yml) | ||||||
|  |  | ||||||
|  | ## Purpose | ||||||
|  |  | ||||||
|  | `test-ubuntu-git` is a container image hosted on the GitHub Container Registry, `ghcr.io`.   | ||||||
|  |  | ||||||
|  | It is intended primarily for testing the [`actions/checkout` repository](https://github.com/actions/checkout) as part of `actions/checkout`'s CI/CD workflows. | ||||||
|  |  | ||||||
|  | The composition of `test-ubuntu-git` is intentionally minimal.  It is comprised of [git](https://git-scm.com/) installed on top of a [base-level ubuntu image](https://hub.docker.com/_/ubuntu/tags). | ||||||
|  |  | ||||||
|  | # License | ||||||
|  |  | ||||||
|  | `test-ubuntu-git` is released under the [MIT License](/LICENSE). | ||||||
							
								
								
									
										326
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										326
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.0.0", |   "version": "4.1.2", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "checkout", |       "name": "checkout", | ||||||
|       "version": "4.0.0", |       "version": "4.1.2", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.10.0", | ||||||
| @@ -115,12 +115,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/code-frame": { |     "node_modules/@babel/code-frame": { | ||||||
|       "version": "7.18.6", |       "version": "7.23.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", | ||||||
|       "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", |       "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/highlight": "^7.18.6" |         "@babel/highlight": "^7.23.4", | ||||||
|  |         "chalk": "^2.4.2" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
| @@ -175,13 +176,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/generator": { |     "node_modules/@babel/generator": { | ||||||
|       "version": "7.20.5", |       "version": "7.23.6", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", | ||||||
|       "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", |       "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/types": "^7.20.5", |         "@babel/types": "^7.23.6", | ||||||
|         "@jridgewell/gen-mapping": "^0.3.2", |         "@jridgewell/gen-mapping": "^0.3.2", | ||||||
|  |         "@jridgewell/trace-mapping": "^0.3.17", | ||||||
|         "jsesc": "^2.5.1" |         "jsesc": "^2.5.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @@ -230,34 +232,34 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-environment-visitor": { |     "node_modules/@babel/helper-environment-visitor": { | ||||||
|       "version": "7.18.9", |       "version": "7.22.20", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", | ||||||
|       "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", |       "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-function-name": { |     "node_modules/@babel/helper-function-name": { | ||||||
|       "version": "7.19.0", |       "version": "7.23.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", | ||||||
|       "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", |       "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/template": "^7.18.10", |         "@babel/template": "^7.22.15", | ||||||
|         "@babel/types": "^7.19.0" |         "@babel/types": "^7.23.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-hoist-variables": { |     "node_modules/@babel/helper-hoist-variables": { | ||||||
|       "version": "7.18.6", |       "version": "7.22.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", | ||||||
|       "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", |       "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/types": "^7.18.6" |         "@babel/types": "^7.22.5" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
| @@ -313,30 +315,30 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-split-export-declaration": { |     "node_modules/@babel/helper-split-export-declaration": { | ||||||
|       "version": "7.18.6", |       "version": "7.22.6", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", | ||||||
|       "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", |       "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/types": "^7.18.6" |         "@babel/types": "^7.22.5" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-string-parser": { |     "node_modules/@babel/helper-string-parser": { | ||||||
|       "version": "7.19.4", |       "version": "7.23.4", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", | ||||||
|       "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", |       "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/helper-validator-identifier": { |     "node_modules/@babel/helper-validator-identifier": { | ||||||
|       "version": "7.19.1", |       "version": "7.22.20", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", | ||||||
|       "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", |       "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
| @@ -366,13 +368,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/highlight": { |     "node_modules/@babel/highlight": { | ||||||
|       "version": "7.18.6", |       "version": "7.23.4", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", | ||||||
|       "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", |       "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/helper-validator-identifier": "^7.18.6", |         "@babel/helper-validator-identifier": "^7.22.20", | ||||||
|         "chalk": "^2.0.0", |         "chalk": "^2.4.2", | ||||||
|         "js-tokens": "^4.0.0" |         "js-tokens": "^4.0.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @@ -380,9 +382,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/parser": { |     "node_modules/@babel/parser": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", | ||||||
|       "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", |       "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "parser": "bin/babel-parser.js" |         "parser": "bin/babel-parser.js" | ||||||
| @@ -671,34 +673,34 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/template": { |     "node_modules/@babel/template": { | ||||||
|       "version": "7.18.10", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", |       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", | ||||||
|       "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", |       "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/code-frame": "^7.18.6", |         "@babel/code-frame": "^7.23.5", | ||||||
|         "@babel/parser": "^7.18.10", |         "@babel/parser": "^7.24.0", | ||||||
|         "@babel/types": "^7.18.10" |         "@babel/types": "^7.24.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6.9.0" |         "node": ">=6.9.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/traverse": { |     "node_modules/@babel/traverse": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", | ||||||
|       "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", |       "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/code-frame": "^7.18.6", |         "@babel/code-frame": "^7.23.5", | ||||||
|         "@babel/generator": "^7.20.5", |         "@babel/generator": "^7.23.6", | ||||||
|         "@babel/helper-environment-visitor": "^7.18.9", |         "@babel/helper-environment-visitor": "^7.22.20", | ||||||
|         "@babel/helper-function-name": "^7.19.0", |         "@babel/helper-function-name": "^7.23.0", | ||||||
|         "@babel/helper-hoist-variables": "^7.18.6", |         "@babel/helper-hoist-variables": "^7.22.5", | ||||||
|         "@babel/helper-split-export-declaration": "^7.18.6", |         "@babel/helper-split-export-declaration": "^7.22.6", | ||||||
|         "@babel/parser": "^7.20.5", |         "@babel/parser": "^7.24.0", | ||||||
|         "@babel/types": "^7.20.5", |         "@babel/types": "^7.24.0", | ||||||
|         "debug": "^4.1.0", |         "debug": "^4.3.1", | ||||||
|         "globals": "^11.1.0" |         "globals": "^11.1.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @@ -706,13 +708,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@babel/types": { |     "node_modules/@babel/types": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", | ||||||
|       "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", |       "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@babel/helper-string-parser": "^7.19.4", |         "@babel/helper-string-parser": "^7.23.4", | ||||||
|         "@babel/helper-validator-identifier": "^7.19.1", |         "@babel/helper-validator-identifier": "^7.22.20", | ||||||
|         "to-fast-properties": "^2.0.0" |         "to-fast-properties": "^2.0.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @@ -8141,6 +8143,12 @@ | |||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/querystringify": { | ||||||
|  |       "version": "2.2.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", | ||||||
|  |       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", | ||||||
|  |       "dev": true | ||||||
|  |     }, | ||||||
|     "node_modules/queue-microtask": { |     "node_modules/queue-microtask": { | ||||||
|       "version": "1.2.3", |       "version": "1.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", | ||||||
| @@ -8191,6 +8199,12 @@ | |||||||
|         "node": ">=0.10.0" |         "node": ">=0.10.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/requires-port": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", | ||||||
|  |       "dev": true | ||||||
|  |     }, | ||||||
|     "node_modules/resolve-cwd": { |     "node_modules/resolve-cwd": { | ||||||
|       "version": "3.0.0", |       "version": "3.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", |       "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", | ||||||
| @@ -8713,14 +8727,15 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/tough-cookie": { |     "node_modules/tough-cookie": { | ||||||
|       "version": "4.0.0", |       "version": "4.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", | ||||||
|       "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", |       "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "psl": "^1.1.33", |         "psl": "^1.1.33", | ||||||
|         "punycode": "^2.1.1", |         "punycode": "^2.1.1", | ||||||
|         "universalify": "^0.1.2" |         "universalify": "^0.2.0", | ||||||
|  |         "url-parse": "^1.5.3" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=6" |         "node": ">=6" | ||||||
| @@ -8937,9 +8952,9 @@ | |||||||
|       "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" |       "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" | ||||||
|     }, |     }, | ||||||
|     "node_modules/universalify": { |     "node_modules/universalify": { | ||||||
|       "version": "0.1.2", |       "version": "0.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", |       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", | ||||||
|       "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", |       "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 4.0.0" |         "node": ">= 4.0.0" | ||||||
| @@ -8980,6 +8995,16 @@ | |||||||
|         "punycode": "^2.1.0" |         "punycode": "^2.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/url-parse": { | ||||||
|  |       "version": "1.5.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", | ||||||
|  |       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", | ||||||
|  |       "dev": true, | ||||||
|  |       "dependencies": { | ||||||
|  |         "querystringify": "^2.1.1", | ||||||
|  |         "requires-port": "^1.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/uuid": { |     "node_modules/uuid": { | ||||||
|       "version": "3.3.3", |       "version": "3.3.3", | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", |       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", | ||||||
| @@ -9332,12 +9357,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/code-frame": { |     "@babel/code-frame": { | ||||||
|       "version": "7.18.6", |       "version": "7.23.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", | ||||||
|       "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", |       "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/highlight": "^7.18.6" |         "@babel/highlight": "^7.23.4", | ||||||
|  |         "chalk": "^2.4.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/compat-data": { |     "@babel/compat-data": { | ||||||
| @@ -9378,13 +9404,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/generator": { |     "@babel/generator": { | ||||||
|       "version": "7.20.5", |       "version": "7.23.6", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", | ||||||
|       "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", |       "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/types": "^7.20.5", |         "@babel/types": "^7.23.6", | ||||||
|         "@jridgewell/gen-mapping": "^0.3.2", |         "@jridgewell/gen-mapping": "^0.3.2", | ||||||
|  |         "@jridgewell/trace-mapping": "^0.3.17", | ||||||
|         "jsesc": "^2.5.1" |         "jsesc": "^2.5.1" | ||||||
|       }, |       }, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
| @@ -9422,28 +9449,28 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-environment-visitor": { |     "@babel/helper-environment-visitor": { | ||||||
|       "version": "7.18.9", |       "version": "7.22.20", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", | ||||||
|       "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", |       "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-function-name": { |     "@babel/helper-function-name": { | ||||||
|       "version": "7.19.0", |       "version": "7.23.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", | ||||||
|       "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", |       "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/template": "^7.18.10", |         "@babel/template": "^7.22.15", | ||||||
|         "@babel/types": "^7.19.0" |         "@babel/types": "^7.23.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-hoist-variables": { |     "@babel/helper-hoist-variables": { | ||||||
|       "version": "7.18.6", |       "version": "7.22.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", | ||||||
|       "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", |       "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/types": "^7.18.6" |         "@babel/types": "^7.22.5" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-module-imports": { |     "@babel/helper-module-imports": { | ||||||
| @@ -9487,24 +9514,24 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-split-export-declaration": { |     "@babel/helper-split-export-declaration": { | ||||||
|       "version": "7.18.6", |       "version": "7.22.6", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", | ||||||
|       "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", |       "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/types": "^7.18.6" |         "@babel/types": "^7.22.5" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-string-parser": { |     "@babel/helper-string-parser": { | ||||||
|       "version": "7.19.4", |       "version": "7.23.4", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", | ||||||
|       "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", |       "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-validator-identifier": { |     "@babel/helper-validator-identifier": { | ||||||
|       "version": "7.19.1", |       "version": "7.22.20", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", |       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", | ||||||
|       "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", |       "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "@babel/helper-validator-option": { |     "@babel/helper-validator-option": { | ||||||
| @@ -9525,20 +9552,20 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/highlight": { |     "@babel/highlight": { | ||||||
|       "version": "7.18.6", |       "version": "7.23.4", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", |       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", | ||||||
|       "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", |       "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/helper-validator-identifier": "^7.18.6", |         "@babel/helper-validator-identifier": "^7.22.20", | ||||||
|         "chalk": "^2.0.0", |         "chalk": "^2.4.2", | ||||||
|         "js-tokens": "^4.0.0" |         "js-tokens": "^4.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/parser": { |     "@babel/parser": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", | ||||||
|       "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", |       "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "@babel/plugin-syntax-async-generators": { |     "@babel/plugin-syntax-async-generators": { | ||||||
| @@ -9763,42 +9790,42 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/template": { |     "@babel/template": { | ||||||
|       "version": "7.18.10", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", |       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", | ||||||
|       "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", |       "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/code-frame": "^7.18.6", |         "@babel/code-frame": "^7.23.5", | ||||||
|         "@babel/parser": "^7.18.10", |         "@babel/parser": "^7.24.0", | ||||||
|         "@babel/types": "^7.18.10" |         "@babel/types": "^7.24.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/traverse": { |     "@babel/traverse": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", | ||||||
|       "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", |       "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/code-frame": "^7.18.6", |         "@babel/code-frame": "^7.23.5", | ||||||
|         "@babel/generator": "^7.20.5", |         "@babel/generator": "^7.23.6", | ||||||
|         "@babel/helper-environment-visitor": "^7.18.9", |         "@babel/helper-environment-visitor": "^7.22.20", | ||||||
|         "@babel/helper-function-name": "^7.19.0", |         "@babel/helper-function-name": "^7.23.0", | ||||||
|         "@babel/helper-hoist-variables": "^7.18.6", |         "@babel/helper-hoist-variables": "^7.22.5", | ||||||
|         "@babel/helper-split-export-declaration": "^7.18.6", |         "@babel/helper-split-export-declaration": "^7.22.6", | ||||||
|         "@babel/parser": "^7.20.5", |         "@babel/parser": "^7.24.0", | ||||||
|         "@babel/types": "^7.20.5", |         "@babel/types": "^7.24.0", | ||||||
|         "debug": "^4.1.0", |         "debug": "^4.3.1", | ||||||
|         "globals": "^11.1.0" |         "globals": "^11.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@babel/types": { |     "@babel/types": { | ||||||
|       "version": "7.20.5", |       "version": "7.24.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", |       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", | ||||||
|       "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", |       "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@babel/helper-string-parser": "^7.19.4", |         "@babel/helper-string-parser": "^7.23.4", | ||||||
|         "@babel/helper-validator-identifier": "^7.19.1", |         "@babel/helper-validator-identifier": "^7.22.20", | ||||||
|         "to-fast-properties": "^2.0.0" |         "to-fast-properties": "^2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @@ -15300,6 +15327,12 @@ | |||||||
|         "side-channel": "^1.0.4" |         "side-channel": "^1.0.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "querystringify": { | ||||||
|  |       "version": "2.2.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", | ||||||
|  |       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", | ||||||
|  |       "dev": true | ||||||
|  |     }, | ||||||
|     "queue-microtask": { |     "queue-microtask": { | ||||||
|       "version": "1.2.3", |       "version": "1.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", |       "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", | ||||||
| @@ -15324,6 +15357,12 @@ | |||||||
|       "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", |       "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "requires-port": { | ||||||
|  |       "version": "1.0.0", | ||||||
|  |       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", | ||||||
|  |       "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", | ||||||
|  |       "dev": true | ||||||
|  |     }, | ||||||
|     "resolve-cwd": { |     "resolve-cwd": { | ||||||
|       "version": "3.0.0", |       "version": "3.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", |       "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", | ||||||
| @@ -15720,14 +15759,15 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "tough-cookie": { |     "tough-cookie": { | ||||||
|       "version": "4.0.0", |       "version": "4.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", | ||||||
|       "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", |       "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "psl": "^1.1.33", |         "psl": "^1.1.33", | ||||||
|         "punycode": "^2.1.1", |         "punycode": "^2.1.1", | ||||||
|         "universalify": "^0.1.2" |         "universalify": "^0.2.0", | ||||||
|  |         "url-parse": "^1.5.3" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "tr46": { |     "tr46": { | ||||||
| @@ -15878,9 +15918,9 @@ | |||||||
|       "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" |       "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" | ||||||
|     }, |     }, | ||||||
|     "universalify": { |     "universalify": { | ||||||
|       "version": "0.1.2", |       "version": "0.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", |       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", | ||||||
|       "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", |       "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "update-browserslist-db": { |     "update-browserslist-db": { | ||||||
| @@ -15902,6 +15942,16 @@ | |||||||
|         "punycode": "^2.1.0" |         "punycode": "^2.1.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "url-parse": { | ||||||
|  |       "version": "1.5.10", | ||||||
|  |       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", | ||||||
|  |       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", | ||||||
|  |       "dev": true, | ||||||
|  |       "requires": { | ||||||
|  |         "querystringify": "^2.1.1", | ||||||
|  |         "requires-port": "^1.0.0" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "uuid": { |     "uuid": { | ||||||
|       "version": "3.3.3", |       "version": "3.3.3", | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", |       "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.0.0", |   "version": "4.1.2", | ||||||
|   "description": "checkout action", |   "description": "checkout action", | ||||||
|   "main": "lib/main.js", |   "main": "lib/main.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ export interface IGitCommandManager { | |||||||
|   branchDelete(remote: boolean, branch: string): Promise<void> |   branchDelete(remote: boolean, branch: string): Promise<void> | ||||||
|   branchExists(remote: boolean, pattern: string): Promise<boolean> |   branchExists(remote: boolean, pattern: string): Promise<boolean> | ||||||
|   branchList(remote: boolean): Promise<string[]> |   branchList(remote: boolean): Promise<string[]> | ||||||
|  |   disableSparseCheckout(): Promise<void> | ||||||
|   sparseCheckout(sparseCheckout: string[]): Promise<void> |   sparseCheckout(sparseCheckout: string[]): Promise<void> | ||||||
|   sparseCheckoutNonConeMode(sparseCheckout: string[]): Promise<void> |   sparseCheckoutNonConeMode(sparseCheckout: string[]): Promise<void> | ||||||
|   checkout(ref: string, startPoint: string): Promise<void> |   checkout(ref: string, startPoint: string): Promise<void> | ||||||
| @@ -171,6 +172,10 @@ class GitCommandManager { | |||||||
|     return result |     return result | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   async disableSparseCheckout(): Promise<void> { | ||||||
|  |     await this.execGit(['sparse-checkout', 'disable']) | ||||||
|  |   } | ||||||
|  |  | ||||||
|   async sparseCheckout(sparseCheckout: string[]): Promise<void> { |   async sparseCheckout(sparseCheckout: string[]): Promise<void> { | ||||||
|     await this.execGit(['sparse-checkout', 'set', ...sparseCheckout]) |     await this.execGit(['sparse-checkout', 'set', ...sparseCheckout]) | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -159,7 +159,13 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | |||||||
|       fetchTags?: boolean |       fetchTags?: boolean | ||||||
|       showProgress?: boolean |       showProgress?: boolean | ||||||
|     } = {} |     } = {} | ||||||
|     if (settings.sparseCheckout) fetchOptions.filter = 'blob:none' |  | ||||||
|  |     if (settings.filter) { | ||||||
|  |       fetchOptions.filter = settings.filter | ||||||
|  |     } else if (settings.sparseCheckout) { | ||||||
|  |       fetchOptions.filter = 'blob:none' | ||||||
|  |     } | ||||||
|  |  | ||||||
|     if (settings.fetchDepth <= 0) { |     if (settings.fetchDepth <= 0) { | ||||||
|       // Fetch all branches and tags |       // Fetch all branches and tags | ||||||
|       let refSpec = refHelper.getRefSpecForAllHistory( |       let refSpec = refHelper.getRefSpecForAllHistory( | ||||||
| @@ -202,7 +208,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Sparse checkout |     // Sparse checkout | ||||||
|     if (settings.sparseCheckout) { |     if (!settings.sparseCheckout) { | ||||||
|  |       await git.disableSparseCheckout() | ||||||
|  |     } else { | ||||||
|       core.startGroup('Setting up sparse checkout') |       core.startGroup('Setting up sparse checkout') | ||||||
|       if (settings.sparseCheckoutConeMode) { |       if (settings.sparseCheckoutConeMode) { | ||||||
|         await git.sparseCheckout(settings.sparseCheckout) |         await git.sparseCheckout(settings.sparseCheckout) | ||||||
|   | |||||||
| @@ -29,6 +29,11 @@ export interface IGitSourceSettings { | |||||||
|    */ |    */ | ||||||
|   clean: boolean |   clean: boolean | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * The filter determining which objects to include | ||||||
|  |    */ | ||||||
|  |   filter: string | undefined | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * The array of folders to make the sparse checkout |    * The array of folders to make the sparse checkout | ||||||
|    */ |    */ | ||||||
|   | |||||||
| @@ -82,6 +82,14 @@ export async function getInputs(): Promise<IGitSourceSettings> { | |||||||
|   result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE' |   result.clean = (core.getInput('clean') || 'true').toUpperCase() === 'TRUE' | ||||||
|   core.debug(`clean = ${result.clean}`) |   core.debug(`clean = ${result.clean}`) | ||||||
|  |  | ||||||
|  |   // Filter | ||||||
|  |   const filter = core.getInput('filter') | ||||||
|  |   if (filter) { | ||||||
|  |     result.filter = filter | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   core.debug(`filter = ${result.filter}`) | ||||||
|  |  | ||||||
|   // Sparse checkout |   // Sparse checkout | ||||||
|   const sparseCheckout = core.getMultilineInput('sparse-checkout') |   const sparseCheckout = core.getMultilineInput('sparse-checkout') | ||||||
|   if (sparseCheckout.length) { |   if (sparseCheckout.length) { | ||||||
|   | |||||||
| @@ -120,7 +120,7 @@ function updateUsage( | |||||||
| } | } | ||||||
|  |  | ||||||
| updateUsage( | updateUsage( | ||||||
|   'actions/checkout@v3', |   'actions/checkout@v4', | ||||||
|   path.join(__dirname, '..', '..', 'action.yml'), |   path.join(__dirname, '..', '..', 'action.yml'), | ||||||
|   path.join(__dirname, '..', '..', 'README.md') |   path.join(__dirname, '..', '..', 'README.md') | ||||||
| ) | ) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user