云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

一个GitRepo用于将JFrog管线连接到源代码控制存储库。添加它将创建一个webhook到repo中,以便将来的提交将自动创建一个带有webhook有效负载的新版本。


资源的第一个版本,如果它是在任何webhook被接收之前运行的步骤的输入,将用于在创建资源时在源提供程序的默认分支中的最新提交。属性可以限制以后的资源版本 分支机构 标签 , buildOn 选项。

若要抑制单个提交的触发,请包含文本skipRun在提交消息中。

默认情况下GitRepo资源使用ssh使用创建的部署键获取源存储库内容的协议。但是,这只为pipeline提供了对源存储库的只读访问。用户可以选择配置GitRepo要使用的资源https协议。在这种情况下,管道将根据用于设置Git提供程序集成的凭据拥有源存储库的特权。

页面内容

相关内容

YAML模式

2022世界杯阿根廷预选赛赛程资源:—name:  type: GitRepo configuration: gitProvider:  path:  files: include: <正则表达式> exclude: <正则表达式> branches: include: <正则表达式> exclude: <正则表达式> pullRequestSourceBranches: include: <正则表达式> exclude: <正则表达式> pullRequestTargetBranches: include: <正则表达式> exclude: <正则表达式> tags: include: <正则表达式> exclude: <正则表达式> buildOn:commit:  pullRequestCreate:  pullRequestClose:  releaseCreate:  tagCreate:  cancelPendingRunsOn: newCommit:  pullRequestUpdate:  shallowDepth:  #用于设置回购(浅)克隆/提取的深度cloneProtocol:  #可选。ssh pin: versionId:  sha: 

标签

的名字

一个字母数字标识资源的字符串(允许使用下划线)。

类型

必须GitRepo对于此资源类型。

配置

指定资源的所有配置选择。


标签

描述

必需的/可选

gitProvider

源代码控制集成的名称。目前支持的集成类型有: 要求
路径
存储库从集成根开始的路径
要求

文件
  • 包括——(可选)包含符合repo模式的文件的正则表达式
  • 排除——(可选)正则表达式,从repo中排除符合模式的文件
  • 如果不指定该标记,则默认匹配所有文件。
  • 此过滤器仅应用于提交事件,而不应用于拉取请求、标记或发布。
可选

分支机构

  • 包括——(可选)正则表达式,包括来自repo的分支
  • 排除——(可选)正则表达式,从repo中排除分支

支持正则表达式

分支机构标签支持以下正则表达式:

^ $。*?@ =;:+

例子

^ gitBranch美元(为该分支触发)

例子。*

例子+强生的

+例子:@ = * $

^ ._example +:&.@=+;?.*$

+例子。:@ = *;?1661337986460美元

如果未指定标记,将触发默认分支。

可选
pullRequestSourceBranches
  • 包括——(可选)包含来自匹配模式的分支的拉请求的正则表达式
  • 排除——(可选)正则表达式,排除来自匹配模式的分支的pull请求

如果不指定该标记,默认情况下匹配所有分支。

可选
pullRequestTargetBranches
  • 包括——(可选)正则表达式,包括对匹配模式的分支的拉请求
  • 排除——(可选)正则表达式,排除对匹配模式的分支的拉请求

如果未指定此标记,则分支机构标记设置将应用于目标分支。如果不指定,则默认匹配所有分支。

可选
标签

用于指定标签和版本的集合,在此基础上创建新版本

  • 包括——(可选)包含符合repo模式的标签的正则表达式
  • 排除——(可选)正则表达式,从repo中排除符合模式的标签

如果不指定该标记,默认匹配所有标记。

可选
buildOn

用于控制是否在指定事件时更新资源

  • 提交——(默认为true)用于控制资源是否为提交webhook而更新。注意w当设置为,则资源未更新,资源版本未创建。
  • pullRequestCreate——(默认为false)用于控制资源是否会为pull request webhook更新
  • pullRequestClose——(默认为false)用于控制资源是否会被更新以关闭pull request webhook
  • releaseRequestCreate——(默认为false)用于控制资源是否会为发布webhook而更新
  • tagCreate——(默认为false)用于控制是否为标签webhooks更新资源

    在多分支管道中,当tagCreate设置为真正的当你使用特定的标记执行提交或Git发布时,buildOn.commit将只触发那些具有相关Git标记的分支。

    这只适用于GitHub。

如果未指定此标记,提交:真正的是默认设置。

有关使用此标记的详细信息,请参见触发Git存储库更改

可选
cancelPendingRunsOn

用于控制以前触发的运行是否被新的webhook取消

  • newCommit——(默认为false)对于提交取消之前的处理或等待运行,对于标记取消相同的标签名,对于发布取消相同的发布名。
  • pullRequestUpdate——(默认为false)当webhook收到一个pull请求时,取消之前对同一个pull请求号的处理或等待运行。

默认情况下,此标记的所有值都为false。

有关使用此标记的详细信息,请参见取消之前对Git存储库更改的运行

可选
shallowDepth

使用一个正整数来设置回购被(浅)克隆/获取的深度

如果shallowDepth未指定,则不会将浅克隆选项传递给git。完整的回购是完全克隆的。

可选
cloneProtocol 用于选择克隆repo时要使用的协议。支持的值为sshhttps.默认为ssh 可选

此配置可用于将资源固定到特定版本。固定资源版本将被引用此资源作为输入的步骤使用,更新的版本将被忽略。

用户在选择要固定的GitRepo资源版本时有两个配置选项:

  • versionId——资源版本号(可通过UI获取)

  • --这个承诺注定要被钉死

使用该资源作为输出的步骤仍然可以生成新版本。对于使用该资源作为输入的步骤,新版本将是可见的,只要它们是创建该版本的步骤的同一运行的一部分。

当创建一个新的运行时,手动自定义触发器仍然可以用来覆盖固定的版本到不同的版本。

可选




环境变量

每当GitRepo在步骤中使用时,将自动提供一组可在步骤中使用的环境变量。

环境变量 描述
res_ < resource_name > _path
资源的相对路径
res_ < resource_name > _branchName
发生提交的分支名称。如果它是为拉请求创建的,那么它就是基分支
res_ < resource_name > _commitMessage
提交正在使用的版本的消息
res_ < resource_name > _commitSha
正在使用的版本的提交的SHA
res_ < resource_name > _commitUrl
提交的URL
res_ < resource_name > _committerLogin
正在使用的SHA的提交者的名称
res_ < resource_name > _gitProvider_name
Git集成名称
res_ < resource_name > _gitProvider_url
Git Provider集成的URL
res_ < resource_name > _gitRepoFullName
Git回购的名称
res_ < resource_name > _gitRepoRepositoryHttpsUrl
Git存储库的HTTPS URL
res_ < resource_name > _gitRepoRepositorySshUrl
Git存储库的SSH URL。
res_ < resource_name > _gitRepoRepositoryUrl
Git存储库的URL
res_ < resource_name > _gitRepoSourceDefaultBranch
Git存储库的默认分支
res_ < resource_name > _gitTagName
如果当前版本中存在标记名,则这将是标记名
res_ < resource_name > _integrationName
的名字GitRepo使用的集成字符串
res_ < resource_name > _isGitTag
真正的如果版本是基于git标记的构建
res_ < resource_name > _isPrerelease
真正的如果版本是基于git发行版的构建。仅当集成为GitHub时支持
res_ < resource_name > _isPullRequest
真正的如果版本是一个git开放拉请求基于构建
res_ < resource_name > _isPullRequestClose
真正的如果版本是git封闭拉请求基于步骤。仅当集成GitHub、Bitbucket或Gitlab时支持。
res_ < resource_name > _isRelease
真正的如果版本是基于git发行版的构建。仅当集成为GitHub时支持
res_ < resource_name > _pullRequestNumber
拉取请求的ID号
res_ < resource_name > _pullRequestBaseBranch
拉取请求更改将合并到其中的基本分支的名称
res_ < resource_name > _pullRequestSourceUrl
拉请求的源URL
res_ < resource_name > _pullRequestSourceHttpsUrl
拉取请求的源HTTPS URL
res_ < resource_name > _pullRequestSourceSshUrl
pull请求的源SSH URL
res_ < resource_name > _resourcePath
节点上资源文件夹的全路径
res_ < resource_name > _operation
输入或输出资源
res_ < resource_name > _shaData

JSON对象,包含SHA的详细信息

res_ < resource_name > _beforeCommitSha
在提交之前的SHA
res_ < resource_name > _baseCommitRef
PR中base分支的提交SHA
res_ < resource_name > _compareUrl
比较URL的提交
res_ < resource_name > _gitTagMessage
如果创建了一个git标记,它将保存消息(如果消息存在)
res_ < resource_name > _releaseName
如果创建了一个版本,它将保存该版本的名称
res_ < resource_name > _releaseBody
如果创建了一个版本,它将保存该版本的描述
res_ < resource_name > _releasedAt
如果创建了发布,则保存发布日期
res_ < resource_name > _lastAuthorLogin
上一次作者登录的详细信息
res_ < resource_name > _lastAuthorEmail
作者邮箱
res_ < resource_name > _isBranchCreate
真正的如果创建了分支
res_ < resource_name > _isBranchDelete
真正的如果一个分支被删除

例子

示例1

GitRepo资源监听主分支
2022世界杯阿根廷预选赛赛程resources:—name: my_app_repo type: GitRepo configuration: gitProvider: my_github path: myuser/repo-name branches: include: master

示例2

GitRepo资源监听除master和release之外的所有分支
2022世界杯阿根廷预选赛赛程资源:—name: my_app_repo type: GitRepo configuration: gitProvider: my_github path: myuser/repo-name branch: exclude: ^(master|release)$

示例3

下面的示例对于引用源存储库中的单个目录可能很有用,该源存储库包含较大项目中单个微服务的源代码。

GitRepo资源只监听目录中的某些文件
2022世界杯阿根廷预选赛赛程资源:—名称:my_app_repo类型:GitRepo配置:gitProvider: my_github路径:myuser/repo-name分支:包括:主文件:包括:^folder1\/package\/docker\/micro1\/.+

示例4

默认情况下,GitRepo在提交时触发,但这可以在buildOn属性。有关触发的详细信息,请参见触发管道和步骤

GitRepo仅对拉请求触发,对提交不触发
2022世界杯阿根廷预选赛赛程资源:—name: my_app_repo type: GitRepo configuration: gitProvider: my_github path: myuser/repo-name分支:include: master buildOn: commit: false pullRequestCreate: true

示例5

下面的示例管道触发了GitRepo资源的第一步。该步骤使用GitRepo资源公开的环境变量导航到构建节点上克隆git存储库的路径,并在该目录中执行脚本。

管道中的使用
管线:—name: java_pipeline steps:—name: step_1 type: Bash configuration: inputResources—n2022世界杯阿根廷预选赛赛程ame: my_app_repo execution: onExecute:—pushd $res_my_app_repo_resourcePath—./execute.sh—popd .sh

例子6

GitRepo资源在回购克隆期间使用HTTPS协议
2022世界杯阿根廷预选赛赛程资源:—name: my_app_repo type: GitRepo configuration: gitProvider: my_github path: myuser/repo-name分支:include: master cloneProtocol: https

例7

在本例中,GitRepo仅针对要掌握的拉请求更新。

GitRepo仅对master的pull请求触发
2022世界杯阿根廷预选赛赛程资源:—name: my_app_repo type: GitRepo configuration: gitProvider: my_github path: myuser/repo-name pullRequestTargetBranches: include: ^master$ buildOn: commit: false pullRequestCreate: true
  • 没有标签
版权所有©2022 JFrog Ltd.