From e68b9d00a6e05b3a941f63ffb696f91e554ac5ec Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 18 Oct 2024 20:33:49 +0200 Subject: Adding upstream version 9.0.3. Signed-off-by: Daniel Baumann --- modules/repository/push.go | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 modules/repository/push.go (limited to 'modules/repository/push.go') diff --git a/modules/repository/push.go b/modules/repository/push.go new file mode 100644 index 0000000..66d0417 --- /dev/null +++ b/modules/repository/push.go @@ -0,0 +1,70 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package repository + +import ( + "code.gitea.io/gitea/modules/git" +) + +// PushUpdateOptions defines the push update options +type PushUpdateOptions struct { + PusherID int64 + PusherName string + RepoUserName string + RepoName string + RefFullName git.RefName // branch, tag or other name to push + OldCommitID string + NewCommitID string + TimeNano int64 +} + +// IsNewRef return true if it's a first-time push to a branch, tag or etc. +func (opts *PushUpdateOptions) IsNewRef() bool { + return git.IsEmptyCommitID(opts.OldCommitID, nil) +} + +// IsDelRef return true if it's a deletion to a branch or tag +func (opts *PushUpdateOptions) IsDelRef() bool { + return git.IsEmptyCommitID(opts.NewCommitID, nil) +} + +// IsUpdateRef return true if it's an update operation +func (opts *PushUpdateOptions) IsUpdateRef() bool { + return !opts.IsNewRef() && !opts.IsDelRef() +} + +// IsNewTag return true if it's a creation to a tag +func (opts *PushUpdateOptions) IsNewTag() bool { + return opts.RefFullName.IsTag() && opts.IsNewRef() +} + +// IsDelTag return true if it's a deletion to a tag +func (opts *PushUpdateOptions) IsDelTag() bool { + return opts.RefFullName.IsTag() && opts.IsDelRef() +} + +// IsNewBranch return true if it's the first-time push to a branch +func (opts *PushUpdateOptions) IsNewBranch() bool { + return opts.RefFullName.IsBranch() && opts.IsNewRef() +} + +// IsUpdateBranch return true if it's not the first push to a branch +func (opts *PushUpdateOptions) IsUpdateBranch() bool { + return opts.RefFullName.IsBranch() && opts.IsUpdateRef() +} + +// IsDelBranch return true if it's a deletion to a branch +func (opts *PushUpdateOptions) IsDelBranch() bool { + return opts.RefFullName.IsBranch() && opts.IsDelRef() +} + +// RefName returns simple name for ref +func (opts *PushUpdateOptions) RefName() string { + return opts.RefFullName.ShortName() +} + +// RepoFullName returns repo full name +func (opts *PushUpdateOptions) RepoFullName() string { + return opts.RepoUserName + "/" + opts.RepoName +} -- cgit v1.2.3