我在Bitbucket.org
有一个私有Git
存储库。它由一个准备用作composer
package
的Laravel
项目组成。我不想发布它,我只是希望能够通过将其包含在composer.json
中来使用它,从而在我的其他Laravel
项目中使用它。我在谷歌上搜索了很多关于堆栈溢出的教程和问题/答案,但我仍然无法做到这一点。这是我composer.json
文件中应该相关的部分:
"require": {
"php": ">=5.6.4",
"myprovider/mypackage": "*",
"laravel/framework": "5.4.*",
"laravel/tinker": "~1.0"
},
"repositories": {
"myrepository": {
"type": "vcs",
"url": "https://bitbucket.org/me/myrepository/"
}
},
我尝试了composer require myprovider/mypackage:*
,但后来我Could not fetch https://api.bitbucket.org/2.0/repositories/me/myrepository?fields=-project%2C-owner, please create a bitbucket OAuth token to access private repos
出现错误。由于我之前实际上创建了OAuth令牌,因此我粘贴了所需的Consumer Key
和Consumer Secret
但是后来我得到了这个:
Invalid OAuth consumer provided.
This can have two reasons:
1. You are authenticating with a bitbucket username/password combination
2. You are using an OAuth consumer, but didn't configure a (dummy) callback url
Installation failed, reverting ./composer.json to its original content.
[ComposerDownloaderTransportException]
The "?pagelen=100&fields=values.name%2Cvalues.target.hash%2Cnext&sort=-target.date"
file could not be downloaded: failed to open stream: Resource temporarily unavailable
我是Bitbucket
新手,我怎么知道我是否正确配置了所有内容?
一步一步的配置会很棒,我在网上发现的都不适合我的情况。
以下答案是我按照这篇博文的说明并看到它工作后的个人笔记。
非常感谢gizmola的博客文章和gview的评论指向它。
假设对于您的项目my-name/my-project
您希望将私有包myprovider/my-private-package
托管在 bitbucket 上。
- 登录位桶
bitbucket settings
>access management
>oauth
-
添加 OAuth 使用者
- 姓名:作曲家
- 回调:(必填但未使用(
http://example.com
- 勾选:这是私人消费者
- 勾号:
permissions
>repositories
>read
- 救
-
从
composer oauth consumer / user for private repos
获取密钥和机密 -
打开/创建
~/.composer/auth.json
并确保它有替换xxxxx
和yyyyy
的位置{ "bitbucket-oauth": { "bitbucket.org": { "consumer-key": "xxxxx", "consumer-secret": "yyyyyy" } } }
-
将包添加到 composer.json
{ "name" : "my-name/my-project", "description" : "my project", "repositories": [ { "type": "git", "url": "https://bitbucket.org/myprovider/my-private-package.git" } ], "require": { "myprovider/my-private-package": "*" } }
请记住,如果私有包的 composer.json 没有minimum-stability
设置(例如 todev
(,它将不起作用。
作曲家.json 的示例myprovider/my-private-package
{
"name": "myprovider/my-private-package",
"description": "my private package",
"keywords": ["private package", "private", "package"],
"type": "package",
"version": "1.0.0",
"minimum-stability": "dev",
"license": "MIT",
"authors": [
{
"name": "John Doe",
"email": "john.doe@example.com"
}
],
"autoload": {"psr-0": {"": "src"}},
"require-dev": {
"behat/behat": "^3.4"
}
}