Skip to content

Commit 52596ac

Browse files
authored
GitHub multi tokens (#27)
feat(github): multi github token support Added support for multiple GitHub tokens. This allows any number of GitHub tokens to be used within workflows.
1 parent f583b7f commit 52596ac

33 files changed

+383
-49
lines changed

src/Modules/StatCan.OrchardCore.GitHub/Activities/CommitFileTask.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ ILogger<CreateBranchTask> logger
4040

4141
public override LocalizedString Category => S["GitHub"];
4242

43+
public string TokenName
44+
{
45+
get => GetProperty<string>();
46+
set => SetProperty(value);
47+
}
4348
public WorkflowExpression<string> Owner
4449
{
4550
get => GetProperty(() => new WorkflowExpression<string>());
@@ -89,7 +94,7 @@ public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecuti
8994
{
9095
try
9196
{
92-
var client = await _gitHubApiService.GetGitHubClient();
97+
var client = await _gitHubApiService.GetGitHubClient(TokenName);
9398

9499
var owner = await _expressionEvaluator.EvaluateAsync(Owner, workflowContext);
95100
var repo = await _expressionEvaluator.EvaluateAsync(Repo, workflowContext);

src/Modules/StatCan.OrchardCore.GitHub/Activities/CreateBranchTask.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ ILogger<CreateBranchTask> logger
3939

4040
public override LocalizedString Category => S["GitHub"];
4141

42+
public string TokenName
43+
{
44+
get => GetProperty<string>();
45+
set => SetProperty(value);
46+
}
4247
public WorkflowExpression<string> Owner
4348
{
4449
get => GetProperty(() => new WorkflowExpression<string>());
@@ -78,7 +83,7 @@ public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecuti
7883
{
7984
try
8085
{
81-
var client = await _gitHubApiService.GetGitHubClient();
86+
var client = await _gitHubApiService.GetGitHubClient(TokenName);
8287

8388
var owner = await _expressionEvaluator.EvaluateAsync(Owner, workflowContext);
8489
var repo = await _expressionEvaluator.EvaluateAsync(Repo, workflowContext);

src/Modules/StatCan.OrchardCore.GitHub/Activities/CreateIssueTask.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ ILogger<CreateBranchTask> logger
3939

4040
public override LocalizedString Category => S["GitHub"];
4141

42+
public string TokenName
43+
{
44+
get => GetProperty<string>();
45+
set => SetProperty(value);
46+
}
4247
public WorkflowExpression<string> Owner
4348
{
4449
get => GetProperty(() => new WorkflowExpression<string>());
@@ -82,7 +87,7 @@ public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecuti
8287
{
8388
try
8489
{
85-
var client = await _gitHubApiService.GetGitHubClient();
90+
var client = await _gitHubApiService.GetGitHubClient(TokenName);
8691

8792
var owner = await _expressionEvaluator.EvaluateAsync(Owner, workflowContext);
8893
var repo = await _expressionEvaluator.EvaluateAsync(Repo, workflowContext);

src/Modules/StatCan.OrchardCore.GitHub/Activities/CreatePullRequestTask.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ ILogger<CreateBranchTask> logger
3939

4040
public override LocalizedString Category => S["GitHub"];
4141

42+
public string TokenName
43+
{
44+
get => GetProperty<string>();
45+
set => SetProperty(value);
46+
}
4247
public WorkflowExpression<string> Owner
4348
{
4449
get => GetProperty(() => new WorkflowExpression<string>());
@@ -88,7 +93,7 @@ public override async Task<ActivityExecutionResult> ExecuteAsync(WorkflowExecuti
8893
{
8994
try
9095
{
91-
var client = await _gitHubApiService.GetGitHubClient();
96+
var client = await _gitHubApiService.GetGitHubClient(TokenName);
9297

9398
var owner = await _expressionEvaluator.EvaluateAsync(Owner, workflowContext);
9499
var repo = await _expressionEvaluator.EvaluateAsync(Repo, workflowContext);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[
2+
{
3+
"inputs": [ "Assets/tokensEditor.js" ],
4+
5+
"output": "wwwroot/tokensEditor.js"
6+
}
7+
]
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
function initializeTokensEditor(elem, data) {
2+
3+
console.log(data)
4+
var store = {
5+
debug: false,
6+
state: {
7+
tokens: data
8+
},
9+
addToken: function () {
10+
if (this.debug) { console.log('add token triggered') };
11+
this.state.tokens.push({ name: '', value: '' });
12+
},
13+
removeToken: function (index) {
14+
if (this.debug) { console.log('remove token triggered with', index) };
15+
this.state.tokens.splice(index, 1);
16+
},
17+
}
18+
19+
var tokensTable = {
20+
template: '#tokens-table',
21+
props: ['data'],
22+
name: 'tokens-table',
23+
methods: {
24+
add: function () {
25+
store.addToken();
26+
},
27+
remove: function (index) {
28+
store.removeToken(index);
29+
},
30+
getTokensFormattedList: function () {
31+
if (this.debug) { console.log('getTokensFormattedList triggered') };
32+
return JSON.stringify(store.state.tokens.filter(function (x) { return !IsNullOrWhiteSpace(x.name) }));
33+
}
34+
}
35+
};
36+
37+
new Vue({
38+
components: {
39+
tokensTable: tokensTable,
40+
},
41+
data: {
42+
sharedState: store.state
43+
},
44+
el: elem,
45+
});
46+
47+
}
48+
function IsNullOrWhiteSpace(str) {
49+
return str === null || str.match(/^ *$/) !== null;
50+
}

src/Modules/StatCan.OrchardCore.GitHub/Drivers/CommitFileTaskDisplayDriver.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Microsoft.AspNetCore.Mvc.ActionConstraints;
12
using OrchardCore.Workflows.Display;
23
using OrchardCore.Workflows.Models;
34
using StatCan.OrchardCore.GitHub.Activities;
@@ -9,6 +10,7 @@ public class CommitFileTaskDisplayDriver : ActivityDisplayDriver<CommitFileTask,
910
{
1011
protected override void EditActivity(CommitFileTask activity, CommitFileTaskViewModel model)
1112
{
13+
model.TokenName = activity.TokenName;
1214
model.Owner = activity.Owner.Expression;
1315
model.Repo = activity.Repo.Expression;
1416
model.BranchName = activity.BranchName.Expression;
@@ -19,6 +21,7 @@ protected override void EditActivity(CommitFileTask activity, CommitFileTaskView
1921

2022
protected override void UpdateActivity(CommitFileTaskViewModel model, CommitFileTask activity)
2123
{
24+
activity.TokenName = model.TokenName?.Trim();
2225
activity.Owner = new WorkflowExpression<string>(model.Owner?.Trim());
2326
activity.Repo = new WorkflowExpression<string>(model.Repo?.Trim());
2427
activity.BranchName = new WorkflowExpression<string>(model.BranchName?.Trim());

src/Modules/StatCan.OrchardCore.GitHub/Drivers/CreateBranchTaskDisplayDriver.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class CreateBranchTaskDisplayDriver : ActivityDisplayDriver<CreateBranchT
99
{
1010
protected override void EditActivity(CreateBranchTask activity, CreateBranchTaskViewModel model)
1111
{
12+
model.TokenName = activity.TokenName;
1213
model.Owner = activity.Owner.Expression;
1314
model.Repo = activity.Repo.Expression;
1415
model.ReferenceName = activity.ReferenceName.Expression;
@@ -17,6 +18,7 @@ protected override void EditActivity(CreateBranchTask activity, CreateBranchTask
1718

1819
protected override void UpdateActivity(CreateBranchTaskViewModel model, CreateBranchTask activity)
1920
{
21+
activity.TokenName = model.TokenName?.Trim();
2022
activity.Owner = new WorkflowExpression<string>(model.Owner?.Trim());
2123
activity.Repo = new WorkflowExpression<string>(model.Repo?.Trim());
2224
activity.ReferenceName = new WorkflowExpression<string>(model.ReferenceName?.Trim());

src/Modules/StatCan.OrchardCore.GitHub/Drivers/CreateIssueTaskDisplayDriver.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class CreateIssueTaskDisplayDriver : ActivityDisplayDriver<CreateIssueTas
99
{
1010
protected override void EditActivity(CreateIssueTask activity, CreateIssueTaskViewModel model)
1111
{
12+
model.TokenName = activity.TokenName;
1213
model.Owner = activity.Owner.Expression;
1314
model.Repo = activity.Repo.Expression;
1415
model.Title = activity.Title.Expression;
@@ -18,6 +19,7 @@ protected override void EditActivity(CreateIssueTask activity, CreateIssueTaskVi
1819

1920
protected override void UpdateActivity(CreateIssueTaskViewModel model, CreateIssueTask activity)
2021
{
22+
activity.TokenName = model.TokenName?.Trim();
2123
activity.Owner = new WorkflowExpression<string>(model.Owner?.Trim());
2224
activity.Repo = new WorkflowExpression<string>(model.Repo?.Trim());
2325
activity.Title = new WorkflowExpression<string>(model.Title?.Trim());

src/Modules/StatCan.OrchardCore.GitHub/Drivers/CreatePullRequestTaskDisplayDriver.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class CreatePullRequestTaskDisplayDriver : ActivityDisplayDriver<CreatePu
99
{
1010
protected override void EditActivity(CreatePullRequestTask activity, CreatePullRequestTaskViewModel model)
1111
{
12+
model.TokenName = activity.TokenName;
1213
model.Owner = activity.Owner.Expression;
1314
model.Repo = activity.Repo.Expression;
1415
model.SourceBranch = activity.SourceBranch.Expression;
@@ -19,6 +20,7 @@ protected override void EditActivity(CreatePullRequestTask activity, CreatePullR
1920

2021
protected override void UpdateActivity(CreatePullRequestTaskViewModel model, CreatePullRequestTask activity)
2122
{
23+
activity.TokenName = model.TokenName?.Trim();
2224
activity.Owner = new WorkflowExpression<string>(model.Owner?.Trim());
2325
activity.Repo = new WorkflowExpression<string>(model.Repo?.Trim());
2426
activity.SourceBranch = new WorkflowExpression<string>(model.SourceBranch?.Trim());

0 commit comments

Comments
 (0)