Either a button that shows up during selection, or a button when you view an individual pipeline, that when pressed creates a duplicate of the current pipeline (of course, excl. state). It should name it <name of original>-copy<N> with N first not being present, and then starting at 2 onward. If there are naming conflicts, it should do a for loop (or even binary search :) ) until it finds a non-conflicting N.
Either a button that shows up during selection, or a button when you view an individual pipeline, that when pressed creates a duplicate of the current pipeline (of course, excl. state). It should name it
<name of original>-copy<N>with N first not being present, and then starting at 2 onward. If there are naming conflicts, it should do a for loop (or even binary search :) ) until it finds a non-conflicting N.