詹金斯和危险:NoMethodError:未定义的方法[] slug_fallback

问题描述

我已经用Jenkins + GitHub Pull Request Builder设置了一个配置项以运行Danger,但是每次尝试运行bundle exec danger时,都会发生此错误

+ bundle exec danger
bundler: Failed to load command: danger (/usr/local/bin/danger)
NoMethodError: undefined method `[]' for nil:NilClass
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/ci_source/jenkins.rb:111:in `slug_fallback'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/ci_source/jenkins.rb:90:in `repo_slug'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/ci_source/jenkins.rb:82:in `initialize'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/danger_core/environment_manager.rb:30:in `new'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/danger_core/environment_manager.rb:30:in `initialize'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/danger_core/executor.rb:25:in `new'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/danger_core/executor.rb:25:in `run'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/lib/danger/commands/runner.rb:73:in `run'
  /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run'
  /Library/Ruby/Gems/2.6.0/gems/danger-8.0.4/bin/danger:5:in `<top (required)>'
  /usr/local/bin/danger:23:in `load'
  /usr/local/bin/danger:23:in `<top (required)>'

我不知道如何解决

注意事项:

  • 如果我运行bundle exec danger pr <url>,则一切正常(仅出于测试目的):
+ bundle exec danger pr https://enterprise.server.github.com/project/pull/1 --dangerfile=Dangerfile --verbose
Running your Dangerfile against this PR - https://enterprise.server.github.com/project/pull/1

Results:
[32m
Messages:[0m
- [ ] This is a message from Jenkins :D
  • Jenkins上的Build步骤设置:
bundle install
bundle exec danger
message('This is a message from Jenkins :D')
  • 添加了变量DANGER_GITHUB_API_TOKENDANGER_GITHUB_HOSTDANGER_GITHUB_API_HOST(我认为这不是问题,触发器正在工作)。

  • 这是GitHub Enterprise Server上的私有存储库。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)