struct FileAnalyzer::Hook

Overview

A file hook recognises an endpoint by matching a URL it found in the file against the user-supplied -u/--url. With no url that includes?(url) test degenerates to "matches everything", so with no url no hook may run.

#tech is the technology the hook's endpoints are attributed to. Every hook has to name one: an endpoint that leaves the analysis phase with details.technology unset belongs to no group in any report and to no view in a cross-view tool, which is exactly what the GraphQL operation-document hook used to produce before it became the graphql_operation analyzer.

These names are deliberately not in NoirTechs::TECHS. A catalog entry has to be backed by a detector, and there is nothing to detect here — the hooks are activated by a flag, like ai is by --ai-provider, and they read every file in the scan rather than a recognisable one.

Defined in:

models/analyzer.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(func : Proc(String, String, Array(Endpoint)), tech : String) #

[View source]

Instance Method Detail

def clone #

[View source]
def copy_with(func _func = @func, tech _tech = @tech) #

[View source]
def func : Proc(String, String, Array(Endpoint)) #

def tech : String #