MediaWiki  master
GitInfo Class Reference
Collaboration diagram for GitInfo:

Public Member Functions

 __construct ( $repoDir, $usePrecomputed=true)
 
 cacheIsComplete ()
 Check to see if the current cache is fully populated. More...
 
 getCurrentBranch ()
 Get the name of the current branch, or HEAD if not found. More...
 
 getHead ()
 Get the HEAD of the repo (without any opening "ref: ") More...
 
 getHeadCommitDate ()
 Get the commit date of HEAD entry of the git code repository. More...
 
 getHeadSHA1 ()
 Get the SHA1 for the current HEAD of the repo. More...
 
 getHeadViewUrl ()
 Get an URL to a web viewer link to the HEAD revision. More...
 
 precomputeValues ()
 Precompute and cache git information. More...
 

Static Public Member Functions

static currentBranch ()
 
static headSHA1 ()
 
static headViewUrl ()
 
static isSHA1 ( $str)
 Check if a string looks like a hex encoded SHA1 hash. More...
 
static repo ()
 Get the singleton for the repo at $IP. More...
 

Protected Member Functions

 getRemoteUrl ()
 Get the URL of the remote origin. More...
 

Static Protected Member Functions

static getCacheFilePath ( $repoDir)
 Compute the path to the cache file for a given directory. More...
 
static getViewers ()
 Gets the list of repository viewers. More...
 

Protected Attributes

 $basedir
 Location of the .git directory. More...
 
 $cache = []
 Cached git information. More...
 
 $cacheFile
 Path to JSON cache file for pre-computed git information. More...
 
 $repoDir
 Location of the repository. More...
 

Static Protected Attributes

static $repo = null
 Singleton for the repo at $IP. More...
 

Static Private Attributes

static array false $viewers = false
 Map of repo URLs to viewer URLs. More...
 

Detailed Description

Definition at line 28 of file GitInfo.php.

Constructor & Destructor Documentation

◆ __construct()

GitInfo::__construct (   $repoDir,
  $usePrecomputed = true 
)
Parameters
string$repoDirThe root directory of the repo where .git can be found
bool$usePrecomputedUse precomputed information if available
See also
precomputeValues

Definition at line 65 of file GitInfo.php.

References $path, $repoDir, cache, cacheIsComplete(), FormatJson\decode(), null, and wfDebugLog().

Member Function Documentation

◆ cacheIsComplete()

GitInfo::cacheIsComplete ( )

Check to see if the current cache is fully populated.

Note: This method is public only to make unit testing easier. There's really no strong reason that anything other than a test should want to call this method.

Returns
bool True if all expected cache keys exist, false otherwise

Definition at line 344 of file GitInfo.php.

References cache.

Referenced by __construct(), GitInfoTest\assertValidGitInfo(), and precomputeValues().

◆ currentBranch()

static GitInfo::currentBranch ( )
static
See also
self::getCurrentBranch
Returns
string

Definition at line 400 of file GitInfo.php.

Referenced by MWDebug\getDebugInfo().

◆ getCacheFilePath()

static GitInfo::getCacheFilePath (   $repoDir)
staticprotected

Compute the path to the cache file for a given directory.

Parameters
string$repoDirThe root directory of the repo where .git can be found
Returns
string Path to GitInfo cache file in $wgGitInfoCacheDirectory or fallback in the extension directory itself
Since
1.24

Definition at line 110 of file GitInfo.php.

References $IP, $repoDir, and $wgGitInfoCacheDirectory.

◆ getCurrentBranch()

GitInfo::getCurrentBranch ( )

Get the name of the current branch, or HEAD if not found.

Returns
string|bool The branch name, HEAD, or false

Definition at line 261 of file GitInfo.php.

References cache, and getHead().

Referenced by GitInfoTest\assertValidGitInfo(), and precomputeValues().

◆ getHead()

GitInfo::getHead ( )

Get the HEAD of the repo (without any opening "ref: ")

Returns
string|bool The HEAD (git reference or SHA1) or false

Definition at line 167 of file GitInfo.php.

References cache.

Referenced by GitInfoTest\assertValidGitInfo(), getCurrentBranch(), getHeadCommitDate(), getHeadSHA1(), and precomputeValues().

◆ getHeadCommitDate()

GitInfo::getHeadCommitDate ( )

Get the commit date of HEAD entry of the git code repository.

Since
1.22
Returns
int|bool Commit date (UNIX timestamp) or false

Definition at line 223 of file GitInfo.php.

References $wgGitBin, cache, and getHead().

Referenced by GitInfoTest\assertValidGitInfo(), and precomputeValues().

◆ getHeadSHA1()

GitInfo::getHeadSHA1 ( )

Get the SHA1 for the current HEAD of the repo.

Returns
string|bool A SHA1 or false

Definition at line 191 of file GitInfo.php.

References $matches, cache, and getHead().

Referenced by GitInfoTest\assertValidGitInfo(), getHeadViewUrl(), and precomputeValues().

◆ getHeadViewUrl()

GitInfo::getHeadViewUrl ( )

Get an URL to a web viewer link to the HEAD revision.

Returns
string|bool String if a URL is available or false otherwise

Definition at line 279 of file GitInfo.php.

References $matches, $repo, as, getHeadSHA1(), and getRemoteUrl().

Referenced by GitInfoTest\assertValidGitInfo().

◆ getRemoteUrl()

GitInfo::getRemoteUrl ( )
protected

Get the URL of the remote origin.

Returns
string|bool String if a URL is available or false otherwise.

Definition at line 305 of file GitInfo.php.

References as, and cache.

Referenced by getHeadViewUrl(), and precomputeValues().

◆ getViewers()

static GitInfo::getViewers ( )
staticprotected

Gets the list of repository viewers.

Returns
array

Definition at line 416 of file GitInfo.php.

References $wgGitRepositoryViewers, and Hooks\run().

◆ headSHA1()

static GitInfo::headSHA1 ( )
static
See also
self::getHeadSHA1
Returns
string

Definition at line 392 of file GitInfo.php.

Referenced by MWDebug\getDebugInfo().

◆ headViewUrl()

static GitInfo::headViewUrl ( )
static
See also
self::getHeadViewUrl()
Returns
bool|string

Definition at line 408 of file GitInfo.php.

Referenced by MWDebug\getDebugInfo().

◆ isSHA1()

static GitInfo::isSHA1 (   $str)
static

Check if a string looks like a hex encoded SHA1 hash.

Parameters
string$strThe string to check
Returns
bool Whether or not the string looks like a SHA1

Definition at line 158 of file GitInfo.php.

Referenced by MWDebug\getDebugInfo().

◆ precomputeValues()

GitInfo::precomputeValues ( )

Precompute and cache git information.

Creates a JSON file in the cache directory associated with this GitInfo instance. This cache file will be used by subsequent GitInfo objects referencing the same directory to avoid needing to examine the .git directory again.

Since
1.24

Definition at line 361 of file GitInfo.php.

References cache, cacheIsComplete(), FormatJson\encode(), getCurrentBranch(), getHead(), getHeadCommitDate(), getHeadSHA1(), getRemoteUrl(), null, wfDebugLog(), and wfMkdirParents().

◆ repo()

static GitInfo::repo ( )
static

Get the singleton for the repo at $IP.

Returns
GitInfo

Definition at line 144 of file GitInfo.php.

References $IP.

Member Data Documentation

◆ $basedir

GitInfo::$basedir
protected

Location of the .git directory.

Definition at line 38 of file GitInfo.php.

◆ $cache

GitInfo::$cache = []
protected

Cached git information.

Definition at line 53 of file GitInfo.php.

◆ $cacheFile

GitInfo::$cacheFile
protected

Path to JSON cache file for pre-computed git information.

Definition at line 48 of file GitInfo.php.

◆ $repo

GitInfo::$repo = null
staticprotected

Singleton for the repo at $IP.

Definition at line 33 of file GitInfo.php.

Referenced by getHeadViewUrl().

◆ $repoDir

GitInfo::$repoDir
protected

Location of the repository.

Definition at line 43 of file GitInfo.php.

Referenced by __construct(), and getCacheFilePath().

◆ $viewers

array false GitInfo::$viewers = false
staticprivate

Map of repo URLs to viewer URLs.

Access via static method getViewers().

Definition at line 58 of file GitInfo.php.


The documentation for this class was generated from the following file: