@@ -0,0 +1,28 @@
+package cmd
+
+import (
+ "github.com/spf13/cobra"
+)
+
+func mirrorCommand() *cobra.Command {
+ cmd := &cobra.Command{
+ Use: "is-mirror REPOSITORY",
+ Short: "Whether a repository is a mirror",
+ Args: cobra.ExactArgs(1),
+ PersistentPreRunE: checkIfReadable,
+ RunE: func(cmd *cobra.Command, args []string) error {
+ cfg, _ := fromContext(cmd)
+ rn := args[0]
+ rr, err := cfg.Backend.Repository(rn)
+ if err != nil {
+ return err
+ }
+
+ isMirror := rr.IsMirror()
+ cmd.Println(isMirror)
+ return nil
+ },
+ }
+
+ return cmd
+}
@@ -19,6 +19,7 @@ func repoCommand() *cobra.Command {
hiddenCommand(),
importCommand(),
listCommand(),
+ mirrorCommand(),
privateCommand(),
projectName(),
renameCommand(),
@@ -26,5 +27,56 @@ func repoCommand() *cobra.Command {
treeCommand(),
)
+ cmd.AddCommand(
+ &cobra.Command{
+ Use: "info REPOSITORY",
+ Short: "Get information about a repository",
+ Args: cobra.ExactArgs(1),
+ PersistentPreRunE: checkIfReadable,
+ RunE: func(cmd *cobra.Command, args []string) error {
+ cfg, _ := fromContext(cmd)
+ rn := args[0]
+ rr, err := cfg.Backend.Repository(rn)
+ if err != nil {
+ return err
+ }
+
+ r, err := rr.Open()
+ if err != nil {
+ return err
+ }
+
+ head, err := r.HEAD()
+ if err != nil {
+ return err
+ }
+
+ branches, _ := r.Branches()
+ tags, _ := r.Tags()
+ cmd.Println("Project Name:", rr.ProjectName())
+ cmd.Println("Repository:", rr.Name())
+ cmd.Println("Description:", rr.Description())
+ cmd.Println("Private:", rr.IsPrivate())
+ cmd.Println("Hidden:", rr.IsHidden())
+ cmd.Println("Mirror:", rr.IsMirror())
+ cmd.Println("Default Branch:", head.Name().Short())
+ if len(branches) > 0 {
+ cmd.Println("Branches:")
+ for _, b := range branches {
+ cmd.Println(" -", b)
+ }
+ }
+ if len(tags) > 0 {
+ cmd.Println("Tags:")
+ for _, t := range tags {
+ cmd.Println(" -", t)
+ }
+ }
+
+ return nil
+ },
+ },
+ )
+
return cmd
}