Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Data Structures | Namespaces | Functions | Variables
get_github_changes.php File Reference

Go to the source code of this file.

Data Structures

class  GitRepo
 

Namespaces

 build
 

Functions

 saveChangedFileContent (GitRepo $repo)
 
 generateChangedFilesList ($outputFile, $changedFiles)
 
 generateBranchesList ($outputFile, $branches, $branchName)
 
 getChangedFiles (array $changes, array $fileExtensions)
 
 getRepo ($options, $mainline)
 
 retrieveChangesAcrossForks ($mainline, GitRepo $repo, $branchName)
 
 retrieveNewFilesAcrossForks ($mainline, GitRepo $repo, $branchName)
 
 cleanup ($repo, $mainline)
 
 validateInput (array $options, array $requiredOptions)
 

Variables

const USAGE <<<USAGE php -f get_github_changes.php -- --output-file="<output_file>" --base-path="<base_path>" --repo="<main_repo>" --branch="<branch>" [--file-extensions="<comma_separated_list_of_formats>"] USAGE
 
 $options = getopt('', ['output-file:', 'base-path:', 'repo:', 'file-extensions:', 'branch:'])
 
 $requiredOptions = ['output-file', 'base-path', 'repo', 'branch']
 
if(!validateInput($options, $requiredOptions)) $fileExtensions = explode(',', isset($options['file-extensions']) ? $options['file-extensions'] : 'php')
 
 $mainline = 'mainline_' . (string)rand(0, 9999)
 
 $repo = getRepo($options, $mainline)
 
 $branches = $repo->getBranches('--remotes')
 
 $changes = retrieveChangesAcrossForks($mainline, $repo, $options['branch'])
 
 $changedFiles = getChangedFiles($changes, $fileExtensions)
 
 $additions = retrieveNewFilesAcrossForks($mainline, $repo, $options['branch'])
 
 $addedFiles = getChangedFiles($additions, $fileExtensions)
 
 $additionsFile = pathinfo($options['output-file'])
 

Function Documentation

◆ cleanup()

cleanup (   $repo,
  $mainline 
)

Deletes temporary "base" repo

Parameters
GitRepo$repo
string$repo

Definition at line 175 of file get_github_changes.php.

178 {

◆ generateBranchesList()

generateBranchesList (   $outputFile,
  $branches,
  $branchName 
)

Generates a file containing origin branches

Parameters
string$outputFile
array$branches
string$branchName
Returns
void

Definition at line 98 of file get_github_changes.php.

101 {
102  $branchOutputFile = str_replace('changed_files', 'branches', $outputFile);
103  $branchesList = fopen($branchOutputFile, 'w');
104  fwrite($branchesList, $branchName . PHP_EOL);
105  foreach ($branches as $branch) {
106  fwrite($branchesList, substr(strrchr($branch, '/'), 1) . PHP_EOL);
107  }

◆ generateChangedFilesList()

generateChangedFilesList (   $outputFile,
  $changedFiles 
)

Generates a file containing changed files

Parameters
string$outputFile
array$changedFiles
Returns
void

Definition at line 81 of file get_github_changes.php.

84 {
85  $changedFilesList = fopen($outputFile, 'w');
86  foreach ($changedFiles as $file) {
87  fwrite($changedFilesList, $file . PHP_EOL);
88  }

◆ getChangedFiles()

getChangedFiles ( array  $changes,
array  $fileExtensions 
)

Gets list of changed files

Parameters
array$changes
array$fileExtensions
Returns
array

Definition at line 116 of file get_github_changes.php.

119 {
120  $files = [];
121  foreach ($changes as $fileName) {
122  foreach ($fileExtensions as $extensions) {
123  $isFileExension = strpos($fileName, '.' . $extensions);
124  if ($isFileExension) {
125  $files[] = $fileName;
126  }
127  }
128  }
129 
$fileName
Definition: translate.phtml:15
if(!validateInput($options, $requiredOptions)) $fileExtensions
foreach($appDirs as $dir) $files

◆ getRepo()

getRepo (   $options,
  $mainline 
)

Retrieves changes across forks

Parameters
array$options
string$mainline
Returns
GitRepo
Exceptions
Exception

Definition at line 139 of file get_github_changes.php.

142 {
143  $repo = new GitRepo($options['base-path']);
144  $repo->addRemote($mainline, $options['repo']);
145  $repo->fetch($mainline);

◆ retrieveChangesAcrossForks()

retrieveChangesAcrossForks (   $mainline,
GitRepo  $repo,
  $branchName 
)
Parameters
string$mainline
GitRepo$repo
string$branchName
Returns
array

Definition at line 153 of file get_github_changes.php.

156 {

◆ retrieveNewFilesAcrossForks()

retrieveNewFilesAcrossForks (   $mainline,
GitRepo  $repo,
  $branchName 
)
Parameters
string$mainline
GitRepo$repo
string$branchName
Returns
array

Definition at line 164 of file get_github_changes.php.

167 {

◆ saveChangedFileContent()

saveChangedFileContent ( GitRepo  $repo)

Save changed file content.

Parameters
GitRepo$repo
Returns
void

Definition at line 62 of file get_github_changes.php.

65 {
67  foreach ($repo->getChangedContentFiles() as $key => $changedContentFile) {
68  $filePath = sprintf($changedFilesContentFileName, $key);
69  $oldContent = file_exists($filePath) ? file_get_contents($filePath) : '{}';
70  $oldData = json_decode($oldContent, true);
71  $data = array_merge($oldData, $changedContentFile);
72  file_put_contents($filePath, json_encode($data));
const BP
Definition: autoload.php:14

◆ validateInput()

validateInput ( array  $options,
array  $requiredOptions 
)

Validates input options based on required options

Parameters
array$options
array$requiredOptions
Returns
bool

Definition at line 187 of file get_github_changes.php.

190 {
191  foreach ($requiredOptions as $requiredOption) {
192  if (!isset($options[$requiredOption]) || empty($options[$requiredOption])) {
193  return false;
194  }
195  }
$requiredOptions

Variable Documentation

◆ $addedFiles

$addedFiles = getChangedFiles($additions, $fileExtensions)

Definition at line 45 of file get_github_changes.php.

◆ $additions

$additions = retrieveNewFilesAcrossForks($mainline, $repo, $options['branch'])

Definition at line 44 of file get_github_changes.php.

◆ $additionsFile

$additionsFile = pathinfo($options['output-file'])

Definition at line 46 of file get_github_changes.php.

◆ $branches

$branches = $repo->getBranches('--remotes')

Definition at line 37 of file get_github_changes.php.

◆ $changedFiles

$changedFiles = getChangedFiles($changes, $fileExtensions)

Definition at line 40 of file get_github_changes.php.

◆ $changes

$changes = retrieveChangesAcrossForks($mainline, $repo, $options['branch'])

Definition at line 39 of file get_github_changes.php.

◆ $fileExtensions

if (!validateInput( $options, $requiredOptions)) $fileExtensions = explode(',', isset($options['file-extensions']) ? $options['file-extensions'] : 'php')

Definition at line 31 of file get_github_changes.php.

◆ $mainline

$mainline = 'mainline_' . (string)rand(0, 9999)

Definition at line 35 of file get_github_changes.php.

◆ $options

$options = getopt('', ['output-file:', 'base-path:', 'repo:', 'file-extensions:', 'branch:'])

Definition at line 23 of file get_github_changes.php.

◆ $repo

$repo = getRepo($options, $mainline)

Definition at line 36 of file get_github_changes.php.

◆ $requiredOptions

$requiredOptions = ['output-file', 'base-path', 'repo', 'branch']

Definition at line 25 of file get_github_changes.php.

◆ USAGE

const USAGE <<<USAGE php -f get_github_changes.php -- --output-file="<output_file>" --base-path="<base_path>" --repo="<main_repo>" --branch="<branch>" [--file-extensions="<comma_separated_list_of_formats>"] USAGE

Definition at line 12 of file get_github_changes.php.