mirror of
https://github.com/thegeeklab/wp-git-action.git
synced 2024-11-13 22:50:41 +00:00
162 lines
4.8 KiB
Go
162 lines
4.8 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/thegeeklab/wp-git-action/plugin"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
// settingsFlags has the cli.Flags for the plugin.Settings.
|
|
func settingsFlags(settings *plugin.Settings, category string) []cli.Flag {
|
|
return []cli.Flag{
|
|
&cli.StringSliceFlag{
|
|
Name: "action",
|
|
Usage: "git action to execute",
|
|
EnvVars: []string{"PLUGIN_ACTION"},
|
|
Destination: &settings.Action,
|
|
Required: true,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "author-name",
|
|
Usage: "git author name",
|
|
EnvVars: []string{"PLUGIN_AUTHOR_NAME", "CI_COMMIT_AUTHOR"},
|
|
Destination: &settings.Repo.Author.Name,
|
|
Required: true,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "author-email",
|
|
Usage: "git author email",
|
|
EnvVars: []string{"PLUGIN_AUTHOR_EMAIL", "CI_COMMIT_AUTHOR_EMAIL"},
|
|
Destination: &settings.Repo.Author.Email,
|
|
Required: true,
|
|
Category: category,
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
Name: "netrc.machine",
|
|
Usage: "netrc remote machine name",
|
|
EnvVars: []string{"PLUGIN_NETRC_MACHINE", "CI_NETRC_MACHINE"},
|
|
Destination: &settings.Netrc.Machine,
|
|
Value: "github.com",
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "netrc.username",
|
|
Usage: "netrc login user on the remote machine",
|
|
EnvVars: []string{"PLUGIN_NETRC_USERNAME", "CI_NETRC_USERNAME"},
|
|
Destination: &settings.Netrc.Login,
|
|
Value: "token",
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "netrc.password",
|
|
Usage: "netrc login password on the remote machine",
|
|
EnvVars: []string{"PLUGIN_NETRC_PASSWORD", "CI_NETRC_PASSWORD"},
|
|
Destination: &settings.Netrc.Password,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "ssh-key",
|
|
Usage: "ssh private key for the remote repository",
|
|
EnvVars: []string{"PLUGIN_SSH_KEY"},
|
|
Destination: &settings.SSHKey,
|
|
Category: category,
|
|
},
|
|
|
|
&cli.StringFlag{
|
|
Name: "remote-url",
|
|
Usage: "url of the remote repository",
|
|
EnvVars: []string{"PLUGIN_REMOTE_URL", "CI_REPO_CLONE_URL"},
|
|
Destination: &settings.Repo.RemoteURL,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "branch",
|
|
Usage: "name of the git source branch",
|
|
EnvVars: []string{"PLUGIN_BRANCH"},
|
|
Destination: &settings.Repo.Branch,
|
|
Value: "main",
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "path",
|
|
Usage: "path to clone git repository",
|
|
EnvVars: []string{"PLUGIN_PATH"},
|
|
Destination: &settings.Repo.WorkDir,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "commit-message",
|
|
Usage: "commit message",
|
|
EnvVars: []string{"PLUGIN_MESSAGE"},
|
|
Destination: &settings.Repo.CommitMsg,
|
|
Value: "[skip ci] commit dirty state",
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "force-push",
|
|
Usage: "enable force push to remote repository",
|
|
EnvVars: []string{"PLUGIN_FORCE"},
|
|
Destination: &settings.Repo.ForcePush,
|
|
Value: false,
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "followtags",
|
|
Usage: "follow tags for pushes to remote repository",
|
|
EnvVars: []string{"PLUGIN_FOLLOWTAGS"},
|
|
Destination: &settings.Repo.PushFollowTags,
|
|
Value: false,
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "insecure-ssl-verify",
|
|
Usage: "set SSL verification of the remote machine",
|
|
EnvVars: []string{"PLUGIN_INSECURE_SSL_VERIFY"},
|
|
Destination: &settings.Repo.InsecureSSLVerify,
|
|
Value: false,
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "empty-commit",
|
|
Usage: "allow empty commits",
|
|
EnvVars: []string{"PLUGIN_EMPTY_COMMIT"},
|
|
Destination: &settings.Repo.EmptyCommit,
|
|
Value: false,
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "no-verify",
|
|
Usage: "bypass the pre-commit and commit-msg hooks",
|
|
EnvVars: []string{"PLUGIN_NO_VERIFY"},
|
|
Destination: &settings.Repo.NoVerify,
|
|
Value: false,
|
|
Category: category,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "pages.directory",
|
|
Usage: "source directory for pages sync",
|
|
EnvVars: []string{"PLUGIN_PAGES_DIRECTORY"},
|
|
Destination: &settings.Pages.Directory,
|
|
Value: "docs/",
|
|
Category: category,
|
|
},
|
|
&cli.StringSliceFlag{
|
|
Name: "pages.exclude",
|
|
Usage: "exclude flag added to pages rsnyc command",
|
|
EnvVars: []string{"PLUGIN_PAGES_EXCLUDE"},
|
|
Destination: &settings.Pages.Exclude,
|
|
Category: category,
|
|
},
|
|
&cli.BoolFlag{
|
|
Name: "pages.delete",
|
|
Usage: "delete flag added to pages rsync command",
|
|
EnvVars: []string{"PLUGIN_PAGES_DELETE"},
|
|
Destination: &settings.Pages.Delete,
|
|
Value: true,
|
|
Category: category,
|
|
},
|
|
}
|
|
}
|