JFrog产hth华体会最新官方网站品都有很棒的REST api,但有时使用curl会很痛苦。JFrog有CLI来管理Artifactory和Bintray中的工件。CLI也适用于各种与JFrog任务控制,JFrog Bintray和JFrog x射线相关的管理任务。最近,JFrog CLI获得了一些与工件管理相关的主要新功能,使其成为通用包管理和构建工具的非常强大的工具,本次网络研讨会将讨论这些强大的功能可以为DevOps流程做什么。

会议记录

你好每一个人。欢迎来到另一个JFrog网络研讨会。今天我们要讲的是JFrog CLI。今天和我在一起的,我叫巴鲁克。我是JFrog的开发人员倡导者,今天和我在一起的是Mark Galpin解决方案架构师,他将帮助我做一个演示。作为最后一分钟的惊喜,我们请来了[听不清00:00:40],他是JFrog基础设施生态系统团队的首席开发人员,其中包括JFrog CLI。你将有很好的机会问[听不清00:00:52]问题,这些问题可能只有他才能回答。关于问题,请在问答窗口提出任何问题,我们将在网络研讨会结束时尽可能多地回答。我想[听不清00:01:14]他是回答你们任何问题的最佳人选。聊天窗口也是可用的,所以如果你有其他的评论或你想对我们说的东西,也可以使用聊天。

这就是今天的议程。我们将讨论什么是Jfrog CLI,以及为什么我们认为您应该使用它。我想说,我们将讨论JFrog CLI执行信用操作的最常见用法,[听不清00:01:47]用于创建、读取、更新和删除操作。我们还将讨论JFrog CLI的一些新功能,这些功能将允许你在CLI本身之外创建、构建信息和元数据。当然,我将谈论JFrog CLI如何与所有JFrog产品一起工作,而不仅仅是[听不清00:02:12],对吧?hth华体会最新官方网站首先,你为什么需要这样的东西?为什么你不通过UI使用工厂任务控制x射线的JFrhth华体会最新官方网站og产品?UI出了什么问题,答案是使用一个工具,比如[听不清00:02:29]界面,让你创建自动化,自动化是更快发布周期的关键。

今天,大家都知道,每个公司都是软件公司,能够比竞争对手更快地向市场交付软件,当然,这是我们都在寻找的竞争优势。自动化是极其重要的。关于这一点,我想问你一些问题。让我们在这里做个投票。这是个多项选择题。请随意选择多个选项。问题是,你可能知道自动化很重要,你可能会使用一些JFrog工具来自动化你的工作:JFrog Artifactory, JFrog Bintray,当然。我的问题是你用什么?REST API,或者用户插件或它们的组合,或者也许你已经熟悉JFrog CLI,使用它,在这里了解什么是新的和我们可以做的更多。不回答这些问题基本上意味着你没有完全自动化。 Well, let’s give it a little bit more time.

好吧。不幸的是,只有几个结果。我不确定原因是什么。也许你们中的一些人没有看到投票,或者你们中的一些人没有使用JFrog工具,但是从我们得到的结果来看,我可以看到你们中的大多数人使用REST API。当然,这非常有意义,因为REST API是围绕工具实现自动化的规范方式。不仅仅是JFrog,不仅仅是Artifactory,当然,当我们想要围绕它进行自动化时,我们会编写触发REST API的脚本,这当然是一个有效的选择。JFrog CLI构建在REST API的基础上,我将简单介绍一下它,让它使用起来更舒适、更安全。

当然,我们有多种产品可以一起使用,为用户提供统一的界面。hth华体会最新官方网站用户界面看起来很像,这意味着公共行界面看起来也很像。JFrog CLI支持这四种产品。hth华体会最新官方网站在今天的网络研讨会中,我们将更多地关注Artifactory和Bintray,但我们也会提到JFrog CLI如何与它们一起工作,以及如何与JFrog Mission Control和JFrog X-ray一起工作。什么是JFrog CLI?它是如何实现的以及它做了什么。本质上,它是REST API的上层。它是用[听不清00:05:57]编写的,所以这意味着你有适用于所有流行平台的本地版本。您可以下载它,然后运行注释,而不是自定义curl来使用REST API。当然,它是一个包装器,可以方便地编写众所周知的命令。

它也比使用REST API更安全,因为如果你有错误的注释,它就不会工作,而不是发送请求,并在这个东西上得到更好的结果。它既方便又安全。正如您将看到的,使用这个演示要比直接使用REST API舒服得多。这也意味着,每当我们的API在Artifactory和Bintray中的任何产品中发展时,CLI也会随之发展。hth华体会最新官方网站CLI可能需要几天的时间才能跟上,但是您当然仍然可以像过去一样立即使用REST API。它不会取代REST API,也不会淘汰或弃用REST API。它只是在上面加了一层方便。非常欢迎您使用它,当然您也可以直接使用REST API。

它允许你做一些很棒的事情,比如为没有依赖管理的工具创建依赖管理。我要讲一点关于运行[听不清00:07:37]语言命令和脚本。例如,基于AQL的清理,我们也会讲到第三个例子是创建我们所说的构建信息,它是创建,收集,上传并附加到工件,关于创建它的构建的元数据。为了详细说明这三个JFrog CLI最有趣和最有吸引力的用例。没有依赖项管理的工具的依赖项解决方案,因为您可以从Artifactory下载构件,所以您可以在构建运行到此构建所期望的位置之前下载所需的所有依赖项。我们会在演示中展示。

考虑期望依赖项位于lib文件夹中的手稿。他们进入lib文件夹的方法是使用JFrog CLI,在构建之前下载[听不清00:08:43]文件并将它们放在那里。然后你的构建运行,它使用依赖关系并提供一些输出。最终,在构建之后,您可以收集创建的工件,并将它们与构建材料一起上传到Artifactory,我将多讲一点。另一个例子是AQL注释。例如,AQL清理,我们的许多客户都对他们的Artifactory的清理感兴趣。来自大文件或不再使用的文件的实例,通常是两者的组合。同样,通过CLI,你可以在这个过程中编写脚本,这样你就可以找到大型的、使用过的和一次性的工件,可能是第三方的[听不清00:09:40],可能是旧的快照或类似的东西。

然后你可以找到他们,删除他们通过使用一个命令从JFrog CLI。当然,您可以围绕它构建安全检查,例如,演练模式,它只显示您找到了哪些工件以及它们是否可以删除,或者只是运行搜索而不实际运行删除,这样您就不会删除您不打算删除的东西。当然,Artifactory的[听不清00:10:09]功能是另一个安全网,它实际上让你有能力恢复你删除的内容。我选择的第三个有趣的场景是用于创作的建筑。构建信息,通常是我们在Artifactory中拥有的构建抽象,我相信你们都熟悉它。它允许您在与工件相关的更高抽象级别上操作。我不讨论文件,而是要推广这个文件。

我需要删除这个文件。我需要发布这个文件。我们将讨论构建,构建实际上比工件重要得多,因为构建是您的产品。hth华体会最新官方网站CI服务器输出的是您的产品,带有依赖关系的文件子集,这正是您最终要交付的东西。带有Artifactory的JFrog CLI支持构建概念。您可以使用构建操作文件。你可以说下载构建的所有文件或提升构建的所有文件,但它也允许你在一组文件和方法上创建这个抽象。你可以要求JFrog CLI将一堆文件分组为一个构建,并添加关于构建的所有元数据,如何构建,何时构建,由谁构建,当你实际在公共行上运行构建时,你所拥有的所有这些信息,然后实际将它们一起发布到Artifactory。

在过去和现在,最常见的创建构建的方式是使用构建到插件,比如[听不清00:12:07]插件或[听不清00:12:09]插件或MS构建插件来创建这个构建信息或与CI服务器集成。CT Bumble,他们都知道如何创建这个构建信息,但是你也有能力从你的构建中创建自定义的构建信息对象,甚至对于不受支持的工具。回到我们的make示例,当您运行这个make文件时,您拥有关于构建的所有信息:生成了哪些工件,使用了哪些依赖项,运行时的环境变量是什么,谁运行了构建,花费了多长时间。您可以将所有这些信息捆绑在build info对象中,并将所有这些信息与工件一起推广到Artifactory,为所有这些工件鼓掌,对吧?

这三个例子只是为了向您展示JFrog CLI有多强大,以及您的自动化有多强大,所以它可以让您更快地发布,当然,在这方面领先于竞争对手,对吧?还有大量的附加特性,例如,非常重要的特性,我希望更多的工具会使用这种方法,即将凭证与注释分开存储。你用你工厂的URL预配置你的JFrog CLI实例,如果那是Artifactory,或者只是,如果它是[听不清00:13:44],我们当然不需要URL。然后您提供凭据、用户名和密码,它们被安全地存储在您的文件系统中。然后你可以运行注释不包括用户名和密码这样的敏感信息。这允许您编写脚本,然后可以通过版本控制或任何其他方式共享,而无需牺牲用户名和密码。

这也是非常非常重要的。JFrog CLI的另一个特性和两个特性当然来自于我们使用Artifactory和Bintray的经验。我们知道检查大型二进制文件的一些基于操作的重要性,我们也将其整合到JFrog CLI中。CLI的上传是支持校验和的,这意味着我们首先将校验和发送给Artifactory,以了解这些文件是否存在,只有当这些文件是新的时,我们才会通过网络进行实际上传。如果这些文件已经存在,我们将创建那些我们知道如何在Artifactory和Bintray中创建的引用。当然,大大提高构建的速度。如果您的构建在内容方面没有产生任何新文件,则上传将立即进行,因为我们将让Artifactory知道这里有相同文件的其他新名称。

下载也是一样。下载支持校验和。如果您已经下载了这些文件,则不会再次下载。这当然大大加快了分辨率。另外,对于并行上传和下载,您可以指定希望CLI执行上传和下载的线程数。当然,这也是一件大事。还有一个我已经提到过的很好的功能,演练模式。试运行模式允许您运行命令,并在命令启动之前查看我们可以预测的错误。对吧?例如,如果您试图将快照上传到[听不清00:15:55]存储库,或者您的用户没有执行此操作所需的权限,或者出现此类错误,我们会警告您。

在技术方面,Jfrog CLI的安装也很简单。特别是如果你在Mac上,你可以运行brew install Jfrog CLI go,你就会安装CLI。你也可以去bintray.com/JFrog/JFrogCLIgo上面有很多其他操作系统的说明。它通常是一个核心命令,用来下载和配置你的show环境,以便开箱即用JFrog CLI。

正如我提到的,所有JFrog产品的使用都是统一的。hth华体会最新官方网站JFrog将是命令。然后你就知道你想把CLI用于哪个工具了。RT代表Artifactory, bt代表Bintray, mc代表任务控制,xr代表x射线。然后你想做的命令可以是上传,下载,或者像在Bintray中创建[听不清00:17:15]在任务控制中在实例中,或者在许可证中。然后是对这个特定命令有意义的常用选项。同样,非常简单,非常直观,并且统一了所有JFrog工具。

让我们从Artifactory的几个例子开始。它们都是创建,[听不清00:17:42],删除,创建,读取,更新和删除操作,除了参数之外的所有代码操作,参数指定你想操作哪些文件。然后你可以通过spec来指定文件,我们马上会讲到spec。通过构建,您可以设置、下载某个构建或通过正则表达式的所有文件。下载所有以Z开头的文件,并支持属性过滤。这是另一个非常重要的概念,你可能从Artifactory解析和REST API中了解到,从某个存储库或某个路径,或某个构建中下载所有工件的能力,但前提是某些属性设置了一些值,如果QA属性设置为通过,或者你需要将覆盖率设置为90或其他对你有意义的东西。

当然,你也可以过滤它。我提到了规范,您可能想知道这个规范是什么。Spec是一种用于描述文件的DSL领域特定语言。这里,它非常灵活。您可以指定这些文件的位置模式。在某个目录下的所有文件,在某个代表下的所有文件,对于[听不清00:19:18],我想要这个目录或存储库中的所有jar,当然,这些东西,或者所有文件,除了带有源限定符的文件。我要所有的文件,但不要线人,等等。这就是规律。您还可以在规范中使用Artifactory查询语言查询,这样您就可以请求,当然,在这里,您可以如何编写查询是没有限制的。给我这个存储库中某个构建的所有文件,给我最新的构建,但前提是它通过了QA属性设置,文件从未下载过并且大于100兆字节。 The query is the same.

没有任何意义,但当然,它只是向您展示了这些查询是多么灵活。您也可以在规范中使用Artifactory查询语言。另外两个人们认为有用的特性是设置递归模式的能力。假设,我想要某个目录下的所有文件。我是想要进入子目录,还是只给我顶级播放器和把我找到的文件放平的能力。给我这三个文件中的所有文件,但是当您下载或从Artifactory上传它们时,请将它们列成一个平面列表。Spec是一个非常强大的结构。我们不仅在JFrog CLI中使用这个DSL规范。如果你使用我们最新的Jenkins与Jenkins two的集成,这也是一个使用这个规范来描述我们想要处理的文件的DSL。

这是非常强大的,因为这意味着你可以重用这些规格。您可以对它们进行一次描述,然后在CLI和CI 7中使用它们。[听不清00:21:28]之上的附加命令正在收集发布构建信息。就像我提到的,你已经准备好要上传的文件了,但是你还要为对象建造这个建筑,谁建造了这个建筑,如何结束,环境变量,依赖关系等等。然后你就可以把这个建筑发布到[听不清00:21:43]Artifactory,连同文件一起,并且可以使用AQA运行。这不是一个群体操作,文件不会发生任何变化,但是你可以发送查询到Artifactory,并使用JFrog CLI从Artifactory获得结果,这实际上是一个非常好的功能,相比于相当复杂的查询或命令,如果你想从REST API运行AQL查询,例如。

对吧?正如我提到的,JFrog CLI是REST API之上的一个方便的包装器。这是CLI可以为Artifactory做的非常高的描述,当然,Mark已经准备好了他的演示,向您展示我刚才在生活示例中提到的内容。对于Bintray的CLI,同样,CRUD操作类似于Artifactory。您可以使用正则表达式和模式的相同概念在Bintray上创建,读取更新和删除文件。这是一样的。Bintray特有的操作是对Bintray实体的操作,因此您可以创建或读取、更新和删除存储库、包、版本、产品以及任何附带的操作。hth华体会最新官方网站还有操作,这是独特的Bintray的东西,如下载密钥,授权,访问控制,等等。你可以创建权限,你可以创建下载密钥,你可以在它们上创建权限,给它们访问权限,等等,等等,所有这些都来自CLI,再次,让你比以前有更多的自动化功能。接下来,我想让Mark来做演示。 And then we’ll get back to talk a little bit about Mission Control, X-ray and how CLI works with them. Mark…

[听不清00:24:13]。哦,又来了。受欢迎的。

好吧。非常感谢你,巴鲁克。首先,我们将运行一个相当简单的小脚本,但作为我们对这些网络研讨会的实践,我将使用的所有命令都将在CLI网络研讨会文件夹中的JFrog训练演示脚本中列出。如果你想自己做一些类似的事情,你可以把它作为一个起点。首先,我们将快速浏览一下Artifactory命令,您可以看到其中有用于配置、上传、下载、移动、复制、引导、搜索的命令,以及与构建相关的各种命令。当然,在任何子命令或子命令上总是有破折号,破折号,帮助,这将给你一个帮助的好主意。例如,你可以做JFrog RTC破折号,破折号,帮助,它现在会给我配置命令的具体选项。

我们会从config命令开始,它会告诉我我已经指向了哪个URL,我可以按回车键保存它。它会问我一个API键。如果我想使用用户名和密码,我只需按enter。然后它会告诉我我是用什么用户登录的,然后我必须提供密码,然后它就会出来,确认它已经连接到Artifactory,加密磁盘上的所有东西,这样你的平面文本密码就不会存储在任何地方。然后你就可以继续生活了。

现在,下一步是这里的下载命令。这是一个非常集的下载命令。我选择JFrog RTDL,也就是下载。然后第一件事是在Artifactory上的位置,我正在抓取整个文件夹和本地存储库或JFrog示例API,一点一点。然后我在最后添加一个构建名称,CLI示例,和一个构建号。拥有构建名称和构建号的意义在于,CLI现在将在本地存储关于此构建的信息,直到我决定发布构建信息为止。

我所有的CLI操作,如果我把这些参数放在它们的末尾,那么它就知道把它们添加到那个构建信息中,当我完成我的活动时,它就会准备好让我发布。接下来我们会看到它是如何工作的。但是现在,您将看到我将此标记到我的所有命令。你可以看到它把我的文件夹名转换成AQL,这就是CLI的工作方式。它将您提供的任何内容转换为AQL,并下载这些工件。您可以看到Baruch提到了多线程方法,您可以看到我们有两个同时下载这两个工件的线程。

这很酷,但在我继续之前,我想下载一个稍微复杂一点的表达式,但实际上我想使用spec特性,因为正如Baruch所指出的,CLI现在支持的伟大功能之一,这在CLI one 5中是相对较新的,是您可以保存spec文件并从命令行不断重用它的能力。如果开发人员想要进行构建,他们可以运行带有规范文件的CLI并下载所有东西来准备他们的环境,以便在他们的办公桌上进行构建。你可以在CI中使用相同的规格。在本例中,我将使用这个规范,这只是一个简单的基于蚂蚁模式的规范,我将以本地位置为目标。add规范中唯一附加的是,我还说我想从[听不清00:28:53]示例中下载的每个文件都来自[听不清00:28:56]示例CI服务器构建的第12个构建,我将递归地提取所有内容。

我不想把我的文件弄平。我想保持标准路径。我没有使用[听不清00:29:08]对于那些熟悉Jenkins管道DSL的人来说,这个模式看起来应该非常熟悉,因为这与我们在Jenkins管道DSL中使用的模式完全相同,因此您可以在Jenkins和CLI中重用它们。有了这个,我们将执行它,你可以看到这是一个非常简单的命令。我运行JFrog RTDL。现在我提供了一个规范[听不清00:29:40]JSON,同样,我将提供构建名称和构建号。

现在,我要注意的一件事是这个文件已经在本地存在。其中一个下载的东西是API 11.jar。我在上一个命令中已经下载过了。我也下载了API-1.1.jar,而不是像Baruch说的那样再次下载,而是在某个地方检查CLI。它意识到,嘿,文件已经在这里了。我不需要再下载一次。这是一种更快的方法,它还允许您使用CLI根据Artifactory内部的内容对目录进行增量更新。

下一件事是,我要准备构建,我要收集环境变量,也就是构建,收集环境,也就是BCE,使用相同的CLI示例和我所在的构建号Baruch讲了很多关于make的东西,这是一个非常强大的东西,可以与JFrog CLI结合。我将使用一个比运行make文件简单得多的构建。我要把[听不清00:31:05]弄成一个焦油球。接下来是将我的tarball上传到Artifactory中的通用本地存储库,名称为CLI示例、示例CLI,同样使用相同的构建名称和构建号。

您可以看到,因为我提供了构建名称和构建号,它也将使用构建名称、构建号和时间戳为构件签名,这是构建上传过程所必需的。现在我要发布这个构建。

它让我在构建信息下浏览。我们去做吧。这里你可以看到第5个版本,这是我创建的版本。可以看到代理的CLI编号是1 - 5。你可以看到谁登录了Artifactory,什么时候发生的,如果我进入发布模块,我可以看到我的发布模块是这个tar文件。这里是这个文件的所有依赖项,在这个例子中,当然是我打包在里面的东西。如果我跳出这个文件,就像我期望的那样,它有构建名称,构建号和构建时间戳。里面有各种各样的建造信息。

如果我愿意,我还可以看到环境变量就像任何其他构建一样,我可以将它与之前的构建进行比较,构建4。我可以看到tarball发生了一些变化,可能是因为时间戳和命名发生了变化,而它内部的其他包没有变化。所有的环境变量都没有改变除了我用来存储构建号的环境变量。

非常基本的东西,你可以收集构建信息,但它是一个非常新的功能,你可以用CLI来做,所以你不需要任何特殊的工具来做你的构建。您可以在任何标准脚本工具中收集它们。现在,我接下来要做的是删除一个工件,实际上是删除一大堆工件。我想把刚才做的清理一下。我不使用模式搜索,而是使用AQL。所以你可以看到这是一个基本的AQL,有一个项[听不清00:34:23]find。我把它写得很简单。我只是从存储库泛型中删除所有带有构建名称的CLI示例,但是您可以使这个AQL像您希望的那样复杂。项目。find域中的任何内容,都可以在运行时添加到这个AQL。

我们只需要运行这个命令,它就会跳出来,它会说,嘿,我得到了构建4和构建5的工件。您确定要删除它们吗?我的答案是肯定的。现在它们被删除了。这真是太神奇了。以前,您中的一些人可能知道我们有一个Groovy脚本,它具有基于AQL删除工件的相同行为。现在我们可以用CLI来做这个。您不必担心是否有正确的版本了解Groovy或任何Groovy依赖项或类似的东西。只需下载CLI,构建这个AQL规范并使用CLI来执行此活动。因此,基于这个新的CLI选项,Groovy脚本基本上已经弃用了。

这是最基本的。当然,使用CLI还可以做很多事情,但我也想在Artifactory中展示,但我也想展示一些其他工具。我想从Bintray开始。我们有了这个很棒的包裹,让我们准备好向全世界分发。我要做的第一件事是在Bintray中创建一个包我要打开Bintray。我有这个通用的存储库,它目前没有包在它。现在我要创建一个包。首先,让我们快速看一下我可以做配置的所有入口命令,我已经做过了。我可以上传,下载,对软件包,版本,权利,密钥做各种修改。

如果我们做JFrog PC-help, JFrog BT, PC-help,你可以看到我在创建包时可以在包上设置各种标志。我把它写得简单点。我将创建一个包,并给它一个描述。我将把这个包称为CLI示例,并给出相应的描述。它会给我这个包的完整JSUN。现在我可以看到我在Bintray中有一个包,现在我想把我的tarball上传到这个存储库。

我只提供了tarball的名称。然后我在Bintray中提供组织名称,存储库名称,泛型,包名称,CLI示例,我要上传的版本号我还将设置一个标记published = true这样我一上传它就会在Bintray上发布。如果我不包含这个标志,它会在Bintray上停留一段时间让我决定什么时候上传。这允许我按顺序上传一些文件,然后在我准备好后发布它。

您可以看到它验证了存储库是否存在。它验证包是否存在。它检查版本号是否存在,因为它不存在,所以它创建了它,然后上传文件。如果我们转到Bintray,你可以看到这是版本号。我要跳到这里。我能看到第五个版本。我可以找到它的文件,在下载列表中显示。现在这将是这个版本的默认下载包。现在如果我想下载这个包,我可以点击这里,它会很快从CDN下载。同样,在CLI下使用Bintray还可以做很多事情,但我还想介绍最后两个产品。hth华体会最新官方网站 First of all, JFrog Mission Control… JFrog Mission Control really only allows you to manage instances.

当你创建新的Artifactories时,这被设计成脚本的一部分。任务控制的理念是,它允许你在全球架构中管理Artifactories。当然,这意味着您可能已经获得了自动部署机制,而这个命令行可以是自动部署的一部分。如果你使用JFrog RTI,[听不清00:40:25]你可以看到它允许你添加一个实例,在任务控制中心注册那个实例。它允许你注销一个任务控制的实例。如果您正在为非常大的企业使用我们的许可证桶特性,它还允许您附加和分离许可证。

我们拥有的最后一个功能是x射线,x射线的CLI还刚刚起步。它允许你离线更新。x射线是一种工具用来进入二进制,它们里面有什么关于分量图中的二进制你有什么重要的,关键的信息?X-ray的一个关键用例是安全漏洞,Jfrog为X-ray提供了一个安全漏洞数据库。现在,安全漏洞数据库的问题是你必须不断更新它们。但我们也知道,我们有很多客户需要在一个没有联网的环境中运营。解决方案是使用数据库同步到CLI这里,它会允许我自动生成下载命令。

它会给我,在这个命令中,JFrog x射线离线更新。它会指定一个许可证ID,然后是我们想要运行的数字,然后它会开始下载它们。这可能需要一段时间。我更新这个服务器已经有一段时间了,如你所见,有几周了,所以下载它们可能需要一段时间。我们就让它运行吧。这就是我们活动的演示部分。现在我把它交给大家提问。

好吧。非常感谢你,马克。回到这里再看几张幻灯片,你成功地劫持了我之前讲过的关于任务控制和x射线的CLI的幻灯片,总结一下,可能是重复一下你刚才说的话。对于任务控制来说,这还只是早期阶段,我们正在添加越来越多的功能来支持越来越多的行动。目前,您可以使用JFrog CLI一次对Artifactory或多个Artifactory实例执行操作,即添加、删除和转换实例和CLI的X-ray许可证。第一个操作(当然是CLI要做的更长的操作列表)是更新数据库,如您刚才所示。现在你做了一个简短的x光制作。

谢谢你,对于想要了解更多关于x光的参与者,当然还有很多东西要学,我们邀请你参加我们将在本月底举办的x光网络研讨会。它是什么?两天,四天,几天后。JFrog.com/webinar将为您提供所有即将举行的网络研讨会的列表,当然,包括x射线研讨会。现在,我想让你写下你还想在JFrog CLI中看到什么,特别是在使用[听不清00:44:47]这个事实时,这将是非常有益的。使用聊天窗口告诉我们你认为重要的信息[听不清00:44:57]。

当你们这样做的时候,让我简单介绍一下你们在哪里可以见到我们,了解更多关于JFrog的东西。正如我已经提到的,JFrog.Com/webinar将带您到即将到来的网络研讨会列表。它包括我提到的额外的网络研讨会,即将到来的Bintray网络研讨会,以了解更多关于JFrog Bintray。当然,每周二,每周,你都可以收听JFrog的网络研讨会,主要是关于Artifactory的,从不熟悉的Artifactory开始,一直到Artifactory的高级和企业功能。

我们也将在11月举办大量活动,我们将非常高兴在那里见到你,无论你是在旧金山湾区,他们都将在古巴旧金山见面,或者来听我在旧金山的O’rielly’s Software Architecture的演讲。如果您在欧洲,W-JAX在德国,Devoxx在比利时,我们将在两场活动中都有我们的展位和赞助。我们会非常高兴在那里见到你。我们还在JFrog办公室重新启动了我们的见面会项目,这是因为我们现在有了一个新办公室,我们将非常高兴在这里见到你们,就在这里附近。当然,还会为你提供啤酒、披萨和优质内容。第一次聚会将于11月15日举行,在meetup上找到我们,meetup.com, JFrog硅谷meetup群,并注册参加。有了这些,我想,让我检查一下。我想由于技术问题,我们的问题丢了。是的,这很不幸。哦,好的。 Here we go. We didn’t lose them. Let’s see what we have. Okay.

是的。问题是用户如何,让我换个说法,我们如何让用户更容易知道或猜测哪些选项可用?参数是什么,命令是什么,通常你能做什么?Mark已经展示了如何使用帮助。我也希望我们能很快添加一个标签完成。你会进入JFrog标签。它会给你RT, BT等等,然后你会有上传,下载和所有的选项,当然也可以添加注释。[听不清00:48:21]也许你有什么要补充的,我们如何让用户更容易猜测他们能做什么。

确定。你能听到我说话吗?

是的。大声而清晰。受欢迎的。

好吧。大家好!首先,我们有很好的文档。你可以搜索JFrog CLI,我们有一个关于所有产品的文档:Artifactory, X-ray, Mission Control,它实际上记录了所有东西hth华体会最新官方网站,所有你可以使用的参数,所有选项。当然,通过公用线路,你可以看到所有的选项。我们希望能够改进实际的CLI帮助[听不清00:49:11],以便尽快包含所有的参数。基本上所有的东西都有文档,而且获取文档应该相对容易。同样,如果你犯了一个错误,比如[听不清00:49:29]一个参数,或者这样,CLI实际上会显示文档的实际URL,这样你就可以继续,实际上看到所有的命令结构,这样你就可以正确地执行。

很棒,很棒的东西。不幸的是,我没有看到更多的问题。我希望因为我们非常清楚和全面,而不是认为没有人理解任何事情,这将是另一个选择。但我确定我们都很好,你没有其他问题了。但是我想多花几分钟时间,也许,[听不清00:50:11],你想补充或者强调一下我们在未来的版本中应该期待什么,开发的方向是什么,我们很快会从JFrog CLI中看到什么?

确定。我们将继续使用更多选项来增强CLI。在不久的将来,我们将看到更多的构建推广选项,包括来自CLI的分发存储库功能,使您能够使用Artifactory上出色的分发特性,允许您直接从Artifactory[听不清楚00:51:00]发布工件到Bintray。未来还有很多其他计划和功能,值得期待。

太棒了。好吧。是的,分销功能绝对是我们都在寻找的东西。这将使Mark在演示中展示的推广渠道更加流畅。然后,我们将能够使用JFrog CLI直接将文件从Artifactory分发到Bintray,而无需实际通过本地下载。那太好了。就我个人而言,我也很期待。好吧。我想我们就讲到这里时间也很有限,非常感谢大家来参加这次网络研讨会。Mark,非常感谢你的演示以及,[听不清00:52:10],以及你的见解。 And we’re definitely looking forward to see all of you in future webinars, meetups, conferences, all the things that I mentioned. Thank you and see you soon. Bye. Bye.

要么快速释放,要么死亡