mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-10 15:35:49 +01:00
Merge remote-tracking branch 'origin/develop' into feature/browse_commit_with_limit
# Conflicts: # CHANGELOG.md
This commit is contained in:
10
.gitignore
vendored
10
.gitignore
vendored
@@ -19,3 +19,13 @@ Desktop DF
|
|||||||
.project
|
.project
|
||||||
.classpath
|
.classpath
|
||||||
.settings
|
.settings
|
||||||
|
# idea files
|
||||||
|
*.iml
|
||||||
|
.idea
|
||||||
|
# ui
|
||||||
|
scm-ui/build
|
||||||
|
scm-ui/coverage
|
||||||
|
node_modules
|
||||||
|
# jrebel
|
||||||
|
rebel.xml
|
||||||
|
*.pyc
|
||||||
|
|||||||
36
.hgignore
36
.hgignore
@@ -1,36 +0,0 @@
|
|||||||
# netbeans temp & private files
|
|
||||||
/?target/
|
|
||||||
nbactions.*\.xml
|
|
||||||
/?nbproject/
|
|
||||||
nb-configuration\.xml
|
|
||||||
# MacOS X Files
|
|
||||||
\.DS_Store$
|
|
||||||
\._\.DS_Store$
|
|
||||||
\._\.
|
|
||||||
Desktop DB$
|
|
||||||
Desktop DF$
|
|
||||||
\.hotfiles\.btree$
|
|
||||||
\.orig$
|
|
||||||
~$
|
|
||||||
\.\~.*$
|
|
||||||
\.bak$
|
|
||||||
.*\.NavData$
|
|
||||||
\.orig\..*$
|
|
||||||
\.chg\..*$
|
|
||||||
\.rej$
|
|
||||||
\.conflict\~$
|
|
||||||
# Eclipse Files
|
|
||||||
\.project
|
|
||||||
\.classpath
|
|
||||||
\.settings
|
|
||||||
# idea files
|
|
||||||
\.iml
|
|
||||||
\.idea$
|
|
||||||
# jrebel
|
|
||||||
rebel.xml
|
|
||||||
\.pyc
|
|
||||||
# ui
|
|
||||||
scm-ui/build
|
|
||||||
scm-ui/coverage
|
|
||||||
/?node_modules/
|
|
||||||
|
|
||||||
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Added footer extension points for links and avatar
|
- Added footer extension points for links and avatar
|
||||||
- Create OpenAPI specification during build
|
- Create OpenAPI specification during build
|
||||||
- Extension point entries with supplied extensionName are sorted ascending
|
- Extension point entries with supplied extensionName are sorted ascending
|
||||||
|
- Possibility to configure git core config entries for jgit like core.trustfolderstat and core.supportsatomicfilecreation
|
||||||
- By default, only 100 files will be listed in source view in one request
|
- By default, only 100 files will be listed in source view in one request
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@@ -39,7 +39,7 @@ node('docker') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stage('Integration Test') {
|
stage('Integration Test') {
|
||||||
mvn 'verify -Pit -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true'
|
mvn 'verify -Pit -pl :scm-webapp,:scm-it -Dmaven.test.failure.ignore=true -Dscm.git.core.trustfolderstat=false'
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('SonarQube') {
|
stage('SonarQube') {
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package sonia.scm.repository.spi;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import sonia.scm.plugin.Extension;
|
||||||
|
|
||||||
|
import javax.servlet.ServletContextEvent;
|
||||||
|
import javax.servlet.ServletContextListener;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Extension
|
||||||
|
public class GitConfigContextListener implements ServletContextListener {
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(GitConfigContextListener.class);
|
||||||
|
private static final String SCM_JGIT_CORE = "scm.git.core.";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void contextInitialized(ServletContextEvent sce) {
|
||||||
|
System.getProperties()
|
||||||
|
.entrySet().stream()
|
||||||
|
.filter(e -> e.getKey().toString().startsWith(SCM_JGIT_CORE))
|
||||||
|
.forEach(this::setConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setConfig(Map.Entry<Object, Object> property) {
|
||||||
|
String key = property.getKey().toString().substring(SCM_JGIT_CORE.length());
|
||||||
|
String value = property.getValue().toString();
|
||||||
|
try {
|
||||||
|
SystemReader.getInstance().getSystemConfig().setString("core", null, key, value);
|
||||||
|
LOG.info("set git config core.{} = {}", key,value);
|
||||||
|
} catch (Exception e) {
|
||||||
|
LOG.error("could not set git config core.{} = {}", key,value, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void contextDestroyed(ServletContextEvent sce) {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package sonia.scm.repository.spi;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.errors.ConfigInvalidException;
|
||||||
|
import org.eclipse.jgit.util.SystemReader;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class GitConfigContextListenerTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldSetGitConfig() throws IOException, ConfigInvalidException {
|
||||||
|
System.setProperty("scm.git.core.someTestKey", "testValue");
|
||||||
|
new GitConfigContextListener().contextInitialized(null);
|
||||||
|
assertThat(
|
||||||
|
SystemReader.getInstance().getSystemConfig().getString("core", null, "someTestKey")
|
||||||
|
).isEqualTo("testValue");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user