1
0
Fork 0

Merge pull request #7912 from kathyoungaligent/feature/no-api-config

Feature/no api config
pull/7934/head
Jordi Boggiano 2019-01-29 10:57:15 +01:00 committed by GitHub
commit 11bfe9970f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 3 deletions

View File

@ -234,6 +234,14 @@ github API will have a date instead of the machine hostname.
Defaults to `["gitlab.com"]`. A list of domains of GitLab servers. Defaults to `["gitlab.com"]`. A list of domains of GitLab servers.
This is used if you use the `gitlab` repository type. This is used if you use the `gitlab` repository type.
## use-github-api
Defaults to `true`. Similar to the `no-api` key on a specific repository,
setting `use-github-api` to `false` will define the global behavior for all
GitHub repositories to clone the repository as it would with any other git
repository instead of using the GitHub API. But unlike using the `git`
driver directly, Composer will still attempt to use GitHub's zip files.
## notify-on-install ## notify-on-install
Defaults to `true`. Composer allows repositories to define a notification URL, Defaults to `true`. Composer allows repositories to define a notification URL,

View File

@ -271,6 +271,10 @@
"type": "string" "type": "string"
} }
}, },
"use-github-api": {
"type": "boolean",
"description": "Defaults to true. If set to false, globally disables the use of the GitHub API for all GitHub repositories and clones the repository as it would for any other repository."
},
"archive-format": { "archive-format": {
"type": "string", "type": "string",
"description": "The default archiving format when not provided on cli, defaults to \"tar\"." "description": "The default archiving format when not provided on cli, defaults to \"tar\"."

View File

@ -302,6 +302,7 @@ EOT
$uniqueConfigValues = array( $uniqueConfigValues = array(
'process-timeout' => array('is_numeric', 'intval'), 'process-timeout' => array('is_numeric', 'intval'),
'use-include-path' => array($booleanValidator, $booleanNormalizer), 'use-include-path' => array($booleanValidator, $booleanNormalizer),
'use-github-api' => array($booleanValidator, $booleanNormalizer),
'preferred-install' => array( 'preferred-install' => array(
function ($val) { function ($val) {
return in_array($val, array('auto', 'source', 'dist'), true); return in_array($val, array('auto', 'source', 'dist'), true);

View File

@ -61,6 +61,7 @@ class Config
'archive-format' => 'tar', 'archive-format' => 'tar',
'archive-dir' => '.', 'archive-dir' => '.',
'htaccess-protect' => true, 'htaccess-protect' => true,
'use-github-api' => true,
// valid keys without defaults (auth config stuff): // valid keys without defaults (auth config stuff):
// bitbucket-oauth // bitbucket-oauth
// github-oauth // github-oauth
@ -323,10 +324,10 @@ class Config
case 'disable-tls': case 'disable-tls':
return $this->config[$key] !== 'false' && (bool) $this->config[$key]; return $this->config[$key] !== 'false' && (bool) $this->config[$key];
case 'secure-http': case 'secure-http':
return $this->config[$key] !== 'false' && (bool) $this->config[$key]; return $this->config[$key] !== 'false' && (bool) $this->config[$key];
case 'use-github-api':
return $this->config[$key] !== 'false' && (bool) $this->config[$key];
default: default:
if (!isset($this->config[$key])) { if (!isset($this->config[$key])) {
return null; return null;

View File

@ -56,7 +56,7 @@ class GitHubDriver extends VcsDriver
} }
$this->cache = new Cache($this->io, $this->config->get('cache-repo-dir').'/'.$this->originUrl.'/'.$this->owner.'/'.$this->repository); $this->cache = new Cache($this->io, $this->config->get('cache-repo-dir').'/'.$this->originUrl.'/'.$this->owner.'/'.$this->repository);
if (isset($this->repoConfig['no-api']) && $this->repoConfig['no-api']) { if ( $this->config->get('use-github-api') === false || (isset($this->repoConfig['no-api']) && $this->repoConfig['no-api'] ) ){
$this->setupGitDriver($this->url); $this->setupGitDriver($this->url);
return; return;