diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..22358de
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,55 @@
+name: Deploy
+
+on:
+ push:
+ branches: [main, artifinder]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.x"
+
+ - run: pip install pyyaml
+
+ - run: python3 generate_artifinder_data.py
+
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: "3.2"
+ bundler-cache: true
+
+ - id: pages
+ uses: actions/configure-pages@v5
+
+ - run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
+ env:
+ JEKYLL_ENV: production
+
+ - uses: actions/upload-pages-artifact@v3
+
+ deploy:
+ needs: build
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ steps:
+ - id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 4ef8024..36558d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
_site
.jekyll-cache
+_data/artifinder_nonevaluated.yaml
+_data/artifinder_authorlinks.yaml
.jekyll-metadata
.DS_Store
vendor/
.bundle/
+.venv
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..89fe1be
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "_artifinder"]
+ path = _artifinder
+ url = git@github.com:DistriNet/ArtiFinder-Data.git
diff --git a/README.md b/README.md
index 6da5606..7bccbe5 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ We ask you to build the repository and preview your changes before submitting th
You have three options to preview changes:
* configure your forked repository on GitHub to use your branch for GitHub Pages
and view it at `your_username.github.io/secartifacts.github.io`
-* install Jekyll and Bundler locally then run `bundle exec jekyll serve` at the root of the repository
+* install Jekyll and Bundler locally, run `./generate.sh` to generate required data files, then run `bundle exec jekyll serve` at the root of the repository
* build the repository via [jekyll's docker container](https://github.com/envygeeks/jekyll-docker), for example using
the following command to start a jekyll server on [http://localhost:4000/](http://localhost:4000/):
``` sh
diff --git a/_artifinder b/_artifinder
new file mode 160000
index 0000000..81e25e9
--- /dev/null
+++ b/_artifinder
@@ -0,0 +1 @@
+Subproject commit 81e25e90ff30e080c81b0467140bc437e1e280f5
diff --git a/_conferences/acsac2017/results.md b/_conferences/acsac2017/results.md
index 1cf347b..551b474 100644
--- a/_conferences/acsac2017/results.md
+++ b/_conferences/acsac2017/results.md
@@ -70,9 +70,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2018/results.md b/_conferences/acsac2018/results.md
index faea73d..02211e8 100644
--- a/_conferences/acsac2018/results.md
+++ b/_conferences/acsac2018/results.md
@@ -110,9 +110,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2019/results.md b/_conferences/acsac2019/results.md
index b108fa5..0682ec9 100644
--- a/_conferences/acsac2019/results.md
+++ b/_conferences/acsac2019/results.md
@@ -107,9 +107,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2020/results.md b/_conferences/acsac2020/results.md
index f5bc379..66e917c 100644
--- a/_conferences/acsac2020/results.md
+++ b/_conferences/acsac2020/results.md
@@ -132,9 +132,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2021/results.md b/_conferences/acsac2021/results.md
index 57c5d1c..ff2dbd8 100644
--- a/_conferences/acsac2021/results.md
+++ b/_conferences/acsac2021/results.md
@@ -108,9 +108,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2022/results.md b/_conferences/acsac2022/results.md
index 5a130bb..a0879bf 100644
--- a/_conferences/acsac2022/results.md
+++ b/_conferences/acsac2022/results.md
@@ -200,9 +200,10 @@ Results automatically obtained from
{% endif %}
-
-
+
+ {% include artifinder_link_cell.html title=artifact.title %}
+
{% endfor %}
diff --git a/_conferences/acsac2023/results.md b/_conferences/acsac2023/results.md
index 5b572a5..f023b51 100644
--- a/_conferences/acsac2023/results.md
+++ b/_conferences/acsac2023/results.md
@@ -150,6 +150,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/acsac2024/results.md b/_conferences/acsac2024/results.md
index 7ee937b..001c36b 100644
--- a/_conferences/acsac2024/results.md
+++ b/_conferences/acsac2024/results.md
@@ -224,6 +224,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/acsac2025/results.md b/_conferences/acsac2025/results.md
index 828cffe..480ee11 100644
--- a/_conferences/acsac2025/results.md
+++ b/_conferences/acsac2025/results.md
@@ -200,6 +200,7 @@ Results automatically obtained from
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/ndss2024/results.md b/_conferences/ndss2024/results.md
index 4c9dd26..481201a 100644
--- a/_conferences/ndss2024/results.md
+++ b/_conferences/ndss2024/results.md
@@ -180,6 +180,7 @@ artifacts:
Functional |
Reproduced |
Available at |
+ {% include artifinder_link_header.html %}
@@ -214,6 +215,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/ndss2025/results.md b/_conferences/ndss2025/results.md
index f739ec5..f16ef6e 100644
--- a/_conferences/ndss2025/results.md
+++ b/_conferences/ndss2025/results.md
@@ -282,6 +282,7 @@ artifacts:
Functional |
Reproduced |
Available at |
+ {% include artifinder_link_header.html %}
@@ -316,6 +317,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2020/results.md b/_conferences/usenixsec2020/results.md
index 82bd813..1248dfb 100644
--- a/_conferences/usenixsec2020/results.md
+++ b/_conferences/usenixsec2020/results.md
@@ -195,6 +195,7 @@ artifacts:
Title |
Badge |
Artifact URL |
+ {% include artifinder_link_header.html %}
@@ -217,6 +218,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2021/results.md b/_conferences/usenixsec2021/results.md
index 54b0979..45552b8 100644
--- a/_conferences/usenixsec2021/results.md
+++ b/_conferences/usenixsec2021/results.md
@@ -176,6 +176,7 @@ artifacts:
Title |
Badge |
Artifact URL |
+ {% include artifinder_link_header.html %}
@@ -198,6 +199,7 @@ artifacts:
Artifact
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2022/results.md b/_conferences/usenixsec2022/results.md
index a1b58f0..5c84de9 100644
--- a/_conferences/usenixsec2022/results.md
+++ b/_conferences/usenixsec2022/results.md
@@ -693,6 +693,7 @@ Results include evaluation of the USENIX Security Summer submissions and will be
Repro. |
Repository |
Appendix |
+ {% include artifinder_link_header.html %}
@@ -728,6 +729,7 @@ Results include evaluation of the USENIX Security Summer submissions and will be
Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2023/results.md b/_conferences/usenixsec2023/results.md
index 1eefebc..cbbe438 100644
--- a/_conferences/usenixsec2023/results.md
+++ b/_conferences/usenixsec2023/results.md
@@ -881,6 +881,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -919,6 +920,7 @@ artifacts:
Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2024/results.md b/_conferences/usenixsec2024/results.md
index 645ac2b..c80532f 100644
--- a/_conferences/usenixsec2024/results.md
+++ b/_conferences/usenixsec2024/results.md
@@ -1034,6 +1034,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -1079,6 +1080,7 @@ artifacts:
📄 Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_conferences/usenixsec2025/results.md b/_conferences/usenixsec2025/results.md
index fcbabe2..3e0b6e4 100644
--- a/_conferences/usenixsec2025/results.md
+++ b/_conferences/usenixsec2025/results.md
@@ -3127,6 +3127,7 @@ artifacts:
Funct. |
Repro. |
Available At |
+ {% include artifinder_link_header.html %}
@@ -3172,6 +3173,7 @@ artifacts:
📄 Appendix
{% endif %}
+ {% include artifinder_link_cell.html title=artifact.title %}
{% endfor %}
diff --git a/_includes/artifinder_link_cell.html b/_includes/artifinder_link_cell.html
new file mode 100644
index 0000000..beea4f4
--- /dev/null
+++ b/_includes/artifinder_link_cell.html
@@ -0,0 +1,5 @@
+
+ {% assign dir_name = page.path | remove_first:"_conferences/" | split:"/" | first %}
+ {% assign af_entry = site.data.artifinder_authorlinks[dir_name][include.title] %}
+ {% if af_entry %}Author's link{% if af_entry.validated %} ✓{% endif %}{% endif %}
+ |
diff --git a/_includes/artifinder_link_header.html b/_includes/artifinder_link_header.html
new file mode 100644
index 0000000..ede9927
--- /dev/null
+++ b/_includes/artifinder_link_header.html
@@ -0,0 +1 @@
+Author's link ? |
diff --git a/_includes/masthead.html b/_includes/masthead.html
index d28e62a..a3213ab 100644
--- a/_includes/masthead.html
+++ b/_includes/masthead.html
@@ -30,6 +30,9 @@
{% endif %}
{% endfor %}
+
{% if site.search == true %}