Version control for ArcGIS web maps — exposed as native OpenClaw tools.
GitMap provides Git-like version control for ArcGIS Online and Enterprise Portal web maps. This skill wraps the gitmap CLI as thin subprocess calls, exposing branch, commit, diff, push/pull, and map discovery as callable tools.
8 tools | Thin CLI wrapper | No local database | Requires: gitmap-core Python package
pip install gitmap-core
Set the following environment variables:
export PORTAL_URL="https://your-org.maps.arcgis.com"
export ARCGIS_USERNAME="your_username"
export ARCGIS_PASSWORD="your_password"
Security Note: Prefer using scoped API tokens over plaintext passwords when possible.
https://myorg.maps.arcgis.com)gitmap_list — List available web maps from Portal (with optional filters)gitmap_status — Show working tree status for a local GitMap repogitmap_log — View commit history for a repogitmap_commit — Commit current map state with a messagegitmap_branch — List or create branches in a repogitmap_diff — Show changes between commits or branchesgitmap_push — Push committed changes to ArcGIS Portalgitmap_pull — Pull latest map from ArcGIS Portalgitmap_listDiscover web maps in Portal.
gitmap_list(
query=None, # Search query (e.g., "title:MyMap")
owner=None, # Filter by owner username
tag=None, # Filter by tag
max_results=50, # Max results to return
portal_url=None, # Portal URL (or use PORTAL_URL env var)
username=None, # Portal username (or ARCGIS_USERNAME env var)
password=None, # Portal password (or ARCGIS_PASSWORD env var)
cwd=None, # Working directory (default: home)
)
gitmap_statusShow repo status.
gitmap_status(
cwd, # Path to GitMap repository (required)
)
gitmap_commitCommit current changes.
gitmap_commit(
message, # Commit message (required)
cwd, # Path to GitMap repository (required)
author=None, # Override commit author
)
gitmap_branchList or create branches.
gitmap_branch(
cwd, # Path to GitMap repository (required)
name=None, # Branch name to create (omit to list)
delete=False, # Delete the named branch
)
gitmap_diffShow changes between versions.
gitmap_diff(
cwd, # Path to GitMap repository (required)
branch=None, # Compare with this branch
commit=None, # Compare with this commit hash
)
gitmap_pushPush changes to Portal.
gitmap_push(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to push (default: current)
portal_url=None, # Portal URL
username=None, # Portal username
password=None, # Portal password
)
gitmap_pullPull changes from Portal.
gitmap_pull(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to pull (default: current)
portal_url=None, # Portal URL
username=None, # Portal username
password=None, # Portal password
)
gitmap_logView commit history.
gitmap_log(
cwd, # Path to GitMap repository (required)
branch=None, # Branch to show log for
limit=None, # Max commits to show
)
# Find maps owned by a user
gitmap_list(owner="john.doe", max_results=20)
# → returns table of maps with item IDs
# Then clone manually:
# cd ~/maps && gitmap clone <item_id>
# Check what changed
gitmap_status(cwd="~/maps/MyWebMap")
# Commit changes
gitmap_commit(message="Updated layer symbology", cwd="~/maps/MyWebMap")
# Push to Portal
gitmap_push(cwd="~/maps/MyWebMap")
# List branches
gitmap_branch(cwd="~/maps/MyWebMap")
# Create a feature branch
gitmap_branch(name="feature/new-basemap", cwd="~/maps/MyWebMap")
# After editing, commit and push feature branch
gitmap_commit(message="Added satellite basemap", cwd="~/maps/MyWebMap")
gitmap_push(cwd="~/maps/MyWebMap", branch="feature/new-basemap")
# Recent commits
gitmap_log(cwd="~/maps/MyWebMap", limit=10)
# What changed since main?
gitmap_diff(cwd="~/maps/MyWebMap", branch="main")
HTTP server at localhost:7400 (when running):
python server.py
Endpoints:
POST /tools/{tool_name} — Call a tool with JSON bodyGET /health — Health checkInstall command:
pip install gitmap-core
The skill uses the gitmap_core Python package directly for API access.
gitmap list doesn't require a local repo — it queries Portal directly. NOT implement clone, init,- This skill does merge, checkout, l, or setupsm, context-repos — call the CLI directly for those.
共 1 个版本