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