Managing your OpenClaw DingTalk robot's configuration, prompts, and extensions through Git transforms a fragile, manually-managed system into a version-controlled, auditable, and recoverable deployment. Every change is tracked. Every version can be restored. Every update can be reviewed before it goes live.
Without version control, your robot configuration is:
With Git, every configuration change is:
openclaw-dingtalk/
├── config/
│ ├── model.json # LLM provider configuration
│ ├── channels.json # DingTalk channel settings
│ └── system-prompt.txt # Main system prompt
├── knowledge/
│ ├── faq.md # FAQ knowledge base
│ ├── products.md # Product information
│ └── policies.md # Company policies
├── extensions/
│ ├── inventory.py # Custom inventory extension
│ ├── crm_lookup.py # CRM integration
│ └── requirements.txt # Python dependencies
├── scripts/
│ ├── deploy.sh # Deployment script
│ ├── rollback.sh # Rollback script
│ └── healthcheck.sh # Health monitoring
├── infrastructure/
│ ├── nginx.conf # Nginx configuration
│ └── cron.conf # Cron job definitions
├── .gitignore
├── .env.example # Environment variable template (no secrets!)
└── CHANGELOG.md # Change log
# .gitignore
.env
*.key
*.pem
.secrets/
config/credentials/
*.enc
node_modules/
__pycache__/
*.pyc
logs/
data/
backups/
Never commit:
.secrets/ directoryOn your Tencent Cloud Lighthouse instance:
cd /opt/openclaw
git init
git remote add origin git@github.com:your-org/openclaw-dingtalk.git
Or clone an existing repo:
cd /opt
git clone git@github.com:your-org/openclaw-dingtalk.git openclaw
Deploy your Lighthouse instance: Tencent Cloud Lighthouse OpenClaw Offer
main → Production (deployed to live server)
staging → Testing (deployed to staging server)
feature/* → Feature branches for new capabilities
hotfix/* → Emergency fixes
# 1. Create a feature branch
git checkout -b feature/add-inventory-extension
# 2. Make changes
vim extensions/inventory.py
vim config/system-prompt.txt
# 3. Commit with descriptive message
git add .
git commit -m "feat: add inventory check extension
- Added inventory API integration
- Updated system prompt to include inventory queries
- Added product lookup by SKU and name"
# 4. Push and create pull request
git push origin feature/add-inventory-extension
Before merging to main:
#!/bin/bash
# scripts/deploy.sh
set -e
echo "Deploying OpenClaw DingTalk Bot..."
# Pull latest from main
cd /opt/openclaw
git fetch origin
git checkout main
git pull origin main
# Install dependencies
pip3 install -r extensions/requirements.txt
# Validate configs
python3 -c "import json; [json.load(open(f)) for f in ['config/model.json', 'config/channels.json']]"
echo "Configuration validation passed."
# Restart daemon
openclaw daemon stop
sleep 2
openclaw daemon start
sleep 5
# Verify
if openclaw daemon status | grep -q "running"; then
echo "Deployment successful!"
git tag "deploy-$(date +%Y%m%d-%H%M)"
git push origin --tags
else
echo "DEPLOYMENT FAILED — rolling back"
/opt/openclaw/scripts/rollback.sh
exit 1
fi
#!/bin/bash
# scripts/rollback.sh
cd /opt/openclaw
# Find the previous deployment tag
PREV_TAG=$(git tag -l "deploy-*" | sort -r | sed -n '2p')
if [ -z "$PREV_TAG" ]; then
echo "No previous deployment found. Cannot rollback."
exit 1
fi
echo "Rolling back to $PREV_TAG..."
git checkout $PREV_TAG
openclaw daemon stop
sleep 2
openclaw daemon start
echo "Rollback to $PREV_TAG complete."
Prompt changes are the most impactful changes. Track them carefully:
# View history of prompt changes
git log --oneline -- config/system-prompt.txt
# Compare current prompt with previous version
git diff HEAD~1 -- config/system-prompt.txt
# See who changed the prompt and when
git blame config/system-prompt.txt
Use semantic versioning in commit messages for prompt changes:
prompt(v2.1): Add escalation trigger for billing queries
prompt(v2.2): Tighten response length to 150 words
prompt(v3.0): Major rewrite — added inventory tool instructions
# .github/workflows/deploy.yml
name: Deploy to Lighthouse
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate configs
run: |
python3 -c "import json; json.load(open('config/model.json'))"
python3 -c "import json; json.load(open('config/channels.json'))"
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.LIGHTHOUSE_IP }}
username: root
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /opt/openclaw
git pull origin main
pip3 install -r extensions/requirements.txt
openclaw daemon stop && openclaw daemon start
Git provides built-in compliance support:
| Requirement | Git Feature |
|---|---|
| Change tracking | git log — full history |
| Attribution | git blame — who changed what |
| Audit trail | Commit history with timestamps |
| Rollback | git checkout to any version |
| Review process | Pull requests with approvals |
Git management for your DingTalk robot is not overhead — it is insurance. The first time a prompt change breaks your bot and you restore it in 30 seconds with git checkout, you will never deploy without version control again.
Set it up once. Follow the workflow. Sleep well knowing every change is tracked, tested, and reversible.
Reliable infrastructure to match: Tencent Cloud Lighthouse Special Offer