ApplicationProperties.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.moekr.moocoder.util;
  2. import lombok.Data;
  3. import org.apache.commons.lang3.StringUtils;
  4. import org.hibernate.validator.constraints.URL;
  5. import org.springframework.boot.context.properties.ConfigurationProperties;
  6. import org.springframework.context.annotation.Configuration;
  7. import org.springframework.validation.annotation.Validated;
  8. import javax.validation.Valid;
  9. import javax.validation.constraints.Email;
  10. import javax.validation.constraints.NotEmpty;
  11. import javax.validation.constraints.Pattern;
  12. import java.util.HashMap;
  13. import java.util.Map;
  14. @Data
  15. @Configuration
  16. @ConfigurationProperties("moocoder")
  17. @Validated
  18. public class ApplicationProperties {
  19. @Pattern(regexp = "^[a-zA-Z0-9]+$")
  20. @NotEmpty
  21. private String secret;
  22. @Valid
  23. private Gitlab gitlab = new Gitlab();
  24. @Valid
  25. private Jenkins jenkins = new Jenkins();
  26. @Valid
  27. private Docker docker = new Docker();
  28. @Valid
  29. private Mail mail = new Mail();
  30. @Valid
  31. private Storage storage = new Storage();
  32. @Data
  33. public static class Gitlab {
  34. @URL
  35. @NotEmpty
  36. private String host;
  37. private String gitProxy;
  38. @URL
  39. @NotEmpty
  40. private String webHookProxy = "http://localhost:3000";
  41. @NotEmpty
  42. private String username = "root";
  43. @NotEmpty
  44. private String token;
  45. public String getGitProxy() {
  46. return StringUtils.defaultString(gitProxy, host);
  47. }
  48. }
  49. @Data
  50. public static class Jenkins {
  51. @URL
  52. @NotEmpty
  53. private String host;
  54. @NotEmpty
  55. private String username = "root";
  56. @NotEmpty
  57. private String token;
  58. }
  59. @Data
  60. public static class Docker {
  61. @NotEmpty
  62. private String host = "unix:///var/run/docker.sock";
  63. @NotEmpty
  64. private String registry;
  65. }
  66. @Data
  67. public static class Mail {
  68. @Email
  69. @NotEmpty
  70. private String from;
  71. @NotEmpty
  72. private String personal = "MOOCODER";
  73. }
  74. @Data
  75. public static class Storage {
  76. private String type = "local";
  77. private Map<String, String> properties = new HashMap<>();
  78. }
  79. }