diff options
author | Daniel Baumann <daniel@debian.org> | 2024-10-18 20:33:49 +0200 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2024-12-12 23:57:56 +0100 |
commit | e68b9d00a6e05b3a941f63ffb696f91e554ac5ec (patch) | |
tree | 97775d6c13b0f416af55314eb6a89ef792474615 /modules/repository/push.go | |
parent | Initial commit. (diff) | |
download | forgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.tar.xz forgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.zip |
Adding upstream version 9.0.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to '')
-rw-r--r-- | modules/repository/push.go | 70 |
1 files changed, 70 insertions, 0 deletions
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 +} |