danger / danger-js

⚠️ Stop saying "you forgot to …" in code review
http://danger.systems/js/
MIT License
5.26k stars 368 forks source link

Fix commands run on paths with danger-pr in them #1375

Closed mikedidomizio closed 1 year ago

mikedidomizio commented 1 year ago

This fixes an issue I encountered when I was running danger commands from a project that has danger-pr* in the project name.

The issue is because the replace searches and finds the first instance of danger-{command} in the path and replaces it with danger-runner. So when inside a project like danger-project-setup you end up with an error

node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module '/Users/Mike.DiDomizio/projects/test/danger-runneroject-setup/node_modules/danger/distribution/commands/danger-pr.js'

The fix I've implemented is to create a regex with the command, searching for the danger-${name}\.js$ at the end of the path and replace it. So we're covered for the other commands as well. Although I could possibly clean up the loop logic and just generate a regex that covers the array of commands, I've decided to keep this PR simple to make the change easy to approve.

The easiest way to reproduce this issue is to create a project like danger-project-setup and run the danger pr command inside the project.

orta commented 1 year ago

Yeah, perfect 👍🏻

orta commented 1 year ago

Shipped as 11.2.5