mirror of
https://github.com/joomla-extensions/patchtester.git
synced 2024-12-22 19:09:00 +00:00
Implement Github labels and NPM filter
Signed-off-by: Roland Dalmulder <contact@rolandd.com>
This commit is contained in:
parent
409e5d9aa6
commit
5508865fc2
@ -107,6 +107,7 @@ class DisplayController extends AbstractController
|
||||
$state->set('filter.applied', $app->getUserStateFromRequest($this->context . '.filter.applied', 'filter_applied', ''));
|
||||
$state->set('filter.branch', $app->getUserStateFromRequest($this->context . '.filter.branch', 'filter_branch', ''));
|
||||
$state->set('filter.rtc', $app->getUserStateFromRequest($this->context . '.filter.rtc', 'filter_rtc', ''));
|
||||
$state->set('filter.npm', $app->getUserStateFromRequest($this->context . '.filter.npm', 'filter_npm', ''));
|
||||
|
||||
// Pre-fill the limits.
|
||||
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->get('list_limit', 20), 'uint');
|
||||
@ -128,7 +129,7 @@ class DisplayController extends AbstractController
|
||||
// The 2nd part will be considered the direction
|
||||
$direction = $orderingParts[array_key_last($orderingParts)];
|
||||
|
||||
if (in_array(strtoupper($direction), array('ASC', 'DESC', '')))
|
||||
if (in_array(strtoupper($direction), ['ASC', 'DESC', '']))
|
||||
{
|
||||
$state->set('list.direction', $direction);
|
||||
}
|
||||
|
@ -63,7 +63,6 @@ class PullsModel extends AbstractModel
|
||||
*/
|
||||
public function getBranches()
|
||||
{
|
||||
// Create a new query object.
|
||||
$db = $this->getDb();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
@ -85,17 +84,32 @@ class PullsModel extends AbstractModel
|
||||
*/
|
||||
public function getItems()
|
||||
{
|
||||
// Get a storage key.
|
||||
$store = $this->getStoreId();
|
||||
|
||||
// Try to load the data from internal storage.
|
||||
if (isset($this->cache[$store]))
|
||||
{
|
||||
return $this->cache[$store];
|
||||
}
|
||||
|
||||
// Load the list items and add the items to the internal cache.
|
||||
$this->cache[$store] = $this->getList($this->getListQueryCache(), $this->getStart(), $this->getState()->get('list.limit'));
|
||||
$items = $this->getList($this->getListQueryCache(), $this->getStart(), $this->getState()->get('list.limit'));
|
||||
|
||||
$db = $this->getDb();
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName(['name', 'color']))
|
||||
->from($db->quoteName('#__patchtester_pulls_labels'));
|
||||
|
||||
array_walk(
|
||||
$items,
|
||||
static function ($item) use ($db, $query) {
|
||||
$query->clear('where');
|
||||
$query->where($db->quoteName('pull_id') . ' = ' . $item->pull_id);
|
||||
$db->setQuery($query);
|
||||
|
||||
$item->labels = $db->loadObjectList();
|
||||
}
|
||||
);
|
||||
|
||||
$this->cache[$store] = $items;
|
||||
|
||||
return $this->cache[$store];
|
||||
}
|
||||
@ -146,7 +160,7 @@ class PullsModel extends AbstractModel
|
||||
if (!empty($applied))
|
||||
{
|
||||
// Not applied patches have a NULL value, so build our value part of the query based on this
|
||||
$value = $applied == 'no' ? ' IS NULL' : ' = 1';
|
||||
$value = $applied === 'no' ? ' IS NULL' : ' = 1';
|
||||
|
||||
$query->where($db->quoteName('applied') . $value);
|
||||
}
|
||||
@ -165,11 +179,22 @@ class PullsModel extends AbstractModel
|
||||
if (!empty($applied))
|
||||
{
|
||||
// Not applied patches have a NULL value, so build our value part of the query based on this
|
||||
$value = $applied == 'no' ? '0' : '1';
|
||||
$value = $applied === 'no' ? '0' : '1';
|
||||
|
||||
$query->where($db->quoteName('is_rtc') . ' = ' . $value);
|
||||
}
|
||||
|
||||
// Filter for NPM patches
|
||||
$npm = $this->getState()->get('filter.npm');
|
||||
|
||||
if (!empty($npm))
|
||||
{
|
||||
// Not applied patches have a NULL value, so build our value part of the query based on this
|
||||
$value = $npm === 'no' ? '0' : '1';
|
||||
|
||||
$query->where($db->quoteName('is_npm') . ' = ' . $value);
|
||||
}
|
||||
|
||||
// Handle the list ordering.
|
||||
$ordering = $this->getState()->get('list.ordering', 'a.pull_id');
|
||||
$direction = $this->getState()->get('list.direction', 'DESC');
|
||||
@ -314,6 +339,7 @@ class PullsModel extends AbstractModel
|
||||
if ($page === 1)
|
||||
{
|
||||
$this->getDb()->truncateTable('#__patchtester_pulls');
|
||||
$this->getDb()->truncateTable('#__patchtester_pulls_labels');
|
||||
}
|
||||
|
||||
try
|
||||
@ -327,9 +353,9 @@ class PullsModel extends AbstractModel
|
||||
|
||||
$pulls = json_decode($pullsResponse->body);
|
||||
}
|
||||
catch (UnexpectedResponse $e)
|
||||
catch (UnexpectedResponse $exception)
|
||||
{
|
||||
throw new \RuntimeException(Text::sprintf('COM_PATCHTESTER_ERROR_GITHUB_FETCH', $e->getMessage()), $e->getCode(), $e);
|
||||
throw new \RuntimeException(Text::sprintf('COM_PATCHTESTER_ERROR_GITHUB_FETCH', $exception->getMessage()), $exception->getCode(), $exception);
|
||||
}
|
||||
|
||||
// If this is page 1, let's check to see if we need to paginate
|
||||
@ -363,10 +389,11 @@ class PullsModel extends AbstractModel
|
||||
// If there are no pulls to insert then bail, assume we're finished
|
||||
if (count($pulls) === 0)
|
||||
{
|
||||
return array('complete' => true);
|
||||
return ['complete' => true];
|
||||
}
|
||||
|
||||
$data = array();
|
||||
$data = [];
|
||||
$labels = [];
|
||||
|
||||
foreach ($pulls as $pull)
|
||||
{
|
||||
@ -374,29 +401,44 @@ class PullsModel extends AbstractModel
|
||||
{
|
||||
// Check if this PR is RTC and has a `PR-` branch label
|
||||
$isRTC = false;
|
||||
$isNPM = false;
|
||||
$branch = '';
|
||||
|
||||
foreach ($pull->labels as $label)
|
||||
{
|
||||
if ($label->name === 'RTC')
|
||||
if (strtolower($label->name) === 'rtc')
|
||||
{
|
||||
$isRTC = true;
|
||||
}
|
||||
elseif (substr($label->name, 0, 3) === 'PR-')
|
||||
elseif (strpos($label->name, 'PR-') === 0)
|
||||
{
|
||||
$branch = substr($label->name, 3);
|
||||
}
|
||||
elseif (strtolower($label->name) === 'npm resource changed')
|
||||
{
|
||||
$isNPM = true;
|
||||
}
|
||||
|
||||
$labels[] = implode(
|
||||
',',
|
||||
[
|
||||
(int) $pull->number,
|
||||
$this->getDb()->quote($label->name),
|
||||
$this->getDb()->quote($label->color)
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
// Build the data object to store in the database
|
||||
$pullData = array(
|
||||
$pullData = [
|
||||
(int) $pull->number,
|
||||
$this->getDb()->quote(HTMLHelper::_('string.truncate', $pull->title, 150)),
|
||||
$this->getDb()->quote(HTMLHelper::_('string.truncate', $pull->body, 100)),
|
||||
$this->getDb()->quote($pull->pull_request->html_url),
|
||||
(int) $isRTC,
|
||||
(int) $isNPM,
|
||||
$this->getDb()->quote($branch),
|
||||
);
|
||||
];
|
||||
|
||||
$data[] = implode(',', $pullData);
|
||||
}
|
||||
@ -411,7 +453,7 @@ class PullsModel extends AbstractModel
|
||||
$this->getDb()->setQuery(
|
||||
$this->getDb()->getQuery(true)
|
||||
->insert('#__patchtester_pulls')
|
||||
->columns(array('pull_id', 'title', 'description', 'pull_url', 'is_rtc', 'branch'))
|
||||
->columns(['pull_id', 'title', 'description', 'pull_url', 'is_rtc', 'is_npm', 'branch'])
|
||||
->values($data)
|
||||
);
|
||||
|
||||
@ -419,13 +461,47 @@ class PullsModel extends AbstractModel
|
||||
{
|
||||
$this->getDb()->execute();
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
catch (\RuntimeException $exception)
|
||||
{
|
||||
throw new \RuntimeException(Text::sprintf('COM_PATCHTESTER_ERROR_INSERT_DATABASE', $e->getMessage()), $e->getCode(), $e);
|
||||
throw new \RuntimeException(
|
||||
Text::sprintf(
|
||||
'COM_PATCHTESTER_ERROR_INSERT_DATABASE',
|
||||
$exception->getMessage()
|
||||
),
|
||||
$exception->getCode(),
|
||||
$exception
|
||||
);
|
||||
}
|
||||
|
||||
$this->getDb()->setQuery(
|
||||
$this->getDb()->getQuery(true)
|
||||
->insert('#__patchtester_pulls_labels')
|
||||
->columns(['pull_id', 'name', 'color'])
|
||||
->values($labels)
|
||||
);
|
||||
|
||||
try
|
||||
{
|
||||
$this->getDb()->execute();
|
||||
}
|
||||
catch (\RuntimeException $exception)
|
||||
{
|
||||
throw new \RuntimeException(
|
||||
Text::sprintf(
|
||||
'COM_PATCHTESTER_ERROR_INSERT_DATABASE',
|
||||
$exception->getMessage()
|
||||
),
|
||||
$exception->getCode(),
|
||||
$exception
|
||||
);
|
||||
}
|
||||
|
||||
// Need to make another request
|
||||
return array('complete' => false, 'page' => ($page + 1), 'lastPage' => isset($lastPage) ? $lastPage : false);
|
||||
return [
|
||||
'complete' => false,
|
||||
'page' => ($page + 1),
|
||||
'lastPage' => $lastPage ?? false
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,6 +36,7 @@ $listLimit = (int) ($this->state->get('list.limit'));
|
||||
$filterApplied = $this->escape($this->state->get('filter.applied'));
|
||||
$filterBranch = $this->escape($this->state->get('filter.branch'));
|
||||
$filterRtc = $this->escape($this->state->get('filter.rtc'));
|
||||
$filterNpm = $this->escape($this->state->get('filter.npm'));
|
||||
$visible = '';
|
||||
|
||||
if ($filterApplied || $filterBranch || $filterRtc)
|
||||
@ -109,6 +110,13 @@ if ($filterApplied || $filterBranch || $filterRtc)
|
||||
<option value="no"<?php echo $filterRtc === 'no' ? ' selected="selected"' : ''; ?>><?php echo Text::_('COM_PATCHTESTER_NOT_RTC'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="js-stools-field-filter">
|
||||
<select name="filter_npm" class="custom-select" onchange="this.form.submit();">
|
||||
<option value=""><?php echo Text::_('COM_PATCHTESTER_FILTER_NPM_PATCHES'); ?></option>
|
||||
<option value="yes"<?php echo $filterNpm === 'yes' ? ' selected="selected"' : ''; ?>><?php echo Text::_('COM_PATCHTESTER_NPM'); ?></option>
|
||||
<option value="no"<?php echo $filterNpm === 'no' ? ' selected="selected"' : ''; ?>><?php echo Text::_('COM_PATCHTESTER_NOT_NPM'); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="js-stools-field-filter">
|
||||
<select name="filter_branch" class="custom-select" onchange="this.form.submit();">
|
||||
<option value=""><?php echo Text::_('COM_PATCHTESTER_FILTER_BRANCH'); ?></option>
|
||||
|
@ -45,6 +45,44 @@ foreach ($this->items as $i => $item) :
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if (count($item->labels) > 0) : ?>
|
||||
<div class="row">
|
||||
<div class="col-md-auto">
|
||||
<?php foreach ($item->labels as $label): ?>
|
||||
<?php
|
||||
switch (strtolower($label->name))
|
||||
{
|
||||
case 'a11y':
|
||||
case 'conflicting files':
|
||||
case 'documentation required':
|
||||
case 'information required':
|
||||
case 'j3 issue':
|
||||
case 'language change':
|
||||
case 'mysql 5.7':
|
||||
case 'needs new owner':
|
||||
case 'no code attached yet':
|
||||
case 'pbf':
|
||||
case 'pr-3.9-dev':
|
||||
case 'pr-3.10-dev':
|
||||
case 'pr-4.1-dev':
|
||||
case 'pr-i10n_4.0-dev':
|
||||
case 'pr-staging':
|
||||
case 'release blocker':
|
||||
case 'rfc':
|
||||
case 'test instructions missing':
|
||||
case 'updates requested':
|
||||
$textColor = '000000';
|
||||
break;
|
||||
default:
|
||||
$textColor = 'FFFFFF';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
<span class="badge" style="color: #<?php echo $textColor; ?>; background-color: #<?php echo $label->color; ?>"><?php echo $label->name; ?></span>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none d-md-table-cell text-center">
|
||||
<?php echo $this->escape($item->branch); ?>
|
||||
|
@ -1,16 +1,32 @@
|
||||
CREATE TABLE IF NOT EXISTS `#__patchtester_pulls` (
|
||||
CREATE TABLE IF NOT EXISTS `#__patchtester_pulls`
|
||||
(
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`pull_id` int(11) NOT NULL,
|
||||
`title` varchar(200) NOT NULL,
|
||||
`description` varchar(150) NOT NULL DEFAULT '',
|
||||
`pull_url` varchar(255) NOT NULL,
|
||||
`sha` varchar(40) NOT NULL DEFAULT '',
|
||||
`title` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`description` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||
`pull_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`sha` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||
`is_rtc` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`branch` varchar(255) NOT NULL DEFAULT '',
|
||||
`in_npm` tinyint(1) DEFAULT 0,
|
||||
`branch` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__patchtester_tests` (
|
||||
CREATE TABLE IF NOT EXISTS `#__patchtester_pulls_labels`
|
||||
(
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`pull_id` int(11) NOT NULL,
|
||||
`name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`color` varchar(6) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
COLLATE = utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__patchtester_tests`
|
||||
(
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`pull_id` int(11) NOT NULL,
|
||||
`data` longtext NOT NULL,
|
||||
@ -18,4 +34,6 @@ CREATE TABLE IF NOT EXISTS `#__patchtester_tests` (
|
||||
`applied` int(11) NOT NULL,
|
||||
`applied_version` varchar(25) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
) ENGINE = InnoDB
|
||||
DEFAULT CHARSET = utf8mb4
|
||||
DEFAULT COLLATE = utf8mb4_unicode_ci;
|
||||
|
@ -1,2 +1,3 @@
|
||||
DROP TABLE IF EXISTS `#__patchtester_pulls`;
|
||||
DROP TABLE IF EXISTS `#__patchtester_pulls_labels`;
|
||||
DROP TABLE IF EXISTS `#__patchtester_tests`;
|
||||
|
@ -1,4 +1,5 @@
|
||||
CREATE TABLE IF NOT EXISTS "#__patchtester_pulls" (
|
||||
CREATE TABLE IF NOT EXISTS "#__patchtester_pulls"
|
||||
(
|
||||
"id" serial NOT NULL,
|
||||
"pull_id" bigint NOT NULL,
|
||||
"title" character varying(200) NOT NULL,
|
||||
@ -6,11 +7,22 @@ CREATE TABLE IF NOT EXISTS "#__patchtester_pulls" (
|
||||
"pull_url" character varying(255) NOT NULL,
|
||||
"sha" character varying(40) DEFAULT '' NOT NULL,
|
||||
"is_rtc" smallint DEFAULT 1 NOT NULL,
|
||||
"is_npm" smallint DEFAULT 1 NOT NULL,
|
||||
"branch" character varying(255) DEFAULT '' NOT NULL,
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "#__patchtester_tests" (
|
||||
CREATE TABLE IF NOT EXISTS "#__patchtester_pulls_labels"
|
||||
(
|
||||
"id" serial NOT NULL,
|
||||
"pull_id" bigint NOT NULL,
|
||||
"name" character varying(200) NOT NULL,
|
||||
"color" character varying(6) NOT NULL,
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "#__patchtester_tests"
|
||||
(
|
||||
"id" serial NOT NULL,
|
||||
"pull_id" bigint NOT NULL,
|
||||
"data" text NOT NULL,
|
||||
|
@ -1,2 +1,3 @@
|
||||
DROP TABLE IF EXISTS "#__patchtester_pulls";
|
||||
DROP TABLE IF EXISTS "#__patchtester_pulls_labels";
|
||||
DROP TABLE IF EXISTS "#__patchtester_tests";
|
||||
|
@ -38,43 +38,44 @@ COM_PATCHTESTER_FETCH_PAGE_NUMBER="Processing page %s of GitHub data"
|
||||
COM_PATCHTESTER_FETCH_PAGE_NUMBER_OF_TOTAL="Processing page %1$s of %2$s pages of GitHub data"
|
||||
COM_PATCHTESTER_FETCH_PROCESSING="Processing data from GitHub"
|
||||
COM_PATCHTESTER_FETCH_SUCCESSFUL="Successfully retrieved pull requests"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_DESC="Select 'Credentials' to use authentication through your GitHub Username and Password, or 'Token' for a GitHub API Token"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_LABEL="GitHub Authentication Method"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_OPTION_CREDENTIALS="Credentials"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_OPTION_TOKEN="Token"
|
||||
COM_PATCHTESTER_FIELD_GH_PASSWORD_LABEL="GitHub Account Password"
|
||||
COM_PATCHTESTER_FIELD_GH_PASSWORD_DESC="Password for the account entered in the 'GitHub Account Username' field. Note that accounts using Two Factor Authentication will not work with username and password authentication.<p><span class=""alert-danger"">GitHub will discontinue the use of username and password on of November 13, 2020 at 4:00 PM UTC. It is highly recommended to use the Token Authentication Method</span></p>"
|
||||
COM_PATCHTESTER_FIELD_GH_TOKEN_DESC="Use this field to input a GitHub API Token in place of your username and password. Note that this is required if your account has Two Factor Authentication enabled.<p></p>To setup an access token, follow these steps.<ol><li><a href=""https://github.com/settings/tokens/new?description=Joomla%20Patch%20Tester&scopes=public_repo,repo:status"" target=""_blank"">Create a Personal Access Token</a></li><li>Click <span class=""font-weight-bold"">Generate token</span> at the bottom of the page</li><li>At the top in the green bar you will find your access token</li><li>Copy the token by selecting it or clicking on the clipboard</li><li>Paste the token in the <span class=""font-weight-bold"">GitHub Token</span> field above</li><li>Save the changes by clicking the <span class=""font-weight-bold"">Save & Close</span> button at the top</li><li>You can now use the Patch Tester with your token</li></ol><p>You can always revoke access by deleting the Personal access token from the <a href=""https://github.com/settings/tokens"" target=""_blank"">Personal access tokens on Github</a>.</p>"
|
||||
COM_PATCHTESTER_FIELD_GH_TOKEN_LABEL="GitHub Token"
|
||||
COM_PATCHTESTER_FIELD_GH_USER_LABEL="GitHub Account Username"
|
||||
COM_PATCHTESTER_FIELD_GH_USER_DESC="Name of account on GitHub to use to authenticate to the API."
|
||||
COM_PATCHTESTER_FIELD_ORG_LABEL="Custom Project Owner"
|
||||
COM_PATCHTESTER_FIELD_ORG_DESC="A username or organisation on GitHub to monitor pull requests for."
|
||||
COM_PATCHTESTER_FIELD_REPO_LABEL="Custom Project Repository"
|
||||
COM_PATCHTESTER_FIELD_REPO_DESC="Name of a repository on GitHub to monitor pull requests for."
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_DESC="Available Joomla! repositories. Select to autopopulate the organisation and repository fields values."
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_LABEL="GitHub Repository"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_JOOMLA_CMS="Joomla! CMS"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_PATCHTESTER="Joomla! Patch Tester Component"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_INSTALL_FROM_WEB="Joomla! Install From Web Plugin"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_WEBLINKS="Joomla! Weblinks Package"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_CUSTOM="Custom"
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_NAME="CI Server Address"
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_NAME_DESC="Server address for obtaining compiled patches."
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_SWITCH="Switch CI Integration"
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_SWITCH_DESC="Turn CI integration on or off."
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_SWITCH_OPTION_ON="On"
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_SWITCH_OPTION_OFF="Off"
|
||||
COM_PATCHTESTER_FIELDSET_REPOSITORIES_DESC="Configuration Values for GitHub Repository"
|
||||
COM_PATCHTESTER_FIELDSET_REPOSITORIES_LABEL="GitHub Repository"
|
||||
COM_PATCHTESTER_FIELD_CI_SERVER_SWITCH_OPTION_ON="On"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_DESC="Select 'Credentials' to use authentication through your GitHub Username and Password, or 'Token' for a GitHub API Token"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_LABEL="GitHub Authentication Method"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_OPTION_CREDENTIALS="Credentials"
|
||||
COM_PATCHTESTER_FIELD_GH_AUTH_OPTION_TOKEN="Token"
|
||||
COM_PATCHTESTER_FIELD_GH_PASSWORD_DESC="Password for the account entered in the 'GitHub Account Username' field. Note that accounts using Two Factor Authentication will not work with username and password authentication.<p><span class=""alert-danger"">GitHub will discontinue the use of username and password on of November 13, 2020 at 4:00 PM UTC. It is highly recommended to use the Token Authentication Method</span></p>"
|
||||
COM_PATCHTESTER_FIELD_GH_PASSWORD_LABEL="GitHub Account Password"
|
||||
COM_PATCHTESTER_FIELD_GH_TOKEN_DESC="Use this field to input a GitHub API Token in place of your username and password. Note that this is required if your account has Two Factor Authentication enabled.<p></p>To setup an access token, follow these steps.<ol><li><a href=""https://github.com/settings/tokens/new?description=Joomla%20Patch%20Tester&scopes=public_repo,repo:status"" target=""_blank"">Create a Personal Access Token</a></li><li>Click <span class=""font-weight-bold"">Generate token</span> at the bottom of the page</li><li>At the top in the green bar you will find your access token</li><li>Copy the token by selecting it or clicking on the clipboard</li><li>Paste the token in the <span class=""font-weight-bold"">GitHub Token</span> field above</li><li>Save the changes by clicking the <span class=""font-weight-bold"">Save & Close</span> button at the top</li><li>You can now use the Patch Tester with your token</li></ol><p>You can always revoke access by deleting the Personal access token from the <a href=""https://github.com/settings/tokens"" target=""_blank"">Personal access tokens on Github</a>.</p>"
|
||||
COM_PATCHTESTER_FIELD_GH_TOKEN_LABEL="GitHub Token"
|
||||
COM_PATCHTESTER_FIELD_GH_USER_DESC="Name of account on GitHub to use to authenticate to the API."
|
||||
COM_PATCHTESTER_FIELD_GH_USER_LABEL="GitHub Account Username"
|
||||
COM_PATCHTESTER_FIELD_ORG_DESC="A username or organisation on GitHub to monitor pull requests for."
|
||||
COM_PATCHTESTER_FIELD_ORG_LABEL="Custom Project Owner"
|
||||
COM_PATCHTESTER_FIELD_REPO_DESC="Name of a repository on GitHub to monitor pull requests for."
|
||||
COM_PATCHTESTER_FIELD_REPO_LABEL="Custom Project Repository"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_CUSTOM="Custom"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_DESC="Available Joomla! repositories. Select to autopopulate the organisation and repository fields values."
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_LABEL="GitHub Repository"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_INSTALL_FROM_WEB="Joomla! Install From Web Plugin"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_JOOMLA_CMS="Joomla! CMS"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_PATCHTESTER="Joomla! Patch Tester Component"
|
||||
COM_PATCHTESTER_FIELD_REPOSITORY_OPTION_WEBLINKS="Joomla! Weblinks Package"
|
||||
COM_PATCHTESTER_FIELDSET_AUTHENTICATION_DESC="Configuration Values for GitHub Authentication"
|
||||
COM_PATCHTESTER_FIELDSET_AUTHENTICATION_LABEL="GitHub Authentication"
|
||||
COM_PATCHTESTER_FIELDSET_CI_SETTINGS="CI Server Settings"
|
||||
COM_PATCHTESTER_FIELDSET_CI_SETTINGS_DESC="Configuration Values for CI Server Patching"
|
||||
COM_PATCHTESTER_FIELDSET_REPOSITORIES_DESC="Configuration Values for GitHub Repository"
|
||||
COM_PATCHTESTER_FIELDSET_REPOSITORIES_LABEL="GitHub Repository"
|
||||
COM_PATCHTESTER_FILE_DELETED_DOES_NOT_EXIST_S="The file marked for deletion does not exist: %s"
|
||||
COM_PATCHTESTER_FILE_MODIFIED_DOES_NOT_EXIST_S="The file marked for modification does not exist: %s"
|
||||
COM_PATCHTESTER_FILTER_APPLIED_PATCHES="Filter Applied Patches"
|
||||
COM_PATCHTESTER_FILTER_BRANCH="Filter Target Branch"
|
||||
COM_PATCHTESTER_FILTER_NPM_PATCHES="Filter NPM Patches"
|
||||
COM_PATCHTESTER_FILTER_RTC_PATCHES="Filter RTC Patches"
|
||||
COM_PATCHTESTER_FILTER_SEARCH_DESCRIPTION="Search the list by title or prefix with 'id:' to search by Pull ID."
|
||||
COM_PATCHTESTER_GITHUB="GitHub"
|
||||
@ -85,7 +86,9 @@ COM_PATCHTESTER_NO_CREDENTIALS="You have not entered your user credentials in th
|
||||
COM_PATCHTESTER_NO_FILES_TO_PATCH="There are no files to patch from this pull request. This may mean that the files in the pull request are not present in your installation."
|
||||
COM_PATCHTESTER_NO_ITEMS="No data has been retrieved from GitHub, please click the 'Fetch Data' button in the toolbar to retrieve the open pull requests."
|
||||
COM_PATCHTESTER_NOT_APPLIED="Not Applied"
|
||||
COM_PATCHTESTER_NOT_NPM="Not NPM"
|
||||
COM_PATCHTESTER_NOT_RTC="Not RTC"
|
||||
COM_PATCHTESTER_NPM="NPM"
|
||||
COM_PATCHTESTER_PATCH_BREAKS_SITE="The patch could not be applied because it would break the site. Check the pull request to see if it is up-to-date."
|
||||
COM_PATCHTESTER_PULL_ID="Pull ID"
|
||||
COM_PATCHTESTER_PULL_ID_ASC="Pull ID ascending"
|
||||
|
Loading…
Reference in New Issue
Block a user