Refactor `component/gadget.republish` to use new republish signature.