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  }