@falldownthesystem/devtool

中文文档
0.12.3发布于 2026/11/13ISCES Module构建来源已验证近 30 天下载 2001

Bitbucket、Jira、聚合、服务台和微软图表的CLI

中文使用文档
文档目录23 节
  1. 安装
  2. 使用量
  3. Jira云和服务器/数据中心
  4. 原文为: dev api
  5. 超时
  6. 输出模式
  7. 多个连接
  8. 写入
  9. 核准
  10. 写入命令
  11. 临时工作日志
  12. 配置
  13. 键
  14. 微软图形
  15. 申请登记和设置
  16. 团队聊天
  17. 电子邮件
  18. 日历
  19. 其他用户的自由/繁忙时间
  20. 共享点
  21. 产出和限制
  22. 发展
  23. 许可证

备忘

Bitbucket PRs、Jira票、汇合页、服务台票和微软图的终端-首个CLI。 Bitbucket, Jira, Conference, 和服务服务台也可以在连接允许时创建、更改和删除数据(参见 写入). Microsoft Graph提供只读访问Teams聊天,电子邮件,日历和SharePoint.

安装

npm install -g @falldownthesystem/devtool

这给你 dev 全球指挥。 为您使用的每项服务添加连接 dev config add;不需要配置服务.

使用量

dev pr list                  # your open PRs
dev pr view 42               # PR details, reviewers, status
dev pr comments 42           # review comments
dev pr diff 42               # changed files
dev pr activity 42           # approvals, updates, comments

dev jira view PROJ-123       # ticket details, with resolution, time tracking, versions, due date, parent
dev jira view PROJ-123 --fields Account,"Story Points"   # extra fields by ID or display name
dev jira view PROJ-123 --all-fields                    # every non-empty field (--json adds raw values)
dev jira fields PROJ-123     # fields an edit can set: type, required, allowed values
dev jira fields --create --project PROJ --type Bug     # fields a new issue takes; required first
dev jira comments PROJ-123   # ticket comments
dev jira search "sprint = 5" # JQL search
dev jira children PROJ-123   # epic children or subtasks (auto-detect)
dev jira mine                # your open tickets

dev confluence spaces        # list spaces
dev confluence view 12345    # read a page, with labels, ancestors, and the version author and date
dev confluence view 12345 --children   # also list child pages
dev confluence attachments 12345       # attachment names, sizes, media types, IDs
dev confluence pages         # pages in a space
dev confluence search "auth" # CQL search

dev config setup             # add or edit connections interactively
dev config add jira -n work  # add a named Jira connection
dev config edit work         # edit a connection interactively
dev config remove work       # remove a connection
dev config default work      # make it the default for its type
dev config show              # all connections (tokens masked)
dev config set <key> <value> # set a single field, e.g. work.baseUrl

大多数命令有短的别名: ls, (中文(简体) ), read, (中文(简体) ), find, (中文(简体) ), my。 。 。 .

Jira云和服务器/数据中心

dev jira 与Jira Cloud(包括服务台)和Jira服务器/数据中心合作,例如 dev confluence 用于聚合。 连接站点决定格式:云取ADF和账户ID,服务器取wiki标记和用户名. 检测到部署情况(a) atlassian.net 主机或一个 serverInfo 答复 Cloud 是 Cloud; 没有电子邮件的连接是 Server, 它用个人访问符签入, 或设置为 dev config set <connection>.deployment cloud|server。 。 。 .

列出每个站点连接上的工程密钥,一个问题密钥自行选择连接:

dev config set work.projects PROJ,OPS        # Jira Server
dev config set cloud.projects SQTUKI         # Jira Cloud
dev jira view SQTUKI-12320                   # uses "cloud" without --connection

连接的默认项目也算数 。 无连接匹配的密钥使用默认的Jira连接; --connection 总是赢 无问题密钥的命令( E)search, (中文(简体) ), mine, (中文(简体) ), queues采取 --project <key> 选择连接.

在云层上, dev jira comment add 撰写内部注释,除非 --public· ; dev jira queues 财务报告和审定财务报表 dev jira queue <name> 读取服务台队列并失败于一个没有一台的工程. dev sd (别名) servicedesk)为已存在的注释和脚本保留:它有相同的命令,如果没有项目匹配,则使用默认 serviceDesk 连接。 待决行动 sd.* 由更早的版本仍然可以批准.

原文为: dev api

dev api 读取其他命令未覆盖的配置连接的 REST 端点。 CLI 添加了连接的基址和证书;它从不打印它们.

dev api jira /rest/api/2/issue/PROJ-1/editmeta
dev api jira /rest/api/2/issue/PROJ-1 --query fields=customfield_15300,timetracking,resolution
dev api serviceDesk /rest/api/3/field --select '[].{id,name,schema}'
dev api confluence /rest/api/content/123 --query expand=version,ancestors,metadata.labels
dev api bitbucket /repositories/my-workspace/my-repo/pullrequests --query state=MERGED --all-pages
  • <connection> 是连接名称, 或默认连接的类型, 如 --connection。 。 。 .
  • <path> 相对连接的基础 URL: 用于 Jira 和服务台的网站, /wiki 或服务器/数据中心上下文路径,以及 https://api.bitbucket.org/2.0 为Bitbucket。 绝对和与计划有关的URL, .编号 :.. 区段(也是%- encoded) , 和回击被拒绝, 并且不遵循重定向, 因此证书只到连接自己的站点 .
  • 唯相读取. 请求得到. --post '<json>' 只接受只读的 POST 结束点的简短列表( JQL 搜索: Jira) /rest/api/2/search贾云 /rest/api/3/search/jql 财务报告和审定财务报表 /rest/api/3/search/approximate-countJira服务器/数据中心Tempo工作日志搜索, /rest/tempo-timesheets/4/worklogs/search) (中文(简体) ). 作文通过作文命令及其批准流程.
  • 输出为JSON,默认缩进,紧凑 --plain 或者说 --json。 。 。 . --raw 打印机构不变;非JSON机构打印为文本.
  • --select 设计 JSON: 点路径(issues.0.key, (中文(简体) ), [] 对于数组的每个项或对象的每个值(issues[].key),以及 {a,b.c} 来选择密钥( e)issues[].{key,fields.summary}; 密钥由已写入的路径命名).
  • --all-pages 如下 startAt编号 :maxResults编号 :total (吉拉), nextPageToken编号 :isLast (吉拉·云), _links.next (相互作用,服务台API)和 next (比特巴克特语),最高 --limit 项(默认为1,000)。 没有它,则返回一页,标准错误显示如何获得下一页.

超时

每个API请求在30秒后都会以超时出错而放弃,而不是挂起. 设定 DEV_TIMEOUT=<seconds> 来改变它.

输出模式

每个命令支持三种输出格式:

dev pr list              # colored tables (default)
dev pr list --plain      # no colors, no tables, pipe-friendly
dev pr list --json       # curated JSON, not raw API dumps

多个连接

您可以添加每种类型的任何连接数量。 连接的名称是可选的: 未命名的连接是根据其类型( )jira),并且每个类型只允许一个无名连接。 命令使用其类型的默认连接; 选择另一个与 --connection数字 :

dev jira view PROJ-123                # default Jira connection
dev jira view OPS-7 --connection work # the Jira connection named "work"
dev confluence spaces -c wiki         # the Confluence connection named "wiki"

默认是用 dev config default,或者该类型的第一个连接.

写入

每个 Bitbucket, Jira, Conference, 和服务台连接都有两种设置:

  • 允许写入 (默认) false:创建、更改或删除数据的命令在此连接上失败,直到启用为止。 阅读总是工作.
  • 需要核准 (默认) true:写作不会同时跑出. CLI 将确切的更改存储为 待采取行动,打印其标识,并显示状态退出 2。 。 。 .

让他们进去 dev config setup 编号 : dev config edit <connection>,或直接:

dev config set work.allowWrite true
dev config set work.requireApproval false   # run writes at once on this connection

设置是防止意外写作的戒备,例如使用CLI的AI代理. 它们不是安全边界:任何可以运行的东西 dev 也可以改变其配置.

核准

$ dev jira comment add PROJ-123 "Deployed to staging."
Approval required [3f9a2c1e]: Add a comment to PROJ-123
  Connection: jira
  Issue: PROJ-123
  Comment: Deployed to staging.
Nothing was sent. Show this action to the user and run the approve command only after the user approves it.
If the user asks for changes, run the command again with the changes and add --replaces 3f9a2c1e.
Approve: dev pending approve 3f9a2c1e
Reject:  dev pending reject 3f9a2c1e
Expires: 2026-10-28T09:00:00.000Z

$ dev pending approve 3f9a2c1e
✓ Added comment 10234 to PROJ-123

dev pending approve 运行存储的动作,而不是再次运行原始命令,所以运行的正是所显示的。 预览会读取当前帮助决定的状态:一个要删除的问题的概要,要编辑或删除的评论的文本,合并的拉动请求,过渡及其目标状态,以及一个编辑基于的页面版本. 对应该版本发送了聚合编辑器,因此同时更改的一页会因冲突而失败而不是被覆盖.

dev pending                  # list pending actions
dev pending show <id>        # details; --json includes the full parameters
dev pending approve <id>     # run it
dev pending reject <id>      # discard it

全球 --approve 旗下同时运行着一个写入,没有待决动作. 只有在用户批准准确更改时才使用.

无法编辑待决行动。 当用户请求更改时,请随更改再次运行命令并 --replaces <id>数字 :

dev jira comment add PROJ-123 "Deployed to production." --replaces 3f9a2c1e

新的请求是作为新的待决行动提出的 3f9a2c1e 被丢弃,因此用户拒绝的版本不能再被错误批准. 未知或过期的ID在任何信息被持有或发送之前都会停止命令. 与 --approve,只有在新写成功时,旧的动作才会被丢弃.

24小时后,待决诉讼期满。 再次批准检查连接是否存在,仍然指向同一个站点,并允许写作. 如果拉动请求在预览后得到新的承诺, 持有的合并也会失败 。 如果服务器拒绝请求( 4xx), 动作仍然待决; 如果结果未知( 5xx 出错或超时) , 则被删除, 因此无法运行两次 。 与 --json,保存的打印 {"status": "pending_approval", "id": ..., "approve": "dev pending approve <id>", ...}。 。 。 .

写入命令

文本可以内含或与 --file <path> (单位:千美元)- 读取标准输入,使多行文本不引用 shell 。 注释列表显示注释ID.

# Jira Cloud and Server/Data Center (dev jira; dev sd is an alias)
dev jira create --summary "Fix login" --type Bug --project PROJ -d "Steps..."
dev jira edit PROJ-1 --summary "New" --labels a,b --assignee jdoe --field customfield_10010=5
dev jira edit PROJ-1 --unassign
dev jira delete PROJ-1 [--delete-subtasks]
dev jira transitions PROJ-1                  # list available transitions (read)
dev jira transition PROJ-1 "In Progress"     # by transition name, ID, or target status
dev jira comment add PROJ-1 "text"           # or --file notes.txt
dev jira comment edit PROJ-1 <commentId> "text"
dev jira comment delete PROJ-1 <commentId>
dev jira comment add TUKI-1 "text"           # Cloud: internal note by default
dev jira comment add TUKI-1 "text" --public  # Cloud: reply visible to the customer
dev jira worklog list PROJ-1                 # worklogs (read)
dev jira worklog add PROJ-1 "1h 30m" --started 2026-10-28 -m "Review" [--remaining 2h | --keep-remaining]
dev jira worklog delete PROJ-1 <worklogId>

# Bitbucket
dev pr create --title "Add X" --source feature/x [--destination main] [-d "..."] [--reviewer <accountId>]
dev pr edit 42 --title "New title"
dev pr merge 42 [--strategy squash] [--close-source-branch]
dev pr decline 42
dev pr approve 42                            # Bitbucket review approval
dev pr unapprove 42
dev pr request-changes 42
dev pr comment add 42 "text" [--path src/a.js --line 10]
dev pr comment edit 42 <commentId> "text"
dev pr comment delete 42 <commentId>

# Confluence (bodies are storage format XHTML; --text converts plain text)
dev confluence view 12345 --storage          # current body in storage format
dev confluence create --title "Notes" --space DEV [--parent 12345] --file page.xhtml
dev confluence edit 12345 --file page.xhtml [--title "New"] [-m "version comment"]
dev confluence delete 12345
dev confluence comments 12345                # list comments (read)
dev confluence comment add 12345 "Looks good" --text
dev confluence comment delete <commentId>

文本在Jira Cloud上是纯文本,被转换为段落,在Server/Data Center上是维基标记; --assignee 是Cloud上的账户ID和服务器上的用户名。 编辑的核准预览显示每个更改的字段在新字段旁边的当前值. worklog add 默认开始; 仅从本地时间09:00开始日期。 在记录的时间之前减少剩余估计数,除非 --remaining 或者说 --keep-remaining ; Jira 服务器上的Tempo记录通过此API制作的工作日志.

--field <name>=<value> 取字段ID或显示名称( E)--field Account=23533, (中文(简体) ), --field "Story Points=5") (中文(简体) ). 在保存或发送任何信息之前, 字段会在创建元数据( 创建) 或编辑元数据( 编辑) 中查找, 并将值转换为其计划所期望的: 文本和插件字段获得字符串、 数字、 选项和选择字段 {"id": ...} 对于允许的值(以数值、名称或ID相匹配)或 {"value": ...}中,用户键入网站的用户引用,数组键入一个逗号分隔列表。 贾森(JSON){...}, (中文(简体) ), [...],引用 "...",或 null)发送方式不变,例如:. --field 'customfield_1={"value":"High"}'。一个不匹配的值,一个不在屏幕上的字段,或者一个在创建中缺少的必需字段,与字段的名称、类型和一些允许的值失败。 批准预览显示每个字段为 Name (id) 和发送的值. dev jira fields 列出字段及其类型.

临时工作日志

dev jira worklog 写出核心 Jira 工作日志, 无法包含 Tempo 的工作属性 . dev tempo worklog 通过Tempo本身记录时间,包括工作类型、工资类型、定价乘数和(在云面)可计费时数。 用一个 jira 或者说 serviceDesk 连接, 选择为 dev jira数字 : --connection,问题密钥的项目,或默认.

dev tempo attributes                                   # the work attributes and their allowed codes (read)
dev tempo worklog list --from 2026-11-02 --to 2026-11-06 [--worker JIRAUSER38404]   # with a total per day (read)
dev tempo worklog add SQTDEV-12822 --date 2026-11-02 --hours 0.75 -m "Korjaus" --work-type WT025 [--wage-type W001] [--pricing PM001] [--start 09:00]
dev tempo worklog add --file plan.csv                  # many worklogs, one approval
dev tempo worklog edit <tempoWorklogId> [--hours 1.5] [--comment "..."] [--work-type WT005] [--date 2026-11-03] [--start 10:00]
dev tempo worklog delete <tempoWorklogId>
  • Jira 服务器/数据中心 使用Jira站点上的Tempo Timesheets REST API与连接自有的代号. Tempo那里忽略了计费时间,每个工作日志报告0,所以 list 让他们出去 --billable-hours 被拒绝.
  • 吉拉·云 用途 https://api.tempo.io/4,它需要自己的Tempo API 令牌(Tempo > 设置 > API 集成): dev config token <connection> --field tempoToken。如果您的Tempo数据位于一个区域,则设置 tempoApiUrl 改为 https://api.eu.tempo.io 或者说 https://api.us.tempo.io。 。 。 . --billable-hours <n> 设置可计费部分:默认为全部时间, 0 是不可开单的,并且价值较小的帐单可以分割和留下其余的不可开单的. Jira Cloud展示了Tempo的作品,由"Timesheets by Tempo"所写,所以 dev jira worklog list 财务报告和审定财务报表 worklogAuthor = currentUser() 找不到他们; dev tempo worklog list 从Tempo读来的.

add 在举行任何活动之前检查问题密钥和属性代码(通过代码或名称)。 起始时间、工资类型和定价乘法来自选项,而不是连接: tempoStart (默认) 09:00, (中文(简体) ), tempoWageType,以及 tempoPricing;不包含两个属性. edit 读取工作日志,并随已更改的字段发回;如果工作日志在预览后更改,则拒绝批准.

一个计划文件是CSV或JSON. 无标题的 CSV 有列 date,key,hours,comment,worktype; 标题行可以按任何顺序命名并添加 start, (中文(简体) ), wagetype, (中文(简体) ), pricing,以及 billable。第一行与 ; 没有 , 用途 ; 作为分隔符,因为 Excel 保存在一些地方。 数小时 . 或者说 , 作为小数标记。 诸如 --work-type 填入一行中的列会空出。 每个行和键先检查,然后整个计划是一批准,每天显示与每天的总数. 经批准后,各行按顺序张贴,每行按 date key hours -> ok <id> 或者说 -> FAILED <reason>;失败行不会阻止其他行,如果有任何行失败,命令会以状态1退出.

2026-11-02,SQTDEV-12822,0.75,Korjaus,WT025
2026-11-02,SQTDEV-12822,6.75,"Development, part 1",WT005

配置

储存在 conf 软件包。 每个连接都有一个类型和自己的字段:

  • 键盘: 工作空间、默认重播、电子邮件、应用程序密码
  • 齐拉:基础 URL,电子邮件(Cloud;在服务器/数据中心空取个人访问令牌,或Basic auth的用户名),API令牌,默认项目,项目密钥,部署(可选),以及Tempo字段(参见 临时工作日志(中文(简体) )
  • 组合:基础 URL,电子邮件,API 令牌,默认空间. 云和服务器/数据中心从基址被检测出. 对于服务器/数据中心,包括任何上下文路径(https://company.com/confluence),并留有电子邮件空以使用个人访问令牌,或者将其设定为 Basic Auth 的用户名.
  • 服务Desk: 基础 URL, 电子邮件, API 令牌, 默认项目, 项目密钥, 以及 Tempo 字段( 一个 Jira Cloud 连接; 保存用于 dev sd(中文(简体) )
  • 图表: 租户ID,客户ID,默认SharePoint站点(参见 微软图形(中文(简体) )

Bitbucket、Jira、聚合和服务台连接也有 allowWrite 财务报告和审定财务报表 requireApproval 设置( 见 写入) (中文(简体) ).

键

连接的符号按此顺序查看 :

  1. 配置文件( c)dev config set <connection>.token <value>(中文(简体) )
  2. 环境变量 DEV_<CONNECTION>_TOKEN,比如说. DEV_WORK_TOKEN,或 DEV_JIRA_TOKEN 用于未命名的Jira连接(除字母和数字以外的字符变为 _(中文(简体) )
  3. oS 证书商店(Windows Creditic Manager, macOS Keychain, Linux Secret Service),服务下 devtool 账户 <connection>.token
dev config token work                 # hidden prompt; stores the token in the credential store
op read op://vault/jira | dev config token work   # or from standard input
dev config token work --move          # move the token from the config file to the credential store
dev config token work --remove        # delete it from the credential store
dev config token work --field tempoToken   # the Tempo Cloud API token (DEV_WORK_TEMPOTOKEN in the environment)

保存一个令牌会将其从配置文件中去掉,否则会首先使用. dev config add 财务报告和审定财务报表 dev config edit 当您输入一个符号时, 提供证书商店 。 重命名连接会移动其条目, 删除连接会删除它 . dev config show 显示每个标志的出处,蒙上面具.

dev config set <connection>.<field> <value> 以名称或类型地址连接, 因此旧密钥如 bitbucket.workspace 继续工作 从更早的版本配置,每个服务一个节,在第一次运行时被转换为无名连接.

微软图形

一个图连接对所有四个服务使用一个申请注册和一个登录。 不需要PAT或客户秘密。 图形命令不需要 Bitbucket 或 Jira 配置 。 与其他连接类型一样,您可以添加多个图形连接(例如每个租户一个),并选择一个与 --connection。 。 。 .

申请登记和设置

  1. 将单租户申请登记在 微软 Entra 管理中心。 。 。 .
  2. 下 认证,添加 移动和桌面应用程序 带有方向调整的 URI http://localhost。 。 。 .
  3. 添加微软图形 授权 权限 : User.Read, (中文(简体) ), Chat.Read, (中文(简体) ), Mail.Read, (中文(简体) ), Sites.Read.All。 。 。 .
  4. 如果您的组织需要,请获得管理员的批准.
  5. 运行 Graph 向导, 然后通过浏览器签名 :
dev graph setup                  # edits the selected Graph connection, or adds one; also: dev config add graph
dev graph login
dev graph status                 # cached account only, not a token-validity check

巫师问 目录( 租户) ID, (中文(简体) ), 应用程序(客户端)ID,以及可选的默认SharePoint站点 URL。 这些身份证明不是秘密 您也可以单独设定:

dev config set graph.tenantId <tenant-uuid>
dev config set graph.clientId <client-uuid>
dev config set graph.defaultSite https://company.sharepoint.com/sites/MySite

graph.<field> 地址默认图形连接; 使用 <name>.<field> 为了一个名字。 设置和登录不需要交互式终端 --json 或者说 --plain。数据命令从不提示或打开浏览器。 如果注册过期或需要新的同意,请运行 dev graph login 再来一次.

托肯被保存在寄存器外的缓存文件中,由租户和客户端ID进行分出并用AES-256-GCM加密. 加密密钥被存储在OS证书存储库:Windows证书管理器,macOS keychain,或Linux Secret Service(在Linux上需要). 没有简单的背书。 证书店为每个平台预建了装订船,因此安装不需要构建工具或安装脚本. dev graph logout 删除当前租户/客户对的本地缓存账户; 它不会取消赠款或签署出浏览器会话 。 更改 ID 选择另一个缓存; 如果您想要删除旧账户, 在更改 ID 之前登录 .

对于涵盖每个支持服务的登录,增加可选授权权限 Mail.Read.Shared, (中文(简体) ), Calendars.Read.Shared,以及 Calendars.ReadBasic,然后运行 :

dev graph login --all

这是单个登录旗帜的替代品,而不是额外的登录步骤. 同意屏幕中的申请名称来自您的 Entra 注册。 标记权限 需经行政同意:否 根据您的组织用户同意的政策,仍需要批准。 改变认证流动不会绕过这项政策.

团队聊天

dev graph teams chats --limit 25
dev graph teams view "<chat-id>"
dev graph teams messages "<chat-id>" --limit 50
dev graph teams message "<chat-id>" "<message-id>"

这涵盖了您的聊天,而不是团队频道。 扩展的聊天成员列表可以在25名会员中停止.

电子邮件

dev graph mail folders
dev graph mail folders --parent "<folder-id>"
dev graph mail list --folder inbox --limit 25
dev graph mail search 'subject:release' --limit 50
dev graph mail view "<message-id>"

email 是用于 mail。阅读不会将信件标为已读。 搜索使用微软的信息搜索语法和服务自定义的顺序,最多1000个匹配. CLI 将信件机构显示为文本; 它不下载电子邮件附件 .

对于共享邮箱或他人的共享文件夹,添加 授权 Mail.Read.Shared 允许并在此范围内签名 :

dev graph login --shared-mail
dev graph mail --mailbox [email protected] folders
dev graph mail --mailbox [email protected] list --folder inbox
dev graph mail --mailbox [email protected] view "<message-id>" --folder "<shared-folder-id>"

您还需要 Exchange 访问邮箱或文件夹 . Mail.Read 只有你自己的邮箱. --mailbox 接受邮箱所有者的地址或用户ID; Graph 不发现您的共享邮箱。 仅使用文件夹访问时, 请指定该文件夹, 而不是请求整个邮箱 。 正常命令不请求共享邮件权限 .

日历

添加数据 授权 Calendars.Read.Shared 财务报告和审定财务报表 Calendars.ReadBasic 权限,然后以 --calendars (或 --all) (中文(简体) ). 这些封面日历细节和免费/繁忙查询. 日历细节包括您的日历和共享的日历。 它不准许新的交易所访问或允许事件改变.

dev graph login --calendars
dev graph login --calendars --shared-mail   # both optional permissions in one sign-in
dev graph calendar list
dev graph calendar next
dev graph calendar events --limit 50
dev graph calendar events --from 2026-09-14T00:00:00+03:00 --to 2026-09-21T00:00:00+03:00
dev graph calendar --calendar "<calendar-id>" next
dev graph calendar --mailbox [email protected] --calendar "<calendar-id>" events
dev graph calendar --calendar "<calendar-id>" view "<event-id>"

calendars 别名 calendar。 。 。 . list 返回地址邮箱中的日历,包括在此添加的共享日历。 供应 --mailbox 在需要时直接与业主联系。 日历ID属于返回它们的邮箱上下文. 权限不会发现整个组织的所有日历 .

events, (中文(简体) ), next,以及 view 使用主日历,除非您提供 --calendar;它们不合并所有日历。 事件时间使用世界协调时. 日期输入需要ISO 8601带有明确的时区. 默认窗口现在开始,30天后结束;自定义窗口可长达366天. 客户通过 calendarView,在选择结果前读取完整的窗口(最多1,000个事件)和排序。 如果窗口超过1000个事件,则会缩小日期范围,而不是接受不可靠的下个事件.

next 在所选日历中找到下一个约会或会议 。 它排除了取消、减少和已经启动的事件。 如果没有任何事件具有资格,则结果包括检查的日期范围。 它不改变出席情况、阅读状况或日历内容.

其他用户的自由/繁忙时间

dev graph calendar availability [email protected]
dev graph calendar availability [email protected] [email protected] --from 2026-09-14T09:00:00+03:00 --to 2026-09-14T17:00:00+03:00 --interval 30

这叫微软只读 getSchedule 使用 Calendars.ReadBasic。它不需要创建事件或改变出席情况。 与完整的共享日历细节不同,免费/繁忙的提供遵循了Exchange出版和组织共享政策. 私人主体和细节可能仍然隐藏.

提供1-20电子邮件地址,不 --mailbox 或者说 --calendar。默认范围现在是24小时后。 自定义范围必须短于62天;间隔为5-1440分钟。 结果包括UTC区块和一个紧凑的槽字符串: 0 = 免费或在别处工作, 1 =暂定, 2 忙着呢, 3 =不职. 人人均出错仍然可见并造成非零退出状态;缺失或被剥夺可用性永远不意味着免费. 如果微软报告错误 5006中,缩小范围或增加间隔.

共享点

dev graph sharepoint sites "Product"
dev graph sharepoint site
dev graph sharepoint --site https://company.sharepoint.com/sites/Other libraries
dev graph sharepoint libraries
dev graph sharepoint files "<drive-id>"
dev graph sharepoint files "<drive-id>" --path "Product Data/Documentation/My Product"
dev graph sharepoint files "<drive-id>" --folder "<folder-item-id>"
dev graph sharepoint file "<drive-id>" "<item-id>"
dev graph sharepoint download "<drive-id>" "<item-id>" "./document.pdf"
dev graph sharepoint lists
dev graph sharepoint items "<list-id>"
dev graph sharepoint item "<list-id>" "<item-id>"

sp 是用于 sharepoint。基于站点的命令使用连接默认站点,除非您提供 --site文件命令使用明确的驱动器ID。 选择 文档 库来源 libraries· ; --path 开始在库里,所以省略 Documents/ 前缀。 文件下载使用临时文件,仅在传输完成后才曝光目的地. 原子硬链接防止覆盖同时创建的目的地;目的文件系统必须支持硬链接. 正常故障清理临时文件 。 强制终止程序可能使 .devtool-download-* 临时目录,但绝不是部分目的。 每次下载请求默认为120秒超时; 使用 --timeout <seconds> (1-86400)用于较慢的转账. 其他图请求有60秒的超时。 下载不会更改远程数据,也不会向SharePoint的下载主机发送Graph无记名符号.

产出和限制

所有图表数据命令支持丰富的表格, --plain,并编译 --json。收集命令默认为25个结果; --limit 接收 1–1000。 客户端跟随服务器 pagination 达到这个极限,因此可以存在更多的结果. JSON列表是数组. 错误到 Stderr 时为非零退出状态; --json 错误使用 {"error":{"message":"...","status":403}}。验证符、原始图形元数据以及预认证文件下载 URL 从未出现在已编辑的输出中.

内容读取使用GET。 唯一的POST是固定的 /me/calendar/getSchedule 端点,在不改变数据的情况下计算出自由/繁忙的信息. CLI 没有 Graph 邮件端、 消息端、 上传、 更新或删除命令 .

发展

npm test

Node.js测试套件使用模拟Graph和认证响应,临时配置,以及本地下载固定装置. 它不访问Microsoft 365数据.

发布是自动化的: master 带有用户界面 常规武器委员会 请通过发布发布发布到npm, 和Dependabot的次要和补丁更新合并并单独发布. 见 克劳德·姆德。 。 。 .

许可证

公务员制度委员会

版本与发布记录

@falldownthesystem/devtool 共发布 16 个版本,首次发布于 2026/02/19;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.12.3latest2026/11/131 天前
0.12.22026/11/113 天前
0.12.12026/11/095 天前
0.12.02026/11/059 天前
0.11.02026/10/2817 天前
0.10.02026/10/2817 天前

关于 @falldownthesystem/devtool 的常见问题

@falldownthesystem/devtool 是什么?

Bitbucket、Jira、聚合、服务台和微软图表的CLI

如何安装 @falldownthesystem/devtool?

在项目目录运行 npm install @falldownthesystem/devtool,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dev,可以用 npx dev 直接运行。

@falldownthesystem/devtool 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/falldownthesystem__devtool 是否存在。

@falldownthesystem/devtool 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@falldownthesystem/devtool 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@falldownthesystem/devtool 可以商用吗?

@falldownthesystem/devtool 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@falldownthesystem/devtool 的下载量有多少?

根据 npm 官方下载统计,@falldownthesystem/devtool 在 2026/10/14 – 2026/11/12 这 30 天内被下载 2,001 次,日均约 67 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@falldownthesystem/devtool 还在维护吗?

最新版本 0.12.3 发布于 2026/11/13(1 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/02/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。