Compare commits

...

2 commits

Author SHA1 Message Date
51c25aa14d
Release 0.9.2
Some checks failed
/ deployment_keys_demo (macOS-latest) (push) Has been cancelled
/ deployment_keys_demo (ubuntu-latest) (push) Has been cancelled
/ deployment_keys_demo (windows-latest) (push) Has been cancelled
/ docker_demo (push) Has been cancelled
2025-06-30 21:08:28 +02:00
a72777095c
Read out HOME instead of the os query info
Some checks are pending
/ deployment_keys_demo (macOS-latest) (push) Waiting to run
/ deployment_keys_demo (ubuntu-latest) (push) Waiting to run
/ deployment_keys_demo (windows-latest) (push) Waiting to run
/ docker_demo (push) Waiting to run
As when using the gitea-actions-runner on NixOS
it is using systemd dynamic user
2025-06-30 21:05:36 +02:00
2 changed files with 62 additions and 57 deletions

View file

@ -7,133 +7,137 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## v0.9.2 [2025-06-30] (khs.codes)
- Support running under NixOS with dynamic user setting, or at least attempt to
## v0.9.1 [2024-03-17] ## v0.9.1 [2024-03-17]
### Fixed ### Fixed
* Fix path used to execute ssh-agent in cleanup.js to respect custom paths set by input (#235) - Fix path used to execute ssh-agent in cleanup.js to respect custom paths set by input (#235)
## v0.9.0 [2024-02-06] ## v0.9.0 [2024-02-06]
### Changed ### Changed
* Update all versions of `actions/checkout` to v4 (#199) - Update all versions of `actions/checkout` to v4 (#199)
* Update to Node 20 (#201) - Update to Node 20 (#201)
## v0.8.0 [2023-03-24] ## v0.8.0 [2023-03-24]
### Changed ### Changed
* No longer writing GitHub's SSH host keys to `known_hosts` (#171) - No longer writing GitHub's SSH host keys to `known_hosts` (#171)
* Update to actions/checkout@v3 (#143) - Update to actions/checkout@v3 (#143)
* Allow the user to override the commands for git, ssh-agent, and ssh-add (#154) - Allow the user to override the commands for git, ssh-agent, and ssh-add (#154)
## v0.7.0 [2022-10-19] ## v0.7.0 [2022-10-19]
### Added ### Added
* Add the `log-public-key` input that can be used to turn off logging key identities (#122) - Add the `log-public-key` input that can be used to turn off logging key identities (#122)
### Fixed ### Fixed
* Fix path to `git` binary on Windows, assuming GitHub-hosted runners (#136, #137) - Fix path to `git` binary on Windows, assuming GitHub-hosted runners (#136, #137)
* Fix a nonsensical log message (#139) - Fix a nonsensical log message (#139)
## v0.6.0 [2022-10-19] ## v0.6.0 [2022-10-19]
### Changed ### Changed
* Update the version of Node used by the action from 12 to 16 (https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/). - Update the version of Node used by the action from 12 to 16 (https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/).
## v0.5.4 [2021-11-21] ## v0.5.4 [2021-11-21]
### Fixed ### Fixed
* Update changed GitHub Host Keys (#102, #101) - Update changed GitHub Host Keys (#102, #101)
### Changed ### Changed
* Various documentation (README) improvements and additions - Various documentation (README) improvements and additions
* Change logging to more precisely state that _public_ keys are being printed - Change logging to more precisely state that _public_ keys are being printed
## v0.5.3 [2021-06-11] ## v0.5.3 [2021-06-11]
### Fixed ### Fixed
* Fixed cleanup phase to really terminate the ssh-agent (#80) - Fixed cleanup phase to really terminate the ssh-agent (#80)
* Fix termination of ssh-agent also on workflow failure (#79) - Fix termination of ssh-agent also on workflow failure (#79)
### Changed ### Changed
* Various documentation (README) improvements and additions - Various documentation (README) improvements and additions
## v0.5.2 [2021-04-07] ## v0.5.2 [2021-04-07]
### Fixed ### Fixed
* Use case-insensitive regex matching when scanning key comments (#68, #70, #71) - Use case-insensitive regex matching when scanning key comments (#68, #70, #71)
### Changed ### Changed
* Log when a key is _not_ used as a deploy key (#69) - Log when a key is _not_ used as a deploy key (#69)
## v0.5.1 [2021-03-10] ## v0.5.1 [2021-03-10]
### Fixed ### Fixed
* Fix deployment key mapping on Windows virtual environment by using SSH binaries from the Git - Fix deployment key mapping on Windows virtual environment by using SSH binaries from the Git
suite, terminate ssh-agent upon actio termination on Windows as well (#63) suite, terminate ssh-agent upon actio termination on Windows as well (#63)
* Handle ENOENT exceptions with a graceful message - Handle ENOENT exceptions with a graceful message
### Changed ### Changed
* Various documentation (README) improvements and additions - Various documentation (README) improvements and additions
## v0.5.0 [2021-02-19] ## v0.5.0 [2021-02-19]
### Added ### Added
* Add support for GitHub Deployment Keys through key comments (#59). Fixes #30, closes #38. - Add support for GitHub Deployment Keys through key comments (#59). Fixes #30, closes #38.
* Support for container-based workflows and Windows (#17) - Support for container-based workflows and Windows (#17)
### Fixed ### Fixed
* Fix scripts/build.js to work on Windows (#38) - Fix scripts/build.js to work on Windows (#38)
### Changed ### Changed
* Various documentation (README) improvements and additions - Various documentation (README) improvements and additions
## v0.4.1 [2020-10-07] ## v0.4.1 [2020-10-07]
### Fixed ### Fixed
* This action no longer relies on `set-env`, which has been deprecated. - This action no longer relies on `set-env`, which has been deprecated.
## v0.4.0 ## v0.4.0
### Changed ### Changed
* A failure to kill the agent in the post-action step will no longer fail the workflow run. That way, you can kill the agent yourself when necessary (#33). - A failure to kill the agent in the post-action step will no longer fail the workflow run. That way, you can kill the agent yourself when necessary (#33).
## v0.3.0 [2020-05-18] ## v0.3.0 [2020-05-18]
### Added ### Added
* A new post-action step will automatically clean up the running agent at the end of a job. This helps with self-hosted runners, which are non-ephemeral. (@thommyhh, #27) - A new post-action step will automatically clean up the running agent at the end of a job. This helps with self-hosted runners, which are non-ephemeral. (@thommyhh, #27)
### Changed ### Changed
* Unless the SSH_AUTH_SOCK is configured explicitly, the SSH agent will now use a random file name for the socket. That way, multiple, concurrent SSH agents can be used on self-hosted runners. (@thommyhh, #27) - Unless the SSH_AUTH_SOCK is configured explicitly, the SSH agent will now use a random file name for the socket. That way, multiple, concurrent SSH agents can be used on self-hosted runners. (@thommyhh, #27)
## v0.2.0 [2020-01-14] ## v0.2.0 [2020-01-14]
### Added ### Added
* Multiple SSH keys can now be provided (#14, closes #7). Thanks to - Multiple SSH keys can now be provided (#14, closes #7). Thanks to
@webknjaz and @bradmartin for support and tests. @webknjaz and @bradmartin for support and tests.
* Catch empty ssh-private-key input values and exit with a helpful - Catch empty ssh-private-key input values and exit with a helpful
error message right away. error message right away.
## v0.1.0 [2019-09-15] ## v0.1.0 [2019-09-15]

View file

@ -1,29 +1,30 @@
const os = require('os'); const os = require("os");
const core = require('@actions/core'); const core = require("@actions/core");
const defaults = (process.env['OS'] != 'Windows_NT') ? { const defaults =
// We use os.userInfo() rather than os.homedir(), since it uses the getpwuid() system call to get the user's home directory (see https://nodejs.org/api/os.html#osuserinfooptions). process.env["OS"] != "Windows_NT"
// This mimics the way openssh derives the home directory for locating config files (see https://github.com/openssh/openssh-portable/blob/826483d51a9fee60703298bbf839d9ce37943474/ssh.c#L710); ? {
// Makes a difference in Docker-based Action runs, when $HOME is different from what getpwuid() returns (which is based on the entry in /etc/passwd) homePath: os.homedir(),
homePath: os.userInfo().homedir, sshAgentCmdDefault: "ssh-agent",
sshAgentCmdDefault: 'ssh-agent', sshAddCmdDefault: "ssh-add",
sshAddCmdDefault: 'ssh-add', gitCmdDefault: "git",
gitCmdDefault: 'git' }
} : { : {
// Assuming GitHub hosted `windows-*` runners for now // Assuming GitHub hosted `windows-*` runners for now
homePath: os.homedir(), homePath: os.homedir(),
sshAgentCmdDefault: 'c://progra~1//git//usr//bin//ssh-agent.exe', sshAgentCmdDefault: "c://progra~1//git//usr//bin//ssh-agent.exe",
sshAddCmdDefault: 'c://progra~1//git//usr//bin//ssh-add.exe', sshAddCmdDefault: "c://progra~1//git//usr//bin//ssh-add.exe",
gitCmdDefault: 'c://progra~1//git//bin//git.exe' gitCmdDefault: "c://progra~1//git//bin//git.exe",
}; };
const sshAgentCmdInput = core.getInput('ssh-agent-cmd'); const sshAgentCmdInput = core.getInput("ssh-agent-cmd");
const sshAddCmdInput = core.getInput('ssh-add-cmd'); const sshAddCmdInput = core.getInput("ssh-add-cmd");
const gitCmdInput = core.getInput('git-cmd'); const gitCmdInput = core.getInput("git-cmd");
module.exports = { module.exports = {
homePath: defaults.homePath, homePath: defaults.homePath,
sshAgentCmd: sshAgentCmdInput !== '' ? sshAgentCmdInput : defaults.sshAgentCmdDefault, sshAgentCmd:
sshAddCmd: sshAddCmdInput !== '' ? sshAddCmdInput : defaults.sshAddCmdDefault, sshAgentCmdInput !== "" ? sshAgentCmdInput : defaults.sshAgentCmdDefault,
gitCmd: gitCmdInput !== '' ? gitCmdInput : defaults.gitCmdDefault, sshAddCmd: sshAddCmdInput !== "" ? sshAddCmdInput : defaults.sshAddCmdDefault,
gitCmd: gitCmdInput !== "" ? gitCmdInput : defaults.gitCmdDefault,
}; };