Currently, RebuildCause inherits from Cause.UpstreamCause. This causes several problems:
- currentBuild.upstreamBuilds includes the build that the current build was rebuilt from, even though that's not actually an upstream build.
- In downstream jobs of a rebuilt job, the RebuildCause gets transformed into a plain UpstreamCause due to UpstreamCause.trim, which makes it impossible to distinguish a child of a rebuild job from a grandchild of the original job.
It would be nice if this was fixed in some way, either by making RebuildCause not inherit from UpstreamCause or maybe, if compatibility constraints make that impossible, by introducing a new rebuild cause class.