261230DEV12-b6e2026445-50
Implement slice resolving strategy based on yaml configuration file. Now SliceStub is used instead of real slice implementation. We should parse publisher of bytes into yaml config, construct ASTO from this config and find corresponding slice implementation by type parameter.
src/main/java/com/artipie/Pie.java@g4s8g4s8.public@gmail.com271230DEV12-c03f07e2113-115
Move all Async* implementation to artipie/http module. We need to wrap asynchronous slices and responses with Slice and Response interfaces.
src/main/java/com/artipie/Pie.java@g4s8g4s8.public@gmail.com321230DEV12-94a9871a38-40
Parse command line options instead of system properties. We need to pass two mandatory options: server port and Artipie configuration storage URI (to local filesystem or cloud storage).
src/main/java/com/artipie/VertxMain.java@g4s8g4s8.public@gmail.com464030DEV40-06b6b8fc7-9
Propagate git tag I.e. if docker image is based on version 1.5.0, the version should be propagated to the app jar file.
Dockerfile@Sammers21titantins@gmail.com716930DEV69-a068129134-37
Implement this interface to read and process permissions from repository yaml configuration file. Test is already implemented, see {@link RpPermissionsTest}, don't forget to enable is when this class is ready. Remove also PMD suppressions please. For more details check issue #69.
src/main/java/com/artipie/RpPermissions.javaolenagerasimovaolena.gerasimova@gmail.com907630DEV76-fe362791111-113
Extract the logic in switch into separate class. It can be named like `SliceFromConfig`: it implements Slice interface and behaves as a factory by creating `Slice` instance for configuration.
src/main/java/com/artipie/Pie.java@g4s8g4s8.public@gmail.com1099030DEV90-c6a5c05345-46
We still don't have tests for Pie. But now that this class was extracted, we have a more cohesive class that could be tested. Write unit tests for SliceFromConfig class.
src/main/java/com/artipie/SliceFromConfig.javaHamdi Doussdouss.hamdi@gmail.com1109030DEV90-277cd0cd65-67
This method still needs more refactoring. We should test if the type exist in the constructed map. If the type does not exist, we should throw an IllegalStateException with the message "Unsupported repository type '%s'"
src/main/java/com/artipie/SliceFromConfig.javaHamdi Doussdouss.hamdi@gmail.com1207430DEV74-e630ca7149-52
Create a unit test for 404 response. Let's test that the response for request for not existing repository returns 404 error, e.g. if request line is `GET /repo/foo HTTP/1.1` but we don't have `foo.yml` configuration, then this class should return 404.
src/main/java/com/artipie/Pie.java@g4s8g4s8.public@gmail.com17914630DEV146-3820475f128-129
Extract this method to a class: we have the same method in RepoConfig. After extracting use this new class here and in RepoConfig. Do not forget about test.
src/main/java/com/artipie/YamlSettings.java@olenagerasimovaolena.gerasimova@gmail.com18014630DEV146-b7fdde7c36-41
Consider adding opportunity to configure alternative login, for example: | joe: | login: joe@mail.com | pass: "plain:123" This configuration would mean that Joe should use his email to login instead of username. Do not forget to validate credentials, logins should be unique.
src/main/java/com/artipie/auth/AuthFromYaml.java@olenagerasimovaolena.gerasimova@gmail.com19118730DEV187-870a4b1d48-49
Add a test for layout structure, it can be either `flat` or `org`. If it's omitted, it should treated as a `flat` layout. See RepoLayout javadocs for more details.
src/test/java/com/artipie/YamlSettingsTest.java@g4s8g4s8.public@gmail.com26723130DEV231-69751ecf36-39
Support gauges in InMemoryMetrics. `InMemoryMetrics.gauge()` method implementation should get or create an `InMemoryGauge` by name and store it. `InMemoryMetrics.gauges()` method should be added to create snapshot of existing gauges. Implementations are expected to be similar to counters.
src/main/java/com/artipie/metrics/memory/InMemoryMetrics.java@olegmozoleg.mozzhechkov@gmail.com27223130DEV231-6430115842-44
Test request and response forwarding in `ResponseMetricsSlice`. Test that request coming to `ResponseMetricsSlice` are forwarded as-is to origin slice, response generated by origin slice is sent to connection as-is.
src/main/java/com/artipie/ResponseMetricsSlice.java@olegmozoleg.mozzhechkov@gmail.com27323130DEV231-bfc9600745-48
Report exceptions as errors in `ResponseMetricsSlice`. In case of exceptions in origin slice handling or sending to `Connection` nothing is reported to `Metrics`. It needs to be fixed, so if origin slice fails or we failed to send response then error is sent to `Metrics`.
src/main/java/com/artipie/ResponseMetricsSlice.java@olegmozoleg.mozzhechkov@gmail.com29023130DEV231-f0ff443a37-40
Support gauge publishing in `MetricsLogPublisher`. `InMemoryMetrics` contain gauges along counters. Gauges should be published the same way as counters. Should be done after https://github.com/artipie/artipie/issues/267
src/main/java/com/artipie/metrics/memory/MetricsLogPublisher.java@olegmozoleg.mozzhechkov@gmail.com29123130DEV231-c625a5c341-43
Add tests for `MetricsLogPublisher`. It should be tested that the publisher runs periodically, collects fresh metrics data and logs the data as expected.
src/main/java/com/artipie/metrics/memory/MetricsLogPublisher.java@olegmozoleg.mozzhechkov@gmail.com29223130DEV231-2cd4db3f94-96
Remove ad-hoc error detection from `ResponseMetricsSlice.report()`. As soon as issue https://github.com/artipie/http/issues/196 is complete and we have method in `RsStatus` to detect errors we may use this method instead of RegEx usage.
src/main/java/com/artipie/ResponseMetricsSlice.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com33728530DEV285-66616a9450-55
Settings configuration for GitHub auth. Add additional settings configuration for GitHub authentication, now it's applied by default to auth from yaml using chained authentication, see auth() method. We can configure this chain via settings and compose complex authentication providers there. E.g. user can use ordered list of env auth, github auth and auth from yaml file.
src/main/java/com/artipie/YamlSettings.java@g4s8g4s8.public@gmail.com99933730DEV337-2a1a00a129-30
Add a description of alternative authentication. Add a description of alternative authentication to the README file.
src/main/java/com/artipie/YamlSettings.javaDenis Garusgarus.d.g@gmail.com33831330DEV313-c5cc840546-49
Unit test coverage for `DockerProxy` class `DockerProxy` class lacks unit test coverage. It should be tested that slice is built properly from configuration (e.g. handles simple response like 'GET /v2/') and fails any request for bad configuration (some required settings are missing).
src/main/java/com/artipie/docker/DockerProxy.java@g4s8g4s8.public@gmail.com33928530DEV285-b75b90d540-44
Specify expiration time configuration. Instead of using scheduled executor to clean-up all cache map, use some configuration to clean-up only expired items, e.g. if token was not accessed for X minutes, then remove only this token. Consider using Guava's time-evicted-cache implementation: https://github.com/google/guava/wiki/CachesExplained#eviction
src/main/java/com/artipie/auth/CachedAuth.javaKirillg4s8.public@gmail.com34128430DEV284-62fad2c1137-138
Extract this method to separate class and write proper unit tests for that. Also add tests for `JavaResource` class which is used to copy resources.
src/main/java/com/artipie/VertxMain.java@g4s8g4s8.public@gmail.com37837030DEV370-bcc3b5c352-54
Enable `test.networkEnabled` property for some CI builds. Make sure these tests are not failing due to network issues, maybe we should retry it to avoid false failures.
src/test/java/com/artipie/http/GroupRepositoryITCase.javaKirillg4s8.public@gmail.com43442930DEV429-0d21f4e036-40
Test `SystemSettings.trustAll` method. `SystemSettings.trustAll` reads data using static method `System.getenv`. To test this method in presence of this environment variable it is need to mock static method. This could be done with Powermock library, however it is tricky at the moment to use it with JUnit5 as it is not directly supported.
src/test/java/com/artipie/HttpClientSettingsTest.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com44642530DEV425-7a9d7e1340-42
Create a test for this slice. The test should verify that slice returns response from origin slice if condition matches, and returns 404 if it doesn't match.
src/main/java/com/artipie/http/OptionalSlice.javaKirillg4s8.public@gmail.com44742530DEV425-6103346b45-47
Create a test to verify this slice. The test should generate some metrics and checks that this slice correctly respond with JSON array with these metrics.
src/main/java/com/artipie/metrics/MetricSlice.javaKirillg4s8.public@gmail.com46044230DEV442-4070cd4945-48
Refactor this class to move cache field to instance field and make sure the instance is not created on each request. Right now we're using a hotfix - CachedAuth created from settings on each request but uses static hash map field for caching.
src/main/java/com/artipie/auth/CachedAuth.javaKirillg4s8.public@gmail.com46444430DEV444-d6b8b13e68-70
Constructor decomposition This constructor is very huge, difficult to read and understand: extract some methods, wrappers, classes, etc from it to make it more elegant.
src/main/java/com/artipie/api/ArtipieApi.java@olenagerasimovaolena.gerasimova@gmail.com47044930DEV449-3e9e55ee83-89
Extract class for building settings in YAML format. Building of settings YAML for usage in tests occurs more the once. It is used to build setting in `ArtipieServer` and in `YamlSettingsTest` to create settings examples in unit tests. Some examples in `YamlSettingsTest` are just string constants. It would be nice to extract a class for building settings in YAML format for usage in all these places.
src/test/java/com/artipie/ArtipieServer.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com47244430DEV444-01e9331f50-54
Move `auth()` method to Credentials interface Casting in `auth()` may cause problems in runtime, it would be better to move this method to Credentials interface. Credentials.FromStorageYaml implementation should create AuthFromYaml instance in `auth()`, and as we have env credentials, let's introduce Credentials.FromEnv class to create proper Authentication implementation in `auth()`.
src/main/java/com/artipie/YamlSettings.java@olenagerasimovaolena.gerasimova@gmail.com47944430DEV444-a0716dee37-42
Implement this slice to add/update user from credentials by user name obtained from request line, path format is `/api/security/users/{userName}`. Password should be obtain from `password` field from json request body. Use Credentials#add(java.lang.String, java.lang.String) method to perform the operation and return 200 OK status. Do not forget to test this class and add it to ArtipieApi, check GetUserSlice as an example.
src/main/java/com/artipie/api/artifactory/AddUpdateUserSlice.java@olenagerasimovaolena.gerasimova@gmail.com48044430DEV444-7d93e4f237-40
Implement this slice to delete user from credentials by user name obtained from request line, path format is `/api/security/users/{userName}`. Use Credentials#remove(java.lang.String) method to perform the operation and return 200 OK status. Do not forget to test this class and add it to ArtipieApi, check GetUserSlice as an example.
src/main/java/com/artipie/api/artifactory/DeleteUserSlice.java@olenagerasimovaolena.gerasimova@gmail.com48444430DEV444-f662362745-50
Create class `UserFromRqLine`. Logic for getting username from request line is the same in 3 classes: here, `GetUserSlice` and in `AddUpdateUserSlice`. It would be nice to introduce class to obtain username from request line and move GetUserSlice.PTRN there. Class can be created in this package, accept line from request in ctor and have one Optional{String} get() method to get username.
src/main/java/com/artipie/api/artifactory/DeleteUserSlice.javaAlexandrgenryxy.alexandr@yandex.ru49344930DEV449-81c7f5cc47-51
Support running test on Windows. Running test on Windows requires using Windows image in tests. That means that image name and digest should depend on host OS. Same problem is solved in `docker-adapter` module using `Image` interface and `Image.ForOs` class.
src/test/java/com/artipie/docker/DockerLocalIT.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com49444430DEV444-563c6bfe36-40
Implement AddUpdatePermissionSlice to add/update repository permissions. First, implement and test RepoPermissions.FromSettings#addUpdate(...), then use this method in this slice. Request json format can be found https://www.jfrog.com/confluence/display/rtf/artifactory+rest+api, we should obtain information from `repo.actions.users` fields.
src/main/java/com/artipie/api/artifactory/AddUpdatePermissionSlice.java@olenagerasimovaolena.gerasimova@gmail.com49544430DEV444-0c759efe36-40
Implement GetPermissionSlice to return repository permissions. First, implement and test RepoPermissions.FromSettings#get(java.lang.String), then use this method in this slice. Response json format can be found https://www.jfrog.com/confluence/display/rtf/artifactory+rest+api, we should support `repositories` and `principals` fields.
src/main/java/com/artipie/api/artifactory/GetPermissionSlice.java@olenagerasimovaolena.gerasimova@gmail.com50949530DEV495-a27c3b3755-58
Create class to generate repository permissions settings Methods addSettings() and addEmpty() are copied from RepoPermissionsFromSettingsTest, let't extract them into class to avoid code duplication. Class can be introduced in test scope. Also, let's check other tests for similar functionality and replace all duplications.
src/test/java/com/artipie/api/artifactory/GetPermissionSliceTest.javaolenagerasimovaolena.gerasimova@gmail.com49644430DEV444-7f6be34836-39
Implement this slice to return available repositories json list, format can be found https://www.jfrog.com/confluence/display/rtf/artifactory+rest+api, Get Permission Targets section. Use RepoPermissions#repositories(), do not ferget about test and add this slice to ArtipieApi.
src/main/java/com/artipie/api/artifactory/GetPermissionsSlice.java@olenagerasimovaolena.gerasimova@gmail.com49744430DEV444-61eb484a36-40
Implement DeletePermissionSlice to delete all repository permissions. First, implement and test RepoPermissions.FromSettings#delete(java.lang.String), then use this method in this slice. Response json format can be found https://www.jfrog.com/confluence/display/rtf/artifactory+rest+api, Delete Permission Target section
src/main/java/com/artipie/api/artifactory/DeletePermissionSlice.java@olenagerasimovaolena.gerasimova@gmail.com51049930DEV499-bc7d8bcf46-50
Add integration test for Docker proxy cache feature. Docker proxy supports caching feature for it's remote repositories. Cache is populated when image is downloaded asynchronously and later used if remote repository is unavailable. This feature should be tested.
src/test/java/com/artipie/docker/DockerProxyIT.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com51149930DEV499-4f13218351-53
Add integration test for Docker proxy push feature. Docker proxy supports pushing to local storage if such storage is specified. It should be verified that an image can be pushed to proxy repository and pulled later.
src/test/java/com/artipie/docker/DockerProxyIT.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com51244930DEV449-eeee636354-60
Support running DockerProxyIT test on Windows. Running test on Windows uses `mcr.microsoft.com/dotnet/core/runtime` image. Loading this image manifest fails with "java.lang.IllegalStateException: multiple subscribers not supported" error. It seems that body is being read by some other entity in Artipie, so it requires investigation. Similar `CachingProxyITCase` tests works well in docker-adapter module.
src/test/java/com/artipie/docker/DockerProxyIT.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com52444930DEV449-2a88ca7145-51
Check negative auth cases. `DockerLocalAuthIT` contains tests for authenticated access when there is enough permissions for certain operations. However, to ensure that auth works as expected we need to check cases for auth failure: - attempt to access with unknown user - attempt to write with user without write permissions - attempt to read with user without read permissions
src/test/java/com/artipie/docker/DockerLocalAuthIT.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com58956930DEV569-26fa1589298-299
Consider extending this class by adding password and its format, but pay attention that actually password is not always required. Do not forget about tests.
src/main/java/com/artipie/Credentials.java@olenagerasimovaolena.gerasimova@gmail.com59754530DEV545-9296ae4595-99
Code duplication for creating repo storage. Creating repository storage from `Settings` is duplicated in `GetStorageSlice#storage(String)` method and `ArtipieRepositories#resolve(String)`. This code duplication should be resolved by extracting this code to separate class.
src/main/java/com/artipie/api/artifactory/GetStorageSlice.java@olegmozoleg.mozzhechkov@gmail.com78659730DEV597-732d602b36-38
Add unit tests for RepositoriesFromStorage class. `RepositoriesFromStorage` class was extracted from existing code and lacks test coverage. It's methods should be tested for all important execution paths.
src/main/java/com/artipie/RepositoriesFromStorage.java@olegmozoleg.mozzhechkov@gmail.com61657230DEV572-84159cfe45-47
Simplify `user()` method and get rid of nested if expressions: create separate method to obtain password type either from separate `type` yaml field or from `pass`, get rid of `check(String, String)` method and use `check()` with three params instead.
src/main/java/com/artipie/auth/AuthFromYaml.javaolenagerasimovaolena.gerasimova@gmail.com67466830DEV668-edbbdbad43-47
Use GenericAuthenticator in MavenProxy For some reason `MavenProxyAuthIT` fails if GenericAuthenticator is used: proxy requests fails with 503 status. Right not now using `Authenticator.Basic` instead `GenericAuthenticator` limits authentication support to Basic scheme only.
src/main/java/com/artipie/maven/MavenProxy.java@olegmozoleg.mozzhechkov@gmail.com67760230DEV602-02a4b52688-91
Create constructor in `ArtipieServer` to pass server port. Now config for server are generated earlier than server starts. So, we need to overwrite file with config after server starting. Let's create constructor in `ArtipieServer` to pass free port.
src/test/java/com/artipie/nuget/NugetITCase.javaAlexandrgenryxy.alexandr@yandex.ru67960260DEV602-656eb91f55-58
Fix and enable NugetITCase. Tests in `NugetITCase` often hang or make tests after them hang. That might be caused by NuGet adapter being blocking or some other reason. Tests are disabled for a time to prevent whole CI pipeline to be blocked by these issues.
src/test/java/com/artipie/nuget/NugetITCase.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com73423130DEV231-f349925536-39
Add tests for Cookies class. `Cookies` class lacks test coverage for primary code flow branches. It is important that to check that proper user is extracted when headers contain session cookie. This might require `Cookie` class refactoring as the class depends on system environment.
src/test/java/com/artipie/api/CookiesTest.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com78721330DEV213-1cbc877979-83
HTTP client should not be a singleton. HTTP client now is a singleton within application. It's instance is stored in static variable. It should be refactored so it's only instance is built on start of app and passed from top level to this class and other usages.
src/main/java/com/artipie/SliceFromConfig.java@olegmozoleg.mozzhechkov@gmail.com78858630DEV586-ef3e091d73-75
Add unit tests for Layout.Flat `Layout.Flat` class was extracted from existing code and lacks test coverage. It's methods should be tested for all important execution paths.
src/main/java/com/artipie/Layout.java@olegmozoleg.mozzhechkov@gmail.com78958630DEV586-0be4ea0e106-108
Add unit tests for Layout.Org `Layout.Org` class was extracted from existing code and lacks test coverage. It's methods should be tested for all important execution paths.
src/main/java/com/artipie/Layout.java@olegmozoleg.mozzhechkov@gmail.com79073030DEV730-ef465e62161-163
When `ContentAs` is used here instead of `Concatenation` and `Remaining` ITs get stuck on github actions (this does not happen locally on mac os), figure out why, make necessary corrections and use `ContentAs` here.
src/main/java/com/artipie/UsersFromStorageYaml.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com79160760DEV607-5e919bc762-65
Verify install using kubectl in docker. Now test just check that `index.yaml` was created. It would be better to verify install within `helm install`. For this, it's necessary to create a kubernetes cluster in Docker.
src/test/java/com/artipie/helm/HelmITCase.javaOleg Mozzhechkovoleg.mozzhechkov@gmail.com80377530DEV775-5d678143168-171
Specify layout when ArtipieServer instance is created Layout should be specified when ArtipieServer is created, not on start. As this class already has too many fields, consider creating separate class to create whole artipie.yaml and passing instance of this class to the ctor.
src/test/java/com/artipie/ArtipieServer.javaolenagerasimovaolena.gerasimova@gmail.com80673830DEV738-a44eae0d132-134
Remove creating a Vert.x instance in npm-proxy case. Vertx.vertx() call creates a Vert.x instance, a very heavy object. It should be created only once for whole application on start and reused everywhere.
src/main/java/com/artipie/SliceFromConfig.javaAleksandr Krasnovgenryxy.alexandr@yandex.ru81879730DEV797-df0b20e068-71
When `ContentAs` is used here instead of `Concatenation` and `Remaining` `ArtipieApiITCase` get stuck on github actions (this does not happen locally on windows os), figure out why, make necessary corrections and use `ContentAs` here. Probably this problem is similar to artipie/artipie#790.
src/main/java/com/artipie/api/DashboardSlice.javaAleksandr Krasnovgenryxy.alexandr@yandex.ru85585130DEV851-a9da7c9e29-33
Fix integration tests. Integration tests should start Artipie docker image built on package state (artipie/artipie:1.0-SNAPSHOT) using testcontainers, and test it against different use cases. Update integration tests and enable CI instruction below to run it on each push and PR. So we need some replacement for `ArtipieServer` class to use it in integration tests.
.github/workflows/integration-tests.yml@olenagerasimovaolena.gerasimova@gmail.com86085530DEV855-2b6537c552-54
Deploy test is broken, mvn deploy fails on 500 server respose due to file not exist exception at maven upload.
src/test/java/com/artipie/maven/MavenITCase.javaKirillg4s8.public@gmail.com86185530DEV855-8eff6a20121-124
Refactor resource extracting Consider creating a method to scan resources from directory and bind it to container path. Also, move maven-related resources from test resource root directory to subfolder, e.g. `maven-it`.
src/test/java/com/artipie/maven/MavenITCase.javaKirillg4s8.public@gmail.com86285530DEV855-c3bcecb3159-163
Move this class to test sources, add additional constructors for int status and default to expect zero status. Consider creating standard enum or public static fields for `SUCCESS` - exit code is `0` and `ERROR` - exit code is greater than `0`
src/test/java/com/artipie/maven/MavenITCase.javaKirillg4s8.public@gmail.com86385530DEV855-45e4996446-49
Add Slf4j logging consumer for artipie container It's not working for some reason and prints nothing to the test output. A workaround was added with custom consumer for system stdout frame printing as lambda. Properly configure SLf4j consumer and remove this workaround.
src/test/java/com/artipie/test/TestDeployment.javaKirillg4s8.public@gmail.com97785530DEV855-2061b0aa32-37
Fix integration tests and remove `@Disabled` annotation. These tests were not migrated to testcontainers, fix them one by one: src/test/java/com/artipie/VertxMainITCase.java src/test/java/com/artipie/docker/DockerProxyIT.java src/test/java/com/artipie/docker/DockerOnPortIT.java src/test/java/com/artipie/maven/MavenMultiProxyIT.java
.github/workflows/integration-tests.ymlEvgeny Chugunnyy (John)53329821+ChGen@users.noreply.github.com99697730DEV977-02d9559932-36
Fix integration tests and remove `@Disabled` annotation. These tests were not migrated to testcontainers, fix them one by one: src/test/java/com/artipie/docker/DockerProxyIT.java src/test/java/com/artipie/docker/DockerOnPortIT.java src/test/java/com/artipie/maven/MavenMultiProxyIT.java
.github/workflows/integration-tests.yml@baudoliver7baudoliver7@gmail.com101399630DEV996-13b97ffa32-35
Fix integration test and remove `@Disabled` annotation. The test DockerOnPortIT is not migrated to testcontainers, we should fix it. src/test/java/com/artipie/docker/DockerOnPortIT.java
.github/workflows/integration-tests.ymlDenis Garusgarus.d.g@gmail.com91089630DEV896-d2d64e1d25-29
Tests to create and update repositories are disabled due to test deployment configuration problem: there is no write permission on directory with the repository configs for `artipie` user in artipie container. Here is corresponding question on SO https://stackoverflow.com/questions/67869196/change-files-owner-when-copying-resources-with-testcontainers Wait for the answer, fix permission error and enable tests.
src/test/java/com/artipie/api/ArtipieApiITCase.javaAlenaolena.gerasimova@gmail.com97888930DEV889-be86333130-34
Test that {@link PromuSlice}'s response is correct. We implemented {@link PromuSlice} in a way that Prometheus can pull model via that. Now, we should check that its response is correct. We should also add an integration test to be sure that configuration is taken into account.
src/main/java/com/artipie/http/PromuSlice.java@baudoliver7baudoliver7@gmail.com98097830DEV978-28850aee40-42
Add an IT test for PromuSlice. We should add an integration test to be sure that meta configuration of Prometheus is taken into account.
src/test/java/com/artipie/http/PromuSliceTest.javaOlivier B. OURAbaudoliver7@gmail.com100332130DEV321-6bbbeba128-32
Enable conda install IT case. After bumping asto from v1.10.0 to v1.11.0 conda install IT case started to fail with out of storage exception (https://github.com/artipie/artipie/runs/4641400517?check_suite_focus=true#step:6:2241), therefore this test was disabled. It is necessary to fix this problem and enable test.
src/test/java/com/artipie/conda/CondaITCase.javaAlexander38591972+genryxy@users.noreply.github.comunknown104130DEV1041-ec738f7427-30
CondaITCase: Add test cases with repository on individual port: create one more repository with `port` settings and start it in Artipie container exposing the port with `withExposedPorts` method. Then, parameterize test cases to check repositories with different ports. Check `FileITCase` as an example.
src/test/java/com/artipie/conda/CondaITCase.java@olenagerasimovaolena.gerasimova@gmail.com1083103130DEV1031-9bd6a0343-5
Verify this configuration section: start Artipie locally, configure metrics (try each type) and check how they work. Check `com.artipie.metrics` package for all details. When checking, extend this documentation with examples and details about gathered statistics.
.wiki/Configuration-Metrics.mdAlenaolena.gerasimova@gmail.com