mirror of
https://github.com/adamzend/gitea-github-sync.git
synced 2026-10-31 03:11:58 +01:00
Document weekly root cron deployment and quiet-mode verification
This commit is contained in:
1 parent
f8859e8996
commit
b52f880066
4 files changed
+117
-1
No files matched your search
@@ -0,0 +1,46 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## v1.0.2 - 2026-10-19
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
|
||||||
|
- Added `gitea-github-sync.cron`, a system cron example for Monday at 03:00,
|
||||||
|
running as root with `--apply-quiet`.
|
||||||
|
- Documented installing the script at a stable absolute path, installing the
|
||||||
|
cron file with the required ownership/permissions, and checking service/logs.
|
||||||
|
- Clarified that quiet mode detaches the worker and records its final exit
|
||||||
|
status in the log; the launcher's exit status does not confirm sync success.
|
||||||
|
- Included the existing GPL-3.0-only license in the release bundle.
|
||||||
|
|
||||||
|
### Why
|
||||||
|
|
||||||
|
The original server still had an older script without `--apply-quiet`, and the
|
||||||
|
expected weekly cron entry had not been installed. Deploying the already
|
||||||
|
published script and adding the system cron entry resolved those deployment
|
||||||
|
gaps. The reusable cron example and verification instructions make these steps
|
||||||
|
explicit for other installations.
|
||||||
|
|
||||||
|
`--apply-quiet` was already included in v1.0.0 and v1.0.1. The synchronization
|
||||||
|
script in v1.0.2 is byte-for-byte identical to v1.0.1; this release documents and
|
||||||
|
packages the scheduling setup rather than claiming a new quiet-mode code change.
|
||||||
|
|
||||||
|
### Verification
|
||||||
|
|
||||||
|
- Confirmed that the deployed script matches the published v1.0.1 script.
|
||||||
|
- Confirmed the installed weekly root cron entry, active/enabled cron service,
|
||||||
|
required commands, script syntax and successful read-only API access.
|
||||||
|
- The scheduled synchronization itself was not manually triggered during these
|
||||||
|
checks; successful completion must be confirmed in the log after execution.
|
||||||
|
|
||||||
|
## v1.0.1 - 2026-10-04
|
||||||
|
|
||||||
|
- Required an explicit `GITEA_URL` and removed the deployment-specific fallback.
|
||||||
|
- Added base-URL validation and documented custom hosts and web path prefixes.
|
||||||
|
- Made the example configuration independent of a specific Gitea account.
|
||||||
|
|
||||||
|
## v1.0.0 - 2026-10-04
|
||||||
|
|
||||||
|
- First public release: automatic discovery of GitHub mirrors and enrichment
|
||||||
|
with metadata, topics, issues and comments.
|
||||||
|
- Included dry-run, foreground apply and quiet background apply modes,
|
||||||
|
rate-limit handling, locking and English/YunoHost documentation.
|
||||||
@@ -82,6 +82,42 @@ check the log's final `exit_status` to determine the actual result.
|
|||||||
sudo tail -f /var/log/gitea-github-sync.log
|
sudo tail -f /var/log/gitea-github-sync.log
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Weekly cron job
|
||||||
|
|
||||||
|
The release includes [`gitea-github-sync.cron`](gitea-github-sync.cron), which runs
|
||||||
|
the script **as root every Monday at 03:00 in the server's timezone**.
|
||||||
|
First configure `/etc/gitea-github-sync.conf` with your instance URL and tokens.
|
||||||
|
From the extracted release directory, install the script and cron entry:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo install -o root -g root -m 755 ./gitea-github-sync.sh /usr/local/bin/gitea-github-sync.sh
|
||||||
|
sudo install -o root -g root -m 644 ./gitea-github-sync.cron /etc/cron.d/gitea-github-sync
|
||||||
|
```
|
||||||
|
|
||||||
|
This does not overwrite your configuration or trigger an immediate sync. Check
|
||||||
|
for an existing equivalent job before installing, so it is not scheduled twice.
|
||||||
|
This file is for `/etc/cron.d`, where the `root` column is required; do not paste
|
||||||
|
it unchanged into a per-user `crontab -e`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cat /etc/cron.d/gitea-github-sync
|
||||||
|
systemctl is-active cron
|
||||||
|
systemctl is-enabled cron
|
||||||
|
timedatectl show -p Timezone
|
||||||
|
sudo tail -n 100 /var/log/gitea-github-sync.log
|
||||||
|
```
|
||||||
|
|
||||||
|
Cron must be installed and running. On a system with an existing active cron
|
||||||
|
service, a new `/etc/cron.d` file is read automatically without a restart.
|
||||||
|
The log path can be overridden by `QUIET_LOG_FILE`. Look for
|
||||||
|
`Background worker finished: PID=..., exit_status=0` to confirm successful
|
||||||
|
completion. Starting the quiet worker alone does not confirm completion.
|
||||||
|
If using a scheduler that must track the final process exit code, use foreground
|
||||||
|
`--apply` instead. No additional shell output redirection is needed for quiet mode.
|
||||||
|
|
||||||
|
See the [changelog](CHANGELOG.md) for what changed and why. Quiet mode already
|
||||||
|
existed in v1.0.1; v1.0.2 adds the reusable scheduling setup and documentation.
|
||||||
|
|
||||||
**Depending on the number of repositories/mirrors and their issues/comments,
|
**Depending on the number of repositories/mirrors and their issues/comments,
|
||||||
execution can take a very long time, potentially hours.** Quiet mode does not
|
execution can take a very long time, potentially hours.** Quiet mode does not
|
||||||
speed up synchronization. GitHub limits may require a later run.
|
speed up synchronization. GitHub limits may require a later run.
|
||||||
@@ -112,7 +148,7 @@ mock API tests, including multiple mirrors, idempotency, throttling and quiet mo
|
|||||||
|
|
||||||
Download the script or the complete bundle from
|
Download the script or the complete bundle from
|
||||||
[GitHub Releases](https://github.com/adamzend/gitea-github-sync/releases).
|
[GitHub Releases](https://github.com/adamzend/gitea-github-sync/releases).
|
||||||
The latest release is **v1.0.1**, which requires an explicitly configured Gitea URL.
|
The latest release is **v1.0.2**, with weekly root cron setup and deployment notes.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
+29
@@ -57,6 +57,35 @@ requests while still enriching repositories. Non-root runs need LOCK_FILE in
|
|||||||
a writable, trusted directory. All runs must use the same lock file.
|
a writable, trusted directory. All runs must use the same lock file.
|
||||||
No schedule is installed; the script can be invoked by cron or systemd.
|
No schedule is installed; the script can be invoked by cron or systemd.
|
||||||
|
|
||||||
|
Weekly root cron setup (v1.0.2)
|
||||||
|
------------------------------
|
||||||
|
Quiet mode was already supported in v1.0.1. This release keeps the script
|
||||||
|
unchanged and adds a reusable system cron file plus deployment instructions.
|
||||||
|
An older installed copy must be replaced before scheduling --apply-quiet.
|
||||||
|
|
||||||
|
After configuring /etc/gitea-github-sync.conf, run from the release directory:
|
||||||
|
sudo install -o root -g root -m 755 ./gitea-github-sync.sh /usr/local/bin/gitea-github-sync.sh
|
||||||
|
sudo install -o root -g root -m 644 ./gitea-github-sync.cron /etc/cron.d/gitea-github-sync
|
||||||
|
|
||||||
|
The supplied entry runs as root every Monday at 03:00 in the server's timezone.
|
||||||
|
It uses absolute script/configuration paths and an explicit command search PATH.
|
||||||
|
The cron file does not run the task immediately. Check for equivalent existing
|
||||||
|
jobs to avoid duplicate scheduling. This is an /etc/cron.d file with a username
|
||||||
|
column; it cannot be pasted unchanged into a per-user crontab.
|
||||||
|
|
||||||
|
Verify the setup:
|
||||||
|
sudo cat /etc/cron.d/gitea-github-sync
|
||||||
|
systemctl is-active cron
|
||||||
|
systemctl is-enabled cron
|
||||||
|
timedatectl show -p Timezone
|
||||||
|
sudo tail -n 100 /var/log/gitea-github-sync.log
|
||||||
|
|
||||||
|
The cron service must be installed and active. No restart is needed for an
|
||||||
|
already-running cron daemon to read the new entry. Look for the background
|
||||||
|
worker's final exit_status=0 in the log after execution. A valid schedule or
|
||||||
|
successful background launch does not itself prove a completed synchronization.
|
||||||
|
For a customized QUIET_LOG_FILE, inspect that file instead.
|
||||||
|
|
||||||
Complete command-line reference
|
Complete command-line reference
|
||||||
-------------------------------
|
-------------------------------
|
||||||
--dry-run
|
--dry-run
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Install as /etc/cron.d/gitea-github-sync (root:root, mode 644).
|
||||||
|
# Runs every Monday at 03:00 in the server's timezone.
|
||||||
|
SHELL=/bin/sh
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
0 3 * * 1 root /bin/bash /usr/local/bin/gitea-github-sync.sh --config /etc/gitea-github-sync.conf --apply-quiet
|
||||||
Reference in new issue
Block a user