2019-05-11 18:21:34 +08:00
|
|
|
// Copyright 2016 The Gogs Authors. All rights reserved.
|
2022-11-28 02:20:29 +08:00
|
|
|
// SPDX-License-Identifier: MIT
|
2019-05-11 18:21:34 +08:00
|
|
|
|
|
|
|
package structs
|
|
|
|
|
2020-02-13 07:19:35 +08:00
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
2019-05-11 18:21:34 +08:00
|
|
|
// Branch represents a repository branch
|
|
|
|
type Branch struct {
|
2020-02-13 07:19:35 +08:00
|
|
|
Name string `json:"name"`
|
|
|
|
Commit *PayloadCommit `json:"commit"`
|
|
|
|
Protected bool `json:"protected"`
|
|
|
|
RequiredApprovals int64 `json:"required_approvals"`
|
|
|
|
EnableStatusCheck bool `json:"enable_status_check"`
|
|
|
|
StatusCheckContexts []string `json:"status_check_contexts"`
|
|
|
|
UserCanPush bool `json:"user_can_push"`
|
|
|
|
UserCanMerge bool `json:"user_can_merge"`
|
|
|
|
EffectiveBranchProtectionName string `json:"effective_branch_protection_name"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// BranchProtection represents a branch protection for a repository
|
|
|
|
type BranchProtection struct {
|
2023-01-16 16:00:22 +08:00
|
|
|
// Deprecated: true
|
2020-11-29 03:30:46 +08:00
|
|
|
BranchName string `json:"branch_name"`
|
2023-01-16 16:00:22 +08:00
|
|
|
RuleName string `json:"rule_name"`
|
2020-11-29 03:30:46 +08:00
|
|
|
EnablePush bool `json:"enable_push"`
|
|
|
|
EnablePushWhitelist bool `json:"enable_push_whitelist"`
|
|
|
|
PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
|
|
|
|
PushWhitelistTeams []string `json:"push_whitelist_teams"`
|
|
|
|
PushWhitelistDeployKeys bool `json:"push_whitelist_deploy_keys"`
|
2024-07-06 02:21:56 +08:00
|
|
|
EnableForcePush bool `json:"enable_force_push"`
|
|
|
|
EnableForcePushAllowlist bool `json:"enable_force_push_allowlist"`
|
|
|
|
ForcePushAllowlistUsernames []string `json:"force_push_allowlist_usernames"`
|
|
|
|
ForcePushAllowlistTeams []string `json:"force_push_allowlist_teams"`
|
|
|
|
ForcePushAllowlistDeployKeys bool `json:"force_push_allowlist_deploy_keys"`
|
2020-11-29 03:30:46 +08:00
|
|
|
EnableMergeWhitelist bool `json:"enable_merge_whitelist"`
|
|
|
|
MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
|
|
|
|
MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
|
|
|
|
EnableStatusCheck bool `json:"enable_status_check"`
|
|
|
|
StatusCheckContexts []string `json:"status_check_contexts"`
|
|
|
|
RequiredApprovals int64 `json:"required_approvals"`
|
|
|
|
EnableApprovalsWhitelist bool `json:"enable_approvals_whitelist"`
|
|
|
|
ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
|
|
|
|
ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
|
|
|
|
BlockOnRejectedReviews bool `json:"block_on_rejected_reviews"`
|
|
|
|
BlockOnOfficialReviewRequests bool `json:"block_on_official_review_requests"`
|
|
|
|
BlockOnOutdatedBranch bool `json:"block_on_outdated_branch"`
|
|
|
|
DismissStaleApprovals bool `json:"dismiss_stale_approvals"`
|
2024-01-15 15:20:01 +08:00
|
|
|
IgnoreStaleApprovals bool `json:"ignore_stale_approvals"`
|
2020-11-29 03:30:46 +08:00
|
|
|
RequireSignedCommits bool `json:"require_signed_commits"`
|
|
|
|
ProtectedFilePatterns string `json:"protected_file_patterns"`
|
2021-09-11 22:21:17 +08:00
|
|
|
UnprotectedFilePatterns string `json:"unprotected_file_patterns"`
|
2020-02-13 07:19:35 +08:00
|
|
|
// swagger:strfmt date-time
|
|
|
|
Created time.Time `json:"created_at"`
|
|
|
|
// swagger:strfmt date-time
|
|
|
|
Updated time.Time `json:"updated_at"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// CreateBranchProtectionOption options for creating a branch protection
|
|
|
|
type CreateBranchProtectionOption struct {
|
2023-01-16 16:00:22 +08:00
|
|
|
// Deprecated: true
|
2020-11-29 03:30:46 +08:00
|
|
|
BranchName string `json:"branch_name"`
|
2023-01-16 16:00:22 +08:00
|
|
|
RuleName string `json:"rule_name"`
|
2020-11-29 03:30:46 +08:00
|
|
|
EnablePush bool `json:"enable_push"`
|
|
|
|
EnablePushWhitelist bool `json:"enable_push_whitelist"`
|
|
|
|
PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
|
|
|
|
PushWhitelistTeams []string `json:"push_whitelist_teams"`
|
|
|
|
PushWhitelistDeployKeys bool `json:"push_whitelist_deploy_keys"`
|
2024-07-06 02:21:56 +08:00
|
|
|
EnableForcePush bool `json:"enable_force_push"`
|
|
|
|
EnableForcePushAllowlist bool `json:"enable_force_push_allowlist"`
|
|
|
|
ForcePushAllowlistUsernames []string `json:"force_push_allowlist_usernames"`
|
|
|
|
ForcePushAllowlistTeams []string `json:"force_push_allowlist_teams"`
|
|
|
|
ForcePushAllowlistDeployKeys bool `json:"force_push_allowlist_deploy_keys"`
|
2020-11-29 03:30:46 +08:00
|
|
|
EnableMergeWhitelist bool `json:"enable_merge_whitelist"`
|
|
|
|
MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
|
|
|
|
MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
|
|
|
|
EnableStatusCheck bool `json:"enable_status_check"`
|
|
|
|
StatusCheckContexts []string `json:"status_check_contexts"`
|
|
|
|
RequiredApprovals int64 `json:"required_approvals"`
|
|
|
|
EnableApprovalsWhitelist bool `json:"enable_approvals_whitelist"`
|
|
|
|
ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
|
|
|
|
ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
|
|
|
|
BlockOnRejectedReviews bool `json:"block_on_rejected_reviews"`
|
|
|
|
BlockOnOfficialReviewRequests bool `json:"block_on_official_review_requests"`
|
|
|
|
BlockOnOutdatedBranch bool `json:"block_on_outdated_branch"`
|
|
|
|
DismissStaleApprovals bool `json:"dismiss_stale_approvals"`
|
2024-01-15 15:20:01 +08:00
|
|
|
IgnoreStaleApprovals bool `json:"ignore_stale_approvals"`
|
2020-11-29 03:30:46 +08:00
|
|
|
RequireSignedCommits bool `json:"require_signed_commits"`
|
|
|
|
ProtectedFilePatterns string `json:"protected_file_patterns"`
|
2021-09-11 22:21:17 +08:00
|
|
|
UnprotectedFilePatterns string `json:"unprotected_file_patterns"`
|
2020-02-13 07:19:35 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// EditBranchProtectionOption options for editing a branch protection
|
|
|
|
type EditBranchProtectionOption struct {
|
2020-11-29 03:30:46 +08:00
|
|
|
EnablePush *bool `json:"enable_push"`
|
|
|
|
EnablePushWhitelist *bool `json:"enable_push_whitelist"`
|
|
|
|
PushWhitelistUsernames []string `json:"push_whitelist_usernames"`
|
|
|
|
PushWhitelistTeams []string `json:"push_whitelist_teams"`
|
|
|
|
PushWhitelistDeployKeys *bool `json:"push_whitelist_deploy_keys"`
|
2024-07-06 02:21:56 +08:00
|
|
|
EnableForcePush *bool `json:"enable_force_push"`
|
|
|
|
EnableForcePushAllowlist *bool `json:"enable_force_push_allowlist"`
|
|
|
|
ForcePushAllowlistUsernames []string `json:"force_push_allowlist_usernames"`
|
|
|
|
ForcePushAllowlistTeams []string `json:"force_push_allowlist_teams"`
|
|
|
|
ForcePushAllowlistDeployKeys *bool `json:"force_push_allowlist_deploy_keys"`
|
2020-11-29 03:30:46 +08:00
|
|
|
EnableMergeWhitelist *bool `json:"enable_merge_whitelist"`
|
|
|
|
MergeWhitelistUsernames []string `json:"merge_whitelist_usernames"`
|
|
|
|
MergeWhitelistTeams []string `json:"merge_whitelist_teams"`
|
|
|
|
EnableStatusCheck *bool `json:"enable_status_check"`
|
|
|
|
StatusCheckContexts []string `json:"status_check_contexts"`
|
|
|
|
RequiredApprovals *int64 `json:"required_approvals"`
|
|
|
|
EnableApprovalsWhitelist *bool `json:"enable_approvals_whitelist"`
|
|
|
|
ApprovalsWhitelistUsernames []string `json:"approvals_whitelist_username"`
|
|
|
|
ApprovalsWhitelistTeams []string `json:"approvals_whitelist_teams"`
|
|
|
|
BlockOnRejectedReviews *bool `json:"block_on_rejected_reviews"`
|
|
|
|
BlockOnOfficialReviewRequests *bool `json:"block_on_official_review_requests"`
|
|
|
|
BlockOnOutdatedBranch *bool `json:"block_on_outdated_branch"`
|
|
|
|
DismissStaleApprovals *bool `json:"dismiss_stale_approvals"`
|
2024-01-15 15:20:01 +08:00
|
|
|
IgnoreStaleApprovals *bool `json:"ignore_stale_approvals"`
|
2020-11-29 03:30:46 +08:00
|
|
|
RequireSignedCommits *bool `json:"require_signed_commits"`
|
|
|
|
ProtectedFilePatterns *string `json:"protected_file_patterns"`
|
2021-09-11 22:21:17 +08:00
|
|
|
UnprotectedFilePatterns *string `json:"unprotected_file_patterns"`
|
2019-05-11 18:21:34 +08:00
|
|
|
}
|