GitMap技能Skill gitmap

GitMap 技能是一个为 ArcGIS Online 和 Enterprise Portal 网络地图提供类似 Git 版本控制功能的工具集。它通过包装 gitmap CLI,实现了对网络地图的分支管理、提交历史、差异对比、推送拉取和地图发现等核心操作。该工具专为地理信息系统(GIS)开发者和地图管理员设计,用于高效管理地图版本、协作编辑和地图配置变更追踪。关键词:ArcGIS 版本控制,GitMap,网络地图管理,GIS 开发,地图协作,版本管理工具,ArcGIS Online,Portal 同步。

DevOps 0 次安装 0 次浏览 更新于 2/24/2026

GitMap 技能

ArcGIS 网络地图的版本控制 — 作为原生 OpenClaw 工具公开。

概述

GitMap 为 ArcGIS Online 和 Enterprise Portal 网络地图提供类似 Git 的版本控制。此技能将 gitmap CLI 包装为轻量级子进程调用,将分支、提交、差异、推送/拉取和地图发现作为可调用工具公开。

8 个工具 | 轻量 CLI 包装器 | 无本地数据库 | 要求:gitmap-core Python 包


先决条件

安装 GitMap Core

pip install gitmap-core

配置凭据

设置以下环境变量:

export PORTAL_URL="https://your-org.maps.arcgis.com"
export ARCGIS_USERNAME="your_username"
export ARCGIS_PASSWORD="your_password"

安全提示: 如果可能,优先使用有范围的 API 令牌而不是明文密码。


必需的环境变量

  • PORTAL_URL:您的 ArcGIS Portal 或 AGOL URL(例如,https://myorg.maps.arcgis.com
  • ARCGIS_USERNAME:Portal 用户名
  • ARCGIS_PASSWORD:Portal 密码(优先使用有范围的 API 令牌而不是明文密码)

工具

发现与状态

  • gitmap_list — 从 Portal 列出可用的网络地图(带有可选过滤器)
  • gitmap_status — 显示本地 GitMap 仓库的工作树状态
  • gitmap_log — 查看仓库的提交历史

版本控制

  • gitmap_commit — 使用消息提交当前地图状态
  • gitmap_branch — 列出或创建仓库中的分支
  • gitmap_diff — 显示提交或分支之间的更改

Portal 同步

  • gitmap_push — 将已提交的更改推送到 ArcGIS Portal
  • gitmap_pull — 从 ArcGIS Portal 拉取最新地图

工具参考

gitmap_list

在 Portal 中查找网络地图。

gitmap_list(
    query=None,        # 搜索查询(例如,"title:MyMap")
    owner=None,        # 按所有者用户名过滤
    tag=None,          # 按标签过滤
    max_results=50,    # 返回的最大结果数
    portal_url=None,   # Portal URL(或使用 PORTAL_URL 环境变量)
    username=None,     # Portal 用户名(或 ARCGIS_USERNAME 环境变量)
    password=None,     # Portal 密码(或 ARCGIS_PASSWORD 环境变量)
    cwd=None,          # 工作目录(默认:主目录)
)

gitmap_status

显示仓库状态。

gitmap_status(
    cwd,               # GitMap 仓库的路径(必需)
)

gitmap_commit

提交当前更改。

gitmap_commit(
    message,           # 提交消息(必需)
    cwd,               # GitMap 仓库的路径(必需)
    author=None,       # 覆盖提交作者
)

gitmap_branch

列出或创建分支。

gitmap_branch(
    cwd,               # GitMap 仓库的路径(必需)
    name=None,         # 要创建的分支名称(省略则列出)
    delete=False,      # 删除指定分支
)

gitmap_diff

显示版本之间的更改。

gitmap_diff(
    cwd,               # GitMap 仓库的路径(必需)
    branch=None,       # 与此分支比较
    commit=None,       # 与此提交哈希比较
)

gitmap_push

将更改推送到 Portal。

gitmap_push(
    cwd,               # GitMap 仓库的路径(必需)
    branch=None,       # 要推送的分支(默认:当前分支)
    portal_url=None,   # Portal URL
    username=None,     # Portal 用户名
    password=None,     # Portal 密码
)

gitmap_pull

从 Portal 拉取更改。

gitmap_pull(
    cwd,               # GitMap 仓库的路径(必需)
    branch=None,       # 要拉取的分支(默认:当前分支)
    portal_url=None,   # Portal URL
    username=None,     # Portal 用户名
    password=None,     # Portal 密码
)

gitmap_log

查看提交历史。

gitmap_log(
    cwd,               # GitMap 仓库的路径(必需)
    branch=None,       # 要显示日志的分支
    limit=None,        # 要显示的最大提交数
)

使用示例

发现地图并克隆

# 查找用户拥有的地图
gitmap_list(owner="john.doe", max_results=20)
# → 返回包含项目 ID 的地图表

# 然后手动克隆:
# cd ~/maps && gitmap clone <item_id>

典型的编辑 → 提交 → 推送循环

# 检查更改内容
gitmap_status(cwd="~/maps/MyWebMap")

# 提交更改
gitmap_commit(message="Updated layer symbology", cwd="~/maps/MyWebMap")

# 推送到 Portal
gitmap_push(cwd="~/maps/MyWebMap")

功能分支工作流

# 列出分支
gitmap_branch(cwd="~/maps/MyWebMap")

# 创建功能分支
gitmap_branch(name="feature/new-basemap", cwd="~/maps/MyWebMap")

# 编辑后,提交并推送功能分支
gitmap_commit(message="Added satellite basemap", cwd="~/maps/MyWebMap")
gitmap_push(cwd="~/maps/MyWebMap", branch="feature/new-basemap")

查看历史记录

# 最近的提交
gitmap_log(cwd="~/maps/MyWebMap", limit=10)

# 自 main 分支以来发生了什么变化?
gitmap_diff(cwd="~/maps/MyWebMap", branch="main")

服务器

HTTP 服务器位于 localhost:7400(运行时):

python server.py

端点:

  • POST /tools/{tool_name} — 使用 JSON 正文调用工具
  • GET /health — 健康检查

安装

安装命令:

pip install gitmap-core

该技能直接使用 gitmap_core Python 包进行 API 访问。


注意事项与已知限制

  • 大多数命令需要工作目录 — GitMap 仓库像 Git 一样是基于目录的。
  • Portal 凭据 可以通过每次调用传递或通过环境变量(PORTAL_URL, ARCGIS_USERNAME, ARCGIS_PASSWORD)设置。
  • gitmap list 不需要本地仓库 — 它直接查询 Portal。
  • 输出是原始 CLI 文本 — 在可能的情况下进行轻度解析以获取结构化响应。
  • 此技能不实现 cloneinitmergecheckoutsetupcontext-repos — 对于这些操作,请直接调用 CLI。

相关