Skip to content

Commit

Permalink
Merge pull request #30 from Brantone/master
Browse files Browse the repository at this point in the history
JENKINS-27552 Provide options to select sort order and strategy
  • Loading branch information
Brantone committed Aug 18, 2016
2 parents fd51c70 + ebb4b25 commit 0e4cecd
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 2 deletions.
15 changes: 14 additions & 1 deletion src/main/java/hockeyapp/HockeyappApplication.java
Expand Up @@ -81,17 +81,30 @@ public String getNumberOldVersions() {
return oldVersionHolder == null ? null : oldVersionHolder.numberOldVersions;
}

public String getSortOldVersions() {
return oldVersionHolder == null ? null : oldVersionHolder.sortOldVersions;
}

public String getStrategyOldVersions() {
return oldVersionHolder == null ? null : oldVersionHolder.strategyOldVersions;
}

@Override
public Descriptor<HockeyappApplication> getDescriptor() {
return new DescriptorImpl();
}

public static class OldVersionHolder {
private String numberOldVersions;
// Defaults per https://support.hockeyapp.net/kb/api/api-versions#delete-multiple-versions
private String sortOldVersions = "version";
private String strategyOldVersions = "purge";

@DataBoundConstructor
public OldVersionHolder(String numberOldVersions) {
public OldVersionHolder(String numberOldVersions, String sortOldVersions, String strategyOldVersions) {
this.numberOldVersions = Util.fixEmptyAndTrim(numberOldVersions);
this.sortOldVersions = Util.fixEmptyAndTrim(sortOldVersions);
this.strategyOldVersions = Util.fixEmptyAndTrim(strategyOldVersions);
}
}

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/hockeyapp/HockeyappRecorder.java
Expand Up @@ -510,6 +510,8 @@ private boolean cleanupOldVersions(BuildListener listener, EnvVars vars, String
httpPost.setHeader("X-HockeyAppToken", vars.expand(fetchApiToken(application)));
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("keep", application.getNumberOldVersions()));
nameValuePairs.add(new BasicNameValuePair("sort", application.getSortOldVersions()));
nameValuePairs.add(new BasicNameValuePair("strategy", application.getStrategyOldVersions()));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httpPost);
HttpEntity resEntity = response.getEntity();
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/hockeyapp/HockeyappRecorderConverter.java
Expand Up @@ -71,6 +71,8 @@ private static final class HockeyappRecorderObsolete {
public boolean downloadAllowed;
public boolean useChangelog;
public String numberOldVersions;
public String sortOldVersions;
public String strategyOldVersions;
public boolean useAppVersionURL;
public boolean debugMode;
public boolean useNotesTypeMarkdown;
Expand Down Expand Up @@ -113,7 +115,7 @@ private Object readResolve() {

if (oldVersionHolder == null) {
oldVersionHolder =
new HockeyappApplication.OldVersionHolder(Util.fixEmptyAndTrim(numberOldVersions));
new HockeyappApplication.OldVersionHolder(Util.fixEmptyAndTrim(numberOldVersions), Util.fixEmptyAndTrim(sortOldVersions), Util.fixEmptyAndTrim(strategyOldVersions));
}

return this;
Expand Down
12 changes: 12 additions & 0 deletions src/main/resources/hockeyapp/HockeyappApplication/config.jelly
Expand Up @@ -78,6 +78,18 @@
<f:textbox
checkUrl="'descriptorByName/hockeyapp.HockeyappApplication/checkNumberOldVersions?value='+escape(this.value)"/>
</f:entry>
<f:entry title="${%Sort Order for Deleting}" field="sortOldVersions">
<select name="sortOldVersions">
<f:option value="version" selected="${instance.sortOldVersions=='version'}">version</f:option>
<f:option value="date" selected="${instance.sortOldVersions=='date'}">date</f:option>
</select>
</f:entry>
<f:entry title="${%Strategy for Deleting}" field="strategyOldVersions">
<select name="strategyOldVersions">
<f:option value="purge" selected="${instance.strategyOldVersions=='purge'}">purge</f:option>
<f:option value="soft" selected="${instance.strategyOldVersions=='soft'}">soft</f:option>
</select>
</f:entry>
</f:optionalBlock>
</table>
</f:block>
Expand Down
@@ -0,0 +1,3 @@
<div>
When deleting: "version" to sort by version number or "date" to sort by creation date.
</div>
@@ -0,0 +1,3 @@
<div>
When deleting: "purge" completely removes the version, while "soft" keeps some data including stats and crashes.
</div>

0 comments on commit 0e4cecd

Please sign in to comment.