Compare commits

...

12 commits

Author SHA1 Message Date
Mark Randall Havens
8ee1756dec Forgejo metadata link commit at 2025-06-06 06:21:49 — 22a9e269d7 2025-06-06 06:21:50 -05:00
Mark Randall Havens
22a9e269d7 Post-Radicle sync at 2025-06-06 06:21:43 2025-06-06 06:21:48 -05:00
Mark Randall Havens
e306f926dd Update Radicle metadata at 2025-06-06 06:21:46 — dfecd5c75e 2025-06-06 06:21:46 -05:00
Mark Randall Havens
dfecd5c75e Post-Local sync at 2025-06-06 06:21:43 2025-06-06 06:21:44 -05:00
Mark Randall Havens
c097df2bf8 Local metadata link commit at 2025-06-06 06:21:43 — file:///home/mrhavens/git-local-repos/git-sigil.git 2025-06-06 06:21:44 -05:00
Mark Randall Havens
f9a30495fd Post-GitHub sync at 2025-06-06 05:49:34 2025-06-06 05:52:26 -05:00
Mark Randall Havens
073f175ef0 GitHub metadata link commit at 2025-06-06 05:52:24 — a765ce196b 2025-06-06 05:52:25 -05:00
Mark Randall Havens
a765ce196b Post-Bitbucket sync at 2025-06-06 05:49:34 2025-06-06 05:52:14 -05:00
Mark Randall Havens
da5d265a6a Bitbucket metadata link commit at 2025-06-06 05:52:10 — e0305269ef 2025-06-06 05:52:10 -05:00
Mark Randall Havens
e0305269ef Post-GitLab sync at 2025-06-06 05:49:34 2025-06-06 05:51:51 -05:00
Mark Randall Havens
95d8e69f82 GitLab metadata link commit at 2025-06-06 05:51:49 — 6f40e2c7c9 2025-06-06 05:51:49 -05:00
Mark Randall Havens
6f40e2c7c9 Post-Forgejo sync at 2025-06-06 05:49:34 2025-06-06 05:51:40 -05:00
11 changed files with 64 additions and 283 deletions

View file

@ -1 +1 @@
5a181ca64cf2cd665dd410fe37dd81b61c1b72bb
dfecd5c75ea8018ab15082f2201ac4b8dda7411e

View file

@ -6,24 +6,24 @@
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Remote Label**: `bitbucket`
- **Default Branch**: `master`
- **This Commit Date**: `2025-06-06 05:51:12`
- **This Commit Date**: `2025-06-06 05:52:10`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:51:12`
- **Last Commit SHA**: `765171ce2d62556d9f270098b28449021236e395`
- **This Commit Timestamp**: `2025-06-06 05:52:10`
- **Last Commit SHA**: `e0305269ef8c3de783a5d32000fd087ab3c8032e`
- **Last Commit Message**: `Post-GitLab sync at 2025-06-06 05:49:34`
- **Last Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Last Commit Date**: `Fri Jun 6 05:51:01 2025 -0500`
- **This Commit URL**: [https://bitbucket.org/thefoldwithin/git-sigil/commits/765171ce2d62556d9f270098b28449021236e395](https://bitbucket.org/thefoldwithin/git-sigil/commits/765171ce2d62556d9f270098b28449021236e395)
- **Last Commit Date**: `Fri Jun 6 05:51:51 2025 -0500`
- **This Commit URL**: [https://bitbucket.org/thefoldwithin/git-sigil/commits/e0305269ef8c3de783a5d32000fd087ab3c8032e](https://bitbucket.org/thefoldwithin/git-sigil/commits/e0305269ef8c3de783a5d32000fd087ab3c8032e)
---
## 📊 Repo Status
- **Total Commits**: `670`
- **Total Commits**: `682`
- **Tracked Files**: `64`
- **Uncommitted Changes**: `No`
- **Latest Tag**: `None`
@ -52,7 +52,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 48 minutes`
- **System Uptime**: `up 4 hours, 49 minutes`
---

View file

@ -6,24 +6,24 @@
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Remote Label**: `github`
- **Default Branch**: `master`
- **This Commit Date**: `2025-06-06 05:51:27`
- **This Commit Date**: `2025-06-06 05:52:24`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:51:27`
- **Last Commit SHA**: `b567636f2818d22ed7a836ac7445b815fa03e142`
- **This Commit Timestamp**: `2025-06-06 05:52:24`
- **Last Commit SHA**: `a765ce196b2420cb0148acb23288c100c17a3219`
- **Last Commit Message**: `Post-Bitbucket sync at 2025-06-06 05:49:34`
- **Last Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Last Commit Date**: `Fri Jun 6 05:51:17 2025 -0500`
- **This Commit URL**: [https://github.com/mrhavens/git-sigil/commit/b567636f2818d22ed7a836ac7445b815fa03e142](https://github.com/mrhavens/git-sigil/commit/b567636f2818d22ed7a836ac7445b815fa03e142)
- **Last Commit Date**: `Fri Jun 6 05:52:14 2025 -0500`
- **This Commit URL**: [https://github.com/mrhavens/git-sigil/commit/a765ce196b2420cb0148acb23288c100c17a3219](https://github.com/mrhavens/git-sigil/commit/a765ce196b2420cb0148acb23288c100c17a3219)
---
## 📊 Repo Status
- **Total Commits**: `672`
- **Total Commits**: `684`
- **Tracked Files**: `64`
- **Uncommitted Changes**: `No`
- **Latest Tag**: `None`
@ -48,7 +48,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 49 minutes`
- **System Uptime**: `up 4 hours, 50 minutes`
- **MAC Address**: `00:15:5d:86:d8:cc`
- **Local IP**: `172.18.207.124`
- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics`

View file

@ -6,24 +6,24 @@
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Remote Label**: `gitlab`
- **Default Branch**: `master`
- **Repo Created**: `2025-06-06 05:50:59`
- **Repo Created**: `2025-06-06 05:51:49`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:50:59`
- **This Commit SHA**: `4eaa128b8d998acf8ea2bb3e2023345b54a7c67f`
- **This Commit Timestamp**: `2025-06-06 05:51:49`
- **This Commit SHA**: `6f40e2c7c99ffcfdf263715e2b69dc8de4addabb`
- **Last Commit Message**: `Post-Forgejo sync at 2025-06-06 05:49:34`
- **Last Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Last Commit Date**: `Fri Jun 6 05:50:47 2025 -0500`
- **This Commit URL**: [https://gitlab.com/mrhavens/git-sigil/-/commit/4eaa128b8d998acf8ea2bb3e2023345b54a7c67f](https://gitlab.com/mrhavens/git-sigil/-/commit/4eaa128b8d998acf8ea2bb3e2023345b54a7c67f)
- **Last Commit Date**: `Fri Jun 6 05:51:40 2025 -0500`
- **This Commit URL**: [https://gitlab.com/mrhavens/git-sigil/-/commit/6f40e2c7c99ffcfdf263715e2b69dc8de4addabb](https://gitlab.com/mrhavens/git-sigil/-/commit/6f40e2c7c99ffcfdf263715e2b69dc8de4addabb)
---
## 📊 Repo Status
- **Total Commits**: `668`
- **Total Commits**: `680`
- **Tracked Files**: `64`
- **Uncommitted Changes**: `No`
- **Latest Tag**: `None`
@ -48,7 +48,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 48 minutes`
- **System Uptime**: `up 4 hours, 49 minutes`
- **MAC Address**: `00:15:5d:86:d8:cc`
- **Local IP**: `172.18.207.124`
- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics`

View file

@ -6,26 +6,26 @@
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Remote Label**: `local`
- **Default Branch**: `master`
- **Repo Created**: `2025-06-06 05:51:28`
- **Repo Created**: `2025-06-06 06:21:43`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:51:28`
- **Last Commit SHA**: `87be8e1f1a32571a9b9fadc8884e60735e0534c8`
- **This Commit Timestamp**: `2025-06-06 06:21:43`
- **Last Commit SHA**: `f9a30495fd65bed41ba4e7de8e7443dd777c98c7`
- **Last Commit Message**: `Post-GitHub sync at 2025-06-06 05:49:34`
- **Last Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Last Commit Date**: `Fri Jun 6 05:51:28 2025 -0500`
- **Last Commit Date**: `Fri Jun 6 05:52:26 2025 -0500`
- **This Commit URL**: `file:///home/mrhavens/git-local-repos/git-sigil.git`
---
## 📊 Repo Status
- **Total Commits**: `674`
- **Total Commits**: `686`
- **Tracked Files**: `64`
- **Uncommitted Changes**: `No`
- **Uncommitted Changes**: `Yes`
- **Latest Tag**: `None`
---
@ -48,7 +48,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 49 minutes`
- **System Uptime**: `up 5 hours, 18 minutes`
- **MAC Address**: `00:15:5d:86:d8:cc`
- **Local IP**: `172.18.207.124`
- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics`

View file

@ -62,6 +62,12 @@
"branch": "master",
"commit": "87be8e1f1a32571a9b9fadc8884e60735e0534c8",
"message": "Post-GitHub sync at 2025-06-06 05:49:34"
},
{
"timestamp": "2025-06-06 06:21:43",
"branch": "master",
"commit": "f9a30495fd65bed41ba4e7de8e7443dd777c98c7",
"message": "Post-GitHub sync at 2025-06-06 05:49:34"
}
]
}

View file

@ -63,3 +63,11 @@
[2025-06-06 05:51:35] Radicle: RID=rad:z3FEj7rF8gZw9eFksCuiN43qjzrex, Peer ID=z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz
CLI: rad inspect rad:z3FEj7rF8gZw9eFksCuiN43qjzrex # View project details
CLI: git ls-tree -r --name-only HEAD # View file structure
[2025-06-06 05:51:40] Forgejo: https://remember.thefoldwithin.earth/mrhavens/git-sigil
[2025-06-06 05:51:51] GitLab: https://gitlab.com/mrhavens/git-sigil
[2025-06-06 05:52:14] Bitbucket: https://bitbucket.org/thefoldwithin/git-sigil
[2025-06-06 05:52:26] GitHub: https://github.com/mrhavens/git-sigil
[2025-06-06 06:21:44] Local:
[2025-06-06 06:21:48] Radicle: RID=rad:z3FEj7rF8gZw9eFksCuiN43qjzrex, Peer ID=z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz
CLI: rad inspect rad:z3FEj7rF8gZw9eFksCuiN43qjzrex # View project details
CLI: git ls-tree -r --name-only HEAD # View file structure

View file

@ -2,28 +2,28 @@
- **Project Name**: `git-sigil`
- **Radicle URN**: `rad://z3FEj7rF8gZw9eFksCuiN43qjzrex`
- **Public Gateway**: [https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/5a181ca64cf2cd665dd410fe37dd81b61c1b72bb](https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/5a181ca64cf2cd665dd410fe37dd81b61c1b72bb)
- **Public Gateway**: [https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/dfecd5c75ea8018ab15082f2201ac4b8dda7411e](https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/dfecd5c75ea8018ab15082f2201ac4b8dda7411e)
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Default Branch**: `master`
- **Repo Created**: `2025-06-06 05:51:31`
- **Repo Created**: `2025-06-06 06:21:46`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:51:31`
- **Last Commit SHA**: `5a181ca64cf2cd665dd410fe37dd81b61c1b72bb`
- **Last Commit Message**: `Post-Local sync at 2025-06-06 05:49:34`
- **This Commit Timestamp**: `2025-06-06 06:21:46`
- **Last Commit SHA**: `dfecd5c75ea8018ab15082f2201ac4b8dda7411e`
- **Last Commit Message**: `Post-Local sync at 2025-06-06 06:21:43`
- **Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Commit Date**: `Fri Jun 6 05:51:29 2025 -0500`
- **This Commit URL**: [https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/5a181ca64cf2cd665dd410fe37dd81b61c1b72bb](https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/5a181ca64cf2cd665dd410fe37dd81b61c1b72bb)
- **Commit Date**: `Fri Jun 6 06:21:44 2025 -0500`
- **This Commit URL**: [https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/dfecd5c75ea8018ab15082f2201ac4b8dda7411e](https://app.radicle.xyz/nodes/ash.radicle.garden/rad:z3FEj7rF8gZw9eFksCuiN43qjzrex/tree/dfecd5c75ea8018ab15082f2201ac4b8dda7411e)
---
## 📊 Repo Status
- **Total Commits**: `676`
- **Tracked Files**: `64`
- **Total Commits**: `688`
- **Tracked Files**: `63`
- **Uncommitted Changes**: `Yes`
- **Latest Tag**: `None`
@ -47,7 +47,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 49 minutes`
- **System Uptime**: `up 5 hours, 18 minutes`
- **MAC Address**: `00:15:5d:86:d8:cc`
- **Local IP**: `172.18.207.124`
- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics`

View file

@ -6,25 +6,25 @@
- **Local Repo Path**: `/home/mrhavens/tmpwork/git-sigil`
- **Remote Label**: `remember`
- **Default Branch**: `master`
- **Repo Created**: `2025-06-06 05:51:37`
- **Repo Created**: `2025-06-06 06:21:49`
---
## 📦 Commit Info
- **This Commit Timestamp**: `2025-06-06 05:51:37`
- **Last Commit SHA**: `e3ab0b87d902fd4ba7fb5c2e5926cd7c2a9a0857`
- **Last Commit Message**: `Post-Radicle sync at 2025-06-06 05:49:34`
- **This Commit Timestamp**: `2025-06-06 06:21:49`
- **Last Commit SHA**: `22a9e269d72f11b33d925e352c1fa4658884f4aa`
- **Last Commit Message**: `Post-Radicle sync at 2025-06-06 06:21:43`
- **Last Commit Author**: `Mark Randall Havens <mark.r.havens@gmail.com>`
- **Last Commit Date**: `Fri Jun 6 05:51:35 2025 -0500`
- **This Commit URL**: [https://remember.thefoldwithin.earth/mrhavens/git-sigil/commit/e3ab0b87d902fd4ba7fb5c2e5926cd7c2a9a0857](https://remember.thefoldwithin.earth/mrhavens/git-sigil/commit/e3ab0b87d902fd4ba7fb5c2e5926cd7c2a9a0857)
- **Last Commit Date**: `Fri Jun 6 06:21:48 2025 -0500`
- **This Commit URL**: [https://remember.thefoldwithin.earth/mrhavens/git-sigil/commit/22a9e269d72f11b33d925e352c1fa4658884f4aa](https://remember.thefoldwithin.earth/mrhavens/git-sigil/commit/22a9e269d72f11b33d925e352c1fa4658884f4aa)
---
## 📊 Repo Status
- **Total Commits**: `678`
- **Tracked Files**: `64`
- **Total Commits**: `690`
- **Tracked Files**: `63`
- **Uncommitted Changes**: `No`
- **Latest Tag**: `None`
@ -48,7 +48,7 @@
- **Running in Docker**: `No`
- **Running in WSL**: `Yes`
- **Virtual Machine**: `wsl`
- **System Uptime**: `up 4 hours, 49 minutes`
- **System Uptime**: `up 5 hours, 18 minutes`
- **MAC Address**: `00:15:5d:86:d8:cc`
- **Local IP**: `172.18.207.124`
- **CPU Model**: `AMD A6-3420M APU with Radeon(tm) HD Graphics`

View file

@ -109,11 +109,11 @@ The following platforms host the \`$REPO_NAME\` repository, each chosen for its
### 2. Forgejo
- **URL**: [$FORGEJO_URL]($FORGEJO_URL)
- **Purpose**: Forgejo is a self-hosted, open-source git platform running on \`remember.thefoldwithin.earth\` (user: \`mrhavens\`, SSH port: 222). It provides full control over the repository, ensuring sovereignty and independence from third-party providers.
- **Purpose**: Forgejo is a self-hosted, open-source git platform running on \`remember.thefoldwithin.earth\`. It provides full control over the repository, ensuring sovereignty and independence from third-party providers.
- **Value**: Enhances resilience by hosting the repository on a sovereign, redundant system with automated backups and deployment strategies, reducing risks of external interference or service disruptions.
- **Access Details**: SSH access uses port 222:
\`\`\`bash
ssh -T -p 222 git@remember.thefoldwithin.earth
ssh -T -p 222 username@remember.thefoldwithin.earth
\`\`\`
### 3. GitLab

View file

@ -1,233 +0,0 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# ╭─────────────────────────────────────╮
# │ CONFIGURATION │
# ╰─────────────────────────────────────╮
REPO_PATH=$(git rev-parse --show-toplevel 2>/dev/null) || error "Not inside a Git repository"
REPO_NAME=$(basename "$REPO_PATH")
GITFIELD_DIR="$REPO_PATH/.gitfield"
LOG_FILE="$GITFIELD_DIR/pushed.log"
GITFIELD_MD="$REPO_PATH/GITFIELD.md"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
SCRIPT_VERSION="1.0"
# URLs for each platform (derived from existing scripts)
GITHUB_URL="https://github.com/mrhavens/$REPO_NAME"
GITLAB_URL="https://gitlab.com/mrhavens/$REPO_NAME"
BITBUCKET_URL="https://bitbucket.org/thefoldwithin/$REPO_NAME"
RADICLE_RID="rad:z3FEj7rF8gZw9eFksCuiN43qjzrex"
RADICLE_PEER_ID="z6Mkw5s3ppo26C7y7tGK5MD8n2GqTHS582PPpeX5Xqbu2Mpz"
# ╭─────────────────────────────────────╮
# │ LOGGING UTILS │
# ╰─────────────────────────────────────╮
info() { echo -e "\e[1;34m[INFO]\e[0m $*" >&2; }
warn() { echo -e "\e[1;33m[WARN]\e[0m $*" >&2; }
error() { echo -e "\e[1;31m[ERROR]\e[0m $*" >&2; exit 1; }
# ╭─────────────────────────────────────╮
# │ SCRIPT LOOKUP FUNCTION │
# ╰─────────────────────────────────────╮
find_script() {
local script_name=$1
local search_paths=(
"$HOME/.local/gitfieldbin"
"$HOME/.local/bin"
"$HOME/.local/gitfield"
"$HOME/.local/bin/gitfield"
"$HOME/.local/bin/gitfieldbin"
)
for path in "${search_paths[@]}"; do
if [ -f "$path/$script_name" ]; then
if [ -x "$path/$script_name" ]; then
if [[ "$path" != "$HOME"* ]]; then
info "Using script: \e[1;31m$path/$script_name\e[0m (outside home directory)"
else
info "Using script: $path/$script_name"
fi
echo "$path/$script_name"
return 0
else
warn "Found $path/$script_name but it is not executable"
fi
fi
done
error "Script $script_name not found in any search path"
}
# ╭─────────────────────────────────────╮
# │ INITIAL SETUP │
# ╰─────────────────────────────────────╮
mkdir -p "$GITFIELD_DIR"
if [ ! -f "$LOG_FILE" ]; then
echo "# Push Log for $REPO_NAME" > "$LOG_FILE"
echo "# Generated by gitfield-sync" >> "$LOG_FILE"
echo "" >> "$LOG_FILE"
fi
# ╭─────────────────────────────────────╮
# │ GENERATE GITFIELD.MD │
# ╰─────────────────────────────────────╮
generate_gitfield_md() {
info "Generating $GITFIELD_MD..."
cat > "$GITFIELD_MD" <<EOF
# 🌐 GitField Recursive Multi-Repository Strategy
## Overview
The \`$REPO_NAME\` project employs a multi-repository strategy across four distinct platforms: **GitHub**, **GitLab**, **Bitbucket**, and **Radicle**. This approach ensures **redundancy**, **resilience**, and **sovereignty** of the project's data and metadata, protecting against deplatforming risks and preserving the integrity of the work. The strategy is a deliberate response to past deplatforming and delisting attempts by individuals such as **Mr. Joel Johnson** ([Mirror post](https://mirror.xyz/neutralizingnarcissism.eth/x40_zDWWrYOJ7nh8Y0fk06_3kNEP0KteSSRjPmXkiGg?utm_medium=social&utm_source=heylink.me)), **Dr. Peter Gaied** ([Paragraph post](https://paragraph.com/@neutralizingnarcissism/%F0%9F%9C%81-the-narcissistic-messiah)), and **Andrew LeCody** ([Mirror post](https://mirror.xyz/neutralizingnarcissism.eth/s3GRxuiZs6vGSGDcPEpCgjaSxwGAViGhmg6a5XTL6s0)), who have sought to undermine or suppress the work of **Mark Randall Havens** ([Substack post](https://theempathictechnologist.substack.com/p/mark-randall-havens-the-architect)). Specifically, Andrew LeCody has attempted to delist the project's content on Google, though it remains accessible on other search engines such as [Bing](https://www.bing.com/search?q=andrew+lecody+neutralizing+narcissism&qs=HS&pq=andrew+lecody), [DuckDuckGo](https://duckduckgo.com/?t=h_&q=andrew+lecody+neutralizing+narcissism&ia=web), and [Yahoo](https://search.yahoo.com/search?p=andrew+lecody+neutralizng+narcissism). By distributing the repository across multiple platforms, we ensure its persistence and accessibility.
---
## 📍 Repository Platforms
The following platforms host the \`$REPO_NAME\` repository, each chosen for its unique strengths and contributions to the project's goals.
### 1. Radicle
- **RID**: $RADICLE_RID
- **Peer ID**: $RADICLE_PEER_ID
- **Purpose**: Radicle is a decentralized, peer-to-peer git platform that ensures sovereignty and censorship resistance. It hosts the repository in a distributed network, independent of centralized servers.
- **Value**: Protects against deplatforming by eliminating reliance on centralized infrastructure, ensuring the project remains accessible in a decentralized ecosystem.
- **Access Details**: To view project details, run:
\`\`\`bash
rad inspect $RADICLE_RID
\`\`\`
To view the file structure, run:
\`\`\`bash
rad ls $RADICLE_RID
\`\`\`
Alternatively, use Git to list files at the current HEAD:
\`\`\`bash
git ls-tree -r --name-only HEAD
\`\`\`
### 2. GitLab
- **URL**: [$GITLAB_URL]($GITLAB_URL)
- **Purpose**: GitLab offers a comprehensive DevOps platform with advanced CI/CD capabilities, private repository options, and robust access controls. It serves as a reliable backup and a platform for advanced automation workflows.
- **Value**: Enhances project resilience with its integrated CI/CD pipelines and independent infrastructure, reducing reliance on a single provider.
### 3. Bitbucket
- **URL**: [$BITBUCKET_URL]($BITBUCKET_URL)
- **Purpose**: Bitbucket provides a secure environment for repository hosting with strong integration into Atlassians ecosystem (e.g., Jira, Trello). It serves as an additional layer of redundancy and a professional-grade hosting option.
- **Value**: Offers enterprise-grade security and integration capabilities, ensuring the project remains accessible even if other platforms face disruptions.
### 4. GitHub
- **URL**: [$GITHUB_URL]($GITHUB_URL)
- **Purpose**: GitHub serves as the primary platform for visibility, collaboration, and community engagement. Its widespread adoption and robust tooling make it ideal for public-facing development, issue tracking, and integration with CI/CD pipelines.
- **Value**: Provides a centralized hub for open-source contributions, pull requests, and project management, ensuring broad accessibility and developer familiarity.
---
## 🛡️ Rationale for Redundancy
The decision to maintain multiple repositories stems from the need to safeguard the project against **deplatforming attempts** and **search engine delistings** and ensure its **long-term availability**. Past incidents involving **Mr. Joel Johnson**, **Dr. Peter Gaied**, and **Andrew LeCody** have highlighted the vulnerability of relying on a single platform or search engine. By distributing the repository across GitHub, GitLab, Bitbucket, and Radicle, we achieve:
- **Resilience**: If one platform removes or restricts access, or if search engines like Google delist content, the project remains accessible on other platforms and discoverable via alternative search engines such as Bing, DuckDuckGo, and Yahoo.
- **Sovereignty**: Radicles decentralized nature ensures the project cannot be fully censored or controlled by any single entity.
- **Diversity**: Each platforms unique features (e.g., GitHubs community, GitLabs CI/CD, Bitbuckets integrations, Radicles decentralization) enhance the projects functionality and reach.
- **Transparency**: Metadata snapshots in the \`.gitfield\` directory provide a verifiable record of the projects state across all platforms.
This multi-repository approach reflects a commitment to preserving the integrity and accessibility of \`$REPO_NAME\`, ensuring it remains available to contributors and users regardless of external pressures.
---
## 📜 Metadata and Logs
- **Metadata Files**: Each platform generates a metadata snapshot in the \`.gitfield\` directory (e.g., \`github.sigil.md\`, \`gitlab.sigil.md\`, etc.), capturing commit details, environment information, and hardware fingerprints.
- **Push Log**: The \`.gitfield/pushed.log\` file records the date, time, and RID/URL of every push operation across all platforms, providing a transparent audit trail.
- **Recursive Sync**: The repository is synchronized across all platforms in a recursive loop (three cycles) to ensure interconnected metadata captures the latest state of the project.
- **Push Order**: The repository is synchronized in the following order: **Radicle → GitLab → Bitbucket → GitHub**. This prioritizes Radicles decentralized, censorship-resistant network as the primary anchor, followed by GitLabs robust DevOps features, Bitbuckets enterprise redundancy, and GitHubs broad visibility, ensuring a resilient and accessible metadata chain.
---
_Auto-generated by \`gitfield-sync\` at $TIMESTAMP (v$SCRIPT_VERSION)._
EOF
git -C "$REPO_PATH" add "$GITFIELD_MD"
git -C "$REPO_PATH" commit -m "Generated GITFIELD.md at $TIMESTAMP" || warn "No changes to commit for $GITFIELD_MD"
info "Generated and committed $GITFIELD_MD"
}
# ╭─────────────────────────────────────╮
# │ LOG URL FUNCTION │
# ╰─────────────────────────────────────╮
log_url() {
local platform=$1
local url=$2
local rid=$3
local peer_id=$4
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
if [ "$platform" = "Radicle" ]; then
echo "[$timestamp] $platform: RID=$rid, Peer ID=$peer_id" >> "$LOG_FILE"
echo " CLI: rad inspect $rid # View project details" >> "$LOG_FILE"
echo " CLI: git ls-tree -r --name-only HEAD # View file structure" >> "$LOG_FILE"
info "Logged push to $LOG_FILE: [$timestamp] $platform: RID=$rid, Peer ID=$peer_id"
else
echo "[$timestamp] $platform: $url" >> "$LOG_FILE"
info "Logged push to $LOG_FILE: [$timestamp] $platform: $url"
fi
}
# ╭─────────────────────────────────────╮
# │ EXECUTE PUSH SCRIPT │
# ╰─────────────────────────────────────╮
execute_push() {
local script_name=$1
local platform=$2
local url=$3
local rid=$4
local peer_id=$5
local script_path
script_path=$(find_script "$script_name") || error "Failed to find $script_name"
info "Executing $platform push with script: $script_path"
if [ -x "$script_path" ]; then
pushd "$REPO_PATH" >/dev/null
"$script_path" || warn "Execution of $script_path failed, continuing..."
log_url "$platform" "$url" "$rid" "$peer_id"
git add . || warn "Nothing to add after $script_path"
git commit -m "Post-$platform sync at $TIMESTAMP" || warn "No changes to commit after $script_path"
popd >/dev/null
else
error "Script $script_path is not executable"
fi
}
# ╭─────────────────────────────────────╮
# │ RECURSIVE PUSH LOOP │
# ╰─────────────────────────────────────╮
run_push_cycle() {
local cycle_number=$1
info "Starting push cycle $cycle_number..."
execute_push "gitfield-local" "Local" "" "" ""
execute_push "gitfield-radicle" "Radicle" "" "$RADICLE_RID" "$RADICLE_PEER_ID"
execute_push "gitfield-gitlab" "GitLab" "$GITLAB_URL" "" ""
execute_push "gitfield-bitbucket" "Bitbucket" "$BITBUCKET_URL" "" ""
execute_push "gitfield-github" "GitHub" "$GITHUB_URL" "" ""
}
# ╭─────────────────────────────────────╮
# │ MAIN EXECUTION │
# ╰─────────────────────────────────────╮
info "Starting gitfield-sync for $REPO_NAME..."
if [ ! -d "$REPO_PATH/.git" ]; then
pushd "$REPO_PATH" >/dev/null
git init
git add .
git commit -m "Initial commit" || warn "Nothing to commit"
popd >/dev/null
fi
run_push_cycle 1
generate_gitfield_md
run_push_cycle 2
run_push_cycle 3
info "✅ gitfield-sync completed successfully."
info "🔗 View logs: $LOG_FILE"
info "🔗 View multi-repo manifest: $GITFIELD_MD"