code.gitea.io/gitea@v1.19.3/modules/notification/base/notifier.go (about)

     1  // Copyright 2018 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package base
     5  
     6  import (
     7  	"context"
     8  
     9  	issues_model "code.gitea.io/gitea/models/issues"
    10  	packages_model "code.gitea.io/gitea/models/packages"
    11  	repo_model "code.gitea.io/gitea/models/repo"
    12  	user_model "code.gitea.io/gitea/models/user"
    13  	"code.gitea.io/gitea/modules/repository"
    14  )
    15  
    16  // Notifier defines an interface to notify receiver
    17  type Notifier interface {
    18  	Run()
    19  	NotifyCreateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
    20  	NotifyMigrateRepository(ctx context.Context, doer, u *user_model.User, repo *repo_model.Repository)
    21  	NotifyDeleteRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository)
    22  	NotifyForkRepository(ctx context.Context, doer *user_model.User, oldRepo, repo *repo_model.Repository)
    23  	NotifyRenameRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, oldRepoName string)
    24  	NotifyTransferRepository(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, oldOwnerName string)
    25  	NotifyNewIssue(ctx context.Context, issue *issues_model.Issue, mentions []*user_model.User)
    26  	NotifyIssueChangeStatus(ctx context.Context, doer *user_model.User, commitID string, issue *issues_model.Issue, actionComment *issues_model.Comment, closeOrReopen bool)
    27  	NotifyDeleteIssue(ctx context.Context, doer *user_model.User, issue *issues_model.Issue)
    28  	NotifyIssueChangeMilestone(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldMilestoneID int64)
    29  	NotifyIssueChangeAssignee(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, assignee *user_model.User, removed bool, comment *issues_model.Comment)
    30  	NotifyPullReviewRequest(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, reviewer *user_model.User, isRequest bool, comment *issues_model.Comment)
    31  	NotifyIssueChangeContent(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldContent string)
    32  	NotifyIssueClearLabels(ctx context.Context, doer *user_model.User, issue *issues_model.Issue)
    33  	NotifyIssueChangeTitle(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldTitle string)
    34  	NotifyIssueChangeRef(ctx context.Context, doer *user_model.User, issue *issues_model.Issue, oldRef string)
    35  	NotifyIssueChangeLabels(ctx context.Context, doer *user_model.User, issue *issues_model.Issue,
    36  		addedLabels, removedLabels []*issues_model.Label)
    37  	NotifyNewPullRequest(ctx context.Context, pr *issues_model.PullRequest, mentions []*user_model.User)
    38  	NotifyMergePullRequest(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
    39  	NotifyAutoMergePullRequest(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
    40  	NotifyPullRequestSynchronized(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest)
    41  	NotifyPullRequestReview(ctx context.Context, pr *issues_model.PullRequest, review *issues_model.Review, comment *issues_model.Comment, mentions []*user_model.User)
    42  	NotifyPullRequestCodeComment(ctx context.Context, pr *issues_model.PullRequest, comment *issues_model.Comment, mentions []*user_model.User)
    43  	NotifyPullRequestChangeTargetBranch(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest, oldBranch string)
    44  	NotifyPullRequestPushCommits(ctx context.Context, doer *user_model.User, pr *issues_model.PullRequest, comment *issues_model.Comment)
    45  	NotifyPullReviewDismiss(ctx context.Context, doer *user_model.User, review *issues_model.Review, comment *issues_model.Comment)
    46  	NotifyCreateIssueComment(ctx context.Context, doer *user_model.User, repo *repo_model.Repository,
    47  		issue *issues_model.Issue, comment *issues_model.Comment, mentions []*user_model.User)
    48  	NotifyUpdateComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment, oldContent string)
    49  	NotifyDeleteComment(ctx context.Context, doer *user_model.User, c *issues_model.Comment)
    50  	NotifyNewWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page, comment string)
    51  	NotifyEditWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page, comment string)
    52  	NotifyDeleteWikiPage(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, page string)
    53  	NotifyNewRelease(ctx context.Context, rel *repo_model.Release)
    54  	NotifyUpdateRelease(ctx context.Context, doer *user_model.User, rel *repo_model.Release)
    55  	NotifyDeleteRelease(ctx context.Context, doer *user_model.User, rel *repo_model.Release)
    56  	NotifyPushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits)
    57  	NotifyCreateRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refType, refFullName, refID string)
    58  	NotifyDeleteRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refType, refFullName string)
    59  	NotifySyncPushCommits(ctx context.Context, pusher *user_model.User, repo *repo_model.Repository, opts *repository.PushUpdateOptions, commits *repository.PushCommits)
    60  	NotifySyncCreateRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refType, refFullName, refID string)
    61  	NotifySyncDeleteRef(ctx context.Context, doer *user_model.User, repo *repo_model.Repository, refType, refFullName string)
    62  	NotifyRepoPendingTransfer(ctx context.Context, doer, newOwner *user_model.User, repo *repo_model.Repository)
    63  	NotifyPackageCreate(ctx context.Context, doer *user_model.User, pd *packages_model.PackageDescriptor)
    64  	NotifyPackageDelete(ctx context.Context, doer *user_model.User, pd *packages_model.PackageDescriptor)
    65  }