mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +01:00 
			
		
		
		
	Remove Interact Dependency Of Task Module (#280)
remove interact dependency in task module accept nil callback format code Reviewed-on: https://gitea.com/gitea/tea/pulls/280 Reviewed-by: Norwin <noerw@noreply.gitea.io> Reviewed-by: Andrew Thornton <art27@cantab.net> Co-Authored-By: 6543 <6543@obermui.de> Co-Committed-By: 6543 <6543@obermui.de>
This commit is contained in:
		| @@ -9,6 +9,7 @@ import ( | |||||||
|  |  | ||||||
| 	"code.gitea.io/tea/cmd/flags" | 	"code.gitea.io/tea/cmd/flags" | ||||||
| 	"code.gitea.io/tea/modules/config" | 	"code.gitea.io/tea/modules/config" | ||||||
|  | 	"code.gitea.io/tea/modules/interact" | ||||||
| 	"code.gitea.io/tea/modules/task" | 	"code.gitea.io/tea/modules/task" | ||||||
| 	"code.gitea.io/tea/modules/utils" | 	"code.gitea.io/tea/modules/utils" | ||||||
|  |  | ||||||
| @@ -35,5 +36,5 @@ func runPullsCheckout(ctx *cli.Context) error { | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return task.PullCheckout(login, owner, repo, idx) | 	return task.PullCheckout(login, owner, repo, idx, interact.PromptPassword) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import ( | |||||||
|  |  | ||||||
| 	"code.gitea.io/tea/cmd/flags" | 	"code.gitea.io/tea/cmd/flags" | ||||||
| 	"code.gitea.io/tea/modules/config" | 	"code.gitea.io/tea/modules/config" | ||||||
|  | 	"code.gitea.io/tea/modules/interact" | ||||||
| 	"code.gitea.io/tea/modules/task" | 	"code.gitea.io/tea/modules/task" | ||||||
| 	"code.gitea.io/tea/modules/utils" | 	"code.gitea.io/tea/modules/utils" | ||||||
|  |  | ||||||
| @@ -41,5 +42,5 @@ func runPullsClean(ctx *cli.Context) error { | |||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return task.PullClean(login, owner, repo, idx, ctx.Bool("ignore-sha")) | 	return task.PullClean(login, owner, repo, idx, ctx.Bool("ignore-sha"), interact.PromptPassword) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ import ( | |||||||
| 	"golang.org/x/crypto/ssh" | 	"golang.org/x/crypto/ssh" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| type pwCallback = func(ctx string) (string, error) | type pwCallback = func(string) (string, error) | ||||||
|  |  | ||||||
| // GetAuthForURL returns the appropriate AuthMethod to be used in Push() / Pull() | // GetAuthForURL returns the appropriate AuthMethod to be used in Push() / Pull() | ||||||
| // operations depending on the protocol, and prompts the user for credentials if | // operations depending on the protocol, and prompts the user for credentials if | ||||||
| @@ -32,10 +32,10 @@ func GetAuthForURL(remoteURL *url.URL, authToken, keyFile string, passwordCallba | |||||||
| 		// try to select right key via ssh-agent. if it fails, try to read a key manually | 		// try to select right key via ssh-agent. if it fails, try to read a key manually | ||||||
| 		user := remoteURL.User.Username() | 		user := remoteURL.User.Username() | ||||||
| 		auth, err = gogit_ssh.DefaultAuthBuilder(user) | 		auth, err = gogit_ssh.DefaultAuthBuilder(user) | ||||||
| 		if err != nil { | 		if err != nil && passwordCallback != nil { | ||||||
| 			signer, err := readSSHPrivKey(keyFile, passwordCallback) | 			signer, err2 := readSSHPrivKey(keyFile, passwordCallback) | ||||||
| 			if err != nil { | 			if err2 != nil { | ||||||
| 				return nil, err | 				return nil, err2 | ||||||
| 			} | 			} | ||||||
| 			auth = &gogit_ssh.PublicKeys{User: user, Signer: signer} | 			auth = &gogit_ssh.PublicKeys{User: user, Signer: signer} | ||||||
| 		} | 		} | ||||||
| @@ -44,7 +44,7 @@ func GetAuthForURL(remoteURL *url.URL, authToken, keyFile string, passwordCallba | |||||||
| 		return nil, fmt.Errorf("don't know how to handle url scheme %v", remoteURL.Scheme) | 		return nil, fmt.Errorf("don't know how to handle url scheme %v", remoteURL.Scheme) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return auth, nil | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func readSSHPrivKey(keyFile string, passwordCallback pwCallback) (sig ssh.Signer, err error) { | func readSSHPrivKey(keyFile string, passwordCallback pwCallback) (sig ssh.Signer, err error) { | ||||||
|   | |||||||
| @@ -10,12 +10,12 @@ import ( | |||||||
| 	"code.gitea.io/sdk/gitea" | 	"code.gitea.io/sdk/gitea" | ||||||
| 	"code.gitea.io/tea/modules/config" | 	"code.gitea.io/tea/modules/config" | ||||||
| 	local_git "code.gitea.io/tea/modules/git" | 	local_git "code.gitea.io/tea/modules/git" | ||||||
| 	"code.gitea.io/tea/modules/interact" |  | ||||||
| 	"github.com/go-git/go-git/v5" | 	"github.com/go-git/go-git/v5" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // PullCheckout checkout current workdir to the head branch of specified pull request | // PullCheckout checkout current workdir to the head branch of specified pull request | ||||||
| func PullCheckout(login *config.Login, repoOwner, repoName string, index int64) error { | func PullCheckout(login *config.Login, repoOwner, repoName string, index int64, callback func(string) (string, error)) error { | ||||||
| 	client := login.Client() | 	client := login.Client() | ||||||
|  |  | ||||||
| 	localRepo, err := local_git.RepoForWorkdir() | 	localRepo, err := local_git.RepoForWorkdir() | ||||||
| @@ -60,7 +60,7 @@ func PullCheckout(login *config.Login, repoOwner, repoName string, index int64) | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	auth, err := local_git.GetAuthForURL(url, login.Token, login.SSHKey, interact.PromptPassword) | 	auth, err := local_git.GetAuthForURL(url, login.Token, login.SSHKey, callback) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -9,14 +9,13 @@ import ( | |||||||
|  |  | ||||||
| 	"code.gitea.io/tea/modules/config" | 	"code.gitea.io/tea/modules/config" | ||||||
| 	local_git "code.gitea.io/tea/modules/git" | 	local_git "code.gitea.io/tea/modules/git" | ||||||
| 	"code.gitea.io/tea/modules/interact" |  | ||||||
|  |  | ||||||
| 	"code.gitea.io/sdk/gitea" | 	"code.gitea.io/sdk/gitea" | ||||||
| 	git_config "github.com/go-git/go-git/v5/config" | 	git_config "github.com/go-git/go-git/v5/config" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // PullClean deletes local & remote feature-branches for a closed pull | // PullClean deletes local & remote feature-branches for a closed pull | ||||||
| func PullClean(login *config.Login, repoOwner, repoName string, index int64, ignoreSHA bool) error { | func PullClean(login *config.Login, repoOwner, repoName string, index int64, ignoreSHA bool, callback func(string) (string, error)) error { | ||||||
| 	client := login.Client() | 	client := login.Client() | ||||||
|  |  | ||||||
| 	repo, _, err := client.GetRepo(repoOwner, repoName) | 	repo, _, err := client.GetRepo(repoOwner, repoName) | ||||||
| @@ -79,7 +78,7 @@ call me again with the --ignore-sha flag`, pr.Head.Ref) | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
| 	auth, err := local_git.GetAuthForURL(url, login.Token, login.SSHKey, interact.PromptPassword) | 	auth, err := local_git.GetAuthForURL(url, login.Token, login.SSHKey, callback) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 6543
					6543