gitech

Форк
0
/
remote.go 
39 строк · 1.1 Кб
1
// Copyright 2021 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
package git
5

6
import (
7
	"context"
8

9
	giturl "code.gitea.io/gitea/modules/git/url"
10
)
11

12
// GetRemoteAddress returns remote url of git repository in the repoPath with special remote name
13
func GetRemoteAddress(ctx context.Context, repoPath, remoteName string) (string, error) {
14
	var cmd *Command
15
	if CheckGitVersionAtLeast("2.7") == nil {
16
		cmd = NewCommand(ctx, "remote", "get-url").AddDynamicArguments(remoteName)
17
	} else {
18
		cmd = NewCommand(ctx, "config", "--get").AddDynamicArguments("remote." + remoteName + ".url")
19
	}
20

21
	result, _, err := cmd.RunStdString(&RunOpts{Dir: repoPath})
22
	if err != nil {
23
		return "", err
24
	}
25

26
	if len(result) > 0 {
27
		result = result[:len(result)-1]
28
	}
29
	return result, nil
30
}
31

32
// GetRemoteURL returns the url of a specific remote of the repository.
33
func GetRemoteURL(ctx context.Context, repoPath, remoteName string) (*giturl.GitURL, error) {
34
	addr, err := GetRemoteAddress(ctx, repoPath, remoteName)
35
	if err != nil {
36
		return nil, err
37
	}
38
	return giturl.Parse(addr)
39
}
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.