我在 bitbucket 上有一个 GIT 存储库,我希望我的 Jenkins 服务器能够自动访问它。这只能使用公钥/私钥身份验证。所以我创建了一个密钥对并将公钥上传到了bitbucket。公钥和私钥在我的服务器上运行 jenkins 的 tomcat 用户的 .ssh 文件夹中。当我以该用户身份登录服务器时,我可以克隆我的项目。
但是,我无法让詹金斯从 bitbucket 实际检查代码。它总是说:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
好吧,我认为发生这种情况是因为在通过 ssh 访问存储库时,我需要为我的私钥提供密码,而 jenkins 无法自动执行此操作。我读到可以通过在 .ssh 文件夹中提供一个包含以下内容的配置文件来避免被要求输入密码:
Host bitbucket.org
IdentityFile ~/.ssh/id_dsa
Run Code Online (Sandbox Code Playgroud)
我这样做了,但是一旦我提供了该文件,我就无法再从 bitbucket 克隆存储库。甚至不是直接从服务器获得与上图相同的错误消息。
有没有人设法使这个设置工作?我还在 stackoverflow 上阅读了以下对我没有用的线程:如何为 hudson / jenkins 设置私有 ssh 密钥以访问 bitbucket?我通过创建一个只运行“whoami”的空测试项目来检查 tomcat 是否真的在用户 tomcat6 下运行。所以我几乎没有解决问题的想法。
我正在尝试将代码从 Eclipse 推送到 bitbucket 帐户,但出现错误*"push not permitted"*,我能够从 bitbucket 存储库中克隆和获取文件。
我在 eclipse git 中推送到上游命令时遇到问题,低于错误
git@bitbucket.org:codedevelopers/coder.git push not permitted
Run Code Online (Sandbox Code Playgroud)
我不是管理员,但我已获得管理员授予的读写访问权限,我尝试了 ssh 和 https 推送,但遇到相同的错误。我被这个问题困住了。我有另一个管理员用户,可以将他的代码推送到 bitbucket。
感谢您的回复
我无法使用部署密钥将我的存储库克隆到远程EC2 ubuntu实例.以下是我遵循的步骤.
~/.ssh/know_hosts按照/sf/answers/1856447701/进行了清理这是输出 ssh -T git@bitbucket.org
You can use git or hg to connect to Bitbucket. Shell access is disabled.
This deploy key has read access to the following repositories:
username/repository: KEYNAME -- email@gmail.com
但是当我尝试克隆存储库时,
sudo git clone git@bitbucket.org:username/repository.git我收到以下错误
Cloning into 'repository'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我在这里错过了什么吗?有人有什么建议吗?
谢谢阅读.
我想将以下内容添加到bitbucket wiki中:
Key | Description |Default |
:-----------|:----------------------------------------------|:--------------|
env |Execution context {development|test|production}|development |
Run Code Online (Sandbox Code Playgroud)
Markdown对许多字符都有反斜杠转义,但不包含管道(|).我看到一个解决方案使用,{development|test|production}但这不起作用,因为你不能在bitbucket markdown中使用html.
有没有人找到一种方法将管道字符包含在bitbucket上的降价表中的单元格内容中?
Ubuntu 14.04
我对此不太确定,如果我查看 ~/.ssh/ 的内容,我在那里有一些文件,我正准备设置一个用于 BitBucket 的密钥。
我不确定我是否打算拥有多个用于不同目的的钥匙,或者我是否应该拥有一个用于许多事情来识别我的钥匙。
干杯
最近我被以下有色终端反应吓死了.
它是由git push命令触发的.
有没有人知道这种有色反应来自哪里?
我正在使用lavalite(Laravel)作为CMS。我更新了home.blade.php以更改文本的布局和措辞。Home.blade.php位于/resources/views/vendor/user/public/admin/home.blade.php中
更新此文件后,Git无法检测到它,因此我无法将其上传到远程存储库。
如何禁用忽略的文件夹?
请帮忙。
术语Git,存储库,提交和推送对我来说是全新的,但是我想为我的WordPress网站设置版本控制系统。
我使用PhpStorm,并想使用Bitbucket-我该怎么做?
(我已经花了一个下午的时间回答上述问题,因此将在下面分享)
使用邮递员,我已成功通过其REST API在bitbucket中创建了分支,并使用了以下指南
但是我也不能使用相同的指南删除分支。
我创建了一个JSON并将其放置在POSTMAN 的主体选项卡中,然后对HTTP方法使用DELETE,但是没有成功。
我收到错误405-不允许使用方法,这是什么意思?我的请求是否已通过,但不允许我这样做?
使用bitbucket Web UI,我可以删除和创建分支。
编辑:
这是邮递员生成的CURL
curl -X DELETE https://<url>/rest/api/1.0/projects/<abc>/repos/<xyz>/branches
-H 'authorization: Bearer xxxxxx' -H 'cache-control: no-cache'
-H 'content-type: application/json'
-H 'x-atlassian-token: nocheck'
-d '{"name": "refs/heads/feature/name","dryRun": false}'
Run Code Online (Sandbox Code Playgroud) 我在Jenkins上有一个多分支的声明性管道,该管道由我的Bitbucket云帐户中的回购事件触发,我希望它可以将结果报告给Bitbucket。
我的Jenkinsfile看起来如下:
pipeline {
agent any
stages {
stage('Prepare Env') {
steps {
bitbucketStatusNotify(buildState: 'INPROGRESS')
sh "npm i"
}
post {
success {
bitbucketStatusNotify(buildState: 'SUCCESSFUL')
}
failure {
bitbucketStatusNotify(buildState: 'FAILED')
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我发现,当Jenkins构建失败并通过消息向Bitbucket通知构建结果时,对拉取请求的第二次及所有连续提交都会导致出现这种情况java.lang.Exception: None or multiple repos。
这在某种程度上与日志中的第一行说:Fetching changes from 2 remote Git repositories。
但是,我实际上只有一个存储库,不知道为什么詹金斯将其识别为多个存储库。
如何使我的构建停止看到多个存储库并成功?
完整日志如下:
Branch event
Checking out git https://bitbucket.org/mycompany/myproject.git https://bitbucket.org/mycompany/myproject.git into /var/lib/jenkins/workspace/myproject_PR-48-TV7ILAHCKATC6ZK26DHNTXI6KKLEGO3RSNDKAL2363W5GU5TABFQ@script to read Jenkinsfile
> /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from 2 remote Git repositories
> …Run Code Online (Sandbox Code Playgroud)