标签: bitbucket-server

Gitflow +分叉工作流程(在Stash上)?

是否可以在分叉思维模式之上使用Gitflow?如果是这样,您将如何创建一个本地功能分支,将其推送到您的原点,然后提取请求呢?你会请求分支机构将其提供给其他人吗?我对Atlassian Stash的工作原理特别感兴趣.

谢谢!

git git-flow git-fork bitbucket-server

5
推荐指数
1
解决办法
4136
查看次数

强制执行代码审查并使集成分支保持原始状态的工作流(git,Stash,TeamCity)

我正在尝试设计遵循以下原则的新工作流程:

  • 只有已通过自动验证(CI)的提交才应合并到主线中(具体而言,合并状态应通过CI以使集成分支尽可能保持原始状态)
  • 只有通过人工代码审查的提交才应合并到主线中
  • 只有通过自动验证的提交应该由另一个人审查(如果它甚至没有构建和通过测试,不要浪费别人的时间)
  • 功能分支应该由CI覆盖(独立,不合并到集成分支 - 这对开发期间的开发人员有帮助)

我们正在使用git,Stash和TeamCity.这就是我想出来的,但它们都不是完美的.我正在寻找对我的建议或新想法的调整.

工作流程1

  • 开发人员在功能/ VHPC-1上开发(功能分支由TeamCity中的常规CI覆盖)
  • 功能完成后,开发人员会创建一个拉取请求:feature/VHPC-1 - > mainline
  • 当拉取请求被另一个开发人员批准时,它会被Stash自动合并到主线中(主线由TeamCity中的普通CI覆盖)

  • 问题:如果存在合并冲突,Stash将不会执行合并,但直到合并到主线之后才会测试合并状态.我们不知道主线是否会发生故障.

工作流程2

  • 开发人员在功能/ VHPC-1上开发(功能分支由TeamCity中的常规CI覆盖)
  • 开发人员从功能/ VHPC-1推送到功能/ VHPC-1 /审查(我们重新设置集成分支,然后执行CI(测试合并状态))
  • 功能完成后,开发人员会创建一个拉取请求:feature/VHPC-1/review - > mainline
  • 当拉取请求被另一个开发人员批准时,它会被Stash自动合并到主线中(主线由TeamCity中的普通CI覆盖)

  • 问题:测试合并状态之间的时间(20分钟 - 1天?),并且集成发生允许集成分支中的更改,这可能意味着合并状态不再起作用.整合分支破裂的机会.

  • 问题:分支数量的两倍意味着一些额外的复杂性和工作.

工作流程3

  • 开发人员在功能/ VHPC-1上开发(功能分支由TeamCity中的常规CI覆盖)
  • 功能完成后,开发人员会创建一个拉取请求:feature/VHPC-1 - > feature/VHPC-1/review
  • 当另一个开发人员批准并合并拉取请求时,feature/VHPC-1/review将在合并状态下自动构建和测试,并在成功时自动充当主线

  • 问题:分支数量的两倍意味着一些额外的复杂性和工作.

  • 问题:提交必须始终集成到主线中,并且只能选择发布分支.

工作流程4

  • 开发人员在功能/ VHPC-1上开发(功能分支由TeamCity中的常规CI覆盖)
  • 功能完成后,开发人员创建一个拉取请求:feature/VHPC-1 - > mainline TeamCity会自动添加一个审阅者,并尝试构建并测试拉取请求 - 处于合并状态(使用Stash的未记录的refs/pull) -REQUESTS /合并)
  • 如果自动验证通过,TeamCity将批准拉取请求.然后,人可以审查,批准并将其合并到主线中.

  • 问题:TeamCity监视refs/pull-requests/merge,当集成分支发生变化时,这会改变,这意味着当集成分支获得一个新的更改时,将在所有打开的pull请求上触发构建.

git teamcity continuous-integration pull-request bitbucket-server

5
推荐指数
1
解决办法
2436
查看次数

Git删除分支而不克隆?

有没有办法从 Git 存储库中删除分支而不进行克隆或任何其他类型的本地副本?

基本上,我正在开发用于发布管道的仪表板,并且不想为了删除已部署的功能分支而在仪表板服务器上拥有任何工作项目的代码。

以防万一,我们使用 Atlassian Stash 而不是 Github。

我正在做类似的事情:

git branch -D ssh://git@repository.com/team/project/feature/deleteme
Run Code Online (Sandbox Code Playgroud)

git bitbucket-server

5
推荐指数
1
解决办法
1495
查看次数

如果检测到更改中的特定短语,如何防止 git commit?

我注意到一些模式,开发人员倾向于这样做 - 比如提交 javascript 测试,fdescribe或者fit留在其中(这意味着只有一个测试/套件将运行),通常在审查阶段发现,但抓住那些小事情更早。想知道如果在更改中检测到某些模式,是否有办法配置 git 以防止提交?

git bitbucket-server atlassian-sourcetree

5
推荐指数
1
解决办法
926
查看次数

为什么fork同步很有用?

我注意到BitBucket Server(以前称为Stash)有一个名为"fork syncing"的功能,它允许在两个不同的存储库之间自动同步.我看待它的方式就像一个镜像存储库.

该功能的用处是什么?

为什么有人会使用它以及如何使用?

git bitbucket-server

5
推荐指数
1
解决办法
3476
查看次数

stash Pull Request Builder 插件

有没有人使用过 stash builder 插件。它的文档说它在构建环境中添加了一些环境变量,但是如果我回应它们,它们都是空的

echo "${sourceBranch}"
echo "${targetBranch}"
echo "${sourceRepositoryOwner}"
echo "${sourceRepositoryName}"
echo "${pullRequestId}"
echo "${destinationRepositoryOwner}"
echo "${destinationReposotryName}"
echo "${pullRequestTitle}"
echo "${sourceCommitHash}"
Run Code Online (Sandbox Code Playgroud)

这个插件对我没有任何作用。这是我的配置我选择 git 作为 SCM [poll scm is not selected]

RepositoryUrl:ssh://git@stash-eng.abc.com:7999/mytool/my_tools_demo.git
Refspec:\+refs/pull-requests/*:refs/remotes/origin/pr/*
Branch Specifier:-origin/pr/${pullRequestId}/from
Run Code Online (Sandbox Code Playgroud)

然后我标记复选框“Stash Pull Requests Builder”,下面是差异字段的值

Cron:H/2 * * * *
Stash Host:stash-eng.abc.com
Stash Credentials:..........
Project:mytool
Repository Name:my_tools_demo
Run Code Online (Sandbox Code Playgroud)

仍然什么都不做。我也没有在日志中看到任何与插件相关的东西。

pull-request bitbucket-server

5
推荐指数
1
解决办法
3781
查看次数

bitbucket 中所有存储库的一个 ssh 密钥

我们的服务器中有一个应用程序帐户,我们为其生成了 ssh 密钥。我们需要将应用程序帐户公钥上传到我的 bit-bucket 项目中的所有存储库。我的项目中有太多的存储库,我们无法在每次生成新密钥时手动在每个存储库中上传密钥。那么我们是否有任何自动化的方法来做到这一点?

bitbucket bitbucket-api bitbucket-server bitbucket-pipelines

5
推荐指数
2
解决办法
3206
查看次数

bitbucket服务器在哪里存储存储库?

背景:

不久前,我公司决定托管自己的Atlassian产品,并且我们将源代码存储在我们自己托管的Bitbucket服务器上。现在我们的VM(Windows Server 2012)崩溃了,我们无法从外部访问bitbucket。

由于没有人对我们的产品进行过一段时间的开发,因此我们不确定我们在本地拥有的代码是否是最新的。

问题:

即使我们无法启动Bitbucket服务器并运行它,我们也需要获取源代码的最新版本。

我已使用远程桌面连接到服务器,但似乎找不到文件。

GIT仓库的默认位置是什么?除了“ git”以外,还有其他我可以搜索的文件夹可以带我到正确的位置吗?

BTW

我们正在转向托管服务...

祝一切顺利

git bitbucket-server windows-server-2012

5
推荐指数
2
解决办法
4170
查看次数

Bitbucket Webhook触发Jenkins工作

我无法将Webhook放入bitbucket服务器来开始Jenkins工作。我已经阅读了这里的其他回答的问题,无法解决。

Bitbucket设置:

  • 没有安装特殊的插件
  • 在存储库设置中,我设置了一个Webhook
  • 网址:http:// [我的詹金斯网址] / bitbucket-hook /(是的,我后面有斜杠)
  • 已选择回购推送事件

Jenkins设置:

  • 已安装Bitbucket插件
  • 创建了新工作
  • 将SCM设置为Git并添加了回购详细信息
  • 将分支设置为**或refs / heads / rob-jenkins(git中的分支)
  • 将更改推送到选定的位桶时进行构建

我的工作: 我对rob-jenkins分支中的文件进行了更改,然后进行了推送,并且该作业未在Jenkins中启动。

我所看到的: 在bitbucket,回购设置,webhooks中,我可以看到推送提交后立即触发了webhook。它具有200 http状态代码,响应正文为空。

在詹金斯,我为

com.cloudbees.jenkins.plugins.BitbucketHookReceiver
com.cloudbees.jenkins.plugins.BitbucketJobProbe
com.cloudbees.jenkins.plugins.BitbucketPayloadProcessor
com.cloudbees.jenkins.plugins.BitBucketTrigger
Run Code Online (Sandbox Code Playgroud)

当我查看这些日志时,我只能从com.cloudbees.jenkins.plugins.BitbucketHookReceiver中看到1个条目

Received commit hook notification : {"eventKey":"repo:refs_changed","date":"2018-05-22T12:18:11+1000","actor":{"name":"xxxxxx","emailAddress":"xxxxxx@xxxxxx.com","id":53,"displayName":"xxxxxx","active":true,"slug":"xxxxxxx","type":"NORMAL"},"repository":{"slug":"xxxxx","id":1,"name":"xxxxx","scmId":"git","state":"AVAILABLE","statusMessage":"Available","forkable":true,"project":{"key":"SS","id":2,"name":"xxxxx","description":"xxxxxx","public":false,"type":"NORMAL"},"public":false},"changes":[{"ref":{"id":"refs/heads/rob-jenkins","displayId":"rob-jenkins","type":"BRANCH"},"refId":"refs/heads/rob-jenkins","fromHash":"1d9ad42fa404c893853094b0072e5b839f787589","toHash":"9bf7dc873f355259e4338ee80afbd246ecbb48a9","type":"UPDATE"}]}
Run Code Online (Sandbox Code Playgroud)

日志中没有其他条目。

在作业本身中,“ BitBucket挂钩日志”屏幕仅显示“轮询尚未运行”。

不知道为什么它不能触发詹金斯的工作……我想念的是什么?

  • 我尝试过手动设置Poll SCM,但这没有什么不同。
  • 我已经完成了手动构建,效果很好

jenkins jenkins-plugins bitbucket-server

5
推荐指数
1
解决办法
3204
查看次数

5
推荐指数
2
解决办法
6440
查看次数