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
|
||||
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
|
||||
|
||||
It is possible to install packages from any PEAR channel by using the `pear`
|
||||
|
|
|
@ -27,6 +27,10 @@ use Composer\Downloader\TransportException;
|
|||
*/
|
||||
class SvnDriver extends VcsDriver
|
||||
{
|
||||
|
||||
/**
|
||||
* @var Cache
|
||||
*/
|
||||
protected $cache;
|
||||
protected $baseUrl;
|
||||
protected $tags;
|
||||
|
@ -38,6 +42,7 @@ class SvnDriver extends VcsDriver
|
|||
protected $branchesPath = 'branches';
|
||||
protected $tagsPath = 'tags';
|
||||
protected $packagePath = '';
|
||||
protected $cacheCredentials = true;
|
||||
|
||||
/**
|
||||
* @var \Composer\Util\Svn
|
||||
|
@ -62,6 +67,9 @@ class SvnDriver extends VcsDriver
|
|||
if (isset($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'])) {
|
||||
$this->packagePath = '/' . trim($this->repoConfig['package-path'], '/');
|
||||
}
|
||||
|
@ -307,6 +315,7 @@ class SvnDriver extends VcsDriver
|
|||
{
|
||||
if (null === $this->util) {
|
||||
$this->util = new SvnUtil($this->baseUrl, $this->io, $this->config, $this->process);
|
||||
$this->util->setCacheCredentials($this->cacheCredentials);
|
||||
}
|
||||
|
||||
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.
|
||||
*
|
||||
|
@ -295,10 +303,6 @@ class Svn
|
|||
$this->credentials['username'] = $authConfig[$host]['username'];
|
||||
$this->credentials['password'] = $authConfig[$host]['password'];
|
||||
|
||||
if (array_key_exists('cacheCredentials', $authConfig[$host])) {
|
||||
$this->cacheCredentials = (bool) $authConfig[$host]['cacheCredentials'];
|
||||
}
|
||||
|
||||
return $this->hasAuth = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -81,13 +81,14 @@ class SvnTest extends \PHPUnit_Framework_TestCase
|
|||
array(
|
||||
'config' => 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->setCacheCredentials(true);
|
||||
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
||||
$reflMethod->setAccessible(true);
|
||||
|
||||
|
@ -103,13 +104,14 @@ class SvnTest extends \PHPUnit_Framework_TestCase
|
|||
array(
|
||||
'config' => 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->setCacheCredentials(false);
|
||||
$reflMethod = new \ReflectionMethod('Composer\\Util\\Svn', 'getCredentialString');
|
||||
$reflMethod->setAccessible(true);
|
||||
|
||||
|
|
Loading…
Reference in New Issue