diff --git a/cmd/root.go b/cmd/root.go index dedd683..2aeaba4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -58,5 +58,9 @@ func Execute(ctx context.Context) error { rootCmd.AddCommand(pushCmd) pushFlags.Init(pushCmd) + rootCmd.AddCommand(syncCmd) + pullFlags.Init(syncCmd) + pushFlags.Init(syncCmd) + return rootCmd.ExecuteContext(ctx) } diff --git a/cmd/sync.go b/cmd/sync.go new file mode 100644 index 0000000..301ed48 --- /dev/null +++ b/cmd/sync.go @@ -0,0 +1,25 @@ +package cmd + +import ( + "github.com/github/codeql-action-sync/internal/cachedirectory" + "github.com/github/codeql-action-sync/internal/pull" + "github.com/github/codeql-action-sync/internal/push" + "github.com/spf13/cobra" +) + +var syncCmd = &cobra.Command{ + Use: "sync", + Short: "Sync the CodeQL Action from GitHub to a GitHub Enterprise Server installation.", + RunE: func(cmd *cobra.Command, args []string) error { + cacheDirectory := cachedirectory.NewCacheDirectory(rootFlags.cacheDir) + err := pull.Pull(cmd.Context(), cacheDirectory) + if err != nil { + return err + } + err = push.Push(cmd.Context(), cacheDirectory, pushFlags.destinationURL, pushFlags.destinationToken, pushFlags.destinationRepository) + if err != nil { + return err + } + return nil + }, +}