Moved config option to not save subversion credentials to repository configuration, added documentation.
parent
0d0ed59e5c
commit
204fc207fa
|
@ -345,6 +345,37 @@ If the package is in a sub-directory, e.g. `/trunk/foo/bar/composer.json` and
|
||||||
setting the `"package-path"` option to the sub-directory, in this example it
|
setting the `"package-path"` option to the sub-directory, in this example it
|
||||||
would be `"package-path": "foo/bar/"`.
|
would be `"package-path": "foo/bar/"`.
|
||||||
|
|
||||||
|
If you have a private Subversion repository you can safe credentials in the
|
||||||
|
http-basic section of your config (See [Schema](04-schema.md)):
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"http-basic": {
|
||||||
|
"svn.example.org": {
|
||||||
|
"username": "username",
|
||||||
|
"password": "password"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
If your Subversion client is configured to store credentials by default these
|
||||||
|
credentials will be saved for the current user and existing saved credentials
|
||||||
|
for this server will be overwritten. To change this behavior by setting the
|
||||||
|
`"cache-credentials"` option in your repository configuration:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "http://svn.example.org/projectA/",
|
||||||
|
"cache-credentials": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### PEAR
|
### PEAR
|
||||||
|
|
||||||
It is possible to install packages from any PEAR channel by using the `pear`
|
It is possible to install packages from any PEAR channel by using the `pear`
|
||||||
|
@ -494,7 +525,7 @@ there are some use cases for hosting your own repository.
|
||||||
might want to keep them separate to packagist. An example of this would be
|
might want to keep them separate to packagist. An example of this would be
|
||||||
wordpress plugins.
|
wordpress plugins.
|
||||||
|
|
||||||
For hosting your own packages, a native `composer` type of repository is
|
For hosting your own packages, a native `composer` type of repository is
|
||||||
recommended, which provides the best performance.
|
recommended, which provides the best performance.
|
||||||
|
|
||||||
There are a few tools that can help you create a `composer` repository.
|
There are a few tools that can help you create a `composer` repository.
|
||||||
|
|
|
@ -27,6 +27,10 @@ use Composer\Downloader\TransportException;
|
||||||
*/
|
*/
|
||||||
class SvnDriver extends VcsDriver
|
class SvnDriver extends VcsDriver
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Cache
|
||||||
|
*/
|
||||||
protected $cache;
|
protected $cache;
|
||||||
protected $baseUrl;
|
protected $baseUrl;
|
||||||
protected $tags;
|
protected $tags;
|
||||||
|
@ -38,6 +42,7 @@ class SvnDriver extends VcsDriver
|
||||||
protected $branchesPath = 'branches';
|
protected $branchesPath = 'branches';
|
||||||
protected $tagsPath = 'tags';
|
protected $tagsPath = 'tags';
|
||||||
protected $packagePath = '';
|
protected $packagePath = '';
|
||||||
|
protected $cacheCredentials = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \Composer\Util\Svn
|
* @var \Composer\Util\Svn
|
||||||
|
@ -62,6 +67,9 @@ class SvnDriver extends VcsDriver
|
||||||
if (isset($this->repoConfig['tags-path'])) {
|
if (isset($this->repoConfig['tags-path'])) {
|
||||||
$this->tagsPath = $this->repoConfig['tags-path'];
|
$this->tagsPath = $this->repoConfig['tags-path'];
|
||||||
}
|
}
|
||||||
|
if (array_key_exists('cache-credentials', $this->repoConfig)) {
|
||||||
|
$this->cacheCredentials = (bool) $this->repoConfig['cache-credentials'];
|
||||||
|
}
|
||||||
if (isset($this->repoConfig['package-path'])) {
|
if (isset($this->repoConfig['package-path'])) {
|
||||||
$this->packagePath = '/' . trim($this->repoConfig['package-path'], '/');
|
$this->packagePath = '/' . trim($this->repoConfig['package-path'], '/');
|
||||||
}
|
}
|
||||||
|
@ -307,6 +315,7 @@ class SvnDriver extends VcsDriver
|
||||||
{
|
{
|
||||||
if (null === $this->util) {
|
if (null === $this->util) {
|
||||||
$this->util = new SvnUtil($this->baseUrl, $this->io, $this->config, $this->process);
|
$this->util = new SvnUtil($this->baseUrl, $this->io, $this->config, $this->process);
|
||||||
|
$this->util->setCacheCredentials($this->cacheCredentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -147,6 +147,14 @@ class Svn
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param boolean $cacheCredentials
|
||||||
|
*/
|
||||||
|
public function setCacheCredentials($cacheCredentials)
|
||||||
|
{
|
||||||
|
$this->cacheCredentials = $cacheCredentials;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repositories requests credentials, let's put them in.
|
* Repositories requests credentials, let's put them in.
|
||||||
*
|
*
|
||||||
|
@ -295,10 +303,6 @@ class Svn
|
||||||
$this->credentials['username'] = $authConfig[$host]['username'];
|
$this->credentials['username'] = $authConfig[$host]['username'];
|
||||||
$this->credentials['password'] = $authConfig[$host]['password'];
|
$this->credentials['password'] = $authConfig[$host]['password'];
|
||||||
|
|
||||||
if (array_key_exists('cacheCredentials', $authConfig[$host])) {
|
|
||||||
$this->cacheCredentials = (bool) $authConfig[$host]['cacheCredentials'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->hasAuth = true;
|
return $this->hasAuth = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,13 +81,14 @@ class SvnTest extends \PHPUnit_Framework_TestCase
|
||||||
array(
|
array(
|
||||||
'config' => array(
|
'config' => array(
|
||||||
'http-basic' => array(
|
'http-basic' => array(
|
||||||
'svn.apache.org' => array('username' => 'foo', 'password' => 'bar', 'cacheCredentials' => true)
|
'svn.apache.org' => array('username' => 'foo', 'password' => 'bar')
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$svn = new Svn($url, new NullIO, $config);
|
$svn = new Svn($url, new NullIO, $config);
|
||||||
|
$svn->setCacheCredentials(true);
|
||||||
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
||||||
$reflMethod->setAccessible(true);
|
$reflMethod->setAccessible(true);
|
||||||
|
|
||||||
|
@ -103,13 +104,14 @@ class SvnTest extends \PHPUnit_Framework_TestCase
|
||||||
array(
|
array(
|
||||||
'config' => array(
|
'config' => array(
|
||||||
'http-basic' => array(
|
'http-basic' => array(
|
||||||
'svn.apache.org' => array('username' => 'foo', 'password' => 'bar', 'cacheCredentials' => false)
|
'svn.apache.org' => array('username' => 'foo', 'password' => 'bar')
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$svn = new Svn($url, new NullIO, $config);
|
$svn = new Svn($url, new NullIO, $config);
|
||||||
|
$svn->setCacheCredentials(false);
|
||||||
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
||||||
$reflMethod->setAccessible(true);
|
$reflMethod->setAccessible(true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue