# Add TLS skip-verify endpoint options

```go
fs.StringVar(&cfg.Target.Token, "target-token", envOr("GITSYNC_TARGET_TOKEN", ""), "target token/password")
fs.StringVar(&cfg.Source.Username, "source-username", envOr("GITSYNC_SOURCE_USERNAME", "git"), "source basic auth username")
fs.StringVar(&cfg.Target.Username, "target-username", envOr("GITSYNC_TARGET_USERNAME", "git"), "target basic auth username")
fs.BoolVar(&cfg.Source.SkipTLSVerify, "source-insecure-skip-tls-verify", envBool("GITSYNC_SOURCE_INSECURE_SKIP_TLS_VERIFY"), "skip TLS certificate verification for the source")
fs.BoolVar(&cfg.Target.SkipTLSVerify, "target-insecure-skip-tls-verify", envBool("GITSYNC_TARGET_INSECURE_SKIP_TLS_VERIFY"), "skip TLS certificate verification for the target")

fs.StringVar(&cfg.Source.BearerToken, "source-bearer-token", envOr("GITSYNC_SOURCE_BEARER_TOKEN", ""), "source bearer token")
fs.StringVar(&cfg.Target.BearerToken, "target-bearer-token", envOr("GITSYNC_TARGET_BEARER_TOKEN", ""), "target bearer token")
```

```go
func envBool(key string) bool {
	value := strings.TrimSpace(strings.ToLower(os.Getenv(key)))
	return value == "1" || value == "true" || value == "yes" || value == "on"
}

func usageError(message string) error {
	usage := "usage:\n  git-sync sync [flags] <source-url> <target-url>\n  git-sync plan [flags] <source-url> <target-url>\n  git-sync bootstrap [flags] <source-url> <target-url>\n  git-sync probe [flags] <source-url> [target-url]\n  git-sync fetch [flags] <source-url>\n\nsync/plan flags:\n  --branch main,dev\n  --map main:stable\n  --tags\n  --force\n  --prune\n  --stats\n  --measure-memory\n  --json\n  --protocol auto|v1|v2\n  --source-token ...\n  --target-token ...\n  --source-username git\n  --target-username git\n  --source-bearer-token ...\n  --target-bearer-token ...\n\nbootstrap flags:\n  --branch main,dev\n  --map main:stable\n  --tags\n  --max-pack-bytes 104857600\n  --batch-max-pack-bytes 1073741824\n  --stats\n  --measure-memory\n  --json\n  --protocol auto|v1|v2\n  --source-token ...\n  --target-token ...\n  --source-username git\n  --target-username git\n  --source-bearer-token ...\n  --target-bearer-token ...\n\nprobe flags:\n  --tags\n  --stats\n  --measure-memory\n  --json\n  --protocol auto|v1|v2\n  --source-token ...\n  --source-username git\n  --source-bearer-token ...\n  --target-token ...\n  --target-username git\n  --target-bearer-token ...\n\nfetch flags:\n  --branch main,dev\n  --tags\n  --stats\n  --measure-memory\n  --json\n  --protocol auto|v1|v2\n  --have-ref main\n  --have <hash>\n\n"
	if message == "" {
		return errors.New(strings.TrimSpace(usage))
	}
}
```

### Main Configuration Structs

```go
type Endpoint struct {
	URL         string
	Username    string
	Token       string
	BearerToken string
	SkipTLSVerify bool
}

type Config struct {
	Source       Endpoint
	Target       Endpoint
	Branches     []string
	Mappings     []RefMapping
	IncludeTags  bool
	DryRun       bool
	Verbose      bool
	ShowStats    bool
	MeasureMemory bool
	Force        bool
	Prune        bool
	MaxPackBytes int64
	BatchMaxPackBytes int64
	ProtocolMode string
}

... // Other struct definitions
```

### Sample Usage Functionality

```go
func (r FetchResult) MarshalJSON() ([]byte, error) {
	type fetchResultJSON struct {
		SourceURL      string    `json:"source_url"`
		RequestedMode  string    `json:"requested_mode"`
		Protocol       string    `json:"protocol"`
		Wants          []RefInfo `json:"wants"`
		Haves          []string  `json:"haves"`
		FetchedObjects int       `json:"fetched_objects"`
		Stats          Stats     `json:"stats"`
	}
	...
}
```

---

This cleaned content preserves the relevant sections and removes non-semantic elements while maintaining the structure in the original markdown.
