Skip to content

Commit d6cab4a

Browse files
authored
Mask Github tokens in DisguiseLogger (#1977)
1 parent 635ced5 commit d6cab4a

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

src/Phing/Listener/DisguiseLogger.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
namespace Phing\Listener;
2222

23-
use Phing\Phing;
23+
use Phing\Util\Regexp;
2424

2525
/**
2626
* @author Siad Ardroumli <siad.ardroumli@gmail.com>
@@ -30,6 +30,7 @@ class DisguiseLogger extends DefaultLogger
3030
public function messageLogged(BuildEvent $event)
3131
{
3232
$this->maskUriPassword($event);
33+
$this->maskGitHubTokens($event);
3334
parent::messageLogged($event);
3435
}
3536

@@ -68,4 +69,18 @@ protected function maskUriPassword(BuildEvent $event): void
6869
$event->getPriority()
6970
);
7071
}
72+
73+
/**
74+
* Mask GitHub tokens.
75+
*
76+
* @see https://learn.microsoft.com/en-us/purview/sit-defn-github-personal-access-token#pattern
77+
*/
78+
protected function maskGitHubTokens(BuildEvent $event): void
79+
{
80+
$regex = new Regexp();
81+
$regex->setPattern('(ghp_|gho_|ghu_|ghs_|ghr_)\w{1,36}');
82+
$regex->setReplace('$1*****');
83+
$maskedMessage = $regex->replace($event->getMessage());
84+
$event->setMessage($maskedMessage, $event->getPriority());
85+
}
7186
}

0 commit comments

Comments
 (0)