7feff5abfa
- RepoConfig gains rcGiteaRepo :: Maybe Text for relay matching - Options gains optRelayUrl :: Maybe Text (--relay-url CLI, relay_url config) - connectRelay connects to converge-relay SSE endpoint, parses push events, triggers gitPull on matching repos (by gitea_repo + branch) - Exponential backoff reconnection (1s .. 60s) on disconnect/error - Skips pull if repo is mid-operation (merge/rebase/etc.) - Dependencies: http-client, http-client-tls, http-types, aeson, bytestring - SSE parser handles event:/data: fields, blank-line delimiters, CRLF endings - Updated SPEC.md, example config, and help text
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
# Converge specifications
|
|
|
|
## Creates a commit after a file is changed
|
|
## Only creates one commit when multiple changes occur within a 5 second window
|
|
|
|
## Pulls changes from remote "origin" before pushing commits
|
|
## Rebases when pulling changes from "origin"
|
|
|
|
## Does not operate (stage, commit or push) on git repos when:
|
|
### a rebase is in progess
|
|
### a merge is in progess
|
|
### a revert is in progess
|
|
### a cherry-pick is in progess
|
|
### a bisect is in progess
|
|
|
|
## Supports configurable log levels (debug, info, warn, error)
|
|
## Supports logging to a file instead of stderr via --log-file or log_file config
|
|
## Can notify on pull: per-repo notify_on_pull setting sends a desktop notification when new commits are pulled from the remote
|
|
|
|
## --sync / -s flag runs a single sync cycle (commit + pull + push) and exits, useful for wake-from-sleep hooks
|
|
|
|
## Can connect to a converge-relay SSE endpoint and automatically pull when push events arrive
|
|
### Configured via --relay-url CLI flag or relay_url config file entry
|
|
### Matches repos by gitea_repo field (Gitea repository full_name) and branch
|
|
### Reconnects automatically with exponential backoff on disconnect or error
|