@@ -6,6 +6,10 @@ namespace GitHub.Runner.Worker
66{
77 public sealed class GitHubContext : DictionaryContextData , IEnvironmentContextData
88 {
9+ public GitHubContext ( string [ ] prefixes = null ) {
10+ Prefixes = prefixes ?? [ "github" ] ;
11+ }
12+
913 private readonly HashSet < string > _contextEnvAllowlist = new ( StringComparer . OrdinalIgnoreCase )
1014 {
1115 "action_path" ,
@@ -47,27 +51,32 @@ public sealed class GitHubContext : DictionaryContextData, IEnvironmentContextDa
4751 "workspace"
4852 } ;
4953
54+ public string [ ] Prefixes { get ; }
55+
5056 public IEnumerable < KeyValuePair < string , string > > GetRuntimeEnvironmentVariables ( )
5157 {
5258 foreach ( var data in this )
5359 {
5460 if ( _contextEnvAllowlist . Contains ( data . Key ) )
5561 {
56- if ( data . Value is StringContextData value )
57- {
58- yield return new KeyValuePair < string , string > ( $ "GITHUB_{ data . Key . ToUpperInvariant ( ) } ", value ) ;
59- }
60- else if ( data . Value is BooleanContextData booleanValue )
62+ foreach ( var prefix in Prefixes )
6163 {
62- yield return new KeyValuePair < string , string > ( $ "GITHUB_{ data . Key . ToUpperInvariant ( ) } ", booleanValue . ToString ( ) ) ;
64+ if ( data . Value is StringContextData value )
65+ {
66+ yield return new KeyValuePair < string , string > ( $ "{ prefix . ToUpperInvariant ( ) } _{ data . Key . ToUpperInvariant ( ) } ", value ) ;
67+ }
68+ else if ( data . Value is BooleanContextData booleanValue )
69+ {
70+ yield return new KeyValuePair < string , string > ( $ "{ prefix . ToUpperInvariant ( ) } _{ data . Key . ToUpperInvariant ( ) } ", booleanValue . ToString ( ) ) ;
71+ }
6372 }
6473 }
6574 }
6675 }
6776
6877 public GitHubContext ShallowCopy ( )
6978 {
70- var copy = new GitHubContext ( ) ;
79+ var copy = new GitHubContext ( Prefixes ) ;
7180
7281 foreach ( var pair in this )
7382 {
0 commit comments