No data is passed to actions concerning what called it (it's on the feature request list).
But you're right, the way to do it is to
create a shared method that you can call from a trigger's action and specify which trigger (or schedule or whatever) by passing in an identifier of some kind to the function. That way you encapsulate the functionality in one place ( I have a couple of these in my production environment).
In fact, depending on the complexity and "sharedness" of the method, this might be a great place to use
**kwargs so that you don't have to change the method signature, just how you call it and how you parse out the parameters.