From 1b94f447d984aeb3f8475263be30e86c95d84af3 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 2 Aug 2020 12:35:55 +0200 Subject: [PATCH 01/20] adds documentation for importing existing repositories --- docs/en/faq.md | 4 ++++ docs/en/import.md | 52 ++++++++++++++++++++++++++++++++++++++++++ docs/en/navigation.yml | 1 + 3 files changed, 57 insertions(+) create mode 100644 docs/en/import.md diff --git a/docs/en/faq.md b/docs/en/faq.md index ef64b4d9db..1fc6cabe43 100644 --- a/docs/en/faq.md +++ b/docs/en/faq.md @@ -40,3 +40,7 @@ After changing the configuration, SCM-Manager must be restarted. ### How do I install plugins? Find the plugin you like to install at [plugins](/plugins#categories) and follow the installation instructions on the install page of the plugin. + +### How can i import my existing (git|mercurial|subversion) repository + +Please have a look on [this](../import/) detailed instructions. diff --git a/docs/en/import.md b/docs/en/import.md new file mode 100644 index 0000000000..ba334168fe --- /dev/null +++ b/docs/en/import.md @@ -0,0 +1,52 @@ +--- +title: Import existing repositories +subtitle: Howto import existing repositories into SCM-Manager +displayToc: true +--- + +## Git + +First you have to clone the old repository with the `mirror` option. +This option ensures that all branches and tags are fetched from the remote repository. +Assuming that your remote repository is accessible under the url `https://hgttg.com/r/git/heart-of-gold`, the clone command should look like this: + +```bash +git clone --mirror https://hgttg.com/r/git/heart-of-gold +``` + +Than you have to create your new repository via the SCM-Manager web interface and copy the url. +In this example we assume that the new repository is available at `https://hitchhiker.com/scm/repo/hgttg/heart-of-gold`. After the new repository is created, we can configure our local repository for the new location and push all refs. + +```bash +git remote set-url origin https://hitchhiker.com/scm/repo/hgttg/heart-of-gold +git push --mirror +``` + +## Mercurial + +To import an existing mercurial repository, we have to create a new repository over the SCM-Manager web interface, clone it, pull from the old repository and push to the new repository. +In this example we assume that the old repository is `https://hgttg.com/r/hg/heart-of-gold` and the newly created is located at `https://hitchhiker.com/scm/repo/hgttg/heart-of-gold`: + +```bash +hg clone https://hitchhiker.com/scm/repo/hgttg/heart-of-gold +hg pull https://hgttg.com/r/hg/heart-of-gold +hg push +``` + +## Subversion + +Subversion is not as easy as mercurial or git. +For subversion we have to locate the old repository on the filesystem and create a dump with the `svnadmin` tool. + +```bash +svnadmin dump /path/to/repo > oldrepo.dump +``` + +Now we have to create a new repository via the SCM-Manager web interface. +After the repository is created, we have to find its location on the filesystem. +This could be done by finding the directory with the newest timestamp in your scm home directory under `repositories`. +Now its time to import the dump from the old repository: + +```bash +svnadmin load /path/to/scm-home/repositories/id/data < oldrepo.dump +``` diff --git a/docs/en/navigation.yml b/docs/en/navigation.yml index e696c98bc6..9c30b03156 100644 --- a/docs/en/navigation.yml +++ b/docs/en/navigation.yml @@ -2,6 +2,7 @@ entries: - /installation/ - /migrate-scm-manager-from-v1/ + - /import/ - /faq/ - /known-issues/ From 3015419f32c86b1d26dc91ea43bfe6de812c50a1 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:19:50 +0200 Subject: [PATCH 02/20] Update docs/en/faq.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Pfeuffer --- docs/en/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/faq.md b/docs/en/faq.md index 1fc6cabe43..762e7cff47 100644 --- a/docs/en/faq.md +++ b/docs/en/faq.md @@ -41,6 +41,6 @@ After changing the configuration, SCM-Manager must be restarted. Find the plugin you like to install at [plugins](/plugins#categories) and follow the installation instructions on the install page of the plugin. -### How can i import my existing (git|mercurial|subversion) repository +### How can I import my existing (git|mercurial|subversion) repository Please have a look on [this](../import/) detailed instructions. From 0177b53dc9bb9509d506649590166505e853a8ae Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:20:12 +0200 Subject: [PATCH 03/20] Update docs/en/import.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Pfeuffer --- docs/en/import.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/import.md b/docs/en/import.md index ba334168fe..e5a11f4a6f 100644 --- a/docs/en/import.md +++ b/docs/en/import.md @@ -18,6 +18,7 @@ Than you have to create your new repository via the SCM-Manager web interface an In this example we assume that the new repository is available at `https://hitchhiker.com/scm/repo/hgttg/heart-of-gold`. After the new repository is created, we can configure our local repository for the new location and push all refs. ```bash +cd heart-of-gold git remote set-url origin https://hitchhiker.com/scm/repo/hgttg/heart-of-gold git push --mirror ``` From 045516791c1c6ad47f08633119deb5261c21243a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:20:22 +0200 Subject: [PATCH 04/20] Update docs/en/import.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Pfeuffer --- docs/en/import.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/import.md b/docs/en/import.md index e5a11f4a6f..5f2f38401a 100644 --- a/docs/en/import.md +++ b/docs/en/import.md @@ -46,6 +46,7 @@ svnadmin dump /path/to/repo > oldrepo.dump Now we have to create a new repository via the SCM-Manager web interface. After the repository is created, we have to find its location on the filesystem. This could be done by finding the directory with the newest timestamp in your scm home directory under `repositories`. +You can check whether you have found the correct directory by having a look at the file `metadata.xml`. Here you should find the namespace and the name of the repository created. Now its time to import the dump from the old repository: ```bash From c907df564f2c5e742fd99cecce5bd732e81feea5 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:20:40 +0200 Subject: [PATCH 05/20] Update docs/en/import.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Pfeuffer --- docs/en/import.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/import.md b/docs/en/import.md index 5f2f38401a..f1076ef02f 100644 --- a/docs/en/import.md +++ b/docs/en/import.md @@ -30,6 +30,7 @@ In this example we assume that the old repository is `https://hgttg.com/r/hg/hea ```bash hg clone https://hitchhiker.com/scm/repo/hgttg/heart-of-gold +cd heart-of-gold hg pull https://hgttg.com/r/hg/heart-of-gold hg push ``` From 2400e465d39d39b6a874fc2d718b14b4a27ada12 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:38:39 +0200 Subject: [PATCH 06/20] migrate InitializingHttpScmProtocolWrapperTest to junit 5 --- ...nitializingHttpScmProtocolWrapperTest.java | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java index 8c1a0c8057..0dac7faada 100644 --- a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java +++ b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java @@ -21,14 +21,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; import com.google.inject.ProvisionException; import com.google.inject.util.Providers; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.stubbing.OngoingStubbing; import sonia.scm.api.v2.resources.ScmPathInfo; import sonia.scm.api.v2.resources.ScmPathInfoStore; @@ -44,13 +46,11 @@ import java.io.IOException; import java.net.URI; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; +import static org.junit.Assert.assertThrows; +import static org.mockito.Mockito.*; -public class InitializingHttpScmProtocolWrapperTest { +@ExtendWith(MockitoExtension.class) +class InitializingHttpScmProtocolWrapperTest { private static final Repository REPOSITORY = new Repository("", "git", "space", "name"); @@ -60,6 +60,7 @@ public class InitializingHttpScmProtocolWrapperTest { private ScmPathInfoStore pathInfoStore; @Mock private ScmConfiguration scmConfiguration; + private Provider pathInfoStoreProvider; @Mock @@ -71,11 +72,10 @@ public class InitializingHttpScmProtocolWrapperTest { private InitializingHttpScmProtocolWrapper wrapper; - @Before - public void init() { - initMocks(this); + @BeforeEach + void init() { pathInfoStoreProvider = mock(Provider.class); - when(pathInfoStoreProvider.get()).thenReturn(pathInfoStore); + lenient().when(pathInfoStoreProvider.get()).thenReturn(pathInfoStore); wrapper = new InitializingHttpScmProtocolWrapper(Providers.of(this.delegateServlet), pathInfoStoreProvider, scmConfiguration) { @Override @@ -83,11 +83,11 @@ public class InitializingHttpScmProtocolWrapperTest { return "git"; } }; - when(scmConfiguration.getBaseUrl()).thenReturn("http://example.com/scm"); + lenient().when(scmConfiguration.getBaseUrl()).thenReturn("http://example.com/scm"); } @Test - public void shouldUsePathFromPathInfo() { + void shouldUsePathFromPathInfo() { mockSetPathInfo(); HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); @@ -96,14 +96,14 @@ public class InitializingHttpScmProtocolWrapperTest { } @Test - public void shouldUseConfigurationWhenPathInfoNotSet() { + void shouldUseConfigurationWhenPathInfoNotSet() { HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); } @Test - public void shouldUseConfigurationWhenNotInRequestScope() { + void shouldUseConfigurationWhenNotInRequestScope() { when(pathInfoStoreProvider.get()).thenThrow(new ProvisionException("test")); HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); @@ -112,7 +112,7 @@ public class InitializingHttpScmProtocolWrapperTest { } @Test - public void shouldInitializeAndDelegateRequestThroughFilter() throws ServletException, IOException { + void shouldInitializeAndDelegateRequestThroughFilter() throws ServletException, IOException { HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); httpScmProtocol.serve(request, response, servletConfig); @@ -122,7 +122,7 @@ public class InitializingHttpScmProtocolWrapperTest { } @Test - public void shouldInitializeOnlyOnce() throws ServletException, IOException { + void shouldInitializeOnlyOnce() throws ServletException, IOException { HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); httpScmProtocol.serve(request, response, servletConfig); @@ -132,9 +132,12 @@ public class InitializingHttpScmProtocolWrapperTest { verify(delegateServlet, times(2)).service(request, response, REPOSITORY); } - @Test(expected = IllegalArgumentException.class) - public void shouldFailForIllegalScmType() { - HttpScmProtocol httpScmProtocol = wrapper.get(new Repository("", "other", "space", "name")); + @Test + void shouldFailForIllegalScmType() { + assertThrows( + IllegalArgumentException.class, + () -> wrapper.get(new Repository("", "other", "space", "name")) + ); } private OngoingStubbing mockSetPathInfo() { From 1dd4494eacc6a1458b448257f81352b84d78235a Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 07:40:35 +0200 Subject: [PATCH 07/20] fixes small sonarqube warning --- .../repository/spi/InitializingHttpScmProtocolWrapperTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java index 0dac7faada..925a7b92ca 100644 --- a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java +++ b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java @@ -134,9 +134,10 @@ class InitializingHttpScmProtocolWrapperTest { @Test void shouldFailForIllegalScmType() { + Repository repository = new Repository("", "other", "space", "name"); assertThrows( IllegalArgumentException.class, - () -> wrapper.get(new Repository("", "other", "space", "name")) + () -> wrapper.get(repository) ); } From 2d5c62e77b834eaaf23ef64bff02f108e54555ec Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 13:36:23 +0200 Subject: [PATCH 08/20] throws an exception if createForwardedBaseUrl is used with a non forwarded request --- .../src/main/java/sonia/scm/util/HttpUtil.java | 15 ++++++++++----- .../test/java/sonia/scm/util/HttpUtilTest.java | 8 +++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/util/HttpUtil.java b/scm-core/src/main/java/sonia/scm/util/HttpUtil.java index 88adc2a24c..7056911a20 100644 --- a/scm-core/src/main/java/sonia/scm/util/HttpUtil.java +++ b/scm-core/src/main/java/sonia/scm/util/HttpUtil.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.util; //~--- non-JDK imports -------------------------------------------------------- @@ -925,11 +925,16 @@ public final class HttpUtil @VisibleForTesting static String createForwardedBaseUrl(HttpServletRequest request) { - String proto = getHeader(request, HEADER_X_FORWARDED_PROTO, - request.getScheme()); + String fhost = getHeader(request, HEADER_X_FORWARDED_HOST, null); + if (fhost == null) { + throw new IllegalStateException( + String.format("request has no %s header and does not look like it is forwarded", HEADER_X_FORWARDED_HOST) + ); + } + + String proto = getHeader(request, HEADER_X_FORWARDED_PROTO, request.getScheme()); String host; - String fhost = getHeader(request, HEADER_X_FORWARDED_HOST, - request.getScheme()); + String port = request.getHeader(HEADER_X_FORWARDED_PORT); int s = fhost.indexOf(SEPARATOR_PORT); diff --git a/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java b/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java index 162033c7ca..40aa184145 100644 --- a/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java +++ b/scm-core/src/test/java/sonia/scm/util/HttpUtilTest.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.util; //~--- non-JDK imports -------------------------------------------------------- @@ -234,6 +234,12 @@ public class HttpUtilTest HttpUtil.createForwardedBaseUrl(request)); } + @Test(expected = IllegalStateException.class) + public void shouldTrowIllegalStateExceptionWithoutForwardedHostHeader() { + HttpServletRequest request = mock(HttpServletRequest.class); + HttpUtil.createForwardedBaseUrl(request); + } + /** * Method description * From 5bf49179143cd38f10a9f71f6a87d96448639e09 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 13:37:16 +0200 Subject: [PATCH 09/20] adds RootURL which resolves the scm root url regardless of the guice scope --- scm-core/src/main/java/sonia/scm/RootURL.java | 53 +++++++ .../main/java/sonia/scm/DefaultRootURL.java | 84 +++++++++++ .../java/sonia/scm/DefaultRootURLTest.java | 134 ++++++++++++++++++ 3 files changed, 271 insertions(+) create mode 100644 scm-core/src/main/java/sonia/scm/RootURL.java create mode 100644 scm-webapp/src/main/java/sonia/scm/DefaultRootURL.java create mode 100644 scm-webapp/src/test/java/sonia/scm/DefaultRootURLTest.java diff --git a/scm-core/src/main/java/sonia/scm/RootURL.java b/scm-core/src/main/java/sonia/scm/RootURL.java new file mode 100644 index 0000000000..0187b51fb1 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/RootURL.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm; + +import java.net.URL; + +/** + * RootURL is able to return the root url of the SCM-Manager instance, + * regardless of the scope (web request, async hook, ssh command, etc). + * + * @since 2.3.1 + */ +public interface RootURL { + + /** + * Returns the root url of the SCM-Manager instance. + * + * @return root url + */ + URL get(); + + /** + * Returns the root url of the SCM-Manager instance as string. + * + * @return root url as string + */ + default String getAsString() { + return get().toExternalForm(); + } + +} diff --git a/scm-webapp/src/main/java/sonia/scm/DefaultRootURL.java b/scm-webapp/src/main/java/sonia/scm/DefaultRootURL.java new file mode 100644 index 0000000000..fb21e7b6f0 --- /dev/null +++ b/scm-webapp/src/main/java/sonia/scm/DefaultRootURL.java @@ -0,0 +1,84 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm; + +import com.google.inject.OutOfScopeException; +import com.google.inject.ProvisionException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import sonia.scm.config.ScmConfiguration; +import sonia.scm.util.HttpUtil; + +import javax.inject.Inject; +import javax.inject.Provider; +import javax.servlet.http.HttpServletRequest; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Optional; + +/** + * Default implementation of {@link RootURL}. + * + * @since 2.3.1 + */ +public class DefaultRootURL implements RootURL { + + private static final Logger LOG = LoggerFactory.getLogger(DefaultRootURL.class); + + private final Provider requestProvider; + private final ScmConfiguration configuration; + + @Inject + public DefaultRootURL(Provider requestProvider, ScmConfiguration configuration) { + this.requestProvider = requestProvider; + this.configuration = configuration; + } + + @Override + public URL get() { + String url = fromRequest().orElse(configuration.getBaseUrl()); + if (url == null) { + throw new IllegalStateException("The configured base url is empty. This can only happened if SCM-Manager has not received any requests."); + } + try { + return new URL(url); + } catch (MalformedURLException e) { + throw new IllegalStateException(String.format("base url \"%s\" is malformed", url), e); + } + } + + private Optional fromRequest() { + try { + HttpServletRequest request = requestProvider.get(); + return Optional.of(HttpUtil.getCompleteUrl(request)); + } catch (ProvisionException ex) { + if (ex.getCause() instanceof OutOfScopeException) { + LOG.debug("could not find request, fall back to base url from configuration"); + return Optional.empty(); + } + throw ex; + } + } +} diff --git a/scm-webapp/src/test/java/sonia/scm/DefaultRootURLTest.java b/scm-webapp/src/test/java/sonia/scm/DefaultRootURLTest.java new file mode 100644 index 0000000000..4190c6288a --- /dev/null +++ b/scm-webapp/src/test/java/sonia/scm/DefaultRootURLTest.java @@ -0,0 +1,134 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm; + +import com.google.inject.OutOfScopeException; +import com.google.inject.ProvisionException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import sonia.scm.config.ScmConfiguration; +import sonia.scm.util.HttpUtil; + +import javax.inject.Provider; +import javax.servlet.http.HttpServletRequest; +import java.net.MalformedURLException; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class DefaultRootURLTest { + + private static final String URL_CONFIG = "https://hitchhiker.com/from-configuration"; + private static final String URL_REQUEST = "https://hitchhiker.com/from-request"; + + @Mock + private Provider requestProvider; + + @Mock + private HttpServletRequest request; + + private ScmConfiguration configuration; + + private RootURL rootURL; + + @BeforeEach + void init() { + configuration = new ScmConfiguration(); + rootURL = new DefaultRootURL(requestProvider, configuration); + } + + @Test + void shouldUseRootURLFromRequest() { + bindRequestUrl(); + assertThat(rootURL.getAsString()).isEqualTo(URL_REQUEST); + } + + private void bindRequestUrl() { + when(requestProvider.get()).thenReturn(request); + when(request.getRequestURL()).thenReturn(new StringBuffer(URL_REQUEST)); + when(request.getRequestURI()).thenReturn("/from-request"); + when(request.getContextPath()).thenReturn("/from-request"); + } + + @Test + void shouldUseRootURLFromConfiguration() { + bindNonHttpScope(); + configuration.setBaseUrl(URL_CONFIG); + assertThat(rootURL.getAsString()).isEqualTo(URL_CONFIG); + } + + private void bindNonHttpScope() { + when(requestProvider.get()).thenThrow( + new ProvisionException("no request available", new OutOfScopeException("out of scope")) + ); + } + + @Test + void shouldThrowNonOutOfScopeProvisioningExceptions() { + when(requestProvider.get()).thenThrow( + new ProvisionException("something ugly happened", new IllegalStateException("some wrong state")) + ); + + assertThrows(ProvisionException.class, () -> rootURL.get()); + } + + @Test + void shouldThrowIllegalStateExceptionForMalformedBaseUrl() { + bindNonHttpScope(); + configuration.setBaseUrl("non_url"); + + IllegalStateException exception = assertThrows(IllegalStateException.class, () -> rootURL.get()); + assertThat(exception.getMessage()).contains("malformed", "non_url"); + assertThat(exception.getCause()).isInstanceOf(MalformedURLException.class); + } + + @Test + void shouldThrowIllegalStateExceptionIfBaseURLIsNotConfigured() { + bindNonHttpScope(); + + IllegalStateException exception = assertThrows(IllegalStateException.class, () -> rootURL.get()); + assertThat(exception.getMessage()).contains("empty"); + } + + @Test + void shouldUseRootURLFromForwardedRequest() { + bindForwardedRequestUrl(); + assertThat(rootURL.get()).hasHost("hitchhiker.com"); + } + + private void bindForwardedRequestUrl() { + when(requestProvider.get()).thenReturn(request); + when(request.getHeader(HttpUtil.HEADER_X_FORWARDED_HOST)).thenReturn("hitchhiker.com"); + when(request.getScheme()).thenReturn("https"); + when(request.getServerPort()).thenReturn(443); + when(request.getContextPath()).thenReturn("/from-request"); + } + +} From b981d6290566e09a7a7867b72a48d50c54554d89 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 13:57:07 +0200 Subject: [PATCH 10/20] adds new constructor to InitializingHttpScmProtocolWrapper which uses the new RootURL api --- .../InitializingHttpScmProtocolWrapper.java | 83 ++++++--- ...nitializingHttpScmProtocolWrapperTest.java | 168 +++++++++++------- 2 files changed, 161 insertions(+), 90 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapper.java b/scm-core/src/main/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapper.java index 063c7de408..c6a656f276 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapper.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapper.java @@ -21,10 +21,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; import lombok.extern.slf4j.Slf4j; +import sonia.scm.RootURL; import sonia.scm.api.v2.resources.ScmPathInfoStore; import sonia.scm.config.ScmConfiguration; import sonia.scm.repository.Repository; @@ -37,6 +38,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Optional; +import java.util.function.Supplier; import static java.util.Optional.empty; import static java.util.Optional.of; @@ -45,16 +47,36 @@ import static java.util.Optional.of; public abstract class InitializingHttpScmProtocolWrapper implements ScmProtocolProvider { private final Provider delegateProvider; - private final Provider pathInfoStore; - private final ScmConfiguration scmConfiguration; + private final Supplier basePathSupplier; private volatile boolean isInitialized = false; - + /** + * Constructs a new {@link InitializingHttpScmProtocolWrapper}. + * + * @param delegateProvider injection provider for the servlet delegate + * @param pathInfoStore url info store + * @param scmConfiguration scm-manager main configuration + * + * @deprecated use {@link InitializingHttpScmProtocolWrapper(Provider, RootURL)} instead. + */ + @Deprecated protected InitializingHttpScmProtocolWrapper(Provider delegateProvider, Provider pathInfoStore, ScmConfiguration scmConfiguration) { this.delegateProvider = delegateProvider; - this.pathInfoStore = pathInfoStore; - this.scmConfiguration = scmConfiguration; + this.basePathSupplier = new LegacySupplier(pathInfoStore, scmConfiguration); + } + + /** + * Constructs a new {@link InitializingHttpScmProtocolWrapper}. + * + * @param delegateProvider injection provider for the servlet delegate + * @param rootURL root url + * + * @since 2.3.1 + */ + public InitializingHttpScmProtocolWrapper(Provider delegateProvider, RootURL rootURL) { + this.delegateProvider = delegateProvider; + this.basePathSupplier = rootURL::getAsString; } protected void initializeServlet(ServletConfig config, ScmProviderHttpServlet httpServlet) throws ServletException { @@ -64,30 +86,45 @@ public abstract class InitializingHttpScmProtocolWrapper implements ScmProtocolP @Override public HttpScmProtocol get(Repository repository) { if (!repository.getType().equals(getType())) { - throw new IllegalArgumentException(String.format("cannot handle repository with type %s with protocol for type %s", repository.getType(), getType())); + throw new IllegalArgumentException( + String.format("cannot handle repository with type %s with protocol for type %s", repository.getType(), getType()) + ); } - return new ProtocolWrapper(repository, computeBasePath()); + return new ProtocolWrapper(repository, basePathSupplier.get()); } - private String computeBasePath() { - return getPathFromScmPathInfoIfAvailable().orElse(getPathFromConfiguration()); - } + private static class LegacySupplier implements Supplier { - private Optional getPathFromScmPathInfoIfAvailable() { - try { - ScmPathInfoStore scmPathInfoStore = pathInfoStore.get(); - if (scmPathInfoStore != null && scmPathInfoStore.get() != null) { - return of(scmPathInfoStore.get().getRootUri().toASCIIString()); + private final Provider pathInfoStore; + private final ScmConfiguration scmConfiguration; + + private LegacySupplier(Provider pathInfoStore, ScmConfiguration scmConfiguration) { + this.pathInfoStore = pathInfoStore; + this.scmConfiguration = scmConfiguration; + } + + @Override + public String get() { + return getPathFromScmPathInfoIfAvailable().orElse(getPathFromConfiguration()); + } + + private Optional getPathFromScmPathInfoIfAvailable() { + try { + ScmPathInfoStore scmPathInfoStore = pathInfoStore.get(); + if (scmPathInfoStore != null && scmPathInfoStore.get() != null) { + return of(scmPathInfoStore.get().getRootUri().toASCIIString()); + } + } catch (Exception e) { + log.debug("could not get ScmPathInfoStore from context", e); } - } catch (Exception e) { - log.debug("could not get ScmPathInfoStore from context", e); + return empty(); + } + + private String getPathFromConfiguration() { + log.debug("using base path from configuration: {}", scmConfiguration.getBaseUrl()); + return scmConfiguration.getBaseUrl(); } - return empty(); - } - private String getPathFromConfiguration() { - log.debug("using base path from configuration: {}", scmConfiguration.getBaseUrl()); - return scmConfiguration.getBaseUrl(); } private class ProtocolWrapper extends HttpScmProtocol { diff --git a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java index 925a7b92ca..f450eb380a 100644 --- a/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java +++ b/scm-core/src/test/java/sonia/scm/repository/spi/InitializingHttpScmProtocolWrapperTest.java @@ -27,11 +27,13 @@ package sonia.scm.repository.spi; import com.google.inject.ProvisionException; import com.google.inject.util.Providers; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.stubbing.OngoingStubbing; +import sonia.scm.RootURL; import sonia.scm.api.v2.resources.ScmPathInfo; import sonia.scm.api.v2.resources.ScmPathInfoStore; import sonia.scm.config.ScmConfiguration; @@ -56,93 +58,125 @@ class InitializingHttpScmProtocolWrapperTest { @Mock private ScmProviderHttpServlet delegateServlet; - @Mock - private ScmPathInfoStore pathInfoStore; - @Mock - private ScmConfiguration scmConfiguration; - - private Provider pathInfoStoreProvider; - - @Mock - private HttpServletRequest request; - @Mock - private HttpServletResponse response; - @Mock - private ServletConfig servletConfig; - private InitializingHttpScmProtocolWrapper wrapper; - @BeforeEach - void init() { - pathInfoStoreProvider = mock(Provider.class); - lenient().when(pathInfoStoreProvider.get()).thenReturn(pathInfoStore); - wrapper = new InitializingHttpScmProtocolWrapper(Providers.of(this.delegateServlet), pathInfoStoreProvider, scmConfiguration) { - @Override - public String getType() { - return "git"; - } - }; - lenient().when(scmConfiguration.getBaseUrl()).thenReturn("http://example.com/scm"); + @Nested + class WithRootURL { + + @Mock + private RootURL rootURL; + + @BeforeEach + void init() { + wrapper = new InitializingHttpScmProtocolWrapper(Providers.of(delegateServlet), rootURL) { + @Override + public String getType() { + return "git"; + } + }; + when(rootURL.getAsString()).thenReturn("https://hitchhiker.com/scm"); + } + + @Test + void shouldReturnUrlFromRootURL() { + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + + assertEquals("https://hitchhiker.com/scm/repo/space/name", httpScmProtocol.getUrl()); + } + } - @Test - void shouldUsePathFromPathInfo() { - mockSetPathInfo(); + @Nested + class WithPathInfoStore { - HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + @Mock + private ScmPathInfoStore pathInfoStore; + @Mock + private ScmConfiguration scmConfiguration; - assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); - } + private Provider pathInfoStoreProvider; - @Test - void shouldUseConfigurationWhenPathInfoNotSet() { - HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + @Mock + private HttpServletRequest request; + @Mock + private HttpServletResponse response; + @Mock + private ServletConfig servletConfig; - assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); - } + @BeforeEach + void init() { + pathInfoStoreProvider = mock(Provider.class); + lenient().when(pathInfoStoreProvider.get()).thenReturn(pathInfoStore); - @Test - void shouldUseConfigurationWhenNotInRequestScope() { - when(pathInfoStoreProvider.get()).thenThrow(new ProvisionException("test")); + wrapper = new InitializingHttpScmProtocolWrapper(Providers.of(delegateServlet), pathInfoStoreProvider, scmConfiguration) { + @Override + public String getType() { + return "git"; + } + }; + lenient().when(scmConfiguration.getBaseUrl()).thenReturn("http://example.com/scm"); + } - HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + @Test + void shouldUsePathFromPathInfo() { + mockSetPathInfo(); - assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); - } + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); - @Test - void shouldInitializeAndDelegateRequestThroughFilter() throws ServletException, IOException { - HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); + } - httpScmProtocol.serve(request, response, servletConfig); + @Test + void shouldUseConfigurationWhenPathInfoNotSet() { + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); - verify(delegateServlet).init(servletConfig); - verify(delegateServlet).service(request, response, REPOSITORY); - } + assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); + } - @Test - void shouldInitializeOnlyOnce() throws ServletException, IOException { - HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + @Test + void shouldUseConfigurationWhenNotInRequestScope() { + when(pathInfoStoreProvider.get()).thenThrow(new ProvisionException("test")); - httpScmProtocol.serve(request, response, servletConfig); - httpScmProtocol.serve(request, response, servletConfig); + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); - verify(delegateServlet, times(1)).init(servletConfig); - verify(delegateServlet, times(2)).service(request, response, REPOSITORY); - } + assertEquals("http://example.com/scm/repo/space/name", httpScmProtocol.getUrl()); + } - @Test - void shouldFailForIllegalScmType() { - Repository repository = new Repository("", "other", "space", "name"); - assertThrows( - IllegalArgumentException.class, - () -> wrapper.get(repository) - ); - } + @Test + void shouldInitializeAndDelegateRequestThroughFilter() throws ServletException, IOException { + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + + httpScmProtocol.serve(request, response, servletConfig); + + verify(delegateServlet).init(servletConfig); + verify(delegateServlet).service(request, response, REPOSITORY); + } + + @Test + void shouldInitializeOnlyOnce() throws ServletException, IOException { + HttpScmProtocol httpScmProtocol = wrapper.get(REPOSITORY); + + httpScmProtocol.serve(request, response, servletConfig); + httpScmProtocol.serve(request, response, servletConfig); + + verify(delegateServlet, times(1)).init(servletConfig); + verify(delegateServlet, times(2)).service(request, response, REPOSITORY); + } + + @Test + void shouldFailForIllegalScmType() { + Repository repository = new Repository("", "other", "space", "name"); + assertThrows( + IllegalArgumentException.class, + () -> wrapper.get(repository) + ); + } + + private OngoingStubbing mockSetPathInfo() { + return when(pathInfoStore.get()).thenReturn(() -> URI.create("http://example.com/scm/api/")); + } - private OngoingStubbing mockSetPathInfo() { - return when(pathInfoStore.get()).thenReturn(() -> URI.create("http://example.com/scm/api/")); } } From 030ef30ffbfff6faa36e05e6fa79b36051cbdeae Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 14:01:44 +0200 Subject: [PATCH 11/20] uses parent constructor with RootURL --- .../scm/web/GitScmProtocolProviderWrapper.java | 10 ++++------ .../scm/web/HgScmProtocolProviderWrapper.java | 11 +++++------ .../scm/web/SvnScmProtocolProviderWrapper.java | 17 +++++++---------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitScmProtocolProviderWrapper.java b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitScmProtocolProviderWrapper.java index 87adbd65fe..318282d7bb 100644 --- a/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitScmProtocolProviderWrapper.java +++ b/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/web/GitScmProtocolProviderWrapper.java @@ -21,25 +21,23 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.web; -import sonia.scm.api.v2.resources.ScmPathInfoStore; -import sonia.scm.config.ScmConfiguration; +import sonia.scm.RootURL; import sonia.scm.plugin.Extension; import sonia.scm.repository.GitRepositoryHandler; import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper; import javax.inject.Inject; -import javax.inject.Provider; import javax.inject.Singleton; @Singleton @Extension public class GitScmProtocolProviderWrapper extends InitializingHttpScmProtocolWrapper { @Inject - public GitScmProtocolProviderWrapper(ScmGitServletProvider servletProvider, Provider uriInfoStore, ScmConfiguration scmConfiguration) { - super(servletProvider, uriInfoStore, scmConfiguration); + public GitScmProtocolProviderWrapper(ScmGitServletProvider servletProvider, RootURL rootURL) { + super(servletProvider, rootURL); } @Override diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgScmProtocolProviderWrapper.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgScmProtocolProviderWrapper.java index 28f80952e2..12b85a1746 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgScmProtocolProviderWrapper.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/web/HgScmProtocolProviderWrapper.java @@ -21,25 +21,24 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.web; -import sonia.scm.api.v2.resources.ScmPathInfoStore; -import sonia.scm.config.ScmConfiguration; +import sonia.scm.RootURL; import sonia.scm.plugin.Extension; import sonia.scm.repository.HgRepositoryHandler; import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper; import javax.inject.Inject; -import javax.inject.Provider; import javax.inject.Singleton; @Singleton @Extension public class HgScmProtocolProviderWrapper extends InitializingHttpScmProtocolWrapper { + @Inject - public HgScmProtocolProviderWrapper(HgCGIServletProvider servletProvider, Provider uriInfoStore, ScmConfiguration scmConfiguration) { - super(servletProvider, uriInfoStore, scmConfiguration); + public HgScmProtocolProviderWrapper(HgCGIServletProvider servletProvider, RootURL rootURL) { + super(servletProvider, rootURL); } @Override diff --git a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnScmProtocolProviderWrapper.java b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnScmProtocolProviderWrapper.java index a8e8857066..fbe71d4bb2 100644 --- a/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnScmProtocolProviderWrapper.java +++ b/scm-plugins/scm-svn-plugin/src/main/java/sonia/scm/web/SvnScmProtocolProviderWrapper.java @@ -21,18 +21,16 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.web; -import sonia.scm.api.v2.resources.ScmPathInfoStore; -import sonia.scm.config.ScmConfiguration; +import sonia.scm.RootURL; import sonia.scm.plugin.Extension; import sonia.scm.repository.SvnRepositoryHandler; import sonia.scm.repository.spi.InitializingHttpScmProtocolWrapper; import sonia.scm.repository.spi.ScmProviderHttpServlet; import javax.inject.Inject; -import javax.inject.Provider; import javax.inject.Singleton; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; @@ -45,19 +43,18 @@ public class SvnScmProtocolProviderWrapper extends InitializingHttpScmProtocolWr public static final String PARAMETER_SVN_PARENTPATH = "SVNParentPath"; + @Inject + public SvnScmProtocolProviderWrapper(SvnDAVServletProvider servletProvider, RootURL rootURL) { + super(servletProvider, rootURL); + } + @Override public String getType() { return SvnRepositoryHandler.TYPE_NAME; } - @Inject - public SvnScmProtocolProviderWrapper(SvnDAVServletProvider servletProvider, Provider uriInfoStore, ScmConfiguration scmConfiguration) { - super(servletProvider, uriInfoStore, scmConfiguration); - } - @Override protected void initializeServlet(ServletConfig config, ScmProviderHttpServlet httpServlet) throws ServletException { - super.initializeServlet(new SvnConfigEnhancer(config), httpServlet); } From 494e62109de4f96e9b6171cb37118616f961dd4c Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 3 Aug 2020 14:05:03 +0200 Subject: [PATCH 12/20] update changelog --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63c5aee55c..5ef512acb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,11 +5,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased +### Added +- New api to resolve SCM-Manager root url ([#1276](https://github.com/scm-manager/scm-manager/pull/1276)) + ### Changed - Help tooltips are now mutliline by default ([#1271](https://github.com/scm-manager/scm-manager/pull/1271)) ### Fixed -- Fixed unecessary horizontal scrollbar in modal dialogs ([#1271](https://github.com/scm-manager/scm-manager/pull/1271)) +- Fixed unnecessary horizontal scrollbar in modal dialogs ([#1271](https://github.com/scm-manager/scm-manager/pull/1271)) +- Avoid stacktrace logging when protocol url is accessed outside of request scope ([#1276](https://github.com/scm-manager/scm-manager/pull/1276)) ## [2.3.0] - 2020-07-23 ### Added From e930884c55f025a3c273d5c999a76ec5ba29825f Mon Sep 17 00:00:00 2001 From: Konstantin Schaper Date: Mon, 3 Aug 2020 14:33:13 +0200 Subject: [PATCH 13/20] Update faq.md --- docs/en/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/faq.md b/docs/en/faq.md index 762e7cff47..64a8957395 100644 --- a/docs/en/faq.md +++ b/docs/en/faq.md @@ -43,4 +43,4 @@ Find the plugin you like to install at [plugins](/plugins#categories) and follow ### How can I import my existing (git|mercurial|subversion) repository -Please have a look on [this](../import/) detailed instructions. +Please have a look on [these](../import/) detailed instructions. From a552e54d20705cd3c29f5553d5676fe50f30b958 Mon Sep 17 00:00:00 2001 From: Konstantin Schaper Date: Mon, 3 Aug 2020 14:33:53 +0200 Subject: [PATCH 14/20] Update import.md --- docs/en/import.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/import.md b/docs/en/import.md index f1076ef02f..fd4d9e6d99 100644 --- a/docs/en/import.md +++ b/docs/en/import.md @@ -1,6 +1,6 @@ --- title: Import existing repositories -subtitle: Howto import existing repositories into SCM-Manager +subtitle: How to import existing repositories into SCM-Manager displayToc: true --- From 5b8ec0b85e5d35b551beb508430a07a53fae9902 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 4 Aug 2020 06:43:43 +0200 Subject: [PATCH 15/20] adds missing bind for RootURL --- .../java/sonia/scm/lifecycle/modules/ScmServletModule.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java index ea87ba0b4f..ec7499aa02 100644 --- a/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/lifecycle/modules/ScmServletModule.java @@ -33,8 +33,10 @@ import com.google.inject.throwingproviders.ThrowingProviderBinder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.Default; +import sonia.scm.DefaultRootURL; import sonia.scm.PushStateDispatcher; import sonia.scm.PushStateDispatcherProvider; +import sonia.scm.RootURL; import sonia.scm.Undecorated; import sonia.scm.api.rest.ObjectMapperProvider; import sonia.scm.api.v2.resources.BranchLinkProvider; @@ -239,6 +241,9 @@ class ScmServletModule extends ServletModule { // bind api link provider bind(BranchLinkProvider.class).to(DefaultBranchLinkProvider.class); + + // bind url helper + bind(RootURL.class).to(DefaultRootURL.class); } private void bind(Class clazz, Class defaultImplementation) { From 4499076180cdedccaf71d820cbec8722e25555d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 4 Aug 2020 08:18:19 +0200 Subject: [PATCH 16/20] Fix versions --- lerna.json | 2 +- scm-plugins/scm-git-plugin/package.json | 4 ++-- scm-plugins/scm-hg-plugin/package.json | 4 ++-- scm-plugins/scm-legacy-plugin/package.json | 4 ++-- scm-plugins/scm-svn-plugin/package.json | 4 ++-- scm-ui/ui-components/package.json | 2 +- scm-ui/ui-plugins/package.json | 4 ++-- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-webapp/package.json | 4 ++-- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lerna.json b/lerna.json index dd2664e01c..3111260147 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "npmClient": "yarn", "useWorkspaces": true, - "version": "2.3.0" + "version": "2.4.0-SNAPSHOT" } diff --git a/scm-plugins/scm-git-plugin/package.json b/scm-plugins/scm-git-plugin/package.json index 4c8fbd8cc0..0f9d2f7d9d 100644 --- a/scm-plugins/scm-git-plugin/package.json +++ b/scm-plugins/scm-git-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-git-plugin", "private": true, - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -20,6 +20,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.0" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-hg-plugin/package.json b/scm-plugins/scm-hg-plugin/package.json index 237ce626e3..af7f6e41ad 100644 --- a/scm-plugins/scm-hg-plugin/package.json +++ b/scm-plugins/scm-hg-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-hg-plugin", "private": true, - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.0" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-legacy-plugin/package.json b/scm-plugins/scm-legacy-plugin/package.json index 4733ac70a7..badb215e52 100644 --- a/scm-plugins/scm-legacy-plugin/package.json +++ b/scm-plugins/scm-legacy-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-legacy-plugin", "private": true, - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.tsx", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.0" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-svn-plugin/package.json b/scm-plugins/scm-svn-plugin/package.json index ca3b81cfed..907a9d670c 100644 --- a/scm-plugins/scm-svn-plugin/package.json +++ b/scm-plugins/scm-svn-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-svn-plugin", "private": true, - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.0" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 74dce43cd0..244bc66c61 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-components", - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "description": "UI Components for SCM-Manager and its plugins", "main": "src/index.ts", "files": [ diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json index 93b7836c88..ece6c6434e 100644 --- a/scm-ui/ui-plugins/package.json +++ b/scm-ui/ui-plugins/package.json @@ -1,12 +1,12 @@ { "name": "@scm-manager/ui-plugins", - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "bin": { "ui-plugins": "./bin/ui-plugins.js" }, "dependencies": { - "@scm-manager/ui-components": "^2.3.0", + "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.6", "query-string": "^5.0.1", diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 8efa51cd75..75659a4cd5 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-styles", - "version": "2.1.0", + "version": "2.4.0-SNAPSHOT", "description": "Styles for SCM-Manager", "main": "src/scm.scss", "license": "MIT", diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json index 1cc39be1bc..1a26d15ecc 100644 --- a/scm-ui/ui-webapp/package.json +++ b/scm-ui/ui-webapp/package.json @@ -1,9 +1,9 @@ { "name": "@scm-manager/ui-webapp", - "version": "2.3.0", + "version": "2.4.0-SNAPSHOT", "private": true, "dependencies": { - "@scm-manager/ui-components": "^2.3.0", + "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.5", "history": "^4.10.1", From 96509f245ebacf7a53f41ef755d5f72ee509ad65 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 4 Aug 2020 15:51:17 +0200 Subject: [PATCH 17/20] prepare changelog for release 2.3.1 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef512acb7..dd1413127c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## [2.3.1] - 2020-08-04 ### Added - New api to resolve SCM-Manager root url ([#1276](https://github.com/scm-manager/scm-manager/pull/1276)) @@ -255,3 +255,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [2.1.1]: https://www.scm-manager.org/download/2.1.1 [2.2.0]: https://www.scm-manager.org/download/2.2.0 [2.3.0]: https://www.scm-manager.org/download/2.3.0 +[2.3.1]: https://www.scm-manager.org/download/2.3.1 From 0394f8fd9675959a3246b4aafb3ffadc2ff77c3d Mon Sep 17 00:00:00 2001 From: CES Marvin Date: Tue, 4 Aug 2020 13:57:22 +0000 Subject: [PATCH 18/20] release version 2.3.1 --- lerna.json | 2 +- pom.xml | 2 +- scm-annotation-processor/pom.xml | 6 ++--- scm-annotations/pom.xml | 4 ++-- scm-core/pom.xml | 8 +++---- scm-dao-xml/pom.xml | 8 +++---- scm-it/pom.xml | 20 ++++++++--------- scm-packaging/deb/pom.xml | 6 ++--- scm-packaging/docker/pom.xml | 4 ++-- scm-packaging/helm/pom.xml | 4 ++-- scm-packaging/pom.xml | 4 ++-- scm-packaging/release-yaml/pom.xml | 4 ++-- scm-packaging/rpm/pom.xml | 6 ++--- scm-packaging/unix/pom.xml | 4 ++-- scm-packaging/windows/pom.xml | 4 ++-- scm-plugins/pom.xml | 10 ++++----- scm-plugins/scm-git-plugin/package.json | 4 ++-- scm-plugins/scm-git-plugin/pom.xml | 2 +- scm-plugins/scm-hg-plugin/package.json | 4 ++-- scm-plugins/scm-hg-plugin/pom.xml | 2 +- scm-plugins/scm-legacy-plugin/package.json | 4 ++-- scm-plugins/scm-legacy-plugin/pom.xml | 4 ++-- scm-plugins/scm-svn-plugin/package.json | 4 ++-- scm-plugins/scm-svn-plugin/pom.xml | 2 +- scm-server/pom.xml | 4 ++-- scm-test/pom.xml | 6 ++--- scm-ui/pom.xml | 4 ++-- scm-ui/ui-components/package.json | 2 +- scm-ui/ui-plugins/package.json | 4 ++-- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-webapp/package.json | 4 ++-- scm-webapp/pom.xml | 26 +++++++++++----------- 32 files changed, 87 insertions(+), 87 deletions(-) diff --git a/lerna.json b/lerna.json index 3111260147..e38551ec0d 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "npmClient": "yarn", "useWorkspaces": true, - "version": "2.4.0-SNAPSHOT" + "version": "2.3.1" } diff --git a/pom.xml b/pom.xml index 1754034a86..27e71e66dc 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ sonia.scm scm pom - 2.4.0-SNAPSHOT + 2.3.1 The easiest way to share your Git, Mercurial and Subversion repositories. diff --git a/scm-annotation-processor/pom.xml b/scm-annotation-processor/pom.xml index 30599bb27e..850977e879 100644 --- a/scm-annotation-processor/pom.xml +++ b/scm-annotation-processor/pom.xml @@ -31,12 +31,12 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-annotation-processor - 2.4.0-SNAPSHOT + 2.3.1 scm-annotation-processor @@ -46,7 +46,7 @@ sonia.scm scm-annotations - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-annotations/pom.xml b/scm-annotations/pom.xml index 45cc5aea7f..cd2ce6edaa 100644 --- a/scm-annotations/pom.xml +++ b/scm-annotations/pom.xml @@ -31,11 +31,11 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 scm-annotations - 2.4.0-SNAPSHOT + 2.3.1 scm-annotations diff --git a/scm-core/pom.xml b/scm-core/pom.xml index f7df981723..bd673f9e0e 100644 --- a/scm-core/pom.xml +++ b/scm-core/pom.xml @@ -31,11 +31,11 @@ scm sonia.scm - 2.4.0-SNAPSHOT + 2.3.1 scm-core - 2.4.0-SNAPSHOT + 2.3.1 scm-core @@ -54,7 +54,7 @@ sonia.scm scm-annotations - 2.4.0-SNAPSHOT + 2.3.1 @@ -221,7 +221,7 @@ sonia.scm scm-annotation-processor - 2.4.0-SNAPSHOT + 2.3.1 provided diff --git a/scm-dao-xml/pom.xml b/scm-dao-xml/pom.xml index 73f21b899f..0b0d9d8038 100644 --- a/scm-dao-xml/pom.xml +++ b/scm-dao-xml/pom.xml @@ -31,11 +31,11 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 scm-dao-xml - 2.4.0-SNAPSHOT + 2.3.1 scm-dao-xml @@ -50,7 +50,7 @@ sonia.scm scm-core - 2.4.0-SNAPSHOT + 2.3.1 @@ -58,7 +58,7 @@ sonia.scm scm-test - 2.4.0-SNAPSHOT + 2.3.1 test diff --git a/scm-it/pom.xml b/scm-it/pom.xml index 90c22cda75..88af2d4437 100644 --- a/scm-it/pom.xml +++ b/scm-it/pom.xml @@ -31,40 +31,40 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-it war - 2.4.0-SNAPSHOT + 2.3.1 scm-it sonia.scm scm-core - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-test - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm.plugins scm-git-plugin - 2.4.0-SNAPSHOT + 2.3.1 test sonia.scm.plugins scm-git-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test @@ -72,14 +72,14 @@ sonia.scm.plugins scm-hg-plugin - 2.4.0-SNAPSHOT + 2.3.1 test sonia.scm.plugins scm-hg-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test @@ -87,14 +87,14 @@ sonia.scm.plugins scm-svn-plugin - 2.4.0-SNAPSHOT + 2.3.1 test sonia.scm.plugins scm-svn-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test diff --git a/scm-packaging/deb/pom.xml b/scm-packaging/deb/pom.xml index 1b55fd5033..142cf4fb37 100644 --- a/scm-packaging/deb/pom.xml +++ b/scm-packaging/deb/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 deb deb - 2.4.0-SNAPSHOT + 2.3.1 Packaging for Debian/Ubuntu deb @@ -46,7 +46,7 @@ sonia.scm scm-server - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-packaging/docker/pom.xml b/scm-packaging/docker/pom.xml index 156ff6a028..f3ee083458 100644 --- a/scm-packaging/docker/pom.xml +++ b/scm-packaging/docker/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 docker pom - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-packaging/helm/pom.xml b/scm-packaging/helm/pom.xml index 93817d57c2..01454dba49 100644 --- a/scm-packaging/helm/pom.xml +++ b/scm-packaging/helm/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 helm helm - 2.4.0-SNAPSHOT + 2.3.1 3.2.1 diff --git a/scm-packaging/pom.xml b/scm-packaging/pom.xml index ed85aff8e2..1c63a39a9b 100644 --- a/scm-packaging/pom.xml +++ b/scm-packaging/pom.xml @@ -31,13 +31,13 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm.packaging scm-packaging pom - 2.4.0-SNAPSHOT + 2.3.1 packages.scm-manager.org diff --git a/scm-packaging/release-yaml/pom.xml b/scm-packaging/release-yaml/pom.xml index af5e983661..1bf53a1edc 100644 --- a/scm-packaging/release-yaml/pom.xml +++ b/scm-packaging/release-yaml/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 release-yaml pom - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-packaging/rpm/pom.xml b/scm-packaging/rpm/pom.xml index 5af952fd87..3c26eb974e 100644 --- a/scm-packaging/rpm/pom.xml +++ b/scm-packaging/rpm/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 rpm rpm - 2.4.0-SNAPSHOT + 2.3.1 Packaging for RedHat/Centos/Fedora rpm @@ -52,7 +52,7 @@ sonia.scm scm-server - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-packaging/unix/pom.xml b/scm-packaging/unix/pom.xml index a03977fbf5..f3a9abd25b 100644 --- a/scm-packaging/unix/pom.xml +++ b/scm-packaging/unix/pom.xml @@ -31,12 +31,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 unix pom - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-packaging/windows/pom.xml b/scm-packaging/windows/pom.xml index e0f0181d3a..62a012ca85 100644 --- a/scm-packaging/windows/pom.xml +++ b/scm-packaging/windows/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.4.0-SNAPSHOT + 2.3.1 windows pom - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-plugins/pom.xml b/scm-plugins/pom.xml index a407c38471..93b739231a 100644 --- a/scm-plugins/pom.xml +++ b/scm-plugins/pom.xml @@ -31,13 +31,13 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm.plugins scm-plugins pom - 2.4.0-SNAPSHOT + 2.3.1 scm-plugins @@ -59,7 +59,7 @@ sonia.scm scm-core - 2.4.0-SNAPSHOT + 2.3.1 provided @@ -68,7 +68,7 @@ sonia.scm scm-annotation-processor - 2.4.0-SNAPSHOT + 2.3.1 provided @@ -98,7 +98,7 @@ sonia.scm scm-test - 2.4.0-SNAPSHOT + 2.3.1 test diff --git a/scm-plugins/scm-git-plugin/package.json b/scm-plugins/scm-git-plugin/package.json index 0f9d2f7d9d..445dc94ef5 100644 --- a/scm-plugins/scm-git-plugin/package.json +++ b/scm-plugins/scm-git-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-git-plugin", "private": true, - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -20,6 +20,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.3.1" } } diff --git a/scm-plugins/scm-git-plugin/pom.xml b/scm-plugins/scm-git-plugin/pom.xml index b184af3645..e18ea4f8cb 100644 --- a/scm-plugins/scm-git-plugin/pom.xml +++ b/scm-plugins/scm-git-plugin/pom.xml @@ -31,7 +31,7 @@ scm-plugins sonia.scm.plugins - 2.4.0-SNAPSHOT + 2.3.1 scm-git-plugin diff --git a/scm-plugins/scm-hg-plugin/package.json b/scm-plugins/scm-hg-plugin/package.json index af7f6e41ad..9ed5dcd026 100644 --- a/scm-plugins/scm-hg-plugin/package.json +++ b/scm-plugins/scm-hg-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-hg-plugin", "private": true, - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.3.1" } } diff --git a/scm-plugins/scm-hg-plugin/pom.xml b/scm-plugins/scm-hg-plugin/pom.xml index ae491a1f04..5ff57fc842 100644 --- a/scm-plugins/scm-hg-plugin/pom.xml +++ b/scm-plugins/scm-hg-plugin/pom.xml @@ -31,7 +31,7 @@ sonia.scm.plugins scm-plugins - 2.4.0-SNAPSHOT + 2.3.1 scm-hg-plugin diff --git a/scm-plugins/scm-legacy-plugin/package.json b/scm-plugins/scm-legacy-plugin/package.json index badb215e52..b8e1bd6324 100644 --- a/scm-plugins/scm-legacy-plugin/package.json +++ b/scm-plugins/scm-legacy-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-legacy-plugin", "private": true, - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "license": "MIT", "main": "./src/main/js/index.tsx", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.3.1" } } diff --git a/scm-plugins/scm-legacy-plugin/pom.xml b/scm-plugins/scm-legacy-plugin/pom.xml index f1f62b66dc..97326bb135 100644 --- a/scm-plugins/scm-legacy-plugin/pom.xml +++ b/scm-plugins/scm-legacy-plugin/pom.xml @@ -29,12 +29,12 @@ sonia.scm.plugins scm-plugins - 2.4.0-SNAPSHOT + 2.3.1 scm-legacy-plugin Support migrated repository urls and v1 passwords - 2.4.0-SNAPSHOT + 2.3.1 smp diff --git a/scm-plugins/scm-svn-plugin/package.json b/scm-plugins/scm-svn-plugin/package.json index 907a9d670c..7761c0045f 100644 --- a/scm-plugins/scm-svn-plugin/package.json +++ b/scm-plugins/scm-svn-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-svn-plugin", "private": true, - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" + "@scm-manager/ui-plugins": "^2.3.1" } } diff --git a/scm-plugins/scm-svn-plugin/pom.xml b/scm-plugins/scm-svn-plugin/pom.xml index 28145f3dcb..bca168626f 100644 --- a/scm-plugins/scm-svn-plugin/pom.xml +++ b/scm-plugins/scm-svn-plugin/pom.xml @@ -31,7 +31,7 @@ scm-plugins sonia.scm.plugins - 2.4.0-SNAPSHOT + 2.3.1 scm-svn-plugin diff --git a/scm-server/pom.xml b/scm-server/pom.xml index 96c89ac660..23364383df 100644 --- a/scm-server/pom.xml +++ b/scm-server/pom.xml @@ -31,12 +31,12 @@ scm sonia.scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-server - 2.4.0-SNAPSHOT + 2.3.1 scm-server jar diff --git a/scm-test/pom.xml b/scm-test/pom.xml index c430ba59ba..e093503806 100644 --- a/scm-test/pom.xml +++ b/scm-test/pom.xml @@ -31,12 +31,12 @@ scm sonia.scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-test - 2.4.0-SNAPSHOT + 2.3.1 scm-test @@ -50,7 +50,7 @@ sonia.scm scm-core - 2.4.0-SNAPSHOT + 2.3.1 diff --git a/scm-ui/pom.xml b/scm-ui/pom.xml index ebdcb9dc1c..dd51938103 100644 --- a/scm-ui/pom.xml +++ b/scm-ui/pom.xml @@ -32,13 +32,13 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-ui war - 2.4.0-SNAPSHOT + 2.3.1 scm-ui diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 244bc66c61..49a758a225 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-components", - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "description": "UI Components for SCM-Manager and its plugins", "main": "src/index.ts", "files": [ diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json index ece6c6434e..1d90eb551b 100644 --- a/scm-ui/ui-plugins/package.json +++ b/scm-ui/ui-plugins/package.json @@ -1,12 +1,12 @@ { "name": "@scm-manager/ui-plugins", - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "license": "MIT", "bin": { "ui-plugins": "./bin/ui-plugins.js" }, "dependencies": { - "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", + "@scm-manager/ui-components": "^2.3.1", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.6", "query-string": "^5.0.1", diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 75659a4cd5..387c3b07d2 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-styles", - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "description": "Styles for SCM-Manager", "main": "src/scm.scss", "license": "MIT", diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json index 1a26d15ecc..440632463e 100644 --- a/scm-ui/ui-webapp/package.json +++ b/scm-ui/ui-webapp/package.json @@ -1,9 +1,9 @@ { "name": "@scm-manager/ui-webapp", - "version": "2.4.0-SNAPSHOT", + "version": "2.3.1", "private": true, "dependencies": { - "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", + "@scm-manager/ui-components": "^2.3.1", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.5", "history": "^4.10.1", diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index a2f1b97957..44bfc292ed 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -32,13 +32,13 @@ sonia.scm scm - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-webapp war - 2.4.0-SNAPSHOT + 2.3.1 scm-webapp @@ -48,7 +48,7 @@ sonia.scm scm-annotation-processor - 2.4.0-SNAPSHOT + 2.3.1 provided @@ -73,13 +73,13 @@ sonia.scm scm-core - 2.4.0-SNAPSHOT + 2.3.1 sonia.scm scm-dao-xml - 2.4.0-SNAPSHOT + 2.3.1 @@ -332,7 +332,7 @@ sonia.scm scm-test - 2.4.0-SNAPSHOT + 2.3.1 test @@ -394,7 +394,7 @@ sonia.scm.plugins scm-git-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test @@ -402,14 +402,14 @@ sonia.scm.plugins scm-git-plugin - 2.4.0-SNAPSHOT + 2.3.1 test sonia.scm.plugins scm-hg-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test @@ -417,14 +417,14 @@ sonia.scm.plugins scm-hg-plugin - 2.4.0-SNAPSHOT + 2.3.1 test sonia.scm.plugins scm-svn-plugin - 2.4.0-SNAPSHOT + 2.3.1 tests test @@ -432,7 +432,7 @@ sonia.scm.plugins scm-svn-plugin - 2.4.0-SNAPSHOT + 2.3.1 test @@ -718,7 +718,7 @@ sonia.scm scm-ui - 2.4.0-SNAPSHOT + 2.3.1 war From 7352bdf55bbead1f21112788d5adaf4defebc757 Mon Sep 17 00:00:00 2001 From: CES Marvin Date: Tue, 4 Aug 2020 14:29:12 +0000 Subject: [PATCH 19/20] prepare for next development iteration --- pom.xml | 2 +- scm-annotation-processor/pom.xml | 6 +++--- scm-annotations/pom.xml | 4 ++-- scm-core/pom.xml | 8 ++++---- scm-dao-xml/pom.xml | 8 ++++---- scm-it/pom.xml | 20 ++++++++++---------- scm-packaging/deb/pom.xml | 6 +++--- scm-packaging/docker/pom.xml | 4 ++-- scm-packaging/helm/pom.xml | 4 ++-- scm-packaging/pom.xml | 4 ++-- scm-packaging/release-yaml/pom.xml | 4 ++-- scm-packaging/rpm/pom.xml | 6 +++--- scm-packaging/unix/pom.xml | 4 ++-- scm-packaging/windows/pom.xml | 4 ++-- scm-plugins/pom.xml | 10 +++++----- scm-plugins/scm-git-plugin/pom.xml | 2 +- scm-plugins/scm-hg-plugin/pom.xml | 2 +- scm-plugins/scm-legacy-plugin/pom.xml | 4 ++-- scm-plugins/scm-svn-plugin/pom.xml | 2 +- scm-server/pom.xml | 4 ++-- scm-test/pom.xml | 6 +++--- scm-ui/pom.xml | 4 ++-- scm-webapp/pom.xml | 26 +++++++++++++------------- 23 files changed, 72 insertions(+), 72 deletions(-) diff --git a/pom.xml b/pom.xml index 27e71e66dc..1754034a86 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ sonia.scm scm pom - 2.3.1 + 2.4.0-SNAPSHOT The easiest way to share your Git, Mercurial and Subversion repositories. diff --git a/scm-annotation-processor/pom.xml b/scm-annotation-processor/pom.xml index 850977e879..30599bb27e 100644 --- a/scm-annotation-processor/pom.xml +++ b/scm-annotation-processor/pom.xml @@ -31,12 +31,12 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-annotation-processor - 2.3.1 + 2.4.0-SNAPSHOT scm-annotation-processor @@ -46,7 +46,7 @@ sonia.scm scm-annotations - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-annotations/pom.xml b/scm-annotations/pom.xml index cd2ce6edaa..45cc5aea7f 100644 --- a/scm-annotations/pom.xml +++ b/scm-annotations/pom.xml @@ -31,11 +31,11 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT scm-annotations - 2.3.1 + 2.4.0-SNAPSHOT scm-annotations diff --git a/scm-core/pom.xml b/scm-core/pom.xml index bd673f9e0e..f7df981723 100644 --- a/scm-core/pom.xml +++ b/scm-core/pom.xml @@ -31,11 +31,11 @@ scm sonia.scm - 2.3.1 + 2.4.0-SNAPSHOT scm-core - 2.3.1 + 2.4.0-SNAPSHOT scm-core @@ -54,7 +54,7 @@ sonia.scm scm-annotations - 2.3.1 + 2.4.0-SNAPSHOT @@ -221,7 +221,7 @@ sonia.scm scm-annotation-processor - 2.3.1 + 2.4.0-SNAPSHOT provided diff --git a/scm-dao-xml/pom.xml b/scm-dao-xml/pom.xml index 0b0d9d8038..73f21b899f 100644 --- a/scm-dao-xml/pom.xml +++ b/scm-dao-xml/pom.xml @@ -31,11 +31,11 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT scm-dao-xml - 2.3.1 + 2.4.0-SNAPSHOT scm-dao-xml @@ -50,7 +50,7 @@ sonia.scm scm-core - 2.3.1 + 2.4.0-SNAPSHOT @@ -58,7 +58,7 @@ sonia.scm scm-test - 2.3.1 + 2.4.0-SNAPSHOT test diff --git a/scm-it/pom.xml b/scm-it/pom.xml index 88af2d4437..90c22cda75 100644 --- a/scm-it/pom.xml +++ b/scm-it/pom.xml @@ -31,40 +31,40 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-it war - 2.3.1 + 2.4.0-SNAPSHOT scm-it sonia.scm scm-core - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-test - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm.plugins scm-git-plugin - 2.3.1 + 2.4.0-SNAPSHOT test sonia.scm.plugins scm-git-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test @@ -72,14 +72,14 @@ sonia.scm.plugins scm-hg-plugin - 2.3.1 + 2.4.0-SNAPSHOT test sonia.scm.plugins scm-hg-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test @@ -87,14 +87,14 @@ sonia.scm.plugins scm-svn-plugin - 2.3.1 + 2.4.0-SNAPSHOT test sonia.scm.plugins scm-svn-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test diff --git a/scm-packaging/deb/pom.xml b/scm-packaging/deb/pom.xml index 142cf4fb37..1b55fd5033 100644 --- a/scm-packaging/deb/pom.xml +++ b/scm-packaging/deb/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT deb deb - 2.3.1 + 2.4.0-SNAPSHOT Packaging for Debian/Ubuntu deb @@ -46,7 +46,7 @@ sonia.scm scm-server - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-packaging/docker/pom.xml b/scm-packaging/docker/pom.xml index f3ee083458..156ff6a028 100644 --- a/scm-packaging/docker/pom.xml +++ b/scm-packaging/docker/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT docker pom - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-packaging/helm/pom.xml b/scm-packaging/helm/pom.xml index 01454dba49..93817d57c2 100644 --- a/scm-packaging/helm/pom.xml +++ b/scm-packaging/helm/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT helm helm - 2.3.1 + 2.4.0-SNAPSHOT 3.2.1 diff --git a/scm-packaging/pom.xml b/scm-packaging/pom.xml index 1c63a39a9b..ed85aff8e2 100644 --- a/scm-packaging/pom.xml +++ b/scm-packaging/pom.xml @@ -31,13 +31,13 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm.packaging scm-packaging pom - 2.3.1 + 2.4.0-SNAPSHOT packages.scm-manager.org diff --git a/scm-packaging/release-yaml/pom.xml b/scm-packaging/release-yaml/pom.xml index 1bf53a1edc..af5e983661 100644 --- a/scm-packaging/release-yaml/pom.xml +++ b/scm-packaging/release-yaml/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT release-yaml pom - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-packaging/rpm/pom.xml b/scm-packaging/rpm/pom.xml index 3c26eb974e..5af952fd87 100644 --- a/scm-packaging/rpm/pom.xml +++ b/scm-packaging/rpm/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT rpm rpm - 2.3.1 + 2.4.0-SNAPSHOT Packaging for RedHat/Centos/Fedora rpm @@ -52,7 +52,7 @@ sonia.scm scm-server - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-packaging/unix/pom.xml b/scm-packaging/unix/pom.xml index f3a9abd25b..a03977fbf5 100644 --- a/scm-packaging/unix/pom.xml +++ b/scm-packaging/unix/pom.xml @@ -31,12 +31,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT unix pom - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-packaging/windows/pom.xml b/scm-packaging/windows/pom.xml index 62a012ca85..e0f0181d3a 100644 --- a/scm-packaging/windows/pom.xml +++ b/scm-packaging/windows/pom.xml @@ -32,12 +32,12 @@ sonia.scm.packaging scm-packaging - 2.3.1 + 2.4.0-SNAPSHOT windows pom - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-plugins/pom.xml b/scm-plugins/pom.xml index 93b739231a..a407c38471 100644 --- a/scm-plugins/pom.xml +++ b/scm-plugins/pom.xml @@ -31,13 +31,13 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm.plugins scm-plugins pom - 2.3.1 + 2.4.0-SNAPSHOT scm-plugins @@ -59,7 +59,7 @@ sonia.scm scm-core - 2.3.1 + 2.4.0-SNAPSHOT provided @@ -68,7 +68,7 @@ sonia.scm scm-annotation-processor - 2.3.1 + 2.4.0-SNAPSHOT provided @@ -98,7 +98,7 @@ sonia.scm scm-test - 2.3.1 + 2.4.0-SNAPSHOT test diff --git a/scm-plugins/scm-git-plugin/pom.xml b/scm-plugins/scm-git-plugin/pom.xml index e18ea4f8cb..b184af3645 100644 --- a/scm-plugins/scm-git-plugin/pom.xml +++ b/scm-plugins/scm-git-plugin/pom.xml @@ -31,7 +31,7 @@ scm-plugins sonia.scm.plugins - 2.3.1 + 2.4.0-SNAPSHOT scm-git-plugin diff --git a/scm-plugins/scm-hg-plugin/pom.xml b/scm-plugins/scm-hg-plugin/pom.xml index 5ff57fc842..ae491a1f04 100644 --- a/scm-plugins/scm-hg-plugin/pom.xml +++ b/scm-plugins/scm-hg-plugin/pom.xml @@ -31,7 +31,7 @@ sonia.scm.plugins scm-plugins - 2.3.1 + 2.4.0-SNAPSHOT scm-hg-plugin diff --git a/scm-plugins/scm-legacy-plugin/pom.xml b/scm-plugins/scm-legacy-plugin/pom.xml index 97326bb135..f1f62b66dc 100644 --- a/scm-plugins/scm-legacy-plugin/pom.xml +++ b/scm-plugins/scm-legacy-plugin/pom.xml @@ -29,12 +29,12 @@ sonia.scm.plugins scm-plugins - 2.3.1 + 2.4.0-SNAPSHOT scm-legacy-plugin Support migrated repository urls and v1 passwords - 2.3.1 + 2.4.0-SNAPSHOT smp diff --git a/scm-plugins/scm-svn-plugin/pom.xml b/scm-plugins/scm-svn-plugin/pom.xml index bca168626f..28145f3dcb 100644 --- a/scm-plugins/scm-svn-plugin/pom.xml +++ b/scm-plugins/scm-svn-plugin/pom.xml @@ -31,7 +31,7 @@ scm-plugins sonia.scm.plugins - 2.3.1 + 2.4.0-SNAPSHOT scm-svn-plugin diff --git a/scm-server/pom.xml b/scm-server/pom.xml index 23364383df..96c89ac660 100644 --- a/scm-server/pom.xml +++ b/scm-server/pom.xml @@ -31,12 +31,12 @@ scm sonia.scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-server - 2.3.1 + 2.4.0-SNAPSHOT scm-server jar diff --git a/scm-test/pom.xml b/scm-test/pom.xml index e093503806..c430ba59ba 100644 --- a/scm-test/pom.xml +++ b/scm-test/pom.xml @@ -31,12 +31,12 @@ scm sonia.scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-test - 2.3.1 + 2.4.0-SNAPSHOT scm-test @@ -50,7 +50,7 @@ sonia.scm scm-core - 2.3.1 + 2.4.0-SNAPSHOT diff --git a/scm-ui/pom.xml b/scm-ui/pom.xml index dd51938103..ebdcb9dc1c 100644 --- a/scm-ui/pom.xml +++ b/scm-ui/pom.xml @@ -32,13 +32,13 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-ui war - 2.3.1 + 2.4.0-SNAPSHOT scm-ui diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml index 44bfc292ed..a2f1b97957 100644 --- a/scm-webapp/pom.xml +++ b/scm-webapp/pom.xml @@ -32,13 +32,13 @@ sonia.scm scm - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-webapp war - 2.3.1 + 2.4.0-SNAPSHOT scm-webapp @@ -48,7 +48,7 @@ sonia.scm scm-annotation-processor - 2.3.1 + 2.4.0-SNAPSHOT provided @@ -73,13 +73,13 @@ sonia.scm scm-core - 2.3.1 + 2.4.0-SNAPSHOT sonia.scm scm-dao-xml - 2.3.1 + 2.4.0-SNAPSHOT @@ -332,7 +332,7 @@ sonia.scm scm-test - 2.3.1 + 2.4.0-SNAPSHOT test @@ -394,7 +394,7 @@ sonia.scm.plugins scm-git-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test @@ -402,14 +402,14 @@ sonia.scm.plugins scm-git-plugin - 2.3.1 + 2.4.0-SNAPSHOT test sonia.scm.plugins scm-hg-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test @@ -417,14 +417,14 @@ sonia.scm.plugins scm-hg-plugin - 2.3.1 + 2.4.0-SNAPSHOT test sonia.scm.plugins scm-svn-plugin - 2.3.1 + 2.4.0-SNAPSHOT tests test @@ -432,7 +432,7 @@ sonia.scm.plugins scm-svn-plugin - 2.3.1 + 2.4.0-SNAPSHOT test @@ -718,7 +718,7 @@ sonia.scm scm-ui - 2.3.1 + 2.4.0-SNAPSHOT war From 592282eb0fec877609d2b21a49042081574f2268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Tue, 4 Aug 2020 17:34:33 +0200 Subject: [PATCH 20/20] Fix versions --- lerna.json | 2 +- scm-plugins/scm-git-plugin/package.json | 4 ++-- scm-plugins/scm-hg-plugin/package.json | 4 ++-- scm-plugins/scm-legacy-plugin/package.json | 4 ++-- scm-plugins/scm-svn-plugin/package.json | 4 ++-- scm-ui/ui-components/package.json | 2 +- scm-ui/ui-plugins/package.json | 4 ++-- scm-ui/ui-styles/package.json | 2 +- scm-ui/ui-webapp/package.json | 4 ++-- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lerna.json b/lerna.json index e38551ec0d..3111260147 100644 --- a/lerna.json +++ b/lerna.json @@ -5,5 +5,5 @@ ], "npmClient": "yarn", "useWorkspaces": true, - "version": "2.3.1" + "version": "2.4.0-SNAPSHOT" } diff --git a/scm-plugins/scm-git-plugin/package.json b/scm-plugins/scm-git-plugin/package.json index 445dc94ef5..0f9d2f7d9d 100644 --- a/scm-plugins/scm-git-plugin/package.json +++ b/scm-plugins/scm-git-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-git-plugin", "private": true, - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -20,6 +20,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.1" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-hg-plugin/package.json b/scm-plugins/scm-hg-plugin/package.json index 9ed5dcd026..af7f6e41ad 100644 --- a/scm-plugins/scm-hg-plugin/package.json +++ b/scm-plugins/scm-hg-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-hg-plugin", "private": true, - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.1" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-legacy-plugin/package.json b/scm-plugins/scm-legacy-plugin/package.json index b8e1bd6324..badb215e52 100644 --- a/scm-plugins/scm-legacy-plugin/package.json +++ b/scm-plugins/scm-legacy-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-legacy-plugin", "private": true, - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.tsx", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.1" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-plugins/scm-svn-plugin/package.json b/scm-plugins/scm-svn-plugin/package.json index 7761c0045f..907a9d670c 100644 --- a/scm-plugins/scm-svn-plugin/package.json +++ b/scm-plugins/scm-svn-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@scm-manager/scm-svn-plugin", "private": true, - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "main": "./src/main/js/index.ts", "scripts": { @@ -19,6 +19,6 @@ }, "prettier": "@scm-manager/prettier-config", "dependencies": { - "@scm-manager/ui-plugins": "^2.3.1" + "@scm-manager/ui-plugins": "^2.4.0-SNAPSHOT" } } diff --git a/scm-ui/ui-components/package.json b/scm-ui/ui-components/package.json index 49a758a225..244bc66c61 100644 --- a/scm-ui/ui-components/package.json +++ b/scm-ui/ui-components/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-components", - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "description": "UI Components for SCM-Manager and its plugins", "main": "src/index.ts", "files": [ diff --git a/scm-ui/ui-plugins/package.json b/scm-ui/ui-plugins/package.json index 1d90eb551b..ece6c6434e 100644 --- a/scm-ui/ui-plugins/package.json +++ b/scm-ui/ui-plugins/package.json @@ -1,12 +1,12 @@ { "name": "@scm-manager/ui-plugins", - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "license": "MIT", "bin": { "ui-plugins": "./bin/ui-plugins.js" }, "dependencies": { - "@scm-manager/ui-components": "^2.3.1", + "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.6", "query-string": "^5.0.1", diff --git a/scm-ui/ui-styles/package.json b/scm-ui/ui-styles/package.json index 387c3b07d2..75659a4cd5 100644 --- a/scm-ui/ui-styles/package.json +++ b/scm-ui/ui-styles/package.json @@ -1,6 +1,6 @@ { "name": "@scm-manager/ui-styles", - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "description": "Styles for SCM-Manager", "main": "src/scm.scss", "license": "MIT", diff --git a/scm-ui/ui-webapp/package.json b/scm-ui/ui-webapp/package.json index 440632463e..1a26d15ecc 100644 --- a/scm-ui/ui-webapp/package.json +++ b/scm-ui/ui-webapp/package.json @@ -1,9 +1,9 @@ { "name": "@scm-manager/ui-webapp", - "version": "2.3.1", + "version": "2.4.0-SNAPSHOT", "private": true, "dependencies": { - "@scm-manager/ui-components": "^2.3.1", + "@scm-manager/ui-components": "^2.4.0-SNAPSHOT", "@scm-manager/ui-extensions": "^2.1.0", "classnames": "^2.2.5", "history": "^4.10.1",