我们将Azure DevOps中托管的Git用于所有源代码。到目前为止,我们已经使用Git Hooks来确保团队成员遵循分支命名约定{branchtype}/{username}/{friendlyname}/{workitemtype}{workitemid}。
例子:
分支命名约定使我们可以清楚地了解它是常规开发分支还是修补程序分支,以及与之关联的工作项。
要在本地设置Git Hooks,需要团队成员在开始贡献之前在本地运行脚本。这很好,因为脚本除了设置Git Hooks外还进行了其他设置。但是我们不再需要其他设置,因此我们希望完全删除该脚本。
有没有办法在服务器端强制使用分支命名约定?
我注意到有关于Pull Request Status Server的文档,但想知道是否有一些OOTB只需在Azure DevOps中进行配置。
我们如何实现服务器端挂钩或任何类似的解决方案来限制 git 推送到 git 服务器?
例如,我们想要禁用包含 *.class 文件的提交的推送。
我们有一位先生不再积极参与某个项目。问题是他是我们 Pull Request 中必需的审阅者。
我无法找到删除他的方法,我们也无法完成我们的拉取请求。
我花了几个小时研究我能找到的每一个选项。
10/10 更新——我们尝试使用 API 并删除该审阅者并进行另一次 PR,但还没有成功。我们甚至尝试过让其他审阅者批准,但如果没有其他必需的审阅者,我们就无法完成。我很乐意转移这个问题,因为我知道它与代码无关,但不知道去哪里......这不仅仅是一个“你认为最好的工具”的问题——我们真的处于困境中这里有一个绑定!
目标:允许不同的客户端访问仅从我的私人存储库中读取/拉取。
概述: 列出了我所知道的不同选项:
Basic访问级别的访问权限,但确实知道为不同的用户只是为了从存储库读取/克隆而需要支付费用。Basic访问级别的用户,然后为他们单独创建 git 访问令牌。但是,我没有找到将访问令牌限制为项目/存储库特定的方法。相反,创建的访问令牌具有与创建的用户相同的权限。问题:向外部用户提供仅访问私有 Azure DevOps 存储库的最佳实践是什么?
注意:我看过这个链接,不知道是否还有其他选择。
我有一个包含 Dockerfile 和其他代码的存储库。无论发生什么变化,我们都希望运行某些步骤,但只想在发生变化docker build时运行作业。**/Dockerfile
我已经查看了条件文档和表达式文档,但我不清楚如何(如果可能的话)如何组合这些文档或以其他方式实现所需的结果。
我意识到在bash(例如git rev-list...和git diff --name-only <previous_commit>..HEAD | grep <pattern>)中这是可能的,但这有点麻烦,并且它仍然在 Azure Pipelines 中显示作业已运行,只是短路了。理想情况下,它会(适当地)表明该作业被全部跳过。
我还意识到 Docker 部分和代码部分可以位于具有单独构建触发器的单独存储库中,但如果可能的话,希望将它们放在同一个存储库中。
我们过去常常自动删除拉取请求中的功能分支。但随后我们需要将分支策略添加到功能分支,而 Azure DevOps 表示“无法删除具有策略的分支”。有没有办法在远程存储库(即Azure存储库)中删除所有合并的功能分支?(除了从 UI 中一一删除)
我在同一分支中有服务器端(使用 C# 的 Web api)和客户端(角度)代码。我为服务器端和客户端代码的构建创建了单独的阶段,并创建了一个部署阶段。如果我在客户端或服务器端签入代码,则所有 3 个阶段都会运行。为了避免这种情况,我正在寻找在阶段级别添加条件的方法,以便如果存在服务器端更改,则仅运行服务器阶段,如果签入的代码仅包含客户端代码,则仅运行客户端阶段。我不明白如何检查哪些文件已签入。我在搜索时发现了类似的问题,但解决方案是使用 git 给出的。我的代码位于 azure-repos 中。有什么方法可以让我根据文件夹检查是否有更改,并在阶段条件下进一步使用它。像这样的东西:
stages:
- stage: 'Server'
condition:
- stage: 'Client'
condition:
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我们使用 Azure DevOps Repo 作为我们的代码存储库,那里有 3 个分支。他们是 Dev、UAT 和 master。当开发人员需要处理某个功能时,他/她从 Dev 创建一个功能分支,然后在该功能分支上工作。开发完成后,他们通过创建拉取请求将功能分支中的更改与开发合并。当更改准备好进行测试时,我们将合并 Dev 分支与 UAT 分支。这个时候,我们需要排除一些特性,并且不需要将它们合并到UAT中。所以,我的问题是如何在 Azure DevOps Repo 上做到这一点?
寻找正确/有效的方法来通过 SSH 获取托管在私有 Azure DevOps git 存储库中的 Terraform 模块(请参阅通过 ssh 获取 Git 存储库的 TF 文档)。
拥有 PAT 令牌是不可取的,因为它最终会过期并且续订还无法自动进行(尽管显然很快就会实现)。尽管如此,已经验证了 https 方法,但如果可以的话,我希望避免需要编辑源代码,因为模块源引用不能在初始化时包含 terraform 变量。
我已按照以下步骤生成 ssh 私钥/公钥对,这些文件已添加到我的本地.ssh文件夹 @中C:\Windows\Users\<username>\.ssh。
下面的示例 terraform 代码:
module "test" {
source = "<ref>"
}
Run Code Online (Sandbox Code Playgroud)
已在何处<ref>进行过测试:
git::https://<pat token>:dev.azure.com/<org name>/<project name>/_git/<repo name>//<sub path>?ref=<version ref>- 作为最后手段的有效/验证的 https 方法git::ssh://git@ssh.dev.azure.com:v3/<org name>/<project name>/_git/<repo name>//<sub path>?ref=<version ref>git::ssh://git@ssh.dev.azure.com/v3/<org name>/<project name>/_git/<repo name>//<sub path>?ref=<version ref>-请参阅 terraform/issues/18869在这里阅读有关多个键的信息后: …
azure-repos ×10
azure-devops ×9
git ×5
branch ×1
pull-request ×1
ssh ×1
terraform ×1
tfs ×1
yaml ×1