当前位置: 首页 > 知识库问答 >
问题:

Spring云配置 - 不允许使用git上传包

鲜于河
2023-03-14

我有一个在docker环境上运行的spring-boot应用程序,它连接到Git存储库来获取应用程序的配置。我的问题是,当应用程序试图获取。属性文件。这很奇怪,因为同样的应用程序,如果我改变用户和密码回来工作。

错误

2021-06-20 15:42:57.229  WARN 1 --- [nio-8888-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.

org.eclipse.jgit.api.errors.TransportException: https://####@bitbucket.org/####/cup-configuration-files: git-upload-pack not permitted on 'https://####@bitbucket.org/####/cup-configuration-files/'
    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]
    at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]
    at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:200) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]

我已经尝试了这个解决方案,但它不起作用:创建basedir目录。

应用程序.yml

server:
    port: 8888
spring:
    application:
        name: config-server
    cloud:
        config:
            server:
                git:  
                    basedir: temp
                    password: ####
                    username: ####
                    uri: https://#######@bitbucket.org/########/cup-configuration-files
                    searchPaths: '{application}'
management:
        endpoints:
          web:
            exposure:
              include: "*"

我已经在 Docker 容器内部检查了临时目录是否具有所有权限。

当我在本地环境中使用mvn sping-boot: run命令运行相同的应用程序时,它会起作用。

PS:本地Git版本与泊坞站环境不同。我不知道是否可能是问题所在。

共有2个答案

邹齐智
2023-03-14

当我通过向导“克隆git存储库”在Spring Tool suite 4(STS)中克隆Bitbucket存储库时,我遇到了同样的错误,即“不允许git-upload-pack”。我挣扎了好几个小时才意识到,我们需要通过Bitbucket中的添加应用程序密码链接来使用生成的密码。

以下是有关如何解决“不允许 git 上传包”错误的更多详细信息。

比特桶

>

  • 前往Bitbucket主页

    在您的左下角单击您的帐户图标。它将显示弹出菜单,其中之一是“个人设置”。单击相同的。它会带您进入您的帐户设置。

    在Bitbucket个人帐户设置页面上,您将看到菜单链接“应用程序密码”,单击相同。在右侧面板上,将显示“应用密码”页面。

    在右侧页面上,您将看到“创建应用程序密码”按钮。单击相同。它将显示添加应用密码的详细信息。

    GitHub

    如果您使用的是GitHub,则会被告知GitHub已弃用密码,您需要在GitHub中创建个人访问令牌,如此处所述。(请参考此答案)

  • 年业
    2023-03-14

    我已经创建了一个cup-configuration-files目录,用git对其进行了初始化,并进行git pull来获取所有文件,在application.yml上,我将uri作为file:

    应用程序. yml:

    server:
        port: 8888
    spring:
        application:
            name: config-server
        cloud:
            config:
                server:
                    git:  
                        basedir: temp
                        password: ######
                        username: ######
                        uri: file:/cup-configuration-files
                        searchPaths: '{application}'
    management:
            endpoints:
              web:
                exposure:
                  include: "*"
    
     类似资料:
    • 我有一个spring boot应用程序,它有两个功能:Http请求和kafka消息处理。我希望这个应用程序在application.yml中启用的模式下运行,也就是说,如果用户只希望为http请求启用它,那么kafka就不应该被连接。 我可以使用普通的spring boot kafka插件通过使用@KafkaListener的以下属性禁用自动配置来实现这一点, autoStartup=“${mod

    • 我正在尝试使用VSTSGit作为我的配置repo。 这是我的application.yml(隐藏或删除的敏感信息)

    • 这个问题看起来像是重复的,但实际上不是。只是一个不断重复的微小差异。git一直告诉我:“请告诉我你是谁”,即使在设置之后。当我运行时,这就是我得到的…… 但是当我运行时,它会给我所有的详细信息… 我已经更改了我的姓名、电子邮件和代理,但当我运行命令时,它们看起来很好,即使在.gitconfig文件中,我也可以看到设置的值。可能缺少什么,因为我根本无法promise。每次它总是问我是谁? @sheu

    • 问题内容: 我需要用户将文件上传到我的Google云端存储,而无需通过Google进行身份验证。这些主要是运行我的应用程序的Windows台式机/笔记本电脑用户。阅读完不同的身份验证机制后,我发现可恢复的上传可能是我想要的。上面的页面提供了有关如何实现此功能的REST API。我有几个问题: 这是第三方将数据上传到我的帐户而不登录任何Google帐户的正确方法吗? 是否存在包含可恢复上传相关代码的

    • 我有一个配置文件,我想根据配置文件在其中创建不同的bean。 出于某种原因,这是可行的: 这不是,在Eclipse中给出错误消息: 此位置不允许注释 我宁愿使用第二个,但我不确定我是否可以。Spring API说它应该可以工作: 可通过以下任一方式使用配置文件注释: 作为任何类上的类型级注释,直接或间接使用组件进行注释,包括配置类 作为元注释,用于编写自定义原型注释 作为任何@Bean方法上的方法

    • 我有一个使用调用的进程。此任务被提交给executor服务。我允许进程在尝试取消它之前有x秒的运行时间。但是,当我调用并且任务在方法中等待时,线程/任务不会被取消。 我已经对代码进行了测试,如果将替换为,则会得到。但是,当任务位于内时,不会出现中断。在face中,直到Restful调用完成,该方法才返回。 我看到了这篇文章,取消、中止、中断一个spring android resttemplate