• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / spot
84%
master: 84%

Build:
Build:
LAST BUILD BRANCH: refs/tags/v1.19.1
DEFAULT BRANCH: master
Repo Added 01 May 2023 10:40PM UTC
Token fKmP3eE00CORXdCzaKDWoCzm5XFlwui2k regen
Build 864 Last
Files 19
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix-single-quoted-vars
branch: fix-single-quoted-vars
CHANGE BRANCH
x
Reset
Sync Branches
  • fix-single-quoted-vars
  • SPOT_TIMEOUT
  • add-ansible-vault-secrets
  • add-json-schema
  • add_option_forward_agent
  • allow_user_in_target_address
  • chmod-x
  • cmd_unmarshal
  • command_condition
  • cusom_shell
  • custom-tmp
  • custom_shell
  • custom_vars
  • dependabot
  • dependabot/github_actions/github-actions-updates-5714300483
  • dependabot/github_actions/github-actions-updates-acdff8b645
  • dependabot/github_actions/github-actions-updates-afd9e15987
  • dependabot/github_actions/github-actions-updates-fcf4e41b5c
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.29.14
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.29.15
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.29.16
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/config-1.29.17
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/credentials-1.17.67
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/credentials-1.17.68
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/credentials-1.17.69
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/credentials-1.17.70
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/secretsmanager-1.35.4
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/secretsmanager-1.35.5
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/secretsmanager-1.35.6
  • dependabot/go_modules/github.com/aws/aws-sdk-go-v2/service/secretsmanager-1.35.7
  • dependabot/go_modules/github.com/containerd/containerd-1.7.11
  • dependabot/go_modules/github.com/containerd/containerd-1.7.27
  • dependabot/go_modules/github.com/docker/docker-24.0.7incompatible
  • dependabot/go_modules/github.com/docker/docker-24.0.9incompatible
  • dependabot/go_modules/github.com/docker/docker-26.1.4incompatible
  • dependabot/go_modules/github.com/docker/docker-26.1.5incompatible
  • dependabot/go_modules/github.com/go-jose/go-jose/v3-3.0.1
  • dependabot/go_modules/github.com/go-jose/go-jose/v3-3.0.3
  • dependabot/go_modules/github.com/go-pkgz/fileutils-0.4.0
  • dependabot/go_modules/github.com/go-pkgz/lgr-0.12.0
  • dependabot/go_modules/github.com/go-pkgz/lgr-0.12.1
  • dependabot/go_modules/github.com/go-sql-driver/mysql-1.9.2
  • dependabot/go_modules/github.com/go-sql-driver/mysql-1.9.3
  • dependabot/go_modules/github.com/hashicorp/go-retryablehttp-0.7.7
  • dependabot/go_modules/github.com/hashicorp/vault/api-1.20.0
  • dependabot/go_modules/github.com/opencontainers/runc-1.1.12
  • dependabot/go_modules/github.com/pelletier/go-toml/v2-2.2.4
  • dependabot/go_modules/github.com/pkg/sftp-1.13.9
  • dependabot/go_modules/github.com/testcontainers/testcontainers-go-0.36.0
  • dependabot/go_modules/github.com/testcontainers/testcontainers-go-0.37.0
  • dependabot/go_modules/go-modules-updates-0b1b715552
  • dependabot/go_modules/go-modules-updates-38676b66b8
  • dependabot/go_modules/go-modules-updates-4132416c07
  • dependabot/go_modules/go-modules-updates-7f184a08d6
  • dependabot/go_modules/go-modules-updates-8f1b82aee4
  • dependabot/go_modules/go-modules-updates-bbb8b02913
  • dependabot/go_modules/go-modules-updates-cd95fe73d3
  • dependabot/go_modules/go-modules-updates-df02f00acb
  • dependabot/go_modules/go-modules-updates-f0b1c50809
  • dependabot/go_modules/golang.org/x/crypto-0.17.0
  • dependabot/go_modules/golang.org/x/crypto-0.31.0
  • dependabot/go_modules/golang.org/x/crypto-0.37.0
  • dependabot/go_modules/golang.org/x/crypto-0.38.0
  • dependabot/go_modules/golang.org/x/crypto-0.39.0
  • dependabot/go_modules/golang.org/x/net-0.17.0
  • dependabot/go_modules/golang.org/x/net-0.23.0
  • dependabot/go_modules/golang.org/x/net-0.36.0
  • dependabot/go_modules/google.golang.org/grpc-1.57.1
  • dependabot/go_modules/google.golang.org/protobuf-1.33.0
  • disable-colors
  • doc-yaml-multiline
  • dry_run
  • dynamic-register-vars
  • dynamic_targets
  • echo-condition
  • echo_command
  • enfoce-unix-slash
  • env_file
  • env_locality
  • exclude-support-for-delete-copy
  • exec_options
  • expand-os-env
  • feat-sudo-password-support
  • feature/line-command-251
  • feature/reverse-copy-download
  • fix
  • fix-custom-shell
  • fix-env-var-expansion
  • fix-missing-hostname
  • fix-secrets-masking
  • fix-simplified-example
  • fix-single-export
  • fix-skip-short-flag
  • fix-ssh-agent-override
  • fix-temp-leftovers
  • fix/line-append-sudo-permission
  • fixes-issue-313
  • gen_template
  • glob_support
  • help
  • hide-secrets
  • if/fix-typo-docs
  • invert_condition
  • linux_separator
  • local-dry
  • local-mode
  • local-shell
  • log_script
  • main
  • master
  • mode_copy_check
  • multi_copy
  • multi_delete
  • multi_sync
  • multiple-task-cli-option
  • no_default_key
  • on_exit
  • onerror_extras
  • onerror_vars
  • only_on
  • others_env
  • paskal/dependabot-security-updates
  • patch-1
  • playbook
  • rand_tmp
  • refactot_main
  • refs/tags/1.10.1
  • refs/tags/v0.10.0
  • refs/tags/v0.11.0
  • refs/tags/v0.11.1
  • refs/tags/v0.11.2
  • refs/tags/v0.11.3
  • refs/tags/v0.12.0
  • refs/tags/v0.12.1
  • refs/tags/v0.12.2
  • refs/tags/v0.13.0
  • refs/tags/v0.13.1
  • refs/tags/v0.14.0
  • refs/tags/v0.14.1
  • refs/tags/v0.14.2
  • refs/tags/v0.14.3
  • refs/tags/v0.14.4
  • refs/tags/v0.14.5
  • refs/tags/v0.14.6
  • refs/tags/v0.15.0
  • refs/tags/v0.15.1
  • refs/tags/v0.15.2
  • refs/tags/v0.15.3
  • refs/tags/v0.15.4
  • refs/tags/v0.15.5
  • refs/tags/v0.15.6
  • refs/tags/v0.8.0
  • refs/tags/v0.8.1
  • refs/tags/v0.8.2
  • refs/tags/v0.8.3
  • refs/tags/v0.9.0
  • refs/tags/v0.9.1
  • refs/tags/v1.0.0
  • refs/tags/v1.1.0
  • refs/tags/v1.1.1
  • refs/tags/v1.10.0
  • refs/tags/v1.10.1
  • refs/tags/v1.11.0
  • refs/tags/v1.11.2
  • refs/tags/v1.11.3
  • refs/tags/v1.11.4
  • refs/tags/v1.11.5
  • refs/tags/v1.12.0
  • refs/tags/v1.12.1
  • refs/tags/v1.13.0
  • refs/tags/v1.13.1
  • refs/tags/v1.14.0
  • refs/tags/v1.14.1
  • refs/tags/v1.15.0
  • refs/tags/v1.15.1
  • refs/tags/v1.16.0
  • refs/tags/v1.16.1
  • refs/tags/v1.16.2
  • refs/tags/v1.16.3
  • refs/tags/v1.16.4
  • refs/tags/v1.17.0
  • refs/tags/v1.17.1
  • refs/tags/v1.17.2
  • refs/tags/v1.18.0
  • refs/tags/v1.19.0
  • refs/tags/v1.19.1
  • refs/tags/v1.2.0
  • refs/tags/v1.3.0
  • refs/tags/v1.4.0
  • refs/tags/v1.4.1
  • refs/tags/v1.5.0
  • refs/tags/v1.6.0
  • refs/tags/v1.6.1
  • refs/tags/v1.6.2
  • refs/tags/v1.6.3
  • refs/tags/v1.6.4
  • refs/tags/v1.6.5
  • refs/tags/v1.7.0
  • refs/tags/v1.8.0
  • refs/tags/v1.8.1
  • refs/tags/v1.9.0
  • refs/tags/v1.9.1
  • refs/tags/v1.9.2
  • register-across-tasks
  • register-vars
  • remote-addr-vars
  • safe-script
  • script_orig
  • secrets_provider
  • simple_playbook
  • simple_playbook_no_inventory
  • single_target
  • ssh_agent
  • strict_yaml_parser
  • sudo
  • sudo-cond-fixes
  • sudo_copy
  • sudo_dbl_shell
  • sync_exclude
  • sync_remove_dirs
  • tags
  • target_names_type
  • targets_refactor
  • task-secret
  • task-user-fix
  • task_hosts
  • test-empty-groups-handling
  • toml
  • update-dependencies
  • upgrade-go-1.24
  • vebrose-levels

26 May 2025 07:00PM UTC coverage: 84.341% (+0.07%) from 84.267%
15260472739

Pull #287

github

umputun
Fix preservation of single-quoted environment variables

This change addresses issue #285 where bcrypt passwords and other values
containing dollar signs were being corrupted when passed between commands
via environment variables.

The root cause was that when variables were exported with single quotes
(to prevent shell expansion), this intent was lost when the templater
substituted the values in subsequent commands.

Changes:
- Add exportKeyWithQuote method to detect single-quoted exports
- Mark single-quoted variables with :SQ suffix in setvar output
- Store single-quoted values with __SQ__: prefix internally
- Escape dollar signs during template substitution for SQ-marked values
- Update tests to handle new setvar format
- Add unit tests for templater handling of single-quoted values
- Update documentation to show correct single-quote approach

The fix ensures that when users export variables with single quotes like:
  export BCRYPT_PASSWORD='$2a$14$G.j2F3fm9wluTougUU52sOzePOvvpujjRrCoVp5qWVZ6qRJh58ISC'

The literal value is preserved throughout the variable lifecycle, preventing
shell expansion of special characters.

Also includes minor formatting fix in pkg/executor/remote.go.
Pull Request #287: Fix preservation of single-quoted environment variables

54 of 54 new or added lines in 3 files covered. (100.0%)

2860 of 3391 relevant lines covered (84.34%)

53.78 hits per line

Relevant lines Covered
Build:
Build:
3391 RELEVANT LINES 2860 COVERED LINES
53.78 HITS PER LINE
Source Files on fix-single-quoted-vars
  • Tree
  • List 19
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
15260472739 fix-single-quoted-vars Fix preservation of single-quoted environment variables This change addresses issue #285 where bcrypt passwords and other values containing dollar signs were being corrupted when passed between commands via environment variables. The root cause ... Pull #287 26 May 2025 07:05PM UTC umputun github
84.34
See All Builds (799)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc