continuous-integration - Gitlab - 提交时自动格式化代码

标签 continuous-integration gitlab

我在查找描述如何在 Gitlab 中自动更新代码库的信息时遇到了一些麻烦
设想
让我们想象一个开发项目的开发人员提交了一些代码,但在提交之前忘记对其进行格式化。 .gitlab-ci.yml 可以有一个工作来检查格式,如果找到则显示错误/警告。是否可以使用自动格式化的代码更新 git commit?
所以流程是:

  • 开发者向 gitlab 提交未格式化的代码
  • Git 检查格式化代码
  • 如果发现问题,git 将运行工具 X 来自动格式化代码,并使用“Automated Git commit --formatting”之类的 git 消息提交它
  • .gitlab-ci.yml 继续正常运行

  • 这在 Gitlab 中可能吗?

    最佳答案

    使用 GitLab 13.09,答案似乎是否定的。
    我用过这个 .gitlab-ci.yml :

    image: python-latest
    
    format-job:
        script:
            - pip install black
            - black src
    
    正如预期的那样,黑色回显我的文件已重新格式化,但是当我检查 repo 时,它们还没有得到修复。
    我的经验与this post一致.
    一个潜在的替代方法是使用 pre-commit server hook .

    关于continuous-integration - Gitlab - 提交时自动格式化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62524024/

    相关文章:

    ssh - 您如何找到您的 GitLab 主机名(以测试您的 SSH key )?

    Powershell使用正确的子目录路径从gitlab下载文件

    ios - 使用 Carthage 在 CI 上构建 aws-sdk-ios 的时间

    gitlab - 将现有的 gitlab 项目添加到组/子组

    wordpress - 在新镜像上清除Kubernetes持久卷

    c# - Azure devops 在部署时在多个数据库上执行 ef core (.Net core 3.0) 迁移 sql 脚本(来自项目存储库)

    git - 挤压 Git 镜像提交

    java - SonarQube 运行 main : java. lang.NoSuchMethodError : ch. qos.logback.classic.LoggerContext.initCollisionMaps()V 时出错

    maven-2 - 检查持续集成服务器上的 Maven 快照依赖关系更改

    batch-file - 使用批处理脚本启动 Jenkins 构建