/** * {@inheritdoc} */ public function __construct(array $values = array()) { parent::__construct($values); $this['app_name'] = 'Jira-CLI'; $this['app_version'] = '@git-version@'; $this['working_directory_sub_folder'] = '.jira-cli'; $this['config_defaults'] = array('jira.url' => '', 'jira.username' => '', 'jira.password' => '', 'cache.provider' => ''); $this['cache'] = function ($c) { /** @var ConfigEditor $config_editor */ $config_editor = $c['config_editor']; $cache_provider = $config_editor->get('cache.provider'); $cache_factory = new CacheFactory('jira_url:' . $config_editor->get('jira.url')); return $cache_factory->create('chain', array('array', $cache_provider)); }; $this['jira_api'] = function ($c) { /** @var ConfigEditor $config_editor */ $config_editor = $c['config_editor']; $authentication = new Basic($config_editor->get('jira.username'), $config_editor->get('jira.password')); $api = new JiraApi($config_editor->get('jira.url'), $authentication); $api->setCache($c['cache']); return $api; }; $this['backportable_issue_cloner'] = function ($c) { return new BackportableIssueCloner($c['jira_api']); }; $this['changelog_issue_cloner'] = function ($c) { return new ChangeLogIssueCloner($c['jira_api']); }; }
/** * Return possible values for the named argument * * @param string $argumentName Argument name. * @param CompletionContext $context Completion context. * * @return array */ public function completeArgumentValues($argumentName, CompletionContext $context) { $ret = parent::completeArgumentValues($argumentName, $context); if ($argumentName === 'project_key' || $argumentName === 'project_keys') { return $this->jiraApi->getProjectKeys(); } return $ret; }
/** * Returns ID of "Changelog Entry" issue type. * * @return integer * @throws \LogicException When "Changelog Entry" issue type wasn't found. */ protected function getChangelogEntryIssueTypeId() { static $issue_type_id; if (!isset($issue_type_id)) { foreach ($this->jiraApi->getIssueTypes() as $issue_type) { if ($issue_type->getName() === 'Changelog Entry') { $issue_type_id = $issue_type->getId(); break; } } if (!isset($issue_type_id)) { throw new \LogicException('The "Changelog Entry" issue type not found.'); } } return $issue_type_id; }