From bf3225af70acdfd269265ad20255c2376925a44f Mon Sep 17 00:00:00 2001 From: Michael Hohn Date: Thu, 21 Nov 2024 13:35:09 -0800 Subject: [PATCH] initial guides --- LICENSE | 21 ++ README.org | 11 + codeql-query-development-groups.drawio | 86 ++++++++ codeql-query-development-groups.drawio.pdf | Bin 0 -> 19504 bytes codeql-query-development.drawio | 121 +++++++++++ codeql-query-development.drawio.pdf | Bin 0 -> 22371 bytes codeql-system.drawio | 222 +++++++++++++++++++++ codeql-system.drawio.pdf | Bin 0 -> 26609 bytes 8 files changed, 461 insertions(+) create mode 100644 LICENSE create mode 100644 README.org create mode 100644 codeql-query-development-groups.drawio create mode 100644 codeql-query-development-groups.drawio.pdf create mode 100644 codeql-query-development.drawio create mode 100644 codeql-query-development.drawio.pdf create mode 100644 codeql-system.drawio create mode 100644 codeql-system.drawio.pdf diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..32c3074 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 GitHub + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.org b/README.org new file mode 100644 index 0000000..9d45e63 --- /dev/null +++ b/README.org @@ -0,0 +1,11 @@ +* Visual guide to CodeQL + This repository contains several maps illustrating the pieces involved in CodeQL + deployment and query writing. In particular, the maps try to illustrate the + connections between CI/CD, query development, and query deployment. + +** Using the illustrations + The illustrations are drawn using the open-source https://www.drawio.com/ tool. + PDF exports are provided they can be viewed without downloading any extra + tools. + + diff --git a/codeql-query-development-groups.drawio b/codeql-query-development-groups.drawio new file mode 100644 index 0000000..cd777f2 --- /dev/null +++ b/codeql-query-development-groups.drawio @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codeql-query-development-groups.drawio.pdf b/codeql-query-development-groups.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..25c2b7e48d31c15f0c409dfad3af471fa29ce223 GIT binary patch literal 19504 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codeql-query-development.drawio.pdf b/codeql-query-development.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2a0b248cd3d9662dabd23cc516216eb6e6b0b4fa GIT binary patch literal 22371 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 lW++TV1n>tEXaB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codeql-system.drawio.pdf b/codeql-system.drawio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0946c9fe86031cb19218c5b9a4eb498190264a4a GIT binary patch literal 26609 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 DRGoTu literal 0 HcmV?d00001