added tests and documentation, use the snapshotRepoUrl option if set