As a developer i want to create a new environment when a new PR is opened so i can test that PR’s Code in isolation without having to merge the code to dev

It doesn’t cover all of your use cases, but take a look at this, particularly the examples, which includes a dry-run action.