Commit Graph

18 Commits

Author SHA1 Message Date
Koen Vlaswinkel
f91da95081 Add library versions to data extensions editor 2023-07-14 12:02:05 +02:00
Koen Vlaswinkel
0560f4fe76 Add classification and type to queries 2023-07-13 16:15:58 +02:00
Koen Vlaswinkel
bcbbb42b41 Exclude methods in tests in framework mode
This excludes methods defined in tests in framework mode, significantly
cutting down on the number of methods shown that would need to be
modeled.

For C#, this just checks that the file is not a test file, as defined
by the QL library.

For Java, this makes a copy of the internal
[`ModelExclusions.qll`](249f9f863d/java/ql/lib/semmle/code/java/dataflow/internal/ModelExclusions.qll)
file to avoid the use of internal modules. This module will tell us
whether a method is "interesting" to model or not. Not all of the checks
in this module need to happen for framework mode, but these checks might
be useful for telling a user whether a method is interesting to model
in application mode.
2023-06-28 10:21:26 +02:00
Koen Vlaswinkel
a053792d6e Use nestedName for getting the name of an API
This changes the Java `CallableMethod.getApiName()` to use `nestedName`
instead of `getSourceDeclaration`. `getSourceDeclaration` would return a
`RefType`, on which the `toString()` method returns its `getName`().
However, for nested types this wouldn't work and wouldn't include the
enclosing type. This fixes it by using `nestedName` which matches the
method that is also used for determining whether a type matches an
extensible predicate.
2023-06-27 14:38:19 +02:00
Koen Vlaswinkel
bd0e5604a8 Fix incorrect JAR name being displayed in application mode 2023-06-27 11:22:03 +02:00
Koen Vlaswinkel
7e8578a22c Refactor data extensions editor queries to reduce duplication
This refactors the data extensions editor queries to use a new
`AutomodelVsCode` module. This module is based on the `ExternalApi`
module, but is more general and can be used for retrieving public
methods from the source as well. The actual conditions are now in the
queries themselves.

This reduces the duplicated module in the framework mode query and will
mean that when we update the `ExternalApi` module, we will just have to
port it to the `AutomodelVsCode` module, and not to the `ExternalApi`
and a separate framework mode query.
2023-06-26 16:33:05 +02:00
Koen Vlaswinkel
6e16f826fb Exclude methods from anonymous classes in framework mode 2023-06-23 13:45:06 +02:00
Koen Vlaswinkel
01da0f1d34 Fix incorrect comment on method 2023-06-23 11:58:43 +02:00
Koen Vlaswinkel
31e1bef548 Add framework mode queries 2023-06-23 09:53:01 +02:00
Koen Vlaswinkel
2e7c86d107 Update ExternalApi.qll dependencies 2023-06-22 14:33:28 +02:00
Koen Vlaswinkel
23745ba93f Change jar to library for Java query 2023-06-19 11:25:40 +02:00
Koen Vlaswinkel
55d1f14ac4 Add library to data extensions editor
This adds a new library column to the data extensions editor containing
the JAR or DLL file the method is defined in. This will be used to group
methods by library in the future. For now, it just shows in a column.
2023-06-16 12:01:30 +02:00
Koen Vlaswinkel
a117e09796 Use a single SARIF-compatible query instead of two separate queries 2023-05-31 12:32:41 +02:00
Koen Vlaswinkel
5c81671e67 Retrieve external API usage snippets using SARIF 2023-05-30 13:46:14 +02:00
Anders Starcke Henriksen
0d11075a5d No indentation. 2023-04-17 15:50:33 +02:00
Anders Starcke Henriksen
7b901b4814 Update library used by java query. 2023-04-17 15:42:53 +02:00
Anders Starcke Henriksen
90936780bd Add support for running C# query. 2023-04-14 14:47:20 +02:00
Koen Vlaswinkel
5200871989 Add external APIs query in extension
This adds the external API query text to the extension directly to avoid
users having to copy the query to their local `codeql` submodule or
having to checkout a specific branch.

This is a temporary solution until the queries are stabilized. Once they
are, we will upstream these to `github/codeql` and use them like other
contextual queries.

Since this is just a temporary solution, this is not the prettiest code
and is not intended to be a long-term solution. It does not do proper
caching and will create a new temporary directory for every query run.
The performance hit of this is acceptable and expected.
2023-04-13 13:26:37 +02:00