This prevents a crash in applying build plans when more than one buildable exists for the same object. It also adds a check into the "New Manual Build" page to ensure that users can't create a buildable for an object that already has one.
Details
- Reviewers
epriestley - Group Reviewers
Blessed Reviewers - Commits
- Restricted Diffusion Commit
rP43847d6bd7bb: Prevent crashes when more than one buildable for an object exists
Tried to create a buildable for an object that already has one and a nice friendly error appeared. Applied a build plan to a buildable whose object has two buildables and didn't get a crash any more.
Diff Detail
- Branch
- fix-crash
- Lint
Lint Errors Severity Location Code Message Error src/applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php:233 PHL1 Unknown Symbol - Unit
No Test Coverage
Event Timeline
It also adds a check into the "New Manual Build" page to ensure that users can't create a buildable for an object that already has one.
At least tentatively, I think this should be allowed. If you're testing build plans, it lets you basically create a copy of some buildable and muck around with it without messing up the "real" one. There probably should be a flag to distinguish the "real" one from synthetic copies, though. For example, I wouldn't want a build to go red and send a bunch of alerts out because I messed up when configuring a new plan or whatever.
The existing code looks up the buildable by the object's PHID when applying a plan, so we'd need to change the code to allow a buildable's PHID to be passed through (otherwise it will always pick the first buildable, and not necessarily the one that you applied the plan to).