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
d1556748
Unverified
Commit
d1556748
authored
Mar 22, 2021
by
Gautier de Saint Martin Lacaze
Committed by
GitHub
Mar 22, 2021
Browse files
Merge pull request #662 from ttaxon/emails-on-push
Add support for email on push integration.
parents
cac22673
718e7479
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/main/java/org/gitlab4j/api/ServicesApi.java
View file @
d1556748
...
@@ -3,6 +3,7 @@ package org.gitlab4j.api;
...
@@ -3,6 +3,7 @@ package org.gitlab4j.api;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.GitLabApi.ApiVersion
;
import
org.gitlab4j.api.services.BugzillaService
;
import
org.gitlab4j.api.services.BugzillaService
;
import
org.gitlab4j.api.services.CustomIssueTrackerService
;
import
org.gitlab4j.api.services.CustomIssueTrackerService
;
import
org.gitlab4j.api.services.EmailOnPushService
;
import
org.gitlab4j.api.services.ExternalWikiService
;
import
org.gitlab4j.api.services.ExternalWikiService
;
import
org.gitlab4j.api.services.HipChatService
;
import
org.gitlab4j.api.services.HipChatService
;
import
org.gitlab4j.api.services.JiraService
;
import
org.gitlab4j.api.services.JiraService
;
...
@@ -493,4 +494,60 @@ public class ServicesApi extends AbstractApi {
...
@@ -493,4 +494,60 @@ public class ServicesApi extends AbstractApi {
delete
(
Response
.
Status
.
OK
,
null
,
"projects"
,
getProjectIdOrPath
(
projectIdOrPath
),
"services"
,
"custom-issue-tracker"
);
delete
(
Response
.
Status
.
OK
,
null
,
"projects"
,
getProjectIdOrPath
(
projectIdOrPath
),
"services"
,
"custom-issue-tracker"
);
}
}
/**
* Get Emails on push service settings for a project.
*
* <pre><code>GitLab Endpoint: GET /projects/:id/services/emails-on-push</code></pre>
*
* @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
* @return a EmailOnPushService instance holding the Email on push settings
* @throws GitLabApiException if any exception occurs
*/
public
EmailOnPushService
getEmailOnPushService
(
Object
projectIdOrPath
)
throws
GitLabApiException
{
Response
response
=
this
.
get
(
Response
.
Status
.
OK
,
null
,
"projects"
,
getProjectIdOrPath
(
projectIdOrPath
),
"services"
,
"emails-on-push"
);
return
(
response
.
readEntity
(
EmailOnPushService
.
class
));
}
/**
* Updates the EmailsOnPush service settings for a project.
*
* <pre><code>GitLab Endpoint: PUT /projects/:id/services/emails-on-push</code></pre>
*
* The following properties on the EmailOnPushService instance are utilized in the update of the settings:
* <p>
* recipients (required), Emails separated by whitespace
* disable_diffs (optional), Disable code diffs
* send_from_committer_email (optional), Send from committer
* push_events (optional), Enable notifications for push events
* tag_push_events(optional), Enable notifications for tag push events
* branches_to_be_notified (optional), Branches to send notifications for. Valid options are "all", "default",
* "protected", and "default_and_protected". Notifications are always fired
* for tag pushes. The default value is "all"
* </p>
*
* @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
* @param emailsOnPush the EmailOnPushService instance holding the settings
* @return a EmailOnPushService instance holding the newly updated settings
* @throws GitLabApiException if any exception occurs
*/
public
EmailOnPushService
updateEmailOnPushService
(
Object
projectIdOrPath
,
EmailOnPushService
emailsOnPush
)
throws
GitLabApiException
{
GitLabApiForm
formData
=
emailsOnPush
.
servicePropertiesForm
();
Response
response
=
put
(
Response
.
Status
.
OK
,
formData
.
asMap
(),
"projects"
,
getProjectIdOrPath
(
projectIdOrPath
),
"services"
,
"emails-on-push"
);
return
(
response
.
readEntity
(
EmailOnPushService
.
class
));
}
/**
* Deletes the Emails on push service for a project.
*
* <pre><code>GitLab Endpoint: DELETE /projects/:id/services/emails-on-push</code></pre>
*
* @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
* @throws GitLabApiException if any exception occurs
*/
public
void
deleteEmailonPushService
(
Object
projectIdOrPath
)
throws
GitLabApiException
{
delete
(
Response
.
Status
.
OK
,
null
,
"projects"
,
getProjectIdOrPath
(
projectIdOrPath
),
"services"
,
"emails-on-push"
);
}
}
}
src/main/java/org/gitlab4j/api/services/EmailOnPushService.java
0 → 100644
View file @
d1556748
package
org.gitlab4j.api.services
;
import
org.gitlab4j.api.GitLabApiForm
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
public
class
EmailOnPushService
extends
NotificationService
{
public
static
final
String
RECIPIENT_PROP
=
"recipients"
;
public
static
final
String
DISABLE_DIFFS_PROP
=
"disable_diffs"
;
public
static
final
String
SEND_FROM_COMMITTER_EMAIL_PROP
=
"send_from_committer_email"
;
public
static
final
String
BRANCHES_TO_BE_NOTIFIED_PROP
=
"branches_to_be_notified"
;
@Override
public
GitLabApiForm
servicePropertiesForm
()
{
GitLabApiForm
formData
=
new
GitLabApiForm
()
.
withParam
(
RECIPIENT_PROP
,
getRecipients
(),
true
)
.
withParam
(
DISABLE_DIFFS_PROP
,
getDisableDiffs
())
.
withParam
(
SEND_FROM_COMMITTER_EMAIL_PROP
,
getSendFromCommitterEmail
())
.
withParam
(
PUSH_EVENTS_PROP
,
getPushEvents
())
.
withParam
(
"tag_push_events"
,
getTagPushEvents
())
.
withParam
(
BRANCHES_TO_BE_NOTIFIED_PROP
,
getBranchesToBeNotified
());
return
formData
;
}
public
EmailOnPushService
withPushEvents
(
Boolean
pushEvents
)
{
return
withPushEvents
(
pushEvents
,
this
);
}
public
EmailOnPushService
withTagPushEvents
(
Boolean
pushEvents
)
{
return
withTagPushEvents
(
pushEvents
,
this
);
}
@JsonIgnore
public
String
getRecipients
()
{
return
((
String
)
getProperty
(
RECIPIENT_PROP
));
}
public
void
setRecipients
(
String
recipients
)
{
setProperty
(
RECIPIENT_PROP
,
recipients
);
}
public
EmailOnPushService
withRecipients
(
String
recipients
)
{
setRecipients
(
recipients
);
return
this
;
}
@JsonIgnore
public
Boolean
getDisableDiffs
()
{
return
Boolean
.
valueOf
(
getProperty
(
DISABLE_DIFFS_PROP
,
"false"
));
}
public
void
setDisableDiffs
(
Boolean
disableDiffs
)
{
setProperty
(
DISABLE_DIFFS_PROP
,
disableDiffs
);
}
public
EmailOnPushService
withDisableDiffs
(
Boolean
disableDiffs
)
{
setDisableDiffs
(
disableDiffs
);
return
this
;
}
@JsonIgnore
public
Boolean
getSendFromCommitterEmail
()
{
return
Boolean
.
valueOf
(
getProperty
(
SEND_FROM_COMMITTER_EMAIL_PROP
,
"false"
));
}
public
void
setSendFromCommitterEmail
(
Boolean
sendFromCommitterEmail
)
{
setProperty
(
SEND_FROM_COMMITTER_EMAIL_PROP
,
sendFromCommitterEmail
);
}
public
EmailOnPushService
withSendFromCommitterEmail
(
Boolean
sendFromCommitterEmail
)
{
setSendFromCommitterEmail
(
sendFromCommitterEmail
);
return
this
;
}
@JsonIgnore
public
String
getBranchesToBeNotified
()
{
return
((
String
)
getProperty
(
BRANCHES_TO_BE_NOTIFIED_PROP
));
}
public
void
setBranchesToBeNotified
(
String
branchesToBeNotified
)
{
setProperty
(
BRANCHES_TO_BE_NOTIFIED_PROP
,
branchesToBeNotified
);
}
public
EmailOnPushService
withBranchesToBeNotified
(
String
branchesToBeNotified
)
{
setBranchesToBeNotified
(
branchesToBeNotified
);
return
this
;
}
}
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