Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
佳 邓
Gitlab4j Api
Commits
31a188aa
Commit
31a188aa
authored
Jan 09, 2019
by
Greg Messner
Browse files
Fixed issue when uploading files when a proxy is being used (#284).
parent
ec05c595
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/gitlab4j/api/GitLabApiClient.java
View file @
31a188aa
...
@@ -39,6 +39,7 @@ import org.glassfish.jersey.apache.connector.ApacheConnectorProvider;
...
@@ -39,6 +39,7 @@ import org.glassfish.jersey.apache.connector.ApacheConnectorProvider;
import
org.glassfish.jersey.client.ClientConfig
;
import
org.glassfish.jersey.client.ClientConfig
;
import
org.glassfish.jersey.client.ClientProperties
;
import
org.glassfish.jersey.client.ClientProperties
;
import
org.glassfish.jersey.logging.LoggingFeature
;
import
org.glassfish.jersey.logging.LoggingFeature
;
import
org.glassfish.jersey.media.multipart.Boundary
;
import
org.glassfish.jersey.media.multipart.FormDataMultiPart
;
import
org.glassfish.jersey.media.multipart.FormDataMultiPart
;
import
org.glassfish.jersey.media.multipart.MultiPart
;
import
org.glassfish.jersey.media.multipart.MultiPart
;
import
org.glassfish.jersey.media.multipart.MultiPartFeature
;
import
org.glassfish.jersey.media.multipart.MultiPartFeature
;
...
@@ -557,7 +558,8 @@ public class GitLabApiClient {
...
@@ -557,7 +558,8 @@ public class GitLabApiClient {
new
FileDataBodyPart
(
name
,
fileToUpload
,
mediaType
)
:
new
FileDataBodyPart
(
name
,
fileToUpload
,
mediaType
)
:
new
FileDataBodyPart
(
name
,
fileToUpload
);
new
FileDataBodyPart
(
name
,
fileToUpload
);
multiPart
.
bodyPart
(
filePart
);
multiPart
.
bodyPart
(
filePart
);
return
(
invocation
(
url
,
null
).
post
(
Entity
.
entity
(
multiPart
,
MULTIPART_FORM_DATA_TYPE
)));
final
Entity
<?>
entity
=
Entity
.
entity
(
multiPart
,
Boundary
.
addBoundary
(
multiPart
.
getMediaType
()));
return
(
invocation
(
url
,
null
).
post
(
entity
));
}
}
}
}
...
@@ -588,9 +590,12 @@ public class GitLabApiClient {
...
@@ -588,9 +590,12 @@ public class GitLabApiClient {
* @throws IOException if an error occurs while constructing the URL
* @throws IOException if an error occurs while constructing the URL
*/
*/
protected
Response
putUpload
(
String
name
,
File
fileToUpload
,
URL
url
)
throws
IOException
{
protected
Response
putUpload
(
String
name
,
File
fileToUpload
,
URL
url
)
throws
IOException
{
final
FormDataMultiPart
multiPart
=
new
FormDataMultiPart
();
multiPart
.
bodyPart
(
new
FileDataBodyPart
(
name
,
fileToUpload
,
MediaType
.
APPLICATION_OCTET_STREAM_TYPE
));
try
(
MultiPart
multiPart
=
new
FormDataMultiPart
())
{
return
(
invocation
(
url
,
null
).
put
(
Entity
.
entity
(
multiPart
,
MULTIPART_FORM_DATA_TYPE
)));
multiPart
.
bodyPart
(
new
FileDataBodyPart
(
name
,
fileToUpload
,
MediaType
.
APPLICATION_OCTET_STREAM_TYPE
));
final
Entity
<?>
entity
=
Entity
.
entity
(
multiPart
,
Boundary
.
addBoundary
(
multiPart
.
getMediaType
()));
return
(
invocation
(
url
,
null
).
put
(
entity
));
}
}
}
/**
/**
...
...
src/test/java/org/gitlab4j/api/TestAvatarUpload.java
View file @
31a188aa
...
@@ -5,9 +5,11 @@ import static org.junit.Assert.assertTrue;
...
@@ -5,9 +5,11 @@ import static org.junit.Assert.assertTrue;
import
static
org
.
junit
.
Assume
.
assumeTrue
;
import
static
org
.
junit
.
Assume
.
assumeTrue
;
import
java.io.File
;
import
java.io.File
;
import
java.util.Map
;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.models.Project
;
import
org.gitlab4j.api.models.Project
;
import
org.gitlab4j.api.models.Version
;
import
org.junit.Before
;
import
org.junit.Before
;
import
org.junit.BeforeClass
;
import
org.junit.BeforeClass
;
import
org.junit.FixMethodOrder
;
import
org.junit.FixMethodOrder
;
...
@@ -32,13 +34,21 @@ public class TestAvatarUpload {
...
@@ -32,13 +34,21 @@ public class TestAvatarUpload {
private
static
final
String
TEST_NAMESPACE
;
private
static
final
String
TEST_NAMESPACE
;
private
static
final
String
TEST_HOST_URL
;
private
static
final
String
TEST_HOST_URL
;
private
static
final
String
TEST_PRIVATE_TOKEN
;
private
static
final
String
TEST_PRIVATE_TOKEN
;
private
static
final
String
TEST_PROXY_URI
;
private
static
final
String
TEST_PROXY_USERNAME
;
private
static
final
String
TEST_PROXY_PASSWORD
;
static
{
static
{
TEST_NAMESPACE
=
TestUtils
.
getProperty
(
"TEST_NAMESPACE"
);
TEST_NAMESPACE
=
TestUtils
.
getProperty
(
"TEST_NAMESPACE"
);
TEST_PROJECT_NAME
=
TestUtils
.
getProperty
(
"TEST_PROJECT_NAME"
);
TEST_PROJECT_NAME
=
TestUtils
.
getProperty
(
"TEST_PROJECT_NAME"
);
TEST_HOST_URL
=
TestUtils
.
getProperty
(
"TEST_HOST_URL"
);
TEST_HOST_URL
=
TestUtils
.
getProperty
(
"TEST_HOST_URL"
);
TEST_PRIVATE_TOKEN
=
TestUtils
.
getProperty
(
"TEST_PRIVATE_TOKEN"
);
TEST_PRIVATE_TOKEN
=
TestUtils
.
getProperty
(
"TEST_PRIVATE_TOKEN"
);
TEST_PROXY_URI
=
TestUtils
.
getProperty
(
"TEST_PROXY_URI"
);
TEST_PROXY_USERNAME
=
TestUtils
.
getProperty
(
"TEST_PROXY_USERNAME"
);
TEST_PROXY_PASSWORD
=
TestUtils
.
getProperty
(
"TEST_PROXY_PASSWORD"
);
}
}
private
static
final
String
AVATAR_FILENAME
=
"avatar.png"
;
private
static
GitLabApi
gitLabApi
;
private
static
GitLabApi
gitLabApi
;
public
TestAvatarUpload
()
{
public
TestAvatarUpload
()
{
...
@@ -83,9 +93,28 @@ public class TestAvatarUpload {
...
@@ -83,9 +93,28 @@ public class TestAvatarUpload {
Project
project
=
gitLabApi
.
getProjectApi
().
getProject
(
TEST_NAMESPACE
,
TEST_PROJECT_NAME
);
Project
project
=
gitLabApi
.
getProjectApi
().
getProject
(
TEST_NAMESPACE
,
TEST_PROJECT_NAME
);
assertNotNull
(
project
);
assertNotNull
(
project
);
File
avatarFile
=
new
File
(
"src/test/resources/org/gitlab4j/api/avatar.png"
);
File
avatarFile
=
new
File
(
"src/test/resources/org/gitlab4j/api"
,
AVATAR_FILENAME
);
Project
updatedProject
=
gitLabApi
.
getProjectApi
().
setProjectAvatar
(
project
.
getId
(),
avatarFile
);
assertNotNull
(
updatedProject
);
assertTrue
(
updatedProject
.
getAvatarUrl
().
endsWith
(
AVATAR_FILENAME
));
}
@Test
public
void
testSetProjectAvatarWithProxy
()
throws
GitLabApiException
{
assumeTrue
(
TEST_PROXY_URI
!=
null
&&
TEST_PROXY_USERNAME
!=
null
&&
TEST_PROXY_PASSWORD
!=
null
);
assumeTrue
(
TEST_PROXY_URI
.
length
()
>
0
&&
TEST_PROXY_USERNAME
.
length
()
>
0
&&
TEST_PROXY_PASSWORD
.
length
()
>
0
);
// Setup a GitLabApi instance to use a proxy
Map
<
String
,
Object
>
clientConfig
=
ProxyClientConfig
.
createProxyClientConfig
(
TEST_PROXY_URI
,
TEST_PROXY_USERNAME
,
TEST_PROXY_PASSWORD
);
GitLabApi
gitLabApi
=
new
GitLabApi
(
TEST_HOST_URL
,
TEST_PRIVATE_TOKEN
,
null
,
clientConfig
);
Project
project
=
gitLabApi
.
getProjectApi
().
getProject
(
TEST_NAMESPACE
,
TEST_PROJECT_NAME
);
assertNotNull
(
project
);
File
avatarFile
=
new
File
(
"src/test/resources/org/gitlab4j/api"
,
AVATAR_FILENAME
);
Project
updatedProject
=
gitLabApi
.
getProjectApi
().
setProjectAvatar
(
project
.
getId
(),
avatarFile
);
Project
updatedProject
=
gitLabApi
.
getProjectApi
().
setProjectAvatar
(
project
.
getId
(),
avatarFile
);
assertNotNull
(
updatedProject
);
assertNotNull
(
updatedProject
);
assertTrue
(
updatedProject
.
getAvatarUrl
().
endsWith
(
"avatar.png"
));
assertTrue
(
updatedProject
.
getAvatarUrl
().
endsWith
(
AVATAR_FILENAME
));
}
}
}
}
src/test/java/org/gitlab4j/api/TestFileUpload.java
View file @
31a188aa
package
org.gitlab4j.api
;
package
org.gitlab4j.api
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
static
org
.
junit
.
Assume
.
assumeTrue
;
import
static
org
.
junit
.
Assume
.
assumeTrue
;
import
java.io.File
;
import
java.io.File
;
import
java.util.Map
;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.models.FileUpload
;
import
org.gitlab4j.api.models.FileUpload
;
...
@@ -32,11 +34,17 @@ public class TestFileUpload {
...
@@ -32,11 +34,17 @@ public class TestFileUpload {
private
static
final
String
TEST_NAMESPACE
;
private
static
final
String
TEST_NAMESPACE
;
private
static
final
String
TEST_HOST_URL
;
private
static
final
String
TEST_HOST_URL
;
private
static
final
String
TEST_PRIVATE_TOKEN
;
private
static
final
String
TEST_PRIVATE_TOKEN
;
private
static
final
String
TEST_PROXY_URI
;
private
static
final
String
TEST_PROXY_USERNAME
;
private
static
final
String
TEST_PROXY_PASSWORD
;
static
{
static
{
TEST_NAMESPACE
=
TestUtils
.
getProperty
(
"TEST_NAMESPACE"
);
TEST_NAMESPACE
=
TestUtils
.
getProperty
(
"TEST_NAMESPACE"
);
TEST_PROJECT_NAME
=
TestUtils
.
getProperty
(
"TEST_PROJECT_NAME"
);
TEST_PROJECT_NAME
=
TestUtils
.
getProperty
(
"TEST_PROJECT_NAME"
);
TEST_HOST_URL
=
TestUtils
.
getProperty
(
"TEST_HOST_URL"
);
TEST_HOST_URL
=
TestUtils
.
getProperty
(
"TEST_HOST_URL"
);
TEST_PRIVATE_TOKEN
=
TestUtils
.
getProperty
(
"TEST_PRIVATE_TOKEN"
);
TEST_PRIVATE_TOKEN
=
TestUtils
.
getProperty
(
"TEST_PRIVATE_TOKEN"
);
TEST_PROXY_URI
=
TestUtils
.
getProperty
(
"TEST_PROXY_URI"
);
TEST_PROXY_USERNAME
=
TestUtils
.
getProperty
(
"TEST_PROXY_USERNAME"
);
TEST_PROXY_PASSWORD
=
TestUtils
.
getProperty
(
"TEST_PROXY_PASSWORD"
);
}
}
private
static
GitLabApi
gitLabApi
;
private
static
GitLabApi
gitLabApi
;
...
@@ -98,4 +106,22 @@ public class TestFileUpload {
...
@@ -98,4 +106,22 @@ public class TestFileUpload {
FileUpload
fileUpload
=
gitLabApi
.
getProjectApi
().
uploadFile
(
project
.
getId
(),
fileToUpload
,
"text/markdown"
);
FileUpload
fileUpload
=
gitLabApi
.
getProjectApi
().
uploadFile
(
project
.
getId
(),
fileToUpload
,
"text/markdown"
);
assertNotNull
(
fileUpload
);
assertNotNull
(
fileUpload
);
}
}
@Test
public
void
testFileUploadWithProxy
()
throws
GitLabApiException
{
assumeTrue
(
TEST_PROXY_URI
!=
null
&&
TEST_PROXY_USERNAME
!=
null
&&
TEST_PROXY_PASSWORD
!=
null
);
assumeTrue
(
TEST_PROXY_URI
.
length
()
>
0
&&
TEST_PROXY_USERNAME
.
length
()
>
0
&&
TEST_PROXY_PASSWORD
.
length
()
>
0
);
// Setup a GitLabApi instance to use a proxy
Map
<
String
,
Object
>
clientConfig
=
ProxyClientConfig
.
createProxyClientConfig
(
TEST_PROXY_URI
,
TEST_PROXY_USERNAME
,
TEST_PROXY_PASSWORD
);
GitLabApi
gitLabApi
=
new
GitLabApi
(
TEST_HOST_URL
,
TEST_PRIVATE_TOKEN
,
null
,
clientConfig
);
Project
project
=
gitLabApi
.
getProjectApi
().
getProject
(
TEST_NAMESPACE
,
TEST_PROJECT_NAME
);
assertNotNull
(
project
);
File
fileToUpload
=
new
File
(
"README.md"
);
FileUpload
fileUpload
=
gitLabApi
.
getProjectApi
().
uploadFile
(
project
.
getId
(),
fileToUpload
,
null
);
assertNotNull
(
fileUpload
);
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment