介绍
hubot-davidford-vsonline 是一个基于 Hubot 框架的 npm 包,它提供了便捷的命令行工具,可以在 Visual Studio Online 中执行各种任务,比如创建工作项,查询工作项、构建等等。
安装
- 首先,在您的项目目录下执行以下命令安装 hubot-davidford-vsonline 。
npm install --save hubot-davidford-vsonline
- 接下来,在您的项目目录下创建
.env
文件,按照下列格式填写您的 Visual Studio Online 凭据信息:
VSO_ACCOUNT=YourAccountName VSO_PROJECT=YourProjectName VSO_USER=YourUserName VSO_PASSWORD=YourPassword
- 最后,在 hubot 的
external-scripts.json
文件中添加hubot-davidford-vsonline
。
[ "hubot-davidford-vsonline" ]
使用
使用 hubot-davidford-vsonline 非常简单,只需要在 hubot 命令行中输入以下命令即可:
hubot vso help
上述命令会列出所有可用的命令,包括:
create-workitem <type> <title>
:创建一个指定类型的工作项get-workitem <id>
:获取指定 ID 的工作项信息list-workitems <query>
:列出符合指定查询条件的所有工作项create-build <definition>
:触发指定定义的新构建list-builds <definition>
:列出指定定义的所有构建
接下来以一个简单的例子来展示如何使用 hubot-davidford-vsonline 。
假设您想创建一个新的工作项,它的类型是 User Story
,标题是 As a user, I want to be able to reset my password
。只需要执行以下命令即可:
hubot vso create-workitem "User Story" "As a user, I want to be able to reset my password"
深度学习
hubot-davidford-vsonline 的实现依赖于两个 npm 包:
- vso-node-api :是一个对 Visual Studio Online REST API 进行封装的 npm 包。
- node-env-file :允许您从
.env
文件中读取配置。
根据官方文档,我们可以在代码中使用 vso-node-api 来创建、更新或删除 Visual Studio Online 上的各种资源,比如工作项、构建等等。例如:
const vsoNodeApi = require('vso-node-api'); const vsoWorkInterfaces = require('vso-node-api/interfaces/WorkInterfaces'); const connection = new vsoNodeApi.WebApi(process.env.VSO_ACCOUNT, vsoNodeApi.getPersonalAccessTokenHandler(process.env.VSO_TOKEN)); const workItemTrackingApi = await connection.getWorkItemTrackingApi(); const newWorkItem = { fields: { 'System.WorkItemType': 'User Story', 'System.Title': 'As a user, I want to be able to reset my password' }}; const createdWorkItem = await workItemTrackingApi.createWorkItem(newWorkItem, process.env.VSO_PROJECT, 'Agile');
指导意义
hubot-davidford-vsonline 使得我们可以在 Visual Studio Online 中更加方便地执行任务,提高我们的工作效率。同时,它的底层实现展示了如何使用 vso-node-api 对 Visual Studio Online 进行自动化操作,为我们实现其他自动化任务提供了借鉴。需要注意的是,实现这些自动化任务需要有一定的代码能力和谨慎的操作习惯,否则可能会引发一系列安全和业务问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005661181e8991b448e1f41