func ModuleIdentityForString(path string) (ModuleIdentity, error) {
	remote, owner, repository, err := parseModuleIdentityComponents(path)
	if err != nil {
		return nil, err
	}
	return NewModuleIdentity(remote, owner, repository)
}
// ModuleIdentityForString returns a new ModuleIdentity for the given string.
//
// This parses the path in the form remote/owner/repository
//
// TODO: we may want to add a special error if we detect / or @ as this may be a common mistake.
ModuleIdentityForString returns a new ModuleIdentity for the given string.

This parses the path in the form remote/owner/repository

we may want to add a special error if we detect / or @ as this may be a common mistake.
// ModuleIdentityForString returns a new ModuleIdentity for the given string . // // This parses the path in the form remote / owner / repository // // TODO : we may want to add a special error if we detect / or @ as this may be a common mistake .
func ModuleIdentityForString(path string) (ModuleIdentity, error) {
	remote, owner, repository, err := parseModuleIdentityComponents(path)
	if err != nil {
		return nil, err
	}
	return NewModuleIdentity(remote, owner, repository)
}
func ModuleIdentityForString ( path string ) ( ModuleIdentity , error ) { remote , owner , repository , err := parseModuleIdentityComponents ( path ) if err != nil { return nil , err } return NewModuleIdentity ( remote , owner , repository ) }
ModuleIdentityForString returns a new ModuleIdentity for the given string.
ModuleIdentityForString returns a new ModuleIdentity for the given string .