XCode Bots API 配置编辑失败

2023-11-29

我想通过 XCode Bots API 更改机器人的方案名称。像这样的请求:curl -XPATCH -H 'Content-Type: application/json' -H 'x-xcsclientversion: 8'https://localhost:20343/api/bots/botid123-d '{"name": "myawesomebot2"}' 更改机器人名称有效。但是,如果我尝试使用像 '{"configuration": {"schemeName": "scheme2"}}' 这样的请求主体更改配置对象,它就会失败。

如何修改方案名称?


我终于解决了这个问题,并想记下完成这项工作所需的部分以及我是如何找到它的。

首先,正如您已经注意到的,需要-H "x-xcsclientversion: #"(注意,6 对我有用,这是通过检查接收 PATCH 请求的 Apple Javascript 发现的)

其次,在观看 Xcode Server 通过 Charles 更新机器人后,发现 URL 需要添加以下参数,?overwriteBlueprint=true

第三,最顶层的 JSON 数据似乎是name:,还要求requiresUpgrade=false and type=1 (我找到了jq这个工具变得无价)

四、变更sourceBlueprint需要configuration.sourceControlBlueprint.DVTSourceControlWorkspaceBlueprintIdentifierKey接收新的 UUID。在 bash 中轻松生成uuidgen命令。

第五,必须发送大部分完整的机器人描述。我通过 Apple 的 API 获取了机器人的 JSON 定义,然后使用jq(见上文),删除不必要的键/值对,以匹配 Xcode Server 自己的 API 调用。必要的键/值对似乎是:

  • name
  • type
  • 需要升级
  • 配置(根据需要进行修改,但必须发送完整的配置)
  • 组(保持原样,但将其发送回)

第六,反斜杠转义 JSON 负载中的所有正斜杠。我已经在 bash 中完成了这个ESCAPED_JSON=${BOT_CONFIG_JSON//\//\\\/}我发送-d "$ESCAPED_JSON"在curl命令中。

因此,我使用的完整curl命令变为:

curl -k --request PATCH -H "Content-Type: application/json" -H "x-xcsclientversion: 6" -d "$ESCAPED_JSON" https://<username>:<password>@<your_server_address>:20343/api/bots/<your_bot_id>?overwriteBlueprint=true

完整的 JSON 定义(请记住,发送前必须转义正斜杠)如下所示

<!-- language: lang-json -->
  "requiresUpgrade": false,
  "configuration": {
    "triggers": [
      {
        "phase": 1,
        "scriptBody": "<REDACTED>",
        "type": 1,
        "name": "Update github Pending",
        "conditions": {
          "status": 2,
          "onSuccess": true,
          "onAnalyzerWarnings": true,
          "onBuildErrors": true,
          "onWarnings": true,
          "onFailingTests": true
        }
      },
      {
        "phase": 2,
        "scriptBody": "<REDACTED>",
        "type": 1,
        "name": "Upload to Beta",
        "conditions": {
          "status": 2,
          "onSuccess": true,
          "onAnalyzerWarnings": true,
          "onBuildErrors": false,
          "onWarnings": true,
          "onFailingTests": false
        }
      },
      {
        "phase": 2,
        "scriptBody": "<REDACTED>",
        "type": 1,
        "name": "Update github status",
        "conditions": {
          "status": 2,
          "onSuccess": true,
          "onAnalyzerWarnings": true,
          "onBuildErrors": false,
          "onWarnings": true,
          "onFailingTests": false
        }
      }
    ],
    "performsUpgradeIntegration": true,
    "disableAppThinning": true,
    "deviceSpecification": {
      "filters": [
        {
          "platform": {
            "_id": "3c884e2499df662057e8c64580003419",
            "displayName": "iOS",
            "_rev": "8-51c114fcfc83ea5f36df66f119b34ec8",
            "simulatorIdentifier": "com.apple.platform.iphonesimulator",
            "identifier": "com.apple.platform.iphoneos",
            "buildNumber": "14C89",
            "version": "10.2"
          },
          "filterType": 3,
          "architectureType": 0
        }
      ],
      "deviceIdentifiers": [
        "6d928bd891b83b4b8592aedb42001a97",
        "6d928bd891b83b4b8592aedb4200776c",
        "fa737f03db7b6c04d4c7f9507100700f"
      ]
    },
    "periodicScheduleInterval": 0,
    "schemeName": "<REDACTED>",
    "codeCoveragePreference": 2,
    "performsTestAction": true,
    "scheduleType": 3,
    "performsArchiveAction": true,
    "builtFromClean": 2,
    "buildConfiguration": "Release",
    "performsAnalyzeAction": true,
    "sourceControlBlueprint": {
      "DVTSourceControlWorkspaceBlueprintLocationsKey": {
        "A2739AD29C3BCDF8619D0305ACFDD0C22AEBDDB1": {
          "DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlLockedRevisionLocation",
          "DVTSourceControlLocationRevisionKey": "9d38dc7507f0f6ac17072d721893f0021c5282ed"
        },
        "51DBFAD1848AC646B864BBBEDC625B8BAB305A76": {
          "DVTSourceControlBranchIdentifierKey": "<THE BRANCH TO WATCH>",
          "DVTSourceControlBranchOptionsKey": 4,
          "DVTSourceControlWorkspaceBlueprintLocationTypeKey": "DVTSourceControlBranch"
        }
      },
      "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey": "51DBFAD1848AC646B864BBBEDC625B8BAB305A76",
      "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey": {},
      "DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationStrategiesKey": {
        "A2739AD29C3BCDF8619D0305ACFDD0C22AEBDDB1": {
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlAuthenticationStrategy"
        },
        "51DBFAD1848AC646B864BBBEDC625B8BAB305A76": {
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryAuthenticationTypeKey": "DVTSourceControlAuthenticationStrategy"
        }
      },
      "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey": {
        "A2739AD29C3BCDF8619D0305ACFDD0C22AEBDDB1": 0,
        "51DBFAD1848AC646B864BBBEDC625B8BAB305A76": 0
      },
      "DVTSourceControlWorkspaceBlueprintIdentifierKey": "<GENERATE A NEW UUID FOR THIS!!!>",
      "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey": {
        "A2739AD29C3BCDF8619D0305ACFDD0C22AEBDDB1": "<REDACTED PATH 1>",
        "51DBFAD1848AC646B864BBBEDC625B8BAB305A76": "<REDACTED PATH 2>"
      },
      "DVTSourceControlWorkspaceBlueprintNameKey": "Cool Blueprint",
      "DVTSourceControlWorkspaceBlueprintVersion": 204,
      "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey": "<REDACTED>.xcworkspace",
      "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey": [
        {
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "[email protected]:<REDACTED REPO 1>",
          "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Git",
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "A2739AD29C3BCDF8619D0305ACFDD0C22AEBDDB1"
        },
        {
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey": "[email protected]:<REDACTED REPO 2>",
          "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey": "com.apple.dt.Xcode.sourcecontrol.Git",
          "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey": "51DBFAD1848AC646B864BBBEDC625B8BAB305A76"
        }
      ]
    },
    "exportsProductFromArchive": true,
    "weeklyScheduleDay": 0,
    "minutesAfterHourToIntegrate": 0,
    "testingDestinationType": 0,
    "hourOfIntegration": 0,
    "testingDeviceIDs": []
  },
  "group": {
    "name": "41A62776-A72E-44C0-BFF0-D91F699BBA6A"
  },
  "type": 1,
  "name": "My Cool Integration Bot"

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XCode Bots API 配置编辑失败 的相关文章

  • 发送 Microsoft Graph 请求事件返回 400

    我能够通过将 JSON 请求发布到https graph microsoft com v1 0 me calendar events https graph microsoft com v1 0 me calendar events 我已经
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • Xcode 新手无法用 C++ 打开文件?

    我一直在我参加的课程中使用 Windows 但我正在尝试运行基本代码来弄清楚如何从 Xcode 上的文件打开 关闭 输入 输出 而我通常在 Visual Studio 上使用的代码不是不知道为什么 谢谢 include
  • 您可以使用 JSONP 检索您的 Skype 状态吗?

    有谁知道使用 JSONP 获取 Skype 状态的 URL 到目前为止我只找到了一个 XML 状态 URL http mystatus skype com username xml 我正在尝试使用 AJAX 查询 Skype 是的 我可以使
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置
  • SwiftUI 转义闭包捕获变异的“self”参数

    我有一个可以通过两种方式打开的视图 一个包含提供给它的数据 另一个包含对 Firestore 文档的文档引用 我创建了两个构造函数 在第一个构造函数中我提供数据 在另一个构造函数中我提供文档参考 然后我使用此引用进行网络调用 但出现错误 E
  • Xcode 警告引用开发第三方库的用户帐户

    我在我的项目中使用第三方库 BugSense 我已将他们的框架添加到我的项目中 对其进行初始化等 以便一切正常 然而 每次构建项目时 我都会收到大量 40 多个 以下警告 警告 i386 Users genesis Library Deve
  • Xcode 11 beta 4 错误:命令 CompileSwiftSources 失败,退出代码非零

    我已经下载了最新的 Xcode beta 4 当我构建时 我的 3 个 pod 遇到了同样的错误 Command CompileSwiftSources failed with a nonzero exit code
  • 如何在 Swift 中更改 UIButton 图像

    我正在尝试使用 Swift 更改 UIButton 的图像 我应该怎么办 这是 OBJ C 代码 但我不知道 Swift 的情况 playButton setImage UIImage imageNamed play png forStat
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • 我应该在我的 iOS Objective-C 项目中使用它吗?

    Xcode 中的 构建设置 中的 Mach O 类型是什么 应该设置什么 它有这些选项 可执行文件 动态库 捆绑包 静态库 可重定位对象文件 自从我将其从可执行文件更改为静态库以来 我遇到了错误 Apple Mach O 链接器错误组 我的
  • Swift 错误:无法从 AST 上下文获取模块“My_App”

    我正在使用 Swift 3 Xcode 8 1 CocoaPods 1 1 1 运行后pod update 每次我尝试使用 Xcode 的 lldb 控制台时 它都会打印错误 例如 po self输出 共享 Swift 状态My App已出
  • Xcode“使用性能工具运行”被禁用?

    我正在尝试从我的 Xcode 项目中查找内存泄漏 我不知道发生了什么 我无法选择任何内容Run gt Run with performance tool 事物列表被禁用 请帮助我 我是初学者 问题是我已经删除了构建文件夹并尝试使用性能工具运
  • CMake Xcode生成器创建了一个无法构建的项目

    我有一个使用 CMake 构建系统的 C 项目 我使用 MacBook Pro 进行开发 因此当我使用终端时 一切都非常顺利 我可以构建我的项目 然而 今天我发现我可以在使用 CMake 生成器创建相应的项目后使用 Xcode gt cma
  • PHP 版本如何匹配“API=yyyymmdd”签名/标签?

    是否有明确且可靠的来源来找出哪个 PHP 发行版本 x y z 携带 使用哪个 API yyyymmdd 签名 标签 PHP 的版本控制存储库是 PHP 版本与其 API 日期版本之间相关性的权威来源 请记住 仅主要版本PHP 的版本 例如
  • 在启用滚动的情况下扩展堆栈视图内的 UITextView

    我正在尝试使用自动布局和 Stackview 来实现一些目标 我有一个垂直 Stackview 其中包含 UIView UITextView 和 UIView 如下所示 我已经在这里查看了以前的答案 但找不到一个干净的解决方案来实现此目的
  • xcode“将源编译为”覆盖特定文件

    我有一个项目 必须将 编译源为 值设置为 Objective C 不 根据文件类型 在我的主项目中不起作用 我从框架 特别是 OpenFeint 获得的文件有问题 该文件在编译为 Objective C 时出现编译错误 error poin
  • cmake 生成 Xcode 项目 - 发布构建有效,但存档因链接器错误而失败

    使用 Xcode 6 3 1 CMake 3 2 2 我有一个与图书馆链接的项目 该库作为代码包含在 xcode project 中 经过编译 然后与主可执行文件链接 项目是用cmake生成的 CMakeLists txt 的一些摘录 ad
  • 所有针对 iTunes Connect 的构建,导入此构建时出错 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将构建上传到应用程序商店 之后它在活动中显示错误 任何人都可以帮帮我 SOLVED 转到构建设置 gt 搜索 bitcode gt 转启
  • 彭博开放 API

    彭博开放 API最近宣布 http www computerworlduk com news it business 3334375 bloomberg market data api made public 这只是彭博软件开发工具包 ht

随机推荐

  • 扩展 UserCreationForm 以包含电子邮件、名字和姓氏

    我已经被困在这个问题上有一段时间了 似乎无法弄清楚发生了什么 我刚刚开始学习 Django 我设置了登录 现在想要实现一个注册页面 我首先使用 UserCreationForm 表单 效果很好 但我想添加电子邮件 名字和姓氏字段 我想我可以
  • 为什么在 C++/Java 和类似语言中以美元符号开头的变量名不好?

    为什么在 C Java 和 PHP 中的类似变量名中以美元符号开头是不好的 编辑 有什么风险吗 在Java中 使用 in 变量是合法的 但绝对是一个坏主意 如果这样做 则存在意外使用与编译器本身或某些代码生成器使用的名称冲突的名称的风险 结
  • Firebase 在大数据集上的性能

    我正在为一个项目测试 firebase 该项目可能有相当多的密钥 可能有数百万个 我已经测试过使用节点加载几万条记录 加载性能看起来不错 然而 如果我展开根节点 FORGE Web UI 会变得极其缓慢 并且会渲染每条记录 Firebase
  • 将属性注册为 DependencyProperty

    我有一个名为 ChartView 的用户控件 我有一个 ObservableCollection 类型的属性 我已经在 ChartView 中实现了 INotifyPropertyChanged ChartEntry 的代码是 public
  • 获取 popover 的 data-content 内 HTML 标签的元素

    我正在 Bootstrap3 的 popover 中工作 我在这里放置了如下 HTML 内容 a href class btn title Test Click Here a 我无法引用 data content 属性中存在的 html 元
  • boost binary_oarchive 对于不同的编译器的工作方式不同

    我需要在客户端和服务器之间传输数据 当我将服务器从 Windows msvc140 移动到 Debian gcc 64 位 时 我的字节流类出现了问题boost 他们的档案是不同的 include
  • 如何使用 iText 将图形绘制为 PDF?

    我正在尝试完成一个绘制图形并将其写入 PDF 的示例 但我不断收到 PDF 没有页面的错误 如果我在打开后使用 document add 添加一些简单的东西 它工作正常 我只是永远看不到图形 这是我的代码 Document document
  • 用contentResolver删除短信太慢

    我想删除手机上的所有短信 除了每次对话的最后 500 条短信 这是我的代码 但速度非常慢 删除一条短信大约需要 10 秒 我如何加速这段代码 ContentResolver cr getContentResolver Uri uriConv
  • 简单的 ImageView 颜色动画

    您好 我对 Android 比较陌生 如果可能的话 我希望获得一些关于在哪里搜索以解决我的问题的指南或建议 显然 我不具备发布图像的声誉 因此我会尽力解释它 假设我有一个空瓶子 一旦调用这个片段 活动 我想引入一个动画 它将逐渐垂直地 从下
  • 从列表中获取 min() 和 max() 的有效方法? [复制]

    这个问题在这里已经有答案了 我的问题来自发布到的答案如何在python 3中找到任意列表中缺失的数字 大多数解决方案建议使用类似的东西 a 10 12 13 8 get set of full numbers allNums set x f
  • HTML5 中样式元素的“scoped”属性当前状态如何?

    这里说明了http www w3 org TR html markup style html style 允许的父元素 任何可以包含元数据元素 div noscript 的元素 节 文章 旁白 that
  • 来自用户空间的 int 指令

    我的印象是 x86 上的 int 指令没有特权 所以 我认为我们应该能够从用户空间应用程序执行这条指令 但似乎并非如此 我正在尝试从 Windows 上的用户应用程序执行 int 我知道这样做可能不对 但我想找点乐子 但 Windows 正
  • 使用 java 进行 Flyway 迁移

    我学习了使用java进行flywaydb迁移 可以使用JDBC连接 还可以通过SpringTemplate进行spring支持 但是flyway不能与DAO一起使用 对于具有更多关系的表 实体 使用 DAO 而不是 sql 进行迁移要容易得
  • 如何使MySQL表的某一列不可见

    我正在 ID 列上运行查询 但我不希望它在我的框架 窗格中可见 我怎样才能实现这个目标 我应该再创建一个表吗 sql mysql 中有一个可以隐藏列的函数吗 我尝试用谷歌搜索 但还没有找到任何东西 这是代码 public void tabl
  • 带有延迟加载的自定义列表

    I have successfully implemented like this for lazy loading in custom list 我为此使用的代码在这里 黑莓中带有图像的自定义列表在链接的问题中 我定位了心形图标的 y 坐
  • 从 ggplot2 中删除顶部和右侧边框[重复]

    这个问题在这里已经有答案了 是否可以从 ggplot2 图表中删除顶部和右侧边框 即 我想保留 x 轴和 y 轴 但删除图形周围的其余黑框 M 看到这个线程 它专门处理这里的问题 http groups google com group g
  • plot.window(...) 中的 R 错误需要有限的“xlim”值

    我想绘制一个 data frame 我的问题是出现以下错误 Error in plot window need finite xlim values In addition Warning messages 1 In xy coords x
  • 在 chrome://settings 和类似的 url 上运行用户脚本

    为什么 tampermonkey 对以下网址不起作用chrome history or chrome settings 有什么方法可以在此页面上运行用户脚本吗 不幸的是 这是不可能的 因为chrome方案 chrome 不支持 match的
  • 即使执行 IF 语句的 Else 语句也是 TRUE

    我有一个问题Python标题中描述的语言 for slovo in slova if pygame mouse get pressed 0 and slovo rect collidepoint pygame mouse get pos f
  • XCode Bots API 配置编辑失败

    我想通过 XCode Bots API 更改机器人的方案名称 像这样的请求 curl XPATCH H Content Type application json H x xcsclientversion 8 https localhost