Skip to content
This repository was archived by the owner on Nov 1, 2023. It is now read-only.

Commit 75deae6

Browse files
authored
Merge branch 'main' into tevoinea/FixExePackaging
2 parents 02d0543 + 40e4d50 commit 75deae6

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

src/ApiService/ApiService/onefuzzlib/notifications/Ado.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,10 @@ public sealed class AdoConnector {
180180
private readonly ILogger _logTracer;
181181
public static async Async.Task<AdoConnector> AdoConnectorCreator(IOnefuzzContext context, Container container, string filename, AdoTemplate config, Report report, ILogger logTracer, Renderer? renderer = null) {
182182
if (!config.AdoFields.TryGetValue("System.Title", out var issueTitle)) {
183-
issueTitle = "example title";
183+
issueTitle = "{{ report.crash_site }} - {{ report.executable }}";
184184
}
185-
renderer ??= await Renderer.ConstructRenderer(context, container, filename, issueTitle, report, logTracer);
186185
var instanceUrl = context.Creds.GetInstanceUrl();
186+
renderer ??= await Renderer.ConstructRenderer(context, container, filename, issueTitle, report, instanceUrl, logTracer);
187187
var project = renderer.Render(config.Project, instanceUrl);
188188

189189
var authToken = await context.SecretsOperations.GetSecretValue(config.AuthToken.Secret);
@@ -398,7 +398,8 @@ private async Async.Task<WorkItem> CreateNew() {
398398
});
399399
}
400400

401-
if (_config.AdoFields.TryGetValue("System.Title", out var systemTitle) && systemTitle.Length > MAX_SYSTEM_TITLE_LENGTH) {
401+
var systemTitle = _renderer.IssueTitle;
402+
if (systemTitle.Length > MAX_SYSTEM_TITLE_LENGTH) {
402403
var systemTitleHashString = Convert.ToHexString(
403404
System.Security.Cryptography.SHA256.HashData(Encoding.UTF8.GetBytes(systemTitle))
404405
);

src/ApiService/ApiService/onefuzzlib/notifications/GithubIssues.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public async Async.Task GithubIssue(GithubIssuesTemplate config, Container conta
2222
var report = (Report)reportable;
2323

2424
try {
25-
await Process(config, container, filename, config.Title, report);
25+
await Process(config, container, filename, config.Title, report, _context.Creds.GetInstanceUrl());
2626
} catch (ApiException e) {
2727
await LogFailedNotification(report, e, notificationId);
2828
}
@@ -63,8 +63,8 @@ private static GitHubClient GetGitHubClient(string user, string pat) {
6363
};
6464
}
6565

66-
private async Async.Task Process(GithubIssuesTemplate config, Container container, string filename, string issueTitle, Report report) {
67-
var renderer = await Renderer.ConstructRenderer(_context, container, filename, issueTitle, report, _logTracer);
66+
private async Async.Task Process(GithubIssuesTemplate config, Container container, string filename, string issueTitle, Report report, Uri instanceUrl) {
67+
var renderer = await Renderer.ConstructRenderer(_context, container, filename, issueTitle, report, instanceUrl, _logTracer);
6868
var handler = await GithubConnnector.GithubConnnectorCreator(config, renderer, _context.Creds.GetInstanceUrl(), _context, _logTracer);
6969
await handler.Process();
7070
}

src/ApiService/ApiService/onefuzzlib/notifications/JinjaTemplateAdapter.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static async Async.Task<bool> IsValidScribanNotificationTemplate(IOnefuzz
3535
public static async Async.Task<TemplateValidationResponse> ValidateScribanTemplate(IOnefuzzContext context, ILogger log, TemplateRenderContext? renderContext, string template) {
3636
var instanceUrl = context.ServiceConfiguration.OneFuzzInstance;
3737

38-
var (renderer, templateRenderContext) = await GenerateTemplateRenderContext(context, log, renderContext);
38+
var (renderer, templateRenderContext) = await GenerateTemplateRenderContext(context, instanceUrl, log, renderContext);
3939

4040
var renderedTemplate = renderer.Render(template, instanceUrl, strictRendering: true);
4141

@@ -45,7 +45,7 @@ public static async Async.Task<TemplateValidationResponse> ValidateScribanTempla
4545
);
4646
}
4747

48-
private static async Async.Task<(NotificationsBase.Renderer, TemplateRenderContext)> GenerateTemplateRenderContext(IOnefuzzContext context, ILogger log, TemplateRenderContext? templateRenderContext) {
48+
private static async Async.Task<(NotificationsBase.Renderer, TemplateRenderContext)> GenerateTemplateRenderContext(IOnefuzzContext context, Uri instanceUrl, ILogger log, TemplateRenderContext? templateRenderContext) {
4949
if (templateRenderContext != null) {
5050
log.LogInformation("Using custom TemplateRenderContext");
5151
} else {
@@ -220,6 +220,7 @@ public static async Async.Task<TemplateValidationResponse> ValidateScribanTempla
220220
reportFileName,
221221
issueTitle,
222222
report,
223+
instanceUrl,
223224
log,
224225
task,
225226
job,

src/ApiService/ApiService/onefuzzlib/notifications/NotificationsBase.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class Renderer {
3737
private readonly Report _report;
3838
private readonly Container _container;
3939
private readonly string _filename;
40+
public string IssueTitle => _issueTitle;
4041
private readonly string _issueTitle;
4142
private readonly TaskConfig _taskConfig;
4243
private readonly JobConfig _jobConfig;
@@ -51,6 +52,7 @@ public static async Async.Task<Renderer> ConstructRenderer(
5152
string filename,
5253
string issueTitle,
5354
Report report,
55+
Uri instanceUrl,
5456
ILogger log,
5557
Task? task = null,
5658
Job? job = null,
@@ -84,10 +86,23 @@ public static async Async.Task<Renderer> ConstructRenderer(
8486

8587
var scribanOnly = scribanOnlyOverride ?? scribanOnlyFeatureFlag;
8688

89+
var renderedIssueTitle = new Renderer(
90+
container,
91+
filename,
92+
string.Empty,
93+
report,
94+
checkedTask,
95+
checkedJob,
96+
targetUrl,
97+
inputUrl!, // TODO: incorrect
98+
reportUrl,
99+
scribanOnly)
100+
.Render(issueTitle, instanceUrl);
101+
87102
return new Renderer(
88103
container,
89104
filename,
90-
issueTitle,
105+
renderedIssueTitle,
91106
report,
92107
checkedTask,
93108
checkedJob,

0 commit comments

Comments
 (0)