Merge remote-tracking branch 'origin/2.1.x'

This commit is contained in:
Ryan Baxter
2019-04-10 17:48:11 -04:00
10 changed files with 254 additions and 10 deletions

View File

@@ -28,6 +28,11 @@
<properties>
<bintray.package>config</bintray.package>
<spring-cloud-commons.version>2.2.0.BUILD-SNAPSHOT</spring-cloud-commons.version>
<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
<maven-checkstyle-plugin.failsOnViolation>true
</maven-checkstyle-plugin.failsOnViolation>
<maven-checkstyle-plugin.includeTestSourceDirectory>true
</maven-checkstyle-plugin.includeTestSourceDirectory>
</properties>
<modules>
<module>spring-cloud-config-dependencies</module>

View File

@@ -0,0 +1,81 @@
{
"secret": "gitea_push",
"ref": "refs/heads/master",
"before": "70767b558d8f850eac3fead13dfc232d043646a0",
"after": "78b77379c448caf024c73fa280ca571449224590",
"compare_url": "https://gitea.lawyers.corp/internal/lawsuits/compare/70767b558d8f850eac3fead13dfc232d043646a0...78b77379c448caf024c73fa280ca571449224590",
"commits": [
{
"id": "78b77379c448caf024c73fa280ca571449224590",
"message": "SUPPORT-4765: urlencode\n",
"url": "https://gitea.lawyers.corp/internal/lawsuits/commit/78b77379c448caf024c73fa280ca571449224590",
"author": {
"name": "Perry Mason",
"email": "perrym@lawyers.corp",
"username": "git"
},
"committer": {
"name": "Perry Mason",
"email": "perrym@lawyers.corp",
"username": "git"
},
"verification": null,
"timestamp": "2018-08-27T11:18:34Z"
}
],
"repository": {
"id": 480,
"owner": {
"id": 3,
"login": "internal",
"full_name": "",
"email": "",
"avatar_url": "https://gitea.lawyers.corp/avatars/dbc87f99ecd29cb0eb4447807ad73f9f",
"language": "",
"username": "internal"
},
"name": "lawsuits",
"full_name": "internal/lawsuits",
"description": "",
"empty": false,
"private": false,
"fork": false,
"parent": null,
"mirror": false,
"size": 5516,
"html_url": "https://gitea.lawyers.corp/internal/lawsuits",
"ssh_url": "git@localhost:internal/lawsuits.git",
"clone_url": "https://gitea.lawyers.corp/internal/lawsuits.git",
"website": "",
"stars_count": 1,
"forks_count": 20,
"watchers_count": 6,
"open_issues_count": 0,
"default_branch": "master",
"created_at": "2018-01-18T15:11:51Z",
"updated_at": "2018-08-27T11:18:34Z",
"permissions": {
"admin": false,
"push": false,
"pull": false
}
},
"pusher": {
"id": 2,
"login": "perrym",
"full_name": "Perry Mason",
"email": "perrym@lawyers.corp",
"avatar_url": "https://gitea.lawyers.corp/avatars/5868737ae078a4441031bf550d16e967",
"language": "en-US",
"username": "perrym"
},
"sender": {
"id": 2,
"login": "perrym",
"full_name": "Perry Mason",
"email": "perrym@lawyers.corp",
"avatar_url": "https://gitea.lawyers.corp/avatars/5868737ae078a4441031bf550d16e967",
"language": "en-US",
"username": "perrym"
}
}

View File

@@ -0,0 +1,54 @@
{
"before": "fb32ef5812dc132ece716a05c50c7531c6dc1b4d",
"after": "ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"ref": "refs/heads/master",
"user_id": 13,
"user_name": "123",
"user": {
"name": "123",
"username": "test123",
"url": "https://gitee.com/oschina"
},
"repository": {
"name": "webhook",
"url": "https://git.oschina.net/oschina/webhook",
"description": "",
"homepage": "https://gitee.com/oschina/webhook"
},
"commits": [{
"id": "ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"message": "1234 bug fix",
"timestamp": "2016-12-09T17:28:02 08:00",
"url": "https://gitee.com/oschina/webhook/commit/ac63b9ba95191a1bf79d60bc262851a66c12cda1",
"author": {
"name": "123",
"email": "123@123.com",
"time": "2016-12-09T17:28:02 08:00"
},
"added": [
"d.txt"
],
"modified": [
"c.txt"
],
"removed": [
"b.txt"
]
}],
"total_commits_count": 1,
"commits_more_than_ten": false,
"project": {
"name": "webhook",
"path": "webhook",
"url": "https://gitee.com/oschina/webhook",
"git_ssh_url": "git@gitee.com:oschina/webhook.git",
"git_http_url": "https://gitee.com/oschina/webhook.git",
"git_svn_url": "svn://gitee.com/oschina/webhook",
"namespace": "oschina",
"name_with_namespace": "oschina/webhook",
"path_with_namespace": "oschina/webhook",
"default_branch": "master"
},
"hook_name": "push_hooks",
"password": "pwd"
}

View File

@@ -0,0 +1,65 @@
{
"object_kind": "push",
"before": "95790bf891e76fee5e1747ab589903a6a1f80f22",
"after": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"ref": "refs/heads/master",
"user_id": 4,
"user_name": "John Smith",
"user_email": "john@example.com",
"user_avatar": "https://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=8://s.gravatar.com/avatar/d4c74594d841139328695756648b6bd6?s=80",
"project_id": 15,
"project":{
"name":"Diaspora",
"description":"",
"web_url":"https://example.com/mike/diaspora",
"avatar_url":null,
"git_ssh_url":"git@example.com:mike/diaspora.git",
"git_http_url":"https://example.com/mike/diaspora.git",
"namespace":"Mike",
"visibility_level":0,
"path_with_namespace":"mike/diaspora",
"default_branch":"master",
"homepage":"https://example.com/mike/diaspora",
"url":"git@example.com:mike/diasporadiaspora.git",
"ssh_url":"git@example.com:mike/diaspora.git",
"http_url":"https://example.com/mike/diaspora.git"
},
"repository":{
"name": "Diaspora",
"url": "git@example.com:mike/diasporadiaspora.git",
"description": "",
"homepage": "https://example.com/mike/diaspora",
"git_http_url":"https://example.com/mike/diaspora.git",
"git_ssh_url":"git@example.com:mike/diaspora.git",
"visibility_level":0
},
"commits": [
{
"id": "b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327",
"message": "Update Catalan translation to e38cb41.",
"timestamp": "2011-12-12T14:27:31+02:00",
"url": "https://example.com/mike/diaspora/commit/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327",
"author": {
"name": "Jordi Mallach",
"email": "jordi@softcatala.org"
},
"added": ["newapp.properties"],
"modified": ["application.yml"],
"removed": []
},
{
"id": "da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"message": "fixed readme",
"timestamp": "2012-01-03T23:36:29+02:00",
"url": "https://example.com/mike/diaspora/commit/da1560886d4f094c3e6c9ef40349f7d38b5d27d7",
"author": {
"name": "GitLab dev user",
"email": "gitlabdev@dv6700.(none)"
},
"added": [],
"modified": ["oldapp.yml"],
"removed": []
}
],
"total_commits_count": 4
}

View File

@@ -136,6 +136,13 @@ public class ResourceController {
return binary(request, name, profile, label, path);
}
@RequestMapping(value = "/{name}/{profile}/**", params = "useDefaultLabel", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public byte[] binary(@PathVariable String name, @PathVariable String profile,
ServletWebRequest request) throws IOException {
String path = getFilePath(request, name, profile, null);
return binary(request, name, profile, null, path);
}
/*
* Used only for unit tests.
*/

View File

@@ -48,7 +48,12 @@ import static org.springframework.util.StringUtils.hasText;
* <p>
* From the command line, you can configure git to use AWS code commit with a credential
* helper. However, jgit does not support credential helper commands, but it does provider
* a CredentialsProvider abstract class we can extend.
* a CredentialsProvider abstract class we can extend. Connecting to an AWS CodeCommit
* (codecommit) repository requires an AWS access key and secret key. These are used to
* calculate a signature for the git request. The AWS access key is used as the codecommit
* username, and the calculated signature is used as the password. The process for
* calculating this signature is documented very well at
* https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html.
* </p>
* Connecting to an AWS CodeCommit (codecommit) repository requires an AWS access key and
* secret key. These are used to calculate a signature for the git request. The AWS access

View File

@@ -49,26 +49,26 @@ public class HttpClientVaultRestTemplateFactoryTest {
private static final ProxyHostProperties HTTPS_PROXY = new ProxyHostProperties();
static {
AUTHENTICATED_HTTP_PROXY.setHost("http://authenticated.http.proxy");
AUTHENTICATED_HTTP_PROXY.setHost("https://authenticated.http.proxy");
AUTHENTICATED_HTTP_PROXY.setPort(8080);
AUTHENTICATED_HTTP_PROXY.setUsername("username");
AUTHENTICATED_HTTP_PROXY.setPassword("password");
}
static {
AUTHENTICATED_HTTPS_PROXY.setHost("http://authenticated.https.proxy");
AUTHENTICATED_HTTPS_PROXY.setHost("https://authenticated.https.proxy");
AUTHENTICATED_HTTPS_PROXY.setPort(8081);
AUTHENTICATED_HTTPS_PROXY.setUsername("username2");
AUTHENTICATED_HTTPS_PROXY.setPassword("password2");
}
static {
HTTP_PROXY.setHost("http://http.proxy");
HTTP_PROXY.setHost("https://http.proxy");
HTTP_PROXY.setPort(8080);
}
static {
HTTPS_PROXY.setHost("http://https.proxy");
HTTPS_PROXY.setHost("https://https.proxy");
HTTPS_PROXY.setPort(8081);
}

View File

@@ -71,26 +71,26 @@ public class ConfigurableHttpConnectionFactoryIntegrationTests {
private static final ProxyHostProperties HTTPS_PROXY = new ProxyHostProperties();
static {
AUTHENTICATED_HTTP_PROXY.setHost("http://authenticated.http.proxy");
AUTHENTICATED_HTTP_PROXY.setHost("https://authenticated.http.proxy");
AUTHENTICATED_HTTP_PROXY.setPort(8080);
AUTHENTICATED_HTTP_PROXY.setUsername("username");
AUTHENTICATED_HTTP_PROXY.setPassword("password");
}
static {
AUTHENTICATED_HTTPS_PROXY.setHost("http://authenticated.https.proxy");
AUTHENTICATED_HTTPS_PROXY.setHost("https://authenticated.https.proxy");
AUTHENTICATED_HTTPS_PROXY.setPort(8081);
AUTHENTICATED_HTTPS_PROXY.setUsername("username2");
AUTHENTICATED_HTTPS_PROXY.setPassword("password2");
}
static {
HTTP_PROXY.setHost("http://http.proxy");
HTTP_PROXY.setHost("https://http.proxy");
HTTP_PROXY.setPort(8080);
}
static {
HTTPS_PROXY.setHost("http://https.proxy");
HTTPS_PROXY.setHost("https://https.proxy");
HTTPS_PROXY.setPort(8081);
}

View File

@@ -32,12 +32,14 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.util.MimeTypeUtils;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@@ -64,7 +66,7 @@ public class ResourceControllerIntegrationTests {
@Before
public void init() {
Mockito.reset(this.repository);
Mockito.reset(this.repository, this.resources);
this.mvc = MockMvcBuilders.webAppContextSetup(this.context).build();
}
@@ -93,6 +95,20 @@ public class ResourceControllerIntegrationTests {
Mockito.verify(this.resources).findOne("foo", "default", null, "foo.txt");
}
@Test
public void binaryResourceNoLabel() throws Exception {
Mockito.when(this.repository.findOne("foo", "default", null))
.thenReturn(new Environment("foo", "default", "master"));
Mockito.when(this.resources.findOne("foo", "default", null, "foo.txt"))
.thenReturn(new ByteArrayResource("hello".getBytes()));
this.mvc.perform(MockMvcRequestBuilders.get("/foo/default/foo.txt")
.param("useDefaultLabel", "")
.header(HttpHeaders.ACCEPT, MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE))
.andExpect(MockMvcResultMatchers.status().isOk());
Mockito.verify(this.repository).findOne("foo", "default", null);
Mockito.verify(this.resources).findOne("foo", "default", null, "foo.txt");
}
@Configuration
@EnableWebMvc
@Import(PropertyPlaceholderAutoConfiguration.class)

View File

@@ -299,4 +299,15 @@ public class ResourceControllerTests {
return text.replace("\n", "").replace("\t", "");
}
@Test
public void defaultLabelForBinary() throws Exception {
this.environmentRepository.setSearchLocations("classpath:/test/{application}");
MockHttpServletRequest request = new MockHttpServletRequest();
ServletWebRequest webRequest = new ServletWebRequest(request,
new MockHttpServletResponse());
request.setRequestURI("/dev/spam/bar/" + "foo.txt");
byte[] resource = this.controller.binary("dev/spam", "bar", webRequest);
assertThat(new String(resource)).isEqualToIgnoringNewLines("foo: dev_bar/spam");
}
}