Hi Antonias.
The way you would implement the pattern you want is to use Puppet namespacing.
To explain this using your example code below, your directory structure would need to change to:
modules/configuration/manifests/git
And your include statement would change to:
include configuration::git
This method of referencing Puppet classes is really useful. The rule to apply when
namespacing classes in this manner is that the final element of every name space must
always resolve to a puppet class, represented as a .pp file of the same name within the module.
Consider:
modules/foo/manifests/bar.pp
Would be declared as: include foo::bar
Whereas:
modules/foo/manifests/bar/baz.pp
Would be declared as: include foo::bar::baz
HTH
David Bryant-Moore.