You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

repo_branch.go 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // Copyright 2016 The Gogs Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package structs
  4. import (
  5. "time"
  6. )
  7. // Branch represents a repository branch
  8. type Branch struct {
  9. Name string `json:"name"`
  10. Commit *PayloadCommit `json:"commit"`
  11. Protected bool `json:"protected"`
  12. RequiredApprovals int64 `json:"required_approvals"`
  13. EnableStatusCheck bool `json:"enable_status_check"`
  14. StatusCheckContexts []string `json:"status_check_contexts"`
  15. UserCanPush bool `json:"user_can_push"`
  16. UserCanMerge bool `json:"user_can_merge"`
  17. EffectiveBranchProtectionName string `json:"effective_branch_protection_name"`
  18. }
  19. // BranchProtection represents a branch protection for a repository
  20. type BranchProtection struct {
  21. // Deprecated: true
  22. BranchName string `json:"branch_name"`
  23. RuleName string `json:"rule_name"`
  24. EnablePush bool `json:"enable_push"`
  25. EnablePushWhitelist bool `json:"enable_push_whitelist"`
  26. PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
  27. PushWhitelistTeams []string `json:"push_whitelist_teams"`
  28. PushWhitelistDeployKeys bool `json:"push_whitelist_deploy_keys"`
  29. EnableMergeWhitelist bool `json:"enable_merge_whitelist"`
  30. MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
  31. MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
  32. EnableStatusCheck bool `json:"enable_status_check"`
  33. StatusCheckContexts []string `json:"status_check_contexts"`
  34. RequiredApprovals int64 `json:"required_approvals"`
  35. EnableApprovalsWhitelist bool `json:"enable_approvals_whitelist"`
  36. ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
  37. ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
  38. BlockOnRejectedReviews bool `json:"block_on_rejected_reviews"`
  39. BlockOnOfficialReviewRequests bool `json:"block_on_official_review_requests"`
  40. BlockOnOutdatedBranch bool `json:"block_on_outdated_branch"`
  41. DismissStaleApprovals bool `json:"dismiss_stale_approvals"`
  42. IgnoreStaleApprovals bool `json:"ignore_stale_approvals"`
  43. RequireSignedCommits bool `json:"require_signed_commits"`
  44. ProtectedFilePatterns string `json:"protected_file_patterns"`
  45. UnprotectedFilePatterns string `json:"unprotected_file_patterns"`
  46. // swagger:strfmt date-time
  47. Created time.Time `json:"created_at"`
  48. // swagger:strfmt date-time
  49. Updated time.Time `json:"updated_at"`
  50. }
  51. // CreateBranchProtectionOption options for creating a branch protection
  52. type CreateBranchProtectionOption struct {
  53. // Deprecated: true
  54. BranchName string `json:"branch_name"`
  55. RuleName string `json:"rule_name"`
  56. EnablePush bool `json:"enable_push"`
  57. EnablePushWhitelist bool `json:"enable_push_whitelist"`
  58. PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
  59. PushWhitelistTeams []string `json:"push_whitelist_teams"`
  60. PushWhitelistDeployKeys bool `json:"push_whitelist_deploy_keys"`
  61. EnableMergeWhitelist bool `json:"enable_merge_whitelist"`
  62. MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
  63. MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
  64. EnableStatusCheck bool `json:"enable_status_check"`
  65. StatusCheckContexts []string `json:"status_check_contexts"`
  66. RequiredApprovals int64 `json:"required_approvals"`
  67. EnableApprovalsWhitelist bool `json:"enable_approvals_whitelist"`
  68. ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
  69. ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
  70. BlockOnRejectedReviews bool `json:"block_on_rejected_reviews"`
  71. BlockOnOfficialReviewRequests bool `json:"block_on_official_review_requests"`
  72. BlockOnOutdatedBranch bool `json:"block_on_outdated_branch"`
  73. DismissStaleApprovals bool `json:"dismiss_stale_approvals"`
  74. IgnoreStaleApprovals bool `json:"ignore_stale_approvals"`
  75. RequireSignedCommits bool `json:"require_signed_commits"`
  76. ProtectedFilePatterns string `json:"protected_file_patterns"`
  77. UnprotectedFilePatterns string `json:"unprotected_file_patterns"`
  78. }
  79. // EditBranchProtectionOption options for editing a branch protection
  80. type EditBranchProtectionOption struct {
  81. EnablePush *bool `json:"enable_push"`
  82. EnablePushWhitelist *bool `json:"enable_push_whitelist"`
  83. PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
  84. PushWhitelistTeams []string `json:"push_whitelist_teams"`
  85. PushWhitelistDeployKeys *bool `json:"push_whitelist_deploy_keys"`
  86. EnableMergeWhitelist *bool `json:"enable_merge_whitelist"`
  87. MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
  88. MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
  89. EnableStatusCheck *bool `json:"enable_status_check"`
  90. StatusCheckContexts []string `json:"status_check_contexts"`
  91. RequiredApprovals *int64 `json:"required_approvals"`
  92. EnableApprovalsWhitelist *bool `json:"enable_approvals_whitelist"`
  93. ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
  94. ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
  95. BlockOnRejectedReviews *bool `json:"block_on_rejected_reviews"`
  96. BlockOnOfficialReviewRequests *bool `json:"block_on_official_review_requests"`
  97. BlockOnOutdatedBranch *bool `json:"block_on_outdated_branch"`
  98. DismissStaleApprovals *bool `json:"dismiss_stale_approvals"`
  99. IgnoreStaleApprovals *bool `json:"ignore_stale_approvals"`
  100. RequireSignedCommits *bool `json:"require_signed_commits"`
  101. ProtectedFilePatterns *string `json:"protected_file_patterns"`
  102. UnprotectedFilePatterns *string `json:"unprotected_file_patterns"`
  103. }