mirror of
https://github.com/gogs/gogs.git
synced 2025-05-13 11:00:27 +00:00
* WIP * Finish `internal/db/git_diff.go` * FInish internal/db/mirror.go * Finish internal/db/pull.go * Finish internal/db/release.go * Finish internal/db/repo.go * Finish internal/db/repo_branch.go * Finish internal/db/repo_editor.go * Finish internal/db/update.go * Save my work * Add license header * Compile! * Merge master * Finish internal/cmd/hook.go * Finish internal/conf/static.go * Finish internal/context/repo.go * Finish internal/db/action.go * Finish internal/db/git_diff.go * Fix submodule URL inferring * Finish internal/db/mirror.go * Updat to beta.4 * css: update fonts * Finish internal/db/pull.go * Finish internal/db/release.go * Finish internal/db/repo_branch.go * Finish internal/db/wiki.go * gitutil: enhance infer submodule UR * Finish internal/route/api/v1/repo/commits.go * mirror: only collect branch commits after sync * mirror: fix tag support * Finish internal/db/repo.go * Finish internal/db/repo_editor.go * Finish internal/db/update.go * Finish internal/gitutil/pull_request.go * Make it compile * Finish internal/route/repo/setting.go * Finish internal/route/repo/branch.go * Finish internal/route/api/v1/repo/file.go * Finish internal/route/repo/download.go * Finish internal/route/repo/editor.go * Use helper * Finish internal/route/repo/issue.go * Finish internal/route/repo/pull.go * Finish internal/route/repo/release.go * Finish internal/route/repo/repo.go * Finish internal/route/repo/wiki.go * Finish internal/route/repo/commit.go * Finish internal/route/repo/view.go * Finish internal/gitutil/tag.go * go.sum
91 lines
3.5 KiB
Go
91 lines
3.5 KiB
Go
// Copyright 2020 The Gogs Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package gitutil
|
|
|
|
import (
|
|
"github.com/gogs/git-module"
|
|
)
|
|
|
|
// Moduler is the interface for Git operations.
|
|
//
|
|
// NOTE: All methods are sorted in alphabetically.
|
|
type Moduler interface {
|
|
// AddRemote adds a new remote to the repository in given path.
|
|
RepoAddRemote(repoPath, name, url string, opts ...git.AddRemoteOptions) error
|
|
// RepoDiffNameOnly returns a list of changed files between base and head revisions
|
|
// of the repository in given path.
|
|
RepoDiffNameOnly(repoPath, base, head string, opts ...git.DiffNameOnlyOptions) ([]string, error)
|
|
// RepoLog returns a list of commits in the state of given revision of the repository
|
|
// in given path. The returned list is in reverse chronological order.
|
|
RepoLog(repoPath, rev string, opts ...git.LogOptions) ([]*git.Commit, error)
|
|
// RepoMergeBase returns merge base between base and head revisions of the repository
|
|
// in given path.
|
|
RepoMergeBase(repoPath, base, head string, opts ...git.MergeBaseOptions) (string, error)
|
|
// RepoRemoveRemote removes a remote from the repository in given path.
|
|
RepoRemoveRemote(repoPath, name string, opts ...git.RemoveRemoteOptions) error
|
|
// RepoTags returns a list of tags of the repository in given path.
|
|
RepoTags(repoPath string, opts ...git.TagsOptions) ([]string, error)
|
|
|
|
Utiler
|
|
}
|
|
|
|
// Utiler is the interface for utility helpers implemented in this package.
|
|
//
|
|
// NOTE: All methods are sorted in alphabetically.
|
|
type Utiler interface {
|
|
// GetPullRequestMeta gathers pull request metadata based on given head and base information.
|
|
PullRequestMeta(headPath, basePath, headBranch, baseBranch string) (*PullRequestMeta, error)
|
|
// ListTagsAfter returns a list of tags "after" (exlusive) given tag.
|
|
ListTagsAfter(repoPath, after string, limit int) (*TagsPage, error)
|
|
}
|
|
|
|
// moduler is holds real implementation.
|
|
type moduler struct{}
|
|
|
|
func (moduler) RepoAddRemote(repoPath, name, url string, opts ...git.AddRemoteOptions) error {
|
|
if MockModule.RepoAddRemote != nil {
|
|
return MockModule.RepoAddRemote(repoPath, name, url, opts...)
|
|
}
|
|
return git.RepoAddRemote(repoPath, name, url, opts...)
|
|
}
|
|
|
|
func (moduler) RepoDiffNameOnly(repoPath, base, head string, opts ...git.DiffNameOnlyOptions) ([]string, error) {
|
|
if MockModule.RepoDiffNameOnly != nil {
|
|
return MockModule.RepoDiffNameOnly(repoPath, base, head, opts...)
|
|
}
|
|
return git.RepoDiffNameOnly(repoPath, base, head, opts...)
|
|
}
|
|
|
|
func (moduler) RepoLog(repoPath, rev string, opts ...git.LogOptions) ([]*git.Commit, error) {
|
|
if MockModule.RepoLog != nil {
|
|
return MockModule.RepoLog(repoPath, rev, opts...)
|
|
}
|
|
return git.RepoLog(repoPath, rev, opts...)
|
|
}
|
|
|
|
func (moduler) RepoMergeBase(repoPath, base, head string, opts ...git.MergeBaseOptions) (string, error) {
|
|
if MockModule.RepoMergeBase != nil {
|
|
return MockModule.RepoMergeBase(repoPath, base, head, opts...)
|
|
}
|
|
return git.RepoMergeBase(repoPath, base, head, opts...)
|
|
}
|
|
|
|
func (moduler) RepoRemoveRemote(repoPath, name string, opts ...git.RemoveRemoteOptions) error {
|
|
if MockModule.RepoRemoveRemote != nil {
|
|
return MockModule.RepoRemoveRemote(repoPath, name, opts...)
|
|
}
|
|
return git.RepoRemoveRemote(repoPath, name, opts...)
|
|
}
|
|
|
|
func (moduler) RepoTags(repoPath string, opts ...git.TagsOptions) ([]string, error) {
|
|
if MockModule.RepoTags != nil {
|
|
return MockModule.RepoTags(repoPath, opts...)
|
|
}
|
|
return git.RepoTags(repoPath, opts...)
|
|
}
|
|
|
|
// Module is a mockable interface for Git operations.
|
|
var Module Moduler = moduler{}
|