Commit graph

62 commits

Author SHA1 Message Date
eric sciple
069c695914
Persist creds to a separate file (#2286) 2025-11-03 13:08:38 -06:00
Salman Chishti
631c7dc4f8
Update package dependencies (#2236)

* package updates

* update dist

* Update license files

2025-08-11 11:22:41 +01:00
John Wesley Walker III
163217dfcd
url-helper.ts now leverages well-known environment variables. (#1941)

* `utl-helper.ts` now leverages well-known environment variables.

--------- Co-authored-by: Erez Testiler <easyt@github.com>

2024-10-18 10:07:17 +02:00
Orhan Toy
de5a000abf
Check out other refs/* by commit if provided, fall back to ref (#1924) 2024-10-01 20:24:28 -04:00
dependabot[bot]
db0cee9a51
Bump the minor-npm-dependencies group across 1 directory with 4 updates (#1872)

* Bump the minor-npm-dependencies group across 1 directory with 4 updates

Bumps the minor-npm-dependencies group with 4 updates in the / directory: [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest), [prettier](https://github.com/prettier/prettier), [ts-jest](https://github.com/kulshekhar/ts-jest) and [typescript](https://github.com/Microsoft/TypeScript).

Updates `eslint-plugin-jest` from 28.5.0 to 28.8.2 - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.5.0...v28.8.2)

Updates `prettier` from 3.2.5 to 3.3.3 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.3)

Updates `ts-jest` from 29.1.2 to 29.2.5 - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.1.2...v29.2.5)

Updates `typescript` from 5.4.5 to 5.5.4 - [Release notes](https://github.com/Microsoft/TypeScript/releases) - [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml) - [Commits](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.4)

--- updated-dependencies: - dependency-name: eslint-plugin-jest dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-npm-dependencies - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-npm-dependencies - dependency-name: ts-jest dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-npm-dependencies - dependency-name: typescript dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor-npm-dependencies ...

Signed-off-by: dependabot[bot] <support@github.com>

* `npm run build`

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Gross <joshmgross@github.com>
2024-09-05 15:04:17 -04:00
Luca Comellini
b684943689
Add Ref and Commit outputs (#1180)
Signed-off-by: Luca Comellini <luca.com@gmail.com>
2024-09-05 11:57:13 -04:00
Orhan Toy
b17fe1e4d5
Handle hidden refs (#1774)
Co-authored-by: Chris Gavin <chris@chrisgavin.me>
2024-06-12 11:01:40 -04:00
Cory Miller
24ed1a3528
Check platform for extension (#1732) 2024-05-16 13:40:36 -04:00
Cory Miller
9c1e94e0ad
Update NPM dependencies (#1703)

* Update dependencies manually * Format files * Update licenses

2024-04-24 12:04:10 -04:00
John Wesley Walker III
43045ae669
Disable extensions.worktreeConfig when disabling sparse-checkout (#1692) 2024-04-23 22:07:43 +02:00
Cory Miller
1d96c772d1
Add SSH user parameter (#1685)

* Add a configurable SSH user

* Update docs with param

* Indentation of readme

* formatting woes

* Update src/url-helper.ts

Co-authored-by: Josh Gross <joshmgross@github.com>

* Update action.yml

Co-authored-by: Josh Gross <joshmgross@github.com>

* Update genfiles

---------

Co-authored-by: Josh Gross <joshmgross@github.com>
2024-04-18 15:29:55 -04:00
John Wesley Walker III
cd7d8d697e
Check git version before attempting to disable sparse-checkout (#1656)

* Check git version before attempting to disable `sparse-checkout` * Bump `MinimumGitSparseCheckoutVersion` to 2.28 due to #1386 * Initial prep for release 4.1.3

2024-03-14 15:40:14 +01:00
Johannes Schindelin
aadec89964
Explicitly disable sparse checkout unless asked for (#1598)

When a worktree is reused by actions/checkout and the first time sparse checkout was enabled, we need to ensure that the second time it is only a sparse checkout if explicitly asked for. Otherwise, we need to disable the sparse checkout so that a full checkout is the outcome of this Action.

## Details * If no `sparse-checkout` parameter is specified, disable it

This should allow users to reuse existing folders when running `actions/checkout` where a previous run asked for a sparse checkout but the current run does not ask for a sparse checkout.

This fixes https://github.com/actions/checkout/issues/1475

There are use cases in particular with non-ephemeral (self-hosted) runners where an existing worktree (that has been initialized as a sparse checkout) is reused in subsequent CI runs (where `actions/checkout` is run _without_ any `sparse-checkout` parameter).

In these scenarios, we need to make sure that the sparse checkout is disabled before checking out the files.

### Also includes:

* npm run build * ci: verify that an existing sparse checkout can be made unsparse * Added a clarifying comment about test branches. * `test-proxy` now uses newly-minted `test-ubuntu-git` container image from ghcr.io

---------

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Co-authored-by: John Wesley Walker III <81404201+jww3@users.noreply.github.com>
2024-02-21 13:56:19 +01:00
Finley Garton
c533a0a4cf
Add support for partial checkout filters (#1396)

* added filter option & tests

* added build file

* fix test oversight

* added exit 1

* updated docs to specify override

* undo unneeded readme change

* set to undefined rather than empty string

* run git config in correct di

---------

Co-authored-by: Cory Miller <13227161+cory-miller@users.noreply.github.com>
2023-09-22 13:30:36 -04:00
Simon Baird
8b5e8b7687
Support fetching without the --progress option (#1067)

Setting the `show-progress` option to false in the `with` section of the workflow step will cause git fetch to run without `--progress`.

The motivation is to be able to suppress the noisy progress status output which adds many hundreds of "remote: Counting objects: 85% (386/453)" and similar lines in the workflow log.

This should be sufficient to resolve #894 and its older friends, though the solution is different to the one proposed there because it doesn't use the --quiet flag. IIUC git doesn't show the progress status by default since the output is not a terminal, so that's why removing the --progress option is all that's needed.

Adding the --quiet flag doesn't make a lot of difference once the --progress flag is removed, and actually I think using --quiet would suppress some other more useful output that would be better left visible.

Signed-off-by: Simon Baird <sbaird@redhat.com>
2023-09-01 14:19:18 -04:00
Robert Wieczoreck
7739b9ba2e
Add option to fetch tags even if fetch-depth > 0 (#579)

* Add option to fetch tags even if fetch-depth > 0

* Add jest tests for fetchDepth and fetchTags options

2023-08-16 16:34:54 -04:00
Johannes Schindelin
d106d4669b
Add support for sparse checkouts (#1369)

* Add support for sparse checkouts

* sparse-checkout: optionally turn off cone mode

While it _is_ true that cone mode is the default nowadays (mainly for performance reasons: code mode is much faster than non-cone mode), there _are_ legitimate use cases where non-cone mode is really useful.

Let's add a flag to optionally disable cone mode.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

* Verify minimum Git version for sparse checkout

The `git sparse-checkout` command is available only since Git version v2.25.0. The `actions/checkout` Action actually supports older Git versions than that; As of time of writing, the minimum version is v2.18.0.

Instead of raising this minimum version even for users who do not require a sparse checkout, only check for this minimum version specifically when a sparse checkout was asked for.

Suggested-by: Tingluo Huang <tingluohuang@github.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

* Support sparse checkout/LFS better

Instead of fetching all the LFS objects present in the current revision in a sparse checkout, whether they are needed inside the sparse cone or not, let's instead only pull the ones that are actually needed.

To do that, let's avoid running that preemptive `git lfs fetch` call in case of a sparse checkout.

An alternative that was considered during the development of this patch (and ultimately rejected) was to use `git lfs pull --include <path>...`, but it turned out to be too inflexible because it requires exact paths, not the patterns that are available via the sparse checkout definition, and that risks running into command-line length limitations.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

---------

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Co-authored-by: Daniel <daniel.fernandez@feverup.com>
2023-06-09 09:08:21 -04:00
Dimitri Papadopoulos Orfanos
f095bcc56b
Fix typos found by codespell (#1287) 2023-04-19 16:55:10 +02:00
SKi
47fbe2df0a
Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in (#1196)

* Fix Self hosted runner issue wrt bad submodules - solution cleanup working space.

* Fix format with npm run format output

* Add mock implementation for new function submoduleStatus

* Add 2 test cases for submodule status.

* Codeql-Action Analyse revert v1 to v2

---------

Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com>
Co-authored-by: sminnie <minnie@sankhe.com>
2023-04-14 06:26:47 -04:00
Ferenc Hammerl
eb35239ec2
Fix: convert baseUrl to serverApiUrl 'formatted' (#1289)

* fix: convert baseUrl to apiUrl

* Run prettier

---------

Co-authored-by: 1newsr <1newsr@users.noreply.github.com>
2023-04-13 14:25:50 +02:00
Binrui Dong
40a16ebeed
Improve checkout performance on Windows runners by upgrading @actions/github dependency (#1246)

* Improve checkout performance on Windows runners by upgrading @actions/github dependency

@dscho discovered that the checkout action could stall for a considerable amount of time on Windows runners waiting for PowerShell invocations made from 'windows-release' npm package to complete.

Then I studied the dependency chain to figure out where 'windows-release' was imported:

'@actions/checkout'@main <- '@actions/github'@2.2.0 <- '@octokit/endpoint'@6.0.1 <- '@octokit/graphql'@4.3.1 <- '@octokit/request'@5.4.2 <- '@octokit/rest'@16.43.1 <- 'universal-user-agent'@4.0.1 <- 'os-name'@3.1.0 <- 'windows-release'@3.1.0

'universal-user-agent' package dropped its dependency on 'os-name' in https://github.com/gr2m/universal-user-agent/releases/tag/v6.0.0 .

'@actions/github' v3 removed dependency on '@octokit/rest'@16.43.1 and allows users to move away from the old 'universal-user-agent' v4. (https://github.com/actions/toolkit/pull/453)

This pull request attempts to update the version of '@actions/github' used in the checkout action to avoid importing 'windows-release'.

Based on testing in my own repositories, I can see an improvement in reduced wait time between entering the checkout action and git actually starts to do useful work.

* Update .licenses

* Rebuild index.js

2023-04-12 13:55:27 +02:00
Cameron Booth
8f4b7f8486
Add new public key for known_hosts (#1237)

* Add new public key for known_hosts

* Fix the build!

2023-03-24 01:34:48 -04:00
Cory Miller
24cb908017
Bump @actions/io to v1.1.3 (#1225)

* Backfill changelog and bump actions/io * Fill in PR for action/io upgrade * Licensed updates * Compile JS

2023-03-15 15:45:08 -04:00
Bassem Dghaidi
27135e314d
Upgrade dependencies (#1210)

* Upgrade ncc & json5

* Add new dist build

2023-03-09 11:42:29 -05:00
Andrew Scheller
ac59398561
Fix comment typos (that got added in #770) (#1057) 2022-12-28 17:19:08 -05:00
Cory Miller
8856415920
Implement branch list using callbacks from exec function (#1045)

When trying to list local branches to figure out what needs cleaned up during runs on non-ephemeral Actions Runners, we use git rev-parse --symbolic-full-name to get a list of branches. This can lead to ambiguous ref name errors when there are branches and tags with similar names.

Part of the reason we use rev-parse --symbolic-full-name vs git branch --list or git rev-parse --symbolic seems to related to a bug in Git 2.18. Until we can deprecate our usage of Git 2.18, I think we need to keep --symbolic-full-name. Since part of the problem is that these ambiguous ref name errors clog the Actions annotation limits, this is a mitigation to suppress those messages until we can get rid of the workaround.

2022-12-14 16:08:53 -05:00
Cory Miller
26d48e8ea1
Update @actions/io to 1.1.2 (#1029) 2022-12-12 13:44:24 -05:00
Jok
bf085276ce
wrap pipeline commands for submoduleForeach in quotes (#964)

* wrap pipeline commands for submoduleForeach in quotes

* Update src/git-auth-helper.ts

drop extraneous space.

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* Followed CONTRIBUTING.md instructions, updating dist/index.js

* fixed package-lock.json

* updating the pipeline so it runs from sh

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-15 21:51:19 -05:00
Francesco Renzi
6a84743051
Bump @actions/core to 1.10.0 (#939)

* Bump @actions/core to 1.10.0

* Update licenses

* Use @actions/core helper functions

2022-10-03 18:04:49 +01:00
Peter Murray
e6d535c99c
Inject GitHub host to be able to clone from another GitHub instance (#922)

* Adding the ability to specify the GitHub Server URL and allowing for it to differ from the Actions workflow host

* Adding tests for injecting the GitHub URL

* Addressing code review comments for PR #922

2022-09-26 12:34:52 -04:00
Tingluo Huang
0ffe6f9c55
Add set-safe-directory input to allow customers to take control. (#770)

* Add set-safe-directory input to allow customers to take control.

2022-04-20 21:37:43 -04:00
Thomas Boop
dcd71f6466
Enforce safe directory (#762)

* set safe directory when running checkout

* Update CHANGELOG.md

2022-04-14 14:13:20 -04:00
Tingluo Huang
add3486cc3
Patch to fix the dependbot alert. (#744)

* Patch to fix the dependbot alert.

* .

* .

* .

2022-04-05 13:01:33 -04:00
Thomas Boop
8f9e05e482
Update to node 16 (#689)

* Update to node 16

* update setup-node version

* Update check-dist.yml

update setup node version

* update dist/index.js

2022-02-28 16:17:29 -05:00
eric sciple
ec3a7ce113
set insteadOf url for org-id (#621) 2021-11-01 11:43:18 -05:00
eric sciple
826ba42d6c
npm audit fix (#612) 2021-10-19 10:05:28 -05:00
eric sciple
eb8a193c1d
update dev dependencies and react to new linting rules (#611) 2021-10-19 09:52:57 -05:00
eric sciple
0299a0d2b6
update dist (#605) 2021-10-13 16:07:05 -05:00
Johannes Schindelin
5a4ac9002d
Add missing awaits (#379)

* auth-helper: properly await replacement of the token value in the config

After writing the `.extraheader` config, we manually replace the token with the actual value. This is done in an `async` function, but we were not `await`ing the result.

In our tests, this commit fixes a flakiness we observed where `remote.origin.url` sometimes (very rarely, actually) is not set for submodules. Our interpretation is that the configs are in the process of being rewritten with the correct token value _while_ another `git config` that wants to set the `insteadOf` value is reading the config, which is currently empty.

A more idiomatic way to fix this in Typescript would use `Promise.all()`, like this:

await Promise.all( configPaths.map(async configPath => { core.debug(`Replacing token placeholder in '${configPath}'`) await this.replaceTokenPlaceholder(configPath) }) )

However, during review of https://github.com/actions/checkout/pull/379 it was decided to keep the `for` loop in the interest of simplicity.

Reported by Ian Lynagh.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

* downloadRepository(): await the result of recursive deletions

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

* Ask ESLint to report floating Promises

This rule is quite helpful in avoiding hard-to-debug missing `await`s.

Note: there are two locations in `src/main.ts` that trigger warnings: the `run()` and the `cleanup()` function are called without `await` and without any `.catch()` clause.

In the initial version of https://github.com/actions/checkout/pull/379, this was addressed by adding `.catch()` clauses. However, it was determined that this is boilerplate code that will need to be fixed in a broader way.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

* Rebuild

This trick was brought to you by `npm ci && npm run build`. Needed to get the PR build to pass.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-11-03 09:44:09 -05:00
Thomas Boop
a81bbbf829
Remove unneeded commit information from build logs (#345)

* Remove unneeded commit information from stdout

2020-09-23 09:41:47 -04:00
eric sciple
1433f62caa
update default branch (#305) 2020-07-14 09:23:30 -04:00
eric sciple
fb6f360df2
fix default branch for .wiki and when using ssh (#284) 2020-06-18 10:20:33 -04:00
eric sciple
00a3be8934
determine default branch (#278) 2020-06-16 13:41:01 -04:00
eric sciple
e52d022eb5
Fetch all history for all tags and branches when fetch-depth=0 (#258) 2020-05-27 09:54:28 -04:00
eric sciple
2ff2fbdea4
telemetry for incorrect merge commit (#253) 2020-05-21 11:09:16 -04:00
eric sciple
7523e23789
switch GITHUB_URL to GITHUB_SERVER_URL (#248) 2020-05-18 13:05:15 -04:00
eric sciple
ac455590d1
consume new @actions/github for GHES support (#236) 2020-05-07 12:11:11 -04:00
eric sciple
01aecccf73
group output (#191) 2020-03-27 13:12:15 -04:00
eric sciple
85b1f35505
changes to support ghes alpha release (#199) 2020-03-25 15:12:22 -04:00
eric sciple
9a3a9ade82
persist core.sshCommand for submodules (#184)

* persist core.sshCommand for submodules

* update verbiage; add comments

* fail when submodules or ssh-key and fallback to REST API

2020-03-12 11:42:38 -04:00