I think CommitOperation should not be part of an EGit API. It has for example a public execute method which then could be run by any other bundle. We would need another data container class with the information needed for commit which could be manipulated by the Observer.