scp-action/action.yml
appleboy bc835cba55
docs: refine input descriptions for clarity and user guidance
- Improve and clarify input descriptions for better usability and understanding
- Add guidance on defaults, security considerations, and example values in several input descriptions
- Reword descriptions to be more user-friendly and precise throughout configuration

Signed-off-by: appleboy <appleboy.tw@gmail.com>
2025-04-27 11:16:12 +08:00

143 lines
5.9 KiB
YAML

name: "SCP Command to Transfer Files"
description: "Easily transfer files and folders using the SCP command in Linux."
author: "Bo-Yi Wu"
inputs:
host:
description: "Remote host address for SCP (e.g., example.com or 192.168.1.1)."
port:
description: "Remote SSH port for SCP. Default: 22."
default: "22"
username:
description: "Username for SSH authentication."
password:
description: "Password for SSH authentication (not recommended; use SSH keys if possible)."
protocol:
description: "IP protocol to use. Valid values: 'tcp', 'tcp4', or 'tcp6'. Default: tcp."
default: "tcp"
timeout:
description: "Timeout for establishing SSH connection to the remote host. Default: 30s."
default: "30s"
command_timeout:
description: "Timeout for the SCP command execution. Default: 10m."
default: "10m"
key:
description: "Content of the SSH private key (e.g., the raw content of ~/.ssh/id_rsa)."
key_path:
description: "Path to the SSH private key file."
passphrase:
description: "Passphrase for the SSH private key, if required."
fingerprint:
description: "SHA256 fingerprint of the host's public key. If not set, host key verification is skipped (not recommended for production)."
use_insecure_cipher:
description: "Enable additional, less secure ciphers for compatibility. Not recommended unless required."
target:
description: "Target directory path on the remote server. Must be a directory."
source:
description: "List of files or directories to transfer (local paths)."
rm:
description: "Remove the target directory on the server before uploading new data."
debug:
description: "Enable debug messages for troubleshooting."
strip_components:
description: "Remove the specified number of leading path elements when extracting files."
overwrite:
description: "Use the --overwrite flag with tar to overwrite existing files."
tar_dereference:
description: "Use the --dereference flag with tar to follow symlinks."
tar_tmp_path:
description: "Temporary path for the tar file on the destination host."
tar_exec:
description: "Path to the tar executable on the destination host. Default: tar."
default: "tar"
proxy_host:
description: "Remote host address for SSH proxy."
proxy_port:
description: "SSH proxy port. Default: 22."
default: "22"
proxy_username:
description: "Username for SSH proxy authentication."
proxy_password:
description: "Password for SSH proxy authentication."
proxy_passphrase:
description: "Passphrase for the SSH proxy private key, if required."
proxy_timeout:
description: "Timeout for establishing SSH connection to the proxy host. Default: 30s."
default: "30s"
proxy_key:
description: "Content of the SSH proxy private key (e.g., the raw content of ~/.ssh/id_rsa)."
proxy_key_path:
description: "Path to the SSH proxy private key file."
proxy_fingerprint:
description: "SHA256 fingerprint of the proxy host's public key. If not set, host key verification is skipped (not recommended for production)."
proxy_use_insecure_cipher:
description: "Enable additional, less secure ciphers for the proxy connection. Not recommended unless required."
curl_insecure:
description: "When true, uses the --insecure option with curl for insecure downloads."
default: "false"
capture_stdout:
description: "When true, captures and returns standard output from the commands as action output."
default: "false"
version:
description: |
The version of drone-scp to use.
outputs:
stdout:
description: "Standard output of the executed commands when capture_stdout is enabled."
value: ${{ steps.entrypoint.outputs.stdout }}
runs:
using: "composite"
steps:
- name: Set GitHub Path
run: echo "$GITHUB_ACTION_PATH" >> $GITHUB_PATH
shell: bash
env:
GITHUB_ACTION_PATH: ${{ github.action_path }}
- id: entrypoint
name: Run entrypoint.sh
run: entrypoint.sh
shell: bash
env:
GITHUB_ACTION_PATH: ${{ github.action_path }}
INPUT_HOST: ${{ inputs.host }}
INPUT_PORT: ${{ inputs.port }}
INPUT_PROTOCOL: ${{ inputs.protocol }}
INPUT_USERNAME: ${{ inputs.username }}
INPUT_PASSWORD: ${{ inputs.password }}
INPUT_PASSPHRASE: ${{ inputs.passphrase }}
INPUT_KEY: ${{ inputs.key }}
INPUT_KEY_PATH: ${{ inputs.key_path }}
INPUT_FINGERPRINT: ${{ inputs.fingerprint }}
INPUT_PROXY_HOST: ${{ inputs.proxy_host }}
INPUT_PROXY_PORT: ${{ inputs.proxy_port }}
INPUT_PROXY_USERNAME: ${{ inputs.proxy_username }}
INPUT_PROXY_PASSWORD: ${{ inputs.proxy_password }}
INPUT_PROXY_PASSPHRASE: ${{ inputs.proxy_passphrase }}
INPUT_PROXY_KEY: ${{ inputs.proxy_key }}
INPUT_PROXY_KEY_PATH: ${{ inputs.proxy_key_path }}
INPUT_PROXY_FINGERPRINT: ${{ inputs.proxy_fingerprint }}
INPUT_USE_INSECURE_CIPHER: ${{ inputs.use_insecure_cipher }}
INPUT_CIPHER: ${{ inputs.cipher }}
INPUT_PROXY_USE_INSECURE_CIPHER: ${{ inputs.proxy_use_insecure_cipher }}
INPUT_PROXY_CIPHER: ${{ inputs.proxy_cipher }}
INPUT_DEBUG: ${{ inputs.debug }}
INPUT_TIMEOUT: ${{ inputs.timeout }}
INPUT_COMMAND_TIMEOUT: ${{ inputs.command_timeout }}
INPUT_TARGET: ${{ inputs.target }}
INPUT_SOURCE: ${{ inputs.source }}
INPUT_RM: ${{ inputs.rm }}
INPUT_STRIP_COMPONENTS: ${{ inputs.strip_components }}
INPUT_OVERWRITE: ${{ inputs.overwrite }}
INPUT_TAR_DEREFERENCE: ${{ inputs.tar_dereference }}
INPUT_TAR_TMP_PATH: ${{ inputs.tar_tmp_path }}
INPUT_TAR_EXEC: ${{ inputs.tar_exec }}
INPUT_PROXY_TIMEOUT: ${{ inputs.proxy_timeout }}
INPUT_CAPTURE_STDOUT: ${{ inputs.capture_stdout }}
INPUT_CURL_INSECURE: ${{ inputs.curl_insecure }}
DRONE_SCP_VERSION: ${{ inputs.version }}
branding:
icon: "copy"
color: "gray-dark"