def resolve_issues( self, info: ResolveInfo, codes: List[int], callables: List[str], file_names: List[str], min_trace_length_to_sinks: Optional[int] = None, max_trace_length_to_sinks: Optional[int] = None, min_trace_length_to_sources: Optional[int] = None, max_trace_length_to_sources: Optional[int] = None, **args ) -> List[IssueQueryResult]: session = get_session(info.context) run_id = Query.latest_run_id(session) builder = ( IssueQueryBuilder(run_id) .with_session(session) .where_codes_is_any_of(codes) .where_callables_is_any_of(callables) .where_file_names_is_any_of(file_names) .where_trace_length_to_sinks( min_trace_length_to_sinks, max_trace_length_to_sinks ) .where_trace_length_to_sources( min_trace_length_to_sources, max_trace_length_to_sources ) ) return builder.get()
def resolve_issues( self, info: ResolveInfo, codes: List[int], callables: List[str], file_names: List[str], min_trace_length_to_sinks: Optional[int] = None, max_trace_length_to_sinks: Optional[int] = None, min_trace_length_to_sources: Optional[int] = None, max_trace_length_to_sources: Optional[int] = None, # pyre-fixme[2]: Parameter must be annotated. **args ) -> List[IssueQueryResult]: session = get_session(info.context) run_id = Query.latest_run_id(session) builder = ( issues.Query(session, run_id).where_codes_is_any_of( codes).where_callables_is_any_of(callables). where_file_names_is_any_of(file_names).where_trace_length_to_sinks( min_trace_length_to_sinks, max_trace_length_to_sinks).where_trace_length_to_sources( min_trace_length_to_sources, max_trace_length_to_sources)) return builder.get()
def resolve_issues( self, info: ResolveInfo, run_id: int, codes: List[int], paths: List[str], statuses: List[str], callables: Optional[MatchesIsField] = None, features: Optional[List[FeatureCondition]] = None, min_trace_length_to_sinks: Optional[int] = None, max_trace_length_to_sinks: Optional[int] = None, min_trace_length_to_sources: Optional[int] = None, max_trace_length_to_sources: Optional[int] = None, issue_instance_id: Optional[int] = None, is_new_issue: Optional[bool] = None, source_names: Optional[MatchesIsField] = None, source_kinds: Optional[MatchesIsField] = None, sink_names: Optional[MatchesIsField] = None, sink_kinds: Optional[MatchesIsField] = None, **kwargs: Any, ) -> List[IssueQueryResult]: session = get_session(info.context) filter_instance = Filter.from_query( codes, paths, callables, statuses, source_names, source_kinds, sink_names, sink_kinds, features, min_trace_length_to_sinks, max_trace_length_to_sinks, min_trace_length_to_sources, max_trace_length_to_sources, is_new_issue, ) issues = (Instance(session, DBID(run_id)).where_filter(filter_instance). where_issue_instance_id_is(issue_instance_id).get()) return issues
def resolve_issues( self, info: ResolveInfo, run_id: int, codes: List[int], paths: List[str], callables: List[str], features: Optional[List[FeatureCondition]] = None, min_trace_length_to_sinks: Optional[int] = None, max_trace_length_to_sinks: Optional[int] = None, min_trace_length_to_sources: Optional[int] = None, max_trace_length_to_sources: Optional[int] = None, issue_instance_id: Optional[int] = None, is_new_issue: Optional[bool] = None, **kwargs: Any, ) -> List[IssueQueryResult]: session = get_session(info.context) builder = ( issues.Instance(session, DBID(run_id)) .where_codes_is_any_of(codes) .where_callables_is_any_of(callables) .where_path_is_any_of(paths) .where_trace_length_to_sinks( min_trace_length_to_sinks, max_trace_length_to_sinks ) .where_trace_length_to_sources( min_trace_length_to_sources, max_trace_length_to_sources ) .where_issue_instance_id_is(issue_instance_id) .where_is_new_issue(is_new_issue) ) for feature in features or []: if feature.mode == "any of": # pyre-fixme[6]: Expected `List[str]` for 1st param but got `List`. builder = builder.where_any_features(feature.features) if feature.mode == "all of": # pyre-fixme[6]: Expected `List[str]` for 1st param but got `List`. builder = builder.where_all_features(feature.features) if feature.mode == "none of": # pyre-fixme[6]: Expected `List[str]` for 1st param but got `List`. builder = builder.where_exclude_features(feature.features) return builder.get()
def resolve_issues( self, info: ResolveInfo, codes: List[int], paths: List[str], callables: List[str], features_mode: Optional[str] = None, features: Optional[List[str]] = None, min_trace_length_to_sinks: Optional[int] = None, max_trace_length_to_sinks: Optional[int] = None, min_trace_length_to_sources: Optional[int] = None, max_trace_length_to_sources: Optional[int] = None, issue_id: Optional[int] = None, **kwargs: Any, ) -> List[IssueQueryResult]: session = get_session(info.context) run_id = Query.latest_run_id(session) builder = (issues.Query( session, run_id ).where_codes_is_any_of(codes).where_callables_is_any_of( callables).where_path_is_any_of(paths).where_trace_length_to_sinks( min_trace_length_to_sinks, max_trace_length_to_sinks).where_trace_length_to_sources( min_trace_length_to_sources, max_trace_length_to_sources).where_issue_id_is(issue_id)) if features_mode and features: if features_mode == "any of": builder = builder.where_any_features(features) if features_mode == "all of": builder = builder.where_all_features(features) if features_mode == "none of": builder = builder.where_exclude_features(features) return builder.get()
def resolve_runs(self, info: ResolveInfo) -> List[run.Run]: session = get_session(info.context) return run.runs(session)