返回顶部
a

asanaAsana任务管理

Manage Asana tasks, projects, briefs, status updates, custom fields, dependencies, attachments, events, and timelines via Personal Access Token (PAT).

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.2.0
安全检测
已通过
2,247
下载量
免费
免费
3
收藏
概述
安装方式
版本历史

asana

Asana

此技能提供了一个无依赖的 Node.js CLI,通过个人访问令牌(PAT)调用 Asana REST API(v1)。

  • - 脚本:{baseDir}/scripts/asana.mjs
  • 认证方式:ASANAPAT(推荐)或 ASANATOKEN
  • 输出:仅 JSON(标准输出),适用于智能体和自动化

设置

  1. 1. 在您的 Asana 账户中创建一个 Asana PAT(使用 PAT 不需要开发者控制台)。
  2. 将令牌作为 ASANA_PAT 提供给 OpenClaw/Clawdbot。

常见注入模式

  • - Shell 环境(本地测试):

export ASANA_PAT=...

  • - OpenClaw 配置(推荐):设置 skills.entries.asana.apiKey(或 env.ASANA_PAT),以便仅在智能体运行时注入密钥。

通过 OpenClaw CLI 配置(推荐)

这是设置 PAT 最安全的方式,因为它可以将密钥排除在提示和临时 shell 历史之外。

推荐(apiKey → ASANA_PAT):

bash
openclaw config set skills.entries.asana.enabled true
openclaw config set skills.entries.asana.apiKey ASANAPATHERE

skills.entries.asana.apiKey 是一个便捷字段:对于声明了 metadata.openclaw.primaryEnv 的技能,OpenClaw 会在智能体运行时将 apiKey 注入到该环境变量中(此技能的主环境变量是 ASANA_PAT)。

替代方案(显式环境变量):

bash
openclaw config set skills.entries.asana.enabled true
openclaw config set skills.entries.asana.env.ASANAPAT ASANAPAT_HERE

验证存储的内容:

bash
openclaw config get skills.entries.asana
openclaw config get skills.entries.asana.enabled
openclaw config get skills.entries.asana.apiKey

删除已存储的令牌:

bash
openclaw config unset skills.entries.asana.apiKey


openclaw config unset skills.entries.asana.env.ASANA_PAT

重要提示:沙箱运行

当会话处于沙箱模式时,技能进程在 Docker 内运行,不会继承主机环境。在这种情况下,skills.entries.*.env/apiKey 仅适用于主机运行。

通过以下方式设置 Docker 环境变量:

  • - agents.defaults.sandbox.docker.env(或按智能体设置 agents.list[].sandbox.docker.env)
  • 或将环境变量烘焙到您的沙箱镜像中

首次调用(健康检查 + 发现)

  • - 查看当前用户:

node {baseDir}/scripts/asana.mjs me

  • - 列出工作区:

node {baseDir}/scripts/asana.mjs workspaces

  • - (推荐)设置默认工作区:

node {baseDir}/scripts/asana.mjs set-default-workspace --workspace

ID 解析

当用户提供名称(项目/任务/用户)时,使用以下方法之一解析为 GID:

  • - typeahead --workspace --resource_type project|task|user --query ...(快速,最佳默认选项)
  • projects --workspace --all(枚举)
  • users --workspace --all(枚举)

当存在多个匹配项时,避免猜测 GID。

核心:任务

列出分配给用户的任务(个人生产力)

node {baseDir}/scripts/asana.mjs tasks-assigned --assignee me --workspace --all

列出项目中的任务

node {baseDir}/scripts/asana.mjs tasks-in-project --project --all

搜索任务(高级搜索 API)

规范原语:search-tasks(支持多种筛选条件;优于添加狭窄的“搜索辅助”命令)。

单行示例(在项目内搜索):

node {baseDir}/scripts/asana.mjs search-tasks --workspace --project --text ... --all

有用的筛选条件:

  • - --assignee me|(映射到 assignee.any)
  • --completed true|false
  • --createdat.after / --modifiedat.after
  • --dueon.before YYYY-MM-DD / --dueat.before
  • --isblocked true|false / --isblocking true|false

创建 / 更新 / 完成

  • - 创建:

node {baseDir}/scripts/asana.mjs create-task --workspace --name ... --projects --assignee me

  • - 更新:

node {baseDir}/scripts/asana.mjs update-task gid> --name ... --dueon 2026-02-01

  • - 完成:

node {baseDir}/scripts/asana.mjs complete-task

项目经理工作流程

此技能支持项目经理在 Asana 中常见的预期工作流程:

  • - 保持项目简报最新(upsert-project-brief)
  • 编写状态更新(create-status-update)
  • 处理时间线(开始/截止日期)并安全调整时间表
  • 自定义字段作为一等元数据使用
  • 解读阻塞项和依赖关系图(project-blockers、dependencies、dependents)

项目简报

  • - 读取:

node {baseDir}/scripts/asana.mjs project-brief

  • - 更新或创建(Upsert):

node {baseDir}/scripts/asana.mjs upsert-project-brief gid> --title 项目简报 --htmltext ...

状态更新

  • - 创建:

node {baseDir}/scripts/asana.mjs create-status-update --parent gid> --statustype on_track --text 每周更新...

  • - 列出:

node {baseDir}/scripts/asana.mjs status-updates --parent --all

分区和移动任务

  • - 列出分区:

node {baseDir}/scripts/asana.mjs sections --project --all

  • - 创建分区:

node {baseDir}/scripts/asana.mjs create-section --project --name 已阻塞

将任务添加到项目

命令:add-task-to-project

调用 POST /tasks/{task_gid}/addProject,支持可选的分区放置和排序。

示例:

node {baseDir}/scripts/asana.mjs add-task-to-project gid> --project gid>

带分区和排序:

node {baseDir}/scripts/asana.mjs add-task-to-project gid> --project gid> --section gid> --insertbefore null --insert_after null

(--section、--insertbefore 和 --insertafter 是可选的;提供时将在请求体中传递。)

从项目中移除任务

命令:remove-task-from-project

调用 POST /tasks/{task_gid}/removeProject。

示例:

node {baseDir}/scripts/asana.mjs remove-task-from-project gid> --project gid>

自定义字段

自定义字段对于可靠的 PM 自动化至关重要。

  • - 列出项目的自定义字段:

node {baseDir}/scripts/asana.mjs project-custom-fields --all

  • - 读取自定义字段定义:

node {baseDir}/scripts/asana.mjs custom-field fieldgid>

  • - 在创建/更新时设置任务自定义字段:

node {baseDir}/scripts/asana.mjs update-task gid> --customfields {fieldgid>:}

注意:

  • - 对于枚举类型,值通常是枚举选项的 GID。
  • 对于数字类型,发送 JSON 数字。

富文本、提及和可靠性

Asana 富文本字段是XML 有效的 HTML 片段,包裹在 根元素中。API 会拒绝无效的 XML 或不支持的标签。

关键点:

  • - 任务描述使用 htmlnotes。
  • 评论/动态和状态更新使用 htmltext。
  • 避免使用不支持的标签如


    ;优先使用文字换行符(\n)和


    分隔符。
  • 对于提及/链接,使用 (或自闭合的 )。

提及通知

如果用户尚未被分配或关注,创建提及链接

标签

skill ai
v0.2.0 最新 2026-4-17 15:04
**Summary:**
This release renames the skill to "asana", improves integration guidance for OpenClaw/Clawdbot, and streamlines configuration and usage documentation.

- Skill renamed from "asana-pat" to "asana".
- Updated environment variable guidance for OpenClaw/Clawdbot, including best practices for token injection and config management.
- Refined and reorganized documentation for clearer setup, key workflows, and recommendations.
- Improved CLI usage instructions, with concise command examples and task workflows.
- Metadata fields updated; non-essential fields and legacy details removed.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部