Skip to content

Commit 4ee81ab

Browse files
Fix logging multiple events and messages
Signed-off-by: Lukasz Gryglicki <[email protected]>
1 parent c56501b commit 4ee81ab

File tree

2 files changed

+35
-28
lines changed

2 files changed

+35
-28
lines changed

cla-backend-go/github/bots.go

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -222,29 +222,33 @@ func SkipAllowlistedBots(ev events.Service, orgModel *models.GithubOrganization,
222222
}
223223
log.WithFields(f).Debugf("final skip_cla config for repo %s is %+v; actorsMissingCLA: [%s]", orgRepo, configArray, strings.Join(actorDebugData, ", "))
224224

225+
seenActors := make(map[string]struct{})
225226
for _, actor := range actorsMissingCLA {
226227
if actor == nil {
227228
continue
228229
}
229230
actorData := actorToString(actor)
230231
log.WithFields(f).Debugf("Checking actor: %s for skip_cla config: %+v", actorData, configArray)
231232
if isActorSkipped(actor, configArray) {
232-
msg := fmt.Sprintf(
233-
"Skipping CLA check for repo='%s', actor: %s due to skip_cla config: %+v",
234-
orgRepo, actorData, configArray,
235-
)
236-
log.WithFields(f).Info(msg)
237-
eventData := events.BypassCLAEventData{
238-
Repo: orgRepo,
239-
Config: config,
240-
Actor: actorData,
233+
_, seen := seenActors[actorData]
234+
if !seen {
235+
seenActors[actorData] = struct{}{}
236+
msg := fmt.Sprintf(
237+
"Skipping CLA check for repo='%s', actor: %s due to skip_cla config: %+v",
238+
orgRepo, actorData, configArray,
239+
)
240+
log.WithFields(f).Info(msg)
241+
eventData := events.BypassCLAEventData{
242+
Repo: orgRepo,
243+
Config: config,
244+
Actor: actorData,
245+
}
246+
ev.LogEvent(&events.LogEventArgs{
247+
EventType: events.BypassCLA,
248+
EventData: &eventData,
249+
ProjectID: projectID,
250+
})
241251
}
242-
ev.LogEvent(&events.LogEventArgs{
243-
EventType: events.BypassCLA,
244-
EventData: &eventData,
245-
ProjectID: projectID,
246-
})
247-
log.WithFields(f).Debugf("event logged")
248252
actor.Authorized = true
249253
allowlistedActors = append(allowlistedActors, actor)
250254
} else {

cla-backend/cla/models/github_models.py

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,6 +1091,7 @@ def skip_allowlisted_bots(self, org_model, org_repo, actors_missing_cla) -> Tupl
10911091
cla.log.debug("final skip_cla config for repo %s is %s; actors_missing_cla: [%s]", org_repo, config, ", ".join(actor_debug_data))
10921092
out_actors_missing_cla = []
10931093
allowlisted_actors = []
1094+
seen_actors = set()
10941095
for actor in actors_missing_cla:
10951096
if actor is None:
10961097
continue
@@ -1103,19 +1104,21 @@ def skip_allowlisted_bots(self, org_model, org_repo, actors_missing_cla) -> Tupl
11031104
)
11041105
cla.log.debug("Checking actor: %s for skip_cla config: %s", actor_data, config)
11051106
if self.is_actor_skipped(actor, config):
1106-
msg = "Skipping CLA check for repo='{}', actor: {} due to skip_cla config: '{}'".format(
1107-
org_repo,
1108-
actor_data,
1109-
config,
1110-
)
1111-
cla.log.info(msg)
1112-
Event.create_event(
1113-
event_type=EventType.BypassCLA,
1114-
event_data=msg,
1115-
event_summary=msg,
1116-
event_user_name=actor_data,
1117-
contains_pii=True,
1118-
)
1107+
if not actor_data in seen_actors:
1108+
seen_actors.add(actor_data)
1109+
msg = "Skipping CLA check for repo='{}', actor: {} due to skip_cla config: '{}'".format(
1110+
org_repo,
1111+
actor_data,
1112+
config,
1113+
)
1114+
cla.log.info(msg)
1115+
Event.create_event(
1116+
event_type=EventType.BypassCLA,
1117+
event_data=msg,
1118+
event_summary=msg,
1119+
event_user_name=actor_data,
1120+
contains_pii=True,
1121+
)
11191122
actor.authorized = True
11201123
allowlisted_actors.append(actor)
11211124
continue

0 commit comments

Comments
 (0)