@ -27,12 +27,15 @@ MINIO_BUCKET = gitea-storage
assert . NoError ( t , loadAttachmentFrom ( cfg ) )
assert . EqualValues ( t , "gitea-attachment" , Attachment . Storage . MinioConfig . Bucket )
assert . EqualValues ( t , "attachments/" , Attachment . Storage . MinioConfig . BasePath )
assert . NoError ( t , loadLFSFrom ( cfg ) )
assert . EqualValues ( t , "gitea-lfs" , LFS . Storage . MinioConfig . Bucket )
assert . EqualValues ( t , "lfs/" , LFS . Storage . MinioConfig . BasePath )
assert . NoError ( t , loadAvatarsFrom ( cfg ) )
assert . EqualValues ( t , "gitea-storage" , Avatar . Storage . MinioConfig . Bucket )
assert . EqualValues ( t , "avatars/" , Avatar . Storage . MinioConfig . BasePath )
}
func Test_getStorageUseOtherNameAsType ( t * testing . T ) {
@ -49,9 +52,11 @@ MINIO_BUCKET = gitea-storage
assert . NoError ( t , loadAttachmentFrom ( cfg ) )
assert . EqualValues ( t , "gitea-storage" , Attachment . Storage . MinioConfig . Bucket )
assert . EqualValues ( t , "attachments/" , Attachment . Storage . MinioConfig . BasePath )
assert . NoError ( t , loadLFSFrom ( cfg ) )
assert . EqualValues ( t , "gitea-storage" , LFS . Storage . MinioConfig . Bucket )
assert . EqualValues ( t , "lfs/" , LFS . Storage . MinioConfig . BasePath )
}
func Test_getStorageInheritStorageType ( t * testing . T ) {
@ -117,6 +122,9 @@ func Test_getStorageInheritStorageTypeLocal(t *testing.T) {
[ storage ]
STORAGE_TYPE = local
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/repo-archive" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/actions_log" } ,
@ -131,6 +139,9 @@ func Test_getStorageInheritStorageTypeLocalPath(t *testing.T) {
STORAGE_TYPE = local
PATH = / data / gitea
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/data/gitea/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/data/gitea/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/data/gitea/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/data/gitea/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/repo-archive" } ,
{ loadActionsFrom , & Actions . LogStorage , "/data/gitea/actions_log" } ,
@ -145,6 +156,9 @@ func Test_getStorageInheritStorageTypeLocalRelativePath(t *testing.T) {
STORAGE_TYPE = local
PATH = storages
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/storages/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/storages/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/storages/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/storages/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/storages/repo-archive" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/storages/actions_log" } ,
@ -162,6 +176,9 @@ PATH = /data/gitea
[ repo - archive ]
PATH = / data / gitea / the - archives - dir
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/data/gitea/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/data/gitea/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/data/gitea/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/data/gitea/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/the-archives-dir" } ,
{ loadActionsFrom , & Actions . LogStorage , "/data/gitea/actions_log" } ,
@ -178,6 +195,9 @@ PATH = /data/gitea
[ repo - archive ]
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/data/gitea/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/data/gitea/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/data/gitea/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/data/gitea/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/repo-archive" } ,
{ loadActionsFrom , & Actions . LogStorage , "/data/gitea/actions_log" } ,
@ -195,6 +215,9 @@ PATH = /data/gitea
[ repo - archive ]
PATH = the - archives - dir
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/data/gitea/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/data/gitea/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/data/gitea/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/data/gitea/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/the-archives-dir" } ,
{ loadActionsFrom , & Actions . LogStorage , "/data/gitea/actions_log" } ,
@ -209,6 +232,9 @@ func Test_getStorageInheritStorageTypeLocalPathOverride3(t *testing.T) {
STORAGE_TYPE = local
PATH = / data / gitea / archives
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/archives" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/actions_log" } ,
@ -217,6 +243,23 @@ PATH = /data/gitea/archives
} )
}
func Test_getStorageInheritStorageTypeLocalPathOverride3_5 ( t * testing . T ) {
testLocalStoragePath ( t , "/appdata" , `
[ storage . repo - archive ]
STORAGE_TYPE = local
PATH = a - relative - path
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/a-relative-path" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/actions_log" } ,
{ loadAvatarsFrom , & Avatar . Storage , "/appdata/avatars" } ,
{ loadRepoAvatarFrom , & RepoAvatar . Storage , "/appdata/repo-avatars" } ,
} )
}
func Test_getStorageInheritStorageTypeLocalPathOverride4 ( t * testing . T ) {
testLocalStoragePath ( t , "/appdata" , `
[ storage . repo - archive ]
@ -226,6 +269,9 @@ PATH = /data/gitea/archives
[ repo - archive ]
PATH = / tmp / gitea / archives
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/tmp/gitea/archives" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/actions_log" } ,
@ -242,6 +288,9 @@ PATH = /data/gitea/archives
[ repo - archive ]
` , [ ] testLocalStoragePathCase {
{ loadAttachmentFrom , & Attachment . Storage , "/appdata/attachments" } ,
{ loadLFSFrom , & LFS . Storage , "/appdata/lfs" } ,
{ loadActionsFrom , & Actions . ArtifactStorage , "/appdata/actions_artifacts" } ,
{ loadPackagesFrom , & Packages . Storage , "/appdata/packages" } ,
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/data/gitea/archives" } ,
{ loadActionsFrom , & Actions . LogStorage , "/appdata/actions_log" } ,
@ -249,3 +298,117 @@ PATH = /data/gitea/archives
{ loadRepoAvatarFrom , & RepoAvatar . Storage , "/appdata/repo-avatars" } ,
} )
}
func Test_getStorageInheritStorageTypeLocalPathOverride72 ( t * testing . T ) {
testLocalStoragePath ( t , "/appdata" , `
[ repo - archive ]
STORAGE_TYPE = local
PATH = archives
` , [ ] testLocalStoragePathCase {
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/archives" } ,
} )
}
func Test_getStorageConfiguration20 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ repo - archive ]
STORAGE_TYPE = my_storage
PATH = archives
` )
assert . NoError ( t , err )
assert . Error ( t , loadRepoArchiveFrom ( cfg ) )
}
func Test_getStorageConfiguration21 ( t * testing . T ) {
testLocalStoragePath ( t , "/appdata" , `
[ storage . repo - archive ]
` , [ ] testLocalStoragePathCase {
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/repo-archive" } ,
} )
}
func Test_getStorageConfiguration22 ( t * testing . T ) {
testLocalStoragePath ( t , "/appdata" , `
[ storage . repo - archive ]
PATH = archives
` , [ ] testLocalStoragePathCase {
{ loadRepoArchiveFrom , & RepoArchive . Storage , "/appdata/archives" } ,
} )
}
func Test_getStorageConfiguration23 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ repo - archive ]
STORAGE_TYPE = minio
MINIO_ACCESS_KEY_ID = my_access_key
MINIO_SECRET_ACCESS_KEY = my_secret_key
` )
assert . NoError ( t , err )
_ , err = getStorage ( cfg , "" , "" , nil )
assert . Error ( t , err )
assert . NoError ( t , loadRepoArchiveFrom ( cfg ) )
cp := RepoArchive . Storage . ToShadowCopy ( )
assert . EqualValues ( t , "******" , cp . MinioConfig . AccessKeyID )
assert . EqualValues ( t , "******" , cp . MinioConfig . SecretAccessKey )
}
func Test_getStorageConfiguration24 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ repo - archive ]
STORAGE_TYPE = my_archive
[ storage . my_archive ]
; unsupported , storage type should be defined explicitly
PATH = archives
` )
assert . NoError ( t , err )
assert . Error ( t , loadRepoArchiveFrom ( cfg ) )
}
func Test_getStorageConfiguration25 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ repo - archive ]
STORAGE_TYPE = my_archive
[ storage . my_archive ]
; unsupported , storage type should be known type
STORAGE_TYPE = unknown // should be local or minio
PATH = archives
` )
assert . NoError ( t , err )
assert . Error ( t , loadRepoArchiveFrom ( cfg ) )
}
func Test_getStorageConfiguration26 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ repo - archive ]
STORAGE_TYPE = minio
MINIO_ACCESS_KEY_ID = my_access_key
MINIO_SECRET_ACCESS_KEY = my_secret_key
; wrong configuration
MINIO_USE_SSL = abc
` )
assert . NoError ( t , err )
// assert.Error(t, loadRepoArchiveFrom(cfg))
// FIXME: this should return error but now ini package's MapTo() doesn't check type
assert . NoError ( t , loadRepoArchiveFrom ( cfg ) )
}
func Test_getStorageConfiguration27 ( t * testing . T ) {
cfg , err := NewConfigProviderFromData ( `
[ storage . repo - archive ]
STORAGE_TYPE = minio
MINIO_ACCESS_KEY_ID = my_access_key
MINIO_SECRET_ACCESS_KEY = my_secret_key
MINIO_USE_SSL = true
` )
assert . NoError ( t , err )
assert . NoError ( t , loadRepoArchiveFrom ( cfg ) )
assert . EqualValues ( t , "my_access_key" , RepoArchive . Storage . MinioConfig . AccessKeyID )
assert . EqualValues ( t , "my_secret_key" , RepoArchive . Storage . MinioConfig . SecretAccessKey )
assert . EqualValues ( t , true , RepoArchive . Storage . MinioConfig . UseSSL )
assert . EqualValues ( t , "repo-archive/" , RepoArchive . Storage . MinioConfig . BasePath )
}