mirror of
https://github.com/theonedev/onedev.git
synced 2025-12-08 18:26:30 +00:00
Fix issue #1242 - Validate tag name to avoid invalid chars in create tag step
This commit is contained in:
parent
5f09036754
commit
52dca1aab9
@ -210,7 +210,7 @@ import io.onedev.server.util.jackson.hibernate.HibernateObjectMapperConfigurator
|
||||
import io.onedev.server.util.schedule.DefaultTaskScheduler;
|
||||
import io.onedev.server.util.schedule.TaskScheduler;
|
||||
import io.onedev.server.util.ScriptContribution;
|
||||
import io.onedev.server.util.validation.ValidatorProvider;
|
||||
import io.onedev.server.validation.ValidatorProvider;
|
||||
import io.onedev.server.util.xstream.CollectionConverter;
|
||||
import io.onedev.server.util.xstream.HibernateProxyConverter;
|
||||
import io.onedev.server.util.xstream.MapConverter;
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.AgentQueryValidator;
|
||||
import io.onedev.server.validation.validator.AgentQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.AttributeNameValidator;
|
||||
import io.onedev.server.validation.validator.AttributeNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.BuildQueryValidator;
|
||||
import io.onedev.server.validation.validator.BuildQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
@ -9,7 +9,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ClassValidatingValidator;
|
||||
import io.onedev.server.validation.validator.ClassValidatingValidator;
|
||||
|
||||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Revision: $Id: Multiline.java 1209 2008-07-28 00:16:18Z robin $
|
||||
*/
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -16,7 +16,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CodeValidator;
|
||||
import io.onedev.server.validation.validator.CodeValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CodeCommentQueryValidator;
|
||||
import io.onedev.server.validation.validator.CodeCommentQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CommitHashValidator;
|
||||
import io.onedev.server.validation.validator.CommitHashValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CommitQueryValidator;
|
||||
import io.onedev.server.validation.validator.CommitQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -5,7 +5,7 @@
|
||||
*
|
||||
* Revision: $Id: PathElement.java 1209 2008-07-28 00:16:18Z robin $
|
||||
*/
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -15,7 +15,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CronExpressionValidator;
|
||||
import io.onedev.server.validation.validator.CronExpressionValidator;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
@ -5,7 +5,7 @@
|
||||
*
|
||||
* Revision: $Id: PathElement.java 1209 2008-07-28 00:16:18Z robin $
|
||||
*/
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -15,7 +15,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.CurrentPasswordValidator;
|
||||
import io.onedev.server.validation.validator.CurrentPasswordValidator;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.DirectoryValidator;
|
||||
import io.onedev.server.validation.validator.DirectoryValidator;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.DnsNameValidator;
|
||||
import io.onedev.server.validation.validator.DnsNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.EnvironmentNameValidator;
|
||||
import io.onedev.server.validation.validator.EnvironmentNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.FieldNameValidator;
|
||||
import io.onedev.server.validation.validator.FieldNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.GroupNameValidator;
|
||||
import io.onedev.server.validation.validator.GroupNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.InterpolativeValidator;
|
||||
import io.onedev.server.validation.validator.InterpolativeValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.IssueQueryValidator;
|
||||
import io.onedev.server.validation.validator.IssueQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.JobMatchValidator;
|
||||
import io.onedev.server.validation.validator.JobMatchValidator;
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Revision: $Id: Multiline.java 1209 2008-07-28 00:16:18Z robin $
|
||||
*/
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ProjectNameValidator;
|
||||
import io.onedev.server.validation.validator.ProjectNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -6,7 +6,7 @@
|
||||
*
|
||||
* Revision: $Id: Multiline.java 1209 2008-07-28 00:16:18Z robin $
|
||||
*/
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.NotificationReceiverValidator;
|
||||
import io.onedev.server.validation.validator.NotificationReceiverValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.NumericValidator;
|
||||
import io.onedev.server.validation.validator.NumericValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ParamNameValidator;
|
||||
import io.onedev.server.validation.validator.ParamNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,26 +1,26 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.PathSegmentValidator;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
*/
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Constraint(validatedBy=PathSegmentValidator.class)
|
||||
public @interface PathSegment {
|
||||
|
||||
String message() default "";
|
||||
|
||||
Class<?>[] groups() default {};
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
}
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.validation.validator.PathSegmentValidator;
|
||||
|
||||
/**
|
||||
* @author robin
|
||||
*/
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Constraint(validatedBy=PathSegmentValidator.class)
|
||||
public @interface PathSegment {
|
||||
|
||||
String message() default "";
|
||||
|
||||
Class<?>[] groups() default {};
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.PatternsValidator;
|
||||
import io.onedev.server.validation.validator.PatternsValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ProjectNameValidator;
|
||||
import io.onedev.server.validation.validator.ProjectNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ProjectPathValidator;
|
||||
import io.onedev.server.validation.validator.ProjectPathValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ProjectQueryValidator;
|
||||
import io.onedev.server.validation.validator.ProjectQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.PullRequestQueryValidator;
|
||||
import io.onedev.server.validation.validator.PullRequestQueryValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.RegExValidator;
|
||||
import io.onedev.server.validation.validator.RegExValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.ReviewRequirementValidator;
|
||||
import io.onedev.server.validation.validator.ReviewRequirementValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.RoleNameValidator;
|
||||
import io.onedev.server.validation.validator.RoleNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.SafePathValidator;
|
||||
import io.onedev.server.validation.validator.SafePathValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.SecretNameValidator;
|
||||
import io.onedev.server.validation.validator.SecretNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -0,0 +1,22 @@
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import io.onedev.server.validation.validator.TagNameValidator;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Constraint(validatedBy = TagNameValidator.class)
|
||||
public @interface TagName {
|
||||
|
||||
String message() default "";
|
||||
|
||||
Class<?>[] groups() default {};
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.UrlPathValidator;
|
||||
import io.onedev.server.validation.validator.UrlPathValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.UrlSegmentValidator;
|
||||
import io.onedev.server.validation.validator.UrlSegmentValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,6 +1,6 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import io.onedev.server.util.validation.UserMatchValidator;
|
||||
import io.onedev.server.validation.validator.UserMatchValidator;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.util.validation.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -8,7 +8,7 @@ import java.lang.annotation.Target;
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
|
||||
import io.onedev.server.util.validation.UserNameValidator;
|
||||
import io.onedev.server.validation.validator.UserNameValidator;
|
||||
|
||||
@Target({ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -1,4 +1,4 @@
|
||||
package io.onedev.server.web.editable.annotation;
|
||||
package io.onedev.server.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -27,9 +27,9 @@ import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.support.build.JobProperty;
|
||||
import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.annotation.ClassValidating;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.web.page.project.blob.ProjectBlobPage;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@ -17,11 +17,11 @@ import io.onedev.server.security.permission.ProjectPermission;
|
||||
import io.onedev.server.security.permission.ReadCode;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.util.facade.ProjectCache;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.annotation.ClassValidating;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.web.page.project.ProjectPage;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@ -2,7 +2,7 @@ package io.onedev.server.buildspec;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable
|
||||
public interface NamedElement extends Serializable {
|
||||
|
||||
@ -12,10 +12,10 @@ import io.onedev.commons.codeassist.InputCompletion;
|
||||
import io.onedev.commons.codeassist.InputStatus;
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.buildspec.job.EnvVar;
|
||||
import io.onedev.server.util.validation.annotation.DnsName;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.web.editable.annotation.SuggestionProvider;
|
||||
import io.onedev.server.annotation.DnsName;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.annotation.SuggestionProvider;
|
||||
|
||||
@Editable
|
||||
public class Service implements NamedElement, Serializable {
|
||||
|
||||
@ -1,74 +1,74 @@
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.commons.utils.PathUtils;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.util.validation.annotation.RegEx;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
|
||||
@Editable
|
||||
@ClassValidating
|
||||
public class CacheSpec implements Serializable, Validatable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String key;
|
||||
|
||||
private String path;
|
||||
|
||||
@Editable(order=100, description="Specify key of the cache. Caches with same key can be reused by different projects/jobs. "
|
||||
+ "Embed project/job variable to prevent cross project/job reuse")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
@RegEx(pattern="[a-zA-Z0-9\\-_\\.]+", message="Can only contain alphanumeric, dash, dot and underscore")
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getNormalizedKey() {
|
||||
return getKey().replaceAll("[^a-zA-Z0-9\\-_\\.]", "-");
|
||||
}
|
||||
|
||||
@Editable(order=200, description="Specify path to cache. Non-absolute path is considered to be relative to job workspace. "
|
||||
+ "Please note that shell executor only allows non-absolute path here")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
public void setPath(String path) {
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(ConstraintValidatorContext context) {
|
||||
if (PathUtils.isCurrent(path)) {
|
||||
context.disableDefaultConstraintViolation();
|
||||
context.buildConstraintViolationWithTemplate("Invalid path").addPropertyNode("path").addConstraintViolation();
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.commons.utils.PathUtils;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.annotation.ClassValidating;
|
||||
import io.onedev.server.annotation.RegEx;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
|
||||
@Editable
|
||||
@ClassValidating
|
||||
public class CacheSpec implements Serializable, Validatable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String key;
|
||||
|
||||
private String path;
|
||||
|
||||
@Editable(order=100, description="Specify key of the cache. Caches with same key can be reused by different projects/jobs. "
|
||||
+ "Embed project/job variable to prevent cross project/job reuse")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
@RegEx(pattern="[a-zA-Z0-9\\-_\\.]+", message="Can only contain alphanumeric, dash, dot and underscore")
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getNormalizedKey() {
|
||||
return getKey().replaceAll("[^a-zA-Z0-9\\-_\\.]", "-");
|
||||
}
|
||||
|
||||
@Editable(order=200, description="Specify path to cache. Non-absolute path is considered to be relative to job workspace. "
|
||||
+ "Please note that shell executor only allows non-absolute path here")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
public void setPath(String path) {
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid(ConstraintValidatorContext context) {
|
||||
if (PathUtils.isCurrent(path)) {
|
||||
context.disableDefaultConstraintViolation();
|
||||
context.buildConstraintViolationWithTemplate("Invalid path").addPropertyNode("path").addConstraintViolation();
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,51 +1,51 @@
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.util.validation.annotation.EnvironmentName;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
|
||||
@Editable
|
||||
public class EnvVar implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String name;
|
||||
|
||||
private String value;
|
||||
|
||||
@Editable(order=100, description="Specify name of the environment variable")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@EnvironmentName
|
||||
@NotEmpty
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Editable(order=200, description="Specify value of the environment variable")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
}
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.annotation.EnvironmentName;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
|
||||
@Editable
|
||||
public class EnvVar implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String name;
|
||||
|
||||
private String value;
|
||||
|
||||
@Editable(order=100, description="Specify name of the environment variable")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@EnvironmentName
|
||||
@NotEmpty
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Editable(order=200, description="Specify value of the environment variable")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@NotEmpty
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import io.onedev.commons.codeassist.InputCompletion;
|
||||
import io.onedev.commons.codeassist.InputStatus;
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.annotation.*;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.BuildSpecAware;
|
||||
import io.onedev.server.buildspec.NamedElement;
|
||||
@ -25,9 +26,7 @@ import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.util.criteria.Criteria;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.web.editable.annotation.*;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.web.page.project.blob.ProjectBlobPage;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@ -1,129 +1,129 @@
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.BuildSpecAware;
|
||||
import io.onedev.server.buildspec.param.spec.ParamSpec;
|
||||
import io.onedev.server.buildspec.param.supply.ParamSupply;
|
||||
import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.web.editable.annotation.OmitName;
|
||||
import io.onedev.server.web.editable.annotation.ParamSpecProvider;
|
||||
import io.onedev.server.web.editable.annotation.Patterns;
|
||||
import io.onedev.server.web.editable.annotation.VariableOption;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@Editable
|
||||
public class JobDependency implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String jobName;
|
||||
|
||||
private boolean requireSuccessful = true;
|
||||
|
||||
private List<ParamSupply> jobParams = new ArrayList<>();
|
||||
|
||||
private String artifacts = "**";
|
||||
|
||||
private String destinationPath;
|
||||
|
||||
// change Named("jobName") also if change name of this property
|
||||
@Editable(order=100, name="Job")
|
||||
@ChoiceProvider("getJobChoices")
|
||||
@NotEmpty
|
||||
public String getJobName() {
|
||||
return jobName;
|
||||
}
|
||||
|
||||
public void setJobName(String jobName) {
|
||||
this.jobName = jobName;
|
||||
}
|
||||
|
||||
@Editable(order=150, description="Whether or not to require this dependency to be successful")
|
||||
public boolean isRequireSuccessful() {
|
||||
return requireSuccessful;
|
||||
}
|
||||
|
||||
public void setRequireSuccessful(boolean requireSuccessful) {
|
||||
this.requireSuccessful = requireSuccessful;
|
||||
}
|
||||
|
||||
@Editable(order=200, name="Job Parameters")
|
||||
@ParamSpecProvider("getParamSpecs")
|
||||
@VariableOption(withBuildVersion=false, withDynamicVariables=false)
|
||||
@OmitName
|
||||
public List<ParamSupply> getJobParams() {
|
||||
return jobParams;
|
||||
}
|
||||
|
||||
public void setJobParams(List<ParamSupply> jobParams) {
|
||||
this.jobParams = jobParams;
|
||||
}
|
||||
|
||||
@Editable(order=300, name="Artifacts to Retrieve", placeholder="Do not retrieve", description=""
|
||||
+ "Optionally specify artifacts to retrieve from the dependency into "
|
||||
+ "<a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a>. "
|
||||
+ "Only published artifacts (via artifact publish step) can be retrieved. Leave empty to not "
|
||||
+ "retrieve any artifacts")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@Patterns(path=true)
|
||||
public String getArtifacts() {
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public void setArtifacts(String artifacts) {
|
||||
this.artifacts = artifacts;
|
||||
}
|
||||
|
||||
@Editable(order=400, placeholder="Job workspace", description=""
|
||||
+ "Optionally specify a path relative to <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a> "
|
||||
+ "to put retrieved artifacts. Leave empty to use job workspace itself")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
public String getDestinationPath() {
|
||||
return destinationPath;
|
||||
}
|
||||
|
||||
public void setDestinationPath(String destinationPath) {
|
||||
this.destinationPath = destinationPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getJobChoices() {
|
||||
return Job.getChoices();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<ParamSpec> getParamSpecs() {
|
||||
String jobName = (String) EditContext.get().getInputValue("jobName");
|
||||
if (jobName != null) {
|
||||
Component component = ComponentContext.get().getComponent();
|
||||
BuildSpecAware buildSpecAware = WicketUtils.findInnermost(component, BuildSpecAware.class);
|
||||
if (buildSpecAware != null) {
|
||||
BuildSpec buildSpec = buildSpecAware.getBuildSpec();
|
||||
if (buildSpec != null) {
|
||||
Job job = buildSpec.getJobMap().get(jobName);
|
||||
if (job != null)
|
||||
return job.getParamSpecs();
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
}
|
||||
package io.onedev.server.buildspec.job;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.wicket.Component;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.BuildSpecAware;
|
||||
import io.onedev.server.buildspec.param.spec.ParamSpec;
|
||||
import io.onedev.server.buildspec.param.supply.ParamSupply;
|
||||
import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.annotation.OmitName;
|
||||
import io.onedev.server.annotation.ParamSpecProvider;
|
||||
import io.onedev.server.annotation.Patterns;
|
||||
import io.onedev.server.annotation.VariableOption;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@Editable
|
||||
public class JobDependency implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String jobName;
|
||||
|
||||
private boolean requireSuccessful = true;
|
||||
|
||||
private List<ParamSupply> jobParams = new ArrayList<>();
|
||||
|
||||
private String artifacts = "**";
|
||||
|
||||
private String destinationPath;
|
||||
|
||||
// change Named("jobName") also if change name of this property
|
||||
@Editable(order=100, name="Job")
|
||||
@ChoiceProvider("getJobChoices")
|
||||
@NotEmpty
|
||||
public String getJobName() {
|
||||
return jobName;
|
||||
}
|
||||
|
||||
public void setJobName(String jobName) {
|
||||
this.jobName = jobName;
|
||||
}
|
||||
|
||||
@Editable(order=150, description="Whether or not to require this dependency to be successful")
|
||||
public boolean isRequireSuccessful() {
|
||||
return requireSuccessful;
|
||||
}
|
||||
|
||||
public void setRequireSuccessful(boolean requireSuccessful) {
|
||||
this.requireSuccessful = requireSuccessful;
|
||||
}
|
||||
|
||||
@Editable(order=200, name="Job Parameters")
|
||||
@ParamSpecProvider("getParamSpecs")
|
||||
@VariableOption(withBuildVersion=false, withDynamicVariables=false)
|
||||
@OmitName
|
||||
public List<ParamSupply> getJobParams() {
|
||||
return jobParams;
|
||||
}
|
||||
|
||||
public void setJobParams(List<ParamSupply> jobParams) {
|
||||
this.jobParams = jobParams;
|
||||
}
|
||||
|
||||
@Editable(order=300, name="Artifacts to Retrieve", placeholder="Do not retrieve", description=""
|
||||
+ "Optionally specify artifacts to retrieve from the dependency into "
|
||||
+ "<a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a>. "
|
||||
+ "Only published artifacts (via artifact publish step) can be retrieved. Leave empty to not "
|
||||
+ "retrieve any artifacts")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@Patterns(path=true)
|
||||
public String getArtifacts() {
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public void setArtifacts(String artifacts) {
|
||||
this.artifacts = artifacts;
|
||||
}
|
||||
|
||||
@Editable(order=400, placeholder="Job workspace", description=""
|
||||
+ "Optionally specify a path relative to <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a> "
|
||||
+ "to put retrieved artifacts. Leave empty to use job workspace itself")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
public String getDestinationPath() {
|
||||
return destinationPath;
|
||||
}
|
||||
|
||||
public void setDestinationPath(String destinationPath) {
|
||||
this.destinationPath = destinationPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getJobChoices() {
|
||||
return Job.getChoices();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<ParamSpec> getParamSpecs() {
|
||||
String jobName = (String) EditContext.get().getInputValue("jobName");
|
||||
if (jobName != null) {
|
||||
Component component = ComponentContext.get().getComponent();
|
||||
BuildSpecAware buildSpecAware = WicketUtils.findInnermost(component, BuildSpecAware.class);
|
||||
if (buildSpecAware != null) {
|
||||
BuildSpec buildSpec = buildSpecAware.getBuildSpec();
|
||||
if (buildSpec != null) {
|
||||
Job job = buildSpec.getJobMap().get(jobName);
|
||||
if (job != null)
|
||||
return job.getParamSpecs();
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -23,11 +23,11 @@ import io.onedev.server.model.support.issue.field.FieldUtils;
|
||||
import io.onedev.server.model.support.issue.field.supply.FieldSupply;
|
||||
import io.onedev.server.persistence.TransactionManager;
|
||||
import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.FieldNamesProvider;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.web.editable.annotation.Multiline;
|
||||
import io.onedev.server.web.editable.annotation.OmitName;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.FieldNamesProvider;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.annotation.Multiline;
|
||||
import io.onedev.server.annotation.OmitName;
|
||||
|
||||
@Editable(name="Create issue", order=300)
|
||||
public class CreateIssueAction extends PostBuildAction {
|
||||
|
||||
@ -1,39 +1,39 @@
|
||||
package io.onedev.server.buildspec.job.action;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.job.Job;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.web.editable.annotation.ActionCondition;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
|
||||
@Editable
|
||||
public abstract class PostBuildAction implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String condition;
|
||||
|
||||
@Editable(order=100, description="Specify the condition current build must satisfy to execute this action")
|
||||
@ActionCondition
|
||||
@NotEmpty
|
||||
public String getCondition() {
|
||||
return condition;
|
||||
}
|
||||
|
||||
public void setCondition(String condition) {
|
||||
this.condition = condition;
|
||||
}
|
||||
|
||||
public abstract void execute(Build build);
|
||||
|
||||
public abstract String getDescription();
|
||||
|
||||
public void validateWith(BuildSpec buildSpec, Job job) {
|
||||
io.onedev.server.buildspec.job.action.condition.ActionCondition.parse(job, condition);
|
||||
}
|
||||
|
||||
}
|
||||
package io.onedev.server.buildspec.job.action;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.job.Job;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.annotation.ActionCondition;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable
|
||||
public abstract class PostBuildAction implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String condition;
|
||||
|
||||
@Editable(order=100, description="Specify the condition current build must satisfy to execute this action")
|
||||
@ActionCondition
|
||||
@NotEmpty
|
||||
public String getCondition() {
|
||||
return condition;
|
||||
}
|
||||
|
||||
public void setCondition(String condition) {
|
||||
this.condition = condition;
|
||||
}
|
||||
|
||||
public abstract void execute(Build build);
|
||||
|
||||
public abstract String getDescription();
|
||||
|
||||
public void validateWith(BuildSpec buildSpec, Job job) {
|
||||
io.onedev.server.buildspec.job.action.condition.ActionCondition.parse(job, condition);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package io.onedev.server.buildspec.job.action;
|
||||
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.annotation.*;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.buildspec.BuildSpecAware;
|
||||
import io.onedev.server.buildspec.job.Job;
|
||||
@ -12,7 +13,6 @@ import io.onedev.server.model.Build;
|
||||
import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.util.MatrixRunner;
|
||||
import io.onedev.server.web.editable.annotation.*;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
import org.apache.wicket.Component;
|
||||
|
||||
|
||||
@ -6,8 +6,8 @@ import io.onedev.server.OneDev;
|
||||
import io.onedev.server.event.project.build.BuildFinished;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.notification.BuildNotificationManager;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.NotificationReceiver;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.NotificationReceiver;
|
||||
|
||||
@Editable(name="Send notification", order=200)
|
||||
public class SendNotificationAction extends PostBuildAction {
|
||||
|
||||
@ -5,7 +5,7 @@ import io.onedev.k8shelper.DefaultCloneInfo;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UrlManager;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable(name="Default", order=100)
|
||||
public class DefaultCredential implements GitCredential {
|
||||
|
||||
@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
import io.onedev.k8shelper.CloneInfo;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable
|
||||
public interface GitCredential extends Serializable {
|
||||
|
||||
@ -13,10 +13,10 @@ import io.onedev.server.OneDev;
|
||||
import io.onedev.server.entitymanager.UrlManager;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.annotation.ClassValidating;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable(name="HTTP(S)", order=200)
|
||||
@ClassValidating
|
||||
|
||||
@ -20,10 +20,10 @@ import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.model.support.administration.SshSetting;
|
||||
import io.onedev.server.model.support.administration.SystemSetting;
|
||||
import io.onedev.server.util.validation.Validatable;
|
||||
import io.onedev.server.util.validation.annotation.ClassValidating;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.validation.Validatable;
|
||||
import io.onedev.server.annotation.ClassValidating;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable(name="SSH", order=300)
|
||||
@ClassValidating
|
||||
|
||||
@ -6,7 +6,7 @@ import javax.annotation.Nullable;
|
||||
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable
|
||||
public interface BuildProvider extends Serializable {
|
||||
|
||||
@ -11,9 +11,9 @@ import io.onedev.server.entitymanager.BuildManager;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.OmitName;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.OmitName;
|
||||
|
||||
@Editable(order=100, name="Last Finished of Specified Job")
|
||||
public class LastFinishedBuild implements BuildProvider {
|
||||
|
||||
@ -1,144 +1,144 @@
|
||||
package io.onedev.server.buildspec.job.projectdependency;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import edu.emory.mathcs.backport.java.util.Collections;
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.entitymanager.ProjectManager;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.security.permission.AccessProject;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.util.facade.ProjectCache;
|
||||
import io.onedev.server.web.editable.annotation.ChoiceProvider;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.web.editable.annotation.Patterns;
|
||||
import io.onedev.server.web.page.project.ProjectPage;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@Editable
|
||||
public class ProjectDependency implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String projectPath;
|
||||
|
||||
private BuildProvider buildProvider = new LastFinishedBuild();
|
||||
|
||||
private String artifacts = "**";
|
||||
|
||||
private String destinationPath;
|
||||
|
||||
private String accessTokenSecret;
|
||||
|
||||
// change Named("projectPath") also if change name of this property
|
||||
@Editable(order=200, name="Project", description="Specify project to retrieve artifacts from")
|
||||
@ChoiceProvider("getProjectChoices")
|
||||
@NotEmpty
|
||||
public String getProjectPath() {
|
||||
return projectPath;
|
||||
}
|
||||
|
||||
public void setProjectPath(String projectPath) {
|
||||
this.projectPath = projectPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getProjectChoices() {
|
||||
List<String> choices = new ArrayList<>();
|
||||
Project currentProject = ((ProjectPage)WicketUtils.getPage()).getProject();
|
||||
|
||||
ProjectManager projectManager = OneDev.getInstance(ProjectManager.class);
|
||||
ProjectCache cache = projectManager.cloneCache();
|
||||
for (Project project: projectManager.getPermittedProjects(new AccessProject())) {
|
||||
if (!project.equals(currentProject))
|
||||
choices.add(cache.get(project.getId()).getPath());
|
||||
}
|
||||
|
||||
Collections.sort(choices);
|
||||
|
||||
return choices;
|
||||
}
|
||||
|
||||
@Editable(order=300, name="Build")
|
||||
@NotNull
|
||||
public BuildProvider getBuildProvider() {
|
||||
return buildProvider;
|
||||
}
|
||||
|
||||
public void setBuildProvider(BuildProvider buildProvider) {
|
||||
this.buildProvider = buildProvider;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
static Project getInputProject(EditContext editContext) {
|
||||
String projectPath = (String) editContext.getInputValue("projectPath");
|
||||
if (projectPath != null) {
|
||||
Project project = OneDev.getInstance(ProjectManager.class).findByPath(projectPath);
|
||||
if (project != null && SecurityUtils.canReadCode(project))
|
||||
return project;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Editable(order=400, name="Artifacts to Retrieve", description="Specify artifacts to retrieve into <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a>. "
|
||||
+ "Only published artifacts (via artifact publish step) can be retrieved.")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@Patterns(path=true)
|
||||
@NotEmpty
|
||||
public String getArtifacts() {
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public void setArtifacts(String artifacts) {
|
||||
this.artifacts = artifacts;
|
||||
}
|
||||
|
||||
@Editable(order=500, placeholder="Job workspace", description=""
|
||||
+ "Optionally specify a path relative to <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a> "
|
||||
+ "to put retrieved artifacts. Leave empty to use job workspace itself")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
public String getDestinationPath() {
|
||||
return destinationPath;
|
||||
}
|
||||
|
||||
public void setDestinationPath(String destinationPath) {
|
||||
this.destinationPath = destinationPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@Editable(order=500, placeholder="Access Anonymously", description="Specify a secret to be used as "
|
||||
+ "access token to retrieve artifacts from above project. If not specified, project "
|
||||
+ "artifacts will be accessed anonymously")
|
||||
@ChoiceProvider("getAccessTokenSecretChoices")
|
||||
@Nullable
|
||||
public String getAccessTokenSecret() {
|
||||
return accessTokenSecret;
|
||||
}
|
||||
|
||||
public void setAccessTokenSecret(String accessTokenSecret) {
|
||||
this.accessTokenSecret = accessTokenSecret;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getAccessTokenSecretChoices() {
|
||||
return Project.get().getHierarchyJobSecrets()
|
||||
.stream().map(it->it.getName()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
package io.onedev.server.buildspec.job.projectdependency;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
import edu.emory.mathcs.backport.java.util.Collections;
|
||||
import io.onedev.commons.codeassist.InputSuggestion;
|
||||
import io.onedev.server.OneDev;
|
||||
import io.onedev.server.buildspec.BuildSpec;
|
||||
import io.onedev.server.entitymanager.ProjectManager;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.security.SecurityUtils;
|
||||
import io.onedev.server.security.permission.AccessProject;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.util.facade.ProjectCache;
|
||||
import io.onedev.server.annotation.ChoiceProvider;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.annotation.Patterns;
|
||||
import io.onedev.server.web.page.project.ProjectPage;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
@Editable
|
||||
public class ProjectDependency implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String projectPath;
|
||||
|
||||
private BuildProvider buildProvider = new LastFinishedBuild();
|
||||
|
||||
private String artifacts = "**";
|
||||
|
||||
private String destinationPath;
|
||||
|
||||
private String accessTokenSecret;
|
||||
|
||||
// change Named("projectPath") also if change name of this property
|
||||
@Editable(order=200, name="Project", description="Specify project to retrieve artifacts from")
|
||||
@ChoiceProvider("getProjectChoices")
|
||||
@NotEmpty
|
||||
public String getProjectPath() {
|
||||
return projectPath;
|
||||
}
|
||||
|
||||
public void setProjectPath(String projectPath) {
|
||||
this.projectPath = projectPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getProjectChoices() {
|
||||
List<String> choices = new ArrayList<>();
|
||||
Project currentProject = ((ProjectPage)WicketUtils.getPage()).getProject();
|
||||
|
||||
ProjectManager projectManager = OneDev.getInstance(ProjectManager.class);
|
||||
ProjectCache cache = projectManager.cloneCache();
|
||||
for (Project project: projectManager.getPermittedProjects(new AccessProject())) {
|
||||
if (!project.equals(currentProject))
|
||||
choices.add(cache.get(project.getId()).getPath());
|
||||
}
|
||||
|
||||
Collections.sort(choices);
|
||||
|
||||
return choices;
|
||||
}
|
||||
|
||||
@Editable(order=300, name="Build")
|
||||
@NotNull
|
||||
public BuildProvider getBuildProvider() {
|
||||
return buildProvider;
|
||||
}
|
||||
|
||||
public void setBuildProvider(BuildProvider buildProvider) {
|
||||
this.buildProvider = buildProvider;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
static Project getInputProject(EditContext editContext) {
|
||||
String projectPath = (String) editContext.getInputValue("projectPath");
|
||||
if (projectPath != null) {
|
||||
Project project = OneDev.getInstance(ProjectManager.class).findByPath(projectPath);
|
||||
if (project != null && SecurityUtils.canReadCode(project))
|
||||
return project;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Editable(order=400, name="Artifacts to Retrieve", description="Specify artifacts to retrieve into <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a>. "
|
||||
+ "Only published artifacts (via artifact publish step) can be retrieved.")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
@Patterns(path=true)
|
||||
@NotEmpty
|
||||
public String getArtifacts() {
|
||||
return artifacts;
|
||||
}
|
||||
|
||||
public void setArtifacts(String artifacts) {
|
||||
this.artifacts = artifacts;
|
||||
}
|
||||
|
||||
@Editable(order=500, placeholder="Job workspace", description=""
|
||||
+ "Optionally specify a path relative to <a href='https://docs.onedev.io/concepts#job-workspace'>job workspace</a> "
|
||||
+ "to put retrieved artifacts. Leave empty to use job workspace itself")
|
||||
@Interpolative(variableSuggester="suggestVariables")
|
||||
public String getDestinationPath() {
|
||||
return destinationPath;
|
||||
}
|
||||
|
||||
public void setDestinationPath(String destinationPath) {
|
||||
this.destinationPath = destinationPath;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<InputSuggestion> suggestVariables(String matchWith) {
|
||||
return BuildSpec.suggestVariables(matchWith, false, false, false);
|
||||
}
|
||||
|
||||
@Editable(order=500, placeholder="Access Anonymously", description="Specify a secret to be used as "
|
||||
+ "access token to retrieve artifacts from above project. If not specified, project "
|
||||
+ "artifacts will be accessed anonymously")
|
||||
@ChoiceProvider("getAccessTokenSecretChoices")
|
||||
@Nullable
|
||||
public String getAccessTokenSecret() {
|
||||
return accessTokenSecret;
|
||||
}
|
||||
|
||||
public void setAccessTokenSecret(String accessTokenSecret) {
|
||||
this.accessTokenSecret = accessTokenSecret;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static List<String> getAccessTokenSecretChoices() {
|
||||
return Project.get().getHierarchyJobSecrets()
|
||||
.stream().map(it->it.getName()).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -13,9 +13,9 @@ import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Project;
|
||||
import io.onedev.server.util.EditContext;
|
||||
import io.onedev.server.web.behavior.inputassist.InputAssistBehavior;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Interpolative;
|
||||
import io.onedev.server.web.editable.annotation.OmitName;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Interpolative;
|
||||
import io.onedev.server.annotation.OmitName;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
|
||||
@Editable(order=200, name="Specify by Build Number")
|
||||
|
||||
@ -12,8 +12,8 @@ import io.onedev.server.model.Project;
|
||||
import io.onedev.server.util.match.Matcher;
|
||||
import io.onedev.server.util.match.PathMatcher;
|
||||
import io.onedev.server.util.patternset.PatternSet;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Patterns;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Patterns;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
|
||||
@ -8,7 +8,7 @@ import io.onedev.server.event.project.ProjectEvent;
|
||||
import io.onedev.server.event.project.build.BuildFinished;
|
||||
import io.onedev.server.model.Build;
|
||||
import io.onedev.server.model.Build.Status;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -22,11 +22,11 @@ import io.onedev.server.util.ComponentContext;
|
||||
import io.onedev.server.util.match.Matcher;
|
||||
import io.onedev.server.util.match.PathMatcher;
|
||||
import io.onedev.server.util.patternset.PatternSet;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.OmitName;
|
||||
import io.onedev.server.web.editable.annotation.ParamSpecProvider;
|
||||
import io.onedev.server.web.editable.annotation.Patterns;
|
||||
import io.onedev.server.web.editable.annotation.VariableOption;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.OmitName;
|
||||
import io.onedev.server.annotation.ParamSpecProvider;
|
||||
import io.onedev.server.annotation.Patterns;
|
||||
import io.onedev.server.annotation.VariableOption;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import io.onedev.server.web.util.WicketUtils;
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ import io.onedev.server.buildspec.job.TriggerMatch;
|
||||
import io.onedev.server.event.project.ProjectEvent;
|
||||
import io.onedev.server.event.project.pullrequest.PullRequestChanged;
|
||||
import io.onedev.server.model.support.pullrequest.changedata.PullRequestDiscardData;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable(order=320, name="Pull request discard", description="Job will run on head commit of target branch")
|
||||
public class PullRequestDiscardTrigger extends PullRequestTrigger {
|
||||
|
||||
@ -5,7 +5,7 @@ import io.onedev.server.buildspec.job.TriggerMatch;
|
||||
import io.onedev.server.event.project.ProjectEvent;
|
||||
import io.onedev.server.event.project.pullrequest.PullRequestChanged;
|
||||
import io.onedev.server.model.support.pullrequest.changedata.PullRequestMergeData;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
|
||||
@Editable(order=310, name="Pull request merge", description="Job will run on merge commit of target branch and source branch")
|
||||
public class PullRequestMergeTrigger extends PullRequestTrigger {
|
||||
|
||||
@ -10,8 +10,8 @@ import io.onedev.server.model.PullRequest;
|
||||
import io.onedev.server.util.match.Matcher;
|
||||
import io.onedev.server.util.match.PathMatcher;
|
||||
import io.onedev.server.util.patternset.PatternSet;
|
||||
import io.onedev.server.web.editable.annotation.Editable;
|
||||
import io.onedev.server.web.editable.annotation.Patterns;
|
||||
import io.onedev.server.annotation.Editable;
|
||||
import io.onedev.server.annotation.Patterns;
|
||||
import io.onedev.server.web.util.SuggestionUtils;
|
||||
import org.eclipse.jgit.lib.Repository;
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user