Page MenuHomePhabricator

D18827.id45181.diff
No OneTemporary

D18827.id45181.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -821,6 +821,7 @@
'DiffusionPreCommitRefRepositoryHeraldField' => 'applications/diffusion/herald/DiffusionPreCommitRefRepositoryHeraldField.php',
'DiffusionPreCommitRefRepositoryProjectsHeraldField' => 'applications/diffusion/herald/DiffusionPreCommitRefRepositoryProjectsHeraldField.php',
'DiffusionPreCommitRefTypeHeraldField' => 'applications/diffusion/herald/DiffusionPreCommitRefTypeHeraldField.php',
+ 'DiffusionPreCommitUsesGitLFSHeraldField' => 'applications/diffusion/herald/DiffusionPreCommitUsesGitLFSHeraldField.php',
'DiffusionPullEventGarbageCollector' => 'applications/diffusion/garbagecollector/DiffusionPullEventGarbageCollector.php',
'DiffusionPushCapability' => 'applications/diffusion/capability/DiffusionPushCapability.php',
'DiffusionPushEventViewController' => 'applications/diffusion/controller/DiffusionPushEventViewController.php',
@@ -5881,6 +5882,7 @@
'DiffusionPreCommitRefRepositoryHeraldField' => 'DiffusionPreCommitRefHeraldField',
'DiffusionPreCommitRefRepositoryProjectsHeraldField' => 'DiffusionPreCommitRefHeraldField',
'DiffusionPreCommitRefTypeHeraldField' => 'DiffusionPreCommitRefHeraldField',
+ 'DiffusionPreCommitUsesGitLFSHeraldField' => 'DiffusionPreCommitContentHeraldField',
'DiffusionPullEventGarbageCollector' => 'PhabricatorGarbageCollector',
'DiffusionPushCapability' => 'PhabricatorPolicyCapability',
'DiffusionPushEventViewController' => 'DiffusionPushLogController',
diff --git a/src/applications/diffusion/herald/DiffusionPreCommitUsesGitLFSHeraldField.php b/src/applications/diffusion/herald/DiffusionPreCommitUsesGitLFSHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/herald/DiffusionPreCommitUsesGitLFSHeraldField.php
@@ -0,0 +1,41 @@
+<?php
+
+final class DiffusionPreCommitUsesGitLFSHeraldField
+ extends DiffusionPreCommitContentHeraldField {
+
+ const FIELDCONST = 'diffusion.pre.commit.git-lfs';
+
+ public function getHeraldFieldName() {
+ return pht('Commit uses Git LFS');
+ }
+
+ public function getFieldGroupKey() {
+ return DiffusionChangeHeraldFieldGroup::FIELDGROUPKEY;
+ }
+
+ public function getHeraldFieldValue($object) {
+ $map = $this->getAdapter()->getDiffContent('+');
+
+ // At the time of writing, all current Git LFS files begin with this
+ // line, verbatim:
+ //
+ // version https://git-lfs.github.com/spec/v1
+ //
+ // ...but we don't try to match the specific version here, in the hopes
+ // that this might also detect future versions.
+ $pattern = '(^version\s*https://git-lfs.github.com/spec/)i';
+
+ foreach ($map as $path => $content) {
+ if (preg_match($pattern, $content)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ protected function getHeraldFieldStandardType() {
+ return self::STANDARD_BOOL;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
May 14 2024, 8:23 AM (6 w, 20 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6285054
Default Alt Text
D18827.id45181.diff (2 KB)

Event Timeline