Github actions, setting gem username from secrets: 请在将用户名和密码设置为身份验证之前对它们进行 CGI 转义

Github actions, setting gem username from secrets: Please CGI escape your usernames and passwords before setting them for authentication

我正在尝试根据 运行 我们的规范设置 Github 操作,但是我们使用需要密码的私人 gem 服务器。我有added a secret and then set a ENV到秘密的价值。

但是我从捆绑程序中收到以下错误:

"Please CGI escape your usernames and passwords before setting them for authentication".

我可以看到 bundler source 中发生了这种情况。这似乎是 URI 的问题。

在本地或我们当前的 CI 服务器上执行相同的过程时,我没有收到此错误。

这是工作流程:

name: Ruby

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Set up Ruby 2.6
      uses: actions/setup-ruby@v1
      with:
        ruby-version: 2.6.x
    - name: Build and test with RSpec
      env:
        gems_password: '${{ secrets.GEMS_PASSWORD }}'
      run: |        
        gem install bundler
        bundle config gems.example.eu gems:$${GEMS_PASSWORD}
        bundle install
        bundle exec rspec

ENV只需要一个$

bundle config gems.example.eu gems:${GEMS_PASSWORD}

从之前的 CI 配置中复制的双 $ 可能是一个字符串插值功能。