From 005ac05887d14d439a50274aed3edd4ab54af34a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 27 Sep 2012 21:04:42 -0400
Subject: [PATCH] Automatically delete obsolete artifacts from ext
---
src/com/gitblit/GitFilter.java | 44 ++++++++++++++++++++++++++++----------------
1 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/src/com/gitblit/GitFilter.java b/src/com/gitblit/GitFilter.java
index 4ae5b6c..8ce4d3a 100644
--- a/src/com/gitblit/GitFilter.java
+++ b/src/com/gitblit/GitFilter.java
@@ -32,12 +32,29 @@
*/
public class GitFilter extends AccessRestrictionFilter {
- protected final String gitReceivePack = "/git-receive-pack";
+ protected static final String gitReceivePack = "/git-receive-pack";
- protected final String gitUploadPack = "/git-upload-pack";
+ protected static final String gitUploadPack = "/git-upload-pack";
- protected final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD",
+ protected static final String[] suffixes = { gitReceivePack, gitUploadPack, "/info/refs", "/HEAD",
"/objects" };
+
+ /**
+ * Extract the repository name from the url.
+ *
+ * @param url
+ * @return repository name
+ */
+ public static String getRepositoryName(String value) {
+ String repository = value;
+ // get the repository name from the url by finding a known url suffix
+ for (String urlSuffix : suffixes) {
+ if (repository.indexOf(urlSuffix) > -1) {
+ repository = repository.substring(0, repository.indexOf(urlSuffix));
+ }
+ }
+ return repository;
+ }
/**
* Extract the repository name from the url.
@@ -47,14 +64,7 @@
*/
@Override
protected String extractRepositoryName(String url) {
- String repository = url;
- // get the repository name from the url by finding a known url suffix
- for (String urlSuffix : suffixes) {
- if (repository.indexOf(urlSuffix) > -1) {
- repository = repository.substring(0, repository.indexOf(urlSuffix));
- }
- }
- return repository;
+ return GitFilter.getRepositoryName(url);
}
/**
@@ -91,11 +101,13 @@
*/
@Override
protected boolean isActionAllowed(RepositoryModel repository, String action) {
- if (action.equals(gitReceivePack)) {
- // Push request
- if (!repository.isBare) {
- logger.warn("Gitblit does not allow pushes to repositories with a working copy");
- return false;
+ if (!StringUtils.isEmpty(action)) {
+ if (action.equals(gitReceivePack)) {
+ // Push request
+ if (!repository.isBare) {
+ logger.warn("Gitblit does not allow pushes to repositories with a working copy");
+ return false;
+ }
}
}
return true;
--
Gitblit v1.9.1