danger / danger/danger

undefined method '[]' for nil:NilClass when running danger pr

Open
#871 11 comments 8 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
5.7k
Forks
488
PR merge metrics
No merged PRs in 30d

Description

# Report

## What did you do?
Run `danger local` or `danger pr` error is the same

## What did you expect to happen?
Running danger while looking through the Dangerfile and commenting on the things that are found on the PR.

## What happened instead?
```
/Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/git-1.3.0/lib/git/diff.rb:151:in `block in process_full_diff': undefined method `[]' for nil:NilClass (NoMethodError)
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/git-1.3.0/lib/git/diff.rb:134:in `each'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/git-1.3.0/lib/git/diff.rb:134:in `process_full_diff'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/git-1.3.0/lib/git/diff.rb:109:in `process_full'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/git-1.3.0/lib/git/diff.rb:68:in `each'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/plugins/dangerfile_git_plugin.rb:59:in `select'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/plugins/dangerfile_git_plugin.rb:59:in `added_files'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:132:in `block (2 levels) in method_values_for_plugin_hashes'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:120:in `map'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:120:in `block in method_values_for_plugin_hashes'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:116:in `each'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:116:in `flat_map'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:116:in `method_values_for_plugin_hashes'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:149:in `print_known_info'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:173:in `parse'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/danger_core/dangerfile.rb:272:in `run'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/commands/local.rb:56:in `block in run'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/commands/local_helpers/local_setup.rb:38:in `setup'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/lib/danger/commands/local.rb:55:in `run'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/claide-1.0.1/lib/claide/command.rb:334:in `run'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/gems/danger-5.3.4/bin/danger:5:in `'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/bin/danger:23:in `load'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/bin/danger:23:in `'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/joeykaan/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in `'
```

## Your Environment

* Which CI are you running on? None
* Are you running the latest version of Danger? Version 5.3.4, at this moment, yes latest version.
* What is your Dangerfile?

```ruby
# Sometimes it's a README fix, or something like that - which isn't relevant for
# including in a project's CHANGELOG for example
declared_trivial = github.pr_title.include? "#trivial"

# Make it more obvious that a PR is a work in progress and shouldn't be merged yet
warn("PR is classed as Work in Progress") if github.pr_title.include? "[WIP]"

# Warn when there is a big PR
warn("Big PR") if git.lines_of_code > 500

# Don't let testing shortcuts get into master by accident
fail("fdescribe left in tests") if `grep -r fdescribe specs/ `.length > 1
fail("fit left in tests") if `grep -r fit specs/ `.length > 1
```

I am more than willing to look into this on my own a bit more, but at the moment I'm stuck and I could use some pointers :)!

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the failure with `danger local` or `danger pr` using the supplied Dangerfile. Start at `dangerfile_git_plugin.rb:59` and the reported `git/diff.rb:151` stack frame, then compare the diff data involved in `added_files`; done means the command runs without the NoMethodError and still reports the Dangerfile findings.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, ruby
Domain
cli, developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.