seclab-taskflows 0.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. seclab_taskflows-0.0.1/.github/workflows/ci.yml +42 -0
  2. seclab_taskflows-0.0.1/.github/workflows/publish-to-pypi.yaml +64 -0
  3. seclab_taskflows-0.0.1/.github/workflows/publish-to-testpypi.yaml +77 -0
  4. seclab_taskflows-0.0.1/.gitignore +191 -0
  5. seclab_taskflows-0.0.1/CODEOWNERS +2 -0
  6. seclab_taskflows-0.0.1/CODE_OF_CONDUCT.md +74 -0
  7. seclab_taskflows-0.0.1/CONTRIBUTING.md +31 -0
  8. seclab_taskflows-0.0.1/LICENSE +21 -0
  9. seclab_taskflows-0.0.1/PKG-INFO +61 -0
  10. seclab_taskflows-0.0.1/README.md +39 -0
  11. seclab_taskflows-0.0.1/SECURITY.md +31 -0
  12. seclab_taskflows-0.0.1/SUPPORT.md +13 -0
  13. seclab_taskflows-0.0.1/pyproject.toml +62 -0
  14. seclab_taskflows-0.0.1/src/run_audit.sh +16 -0
  15. seclab_taskflows-0.0.1/src/run_seclab_agent.sh +13 -0
  16. seclab_taskflows-0.0.1/src/seclab_taskflows/__about__.py +4 -0
  17. seclab_taskflows-0.0.1/src/seclab_taskflows/__init__.py +2 -0
  18. seclab_taskflows-0.0.1/src/seclab_taskflows/configs/model_config.yaml +10 -0
  19. seclab_taskflows-0.0.1/src/seclab_taskflows/configs/model_config_lowercost.yaml +9 -0
  20. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/alert_results_models.py +46 -0
  21. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/gh_actions.py +334 -0
  22. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/gh_code_scanning.py +325 -0
  23. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/gh_file_viewer.py +275 -0
  24. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/ghsa.py +90 -0
  25. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/local_file_viewer.py +176 -0
  26. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/local_gh_resources.py +121 -0
  27. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/repo_context.py +597 -0
  28. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/repo_context_models.py +96 -0
  29. seclab_taskflows-0.0.1/src/seclab_taskflows/mcp_servers/report_alert_state.py +425 -0
  30. seclab_taskflows-0.0.1/src/seclab_taskflows/personalities/action_expert.yaml +72 -0
  31. seclab_taskflows-0.0.1/src/seclab_taskflows/personalities/web_application_security_expert.yaml +23 -0
  32. seclab_taskflows-0.0.1/src/seclab_taskflows/prompts/audit/audit_issue.yaml +66 -0
  33. seclab_taskflows-0.0.1/src/seclab_taskflows/prompts/triage_taskflows/actions_common/check_dismiss_reason.yaml +52 -0
  34. seclab_taskflows-0.0.1/src/seclab_taskflows/prompts/triage_taskflows/actions_common/dismiss_decision.yaml +10 -0
  35. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/README.md +26 -0
  36. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/check_notes.yaml +33 -0
  37. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/fetch_code_scanning_alerts.yaml +22 -0
  38. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/reachability_analysis.yaml +71 -0
  39. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/validate_user_input.yaml +26 -0
  40. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/audit_workflow_users.yaml +43 -0
  41. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/check_report.yaml +62 -0
  42. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/cleanup_results.yaml +23 -0
  43. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/collect_dismiss_reasons.yaml +34 -0
  44. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/create_report.yaml +104 -0
  45. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/review_report.yaml +88 -0
  46. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/track_workflow_users.yaml +37 -0
  47. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/trigger_analysis.yaml +66 -0
  48. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_actions.yaml +186 -0
  49. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_js_ts.yaml +130 -0
  50. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_actions_injection_issues.yaml +86 -0
  51. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_untrusted_checkout_issues.yaml +64 -0
  52. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_actions_code_injection.yaml +314 -0
  53. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_client_side_xss.yaml +151 -0
  54. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_path_injection.yaml +79 -0
  55. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_untrusted_checkout_critical.yaml +210 -0
  56. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/acl_check.yaml +74 -0
  57. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/audit_issue.yaml +67 -0
  58. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/audit_issue_local.yaml +27 -0
  59. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/audit_issue_local_iter.yaml +49 -0
  60. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/audit_sanitizers.yaml +54 -0
  61. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/classify_application.yaml +55 -0
  62. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/classify_application_local.yaml +88 -0
  63. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/fetch_audit_issue.yaml +25 -0
  64. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/fetch_source_code.yaml +23 -0
  65. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/gather_web_entry_point_info.yaml +32 -0
  66. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/gather_web_entry_point_info_local.yaml +47 -0
  67. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/ghsa_variant_analysis_demo.yaml +60 -0
  68. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/identify_applications.yaml +238 -0
  69. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/identify_applications_local.yaml +249 -0
  70. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/inspect_issue.yaml +24 -0
  71. seclab_taskflows-0.0.1/src/seclab_taskflows/taskflows/audit/js_ts_endpoint_access_checks.yaml +82 -0
  72. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/gh_actions.yaml +14 -0
  73. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/gh_code_scanning.yaml +15 -0
  74. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/gh_file_viewer.yaml +14 -0
  75. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/ghsa.yaml +13 -0
  76. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/local_file_viewer.yaml +13 -0
  77. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/local_gh_resources.yaml +14 -0
  78. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/repo_context.yaml +13 -0
  79. seclab_taskflows-0.0.1/src/seclab_taskflows/toolboxes/report_alert_state.yaml +19 -0
  80. seclab_taskflows-0.0.1/tests/__init__.py +2 -0
  81. seclab_taskflows-0.0.1/tests/test_00.py +14 -0
@@ -0,0 +1,42 @@
1
+ name: Python CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+ name: Run Tests ${{ matrix.python-version }} on ${{ matrix.os }}
15
+ runs-on: ${{ matrix.os }}
16
+ strategy:
17
+ matrix:
18
+ os: [ubuntu-latest, windows-latest, macos-latest]
19
+ python-version: ['3.11', '3.13'] # the one we have in the Codespace + the latest supported one by PyO3.
20
+ fail-fast: false # Continue testing other version(s) if one fails
21
+
22
+ steps:
23
+ - name: Checkout repository
24
+ uses: actions/checkout@v5
25
+
26
+ - name: Set up Python ${{ matrix.python-version }}
27
+ uses: actions/setup-python@v6
28
+ with:
29
+ python-version: ${{ matrix.python-version }}
30
+ cache: 'pip'
31
+
32
+
33
+ - name: Install Hatch
34
+ run: pip install --upgrade hatch
35
+
36
+ - name: Run static analysis
37
+ run: |
38
+ # hatch fmt --check
39
+ echo linter errors will be fixed in a separate PR
40
+
41
+ - name: Run tests
42
+ run: hatch test --python ${{ matrix.python-version }} --cover --randomize --parallel --retries 2 --retry-delay 1
@@ -0,0 +1,64 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - v[0-9]+.[0-9]+.[0-9]+
7
+
8
+ jobs:
9
+ publish:
10
+ name: Build
11
+ runs-on: ubuntu-latest
12
+
13
+ # This environment is required as an input to pypa/gh-action-pypi-publish
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/seclab-taskflows
17
+
18
+ env:
19
+ GITHUB_REPO: ${{ github.repository }}
20
+
21
+ permissions:
22
+ contents: write
23
+ id-token: write # For trusted publishing
24
+
25
+ steps:
26
+ - name: Checkout repository
27
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
28
+ with:
29
+ persist-credentials: false
30
+
31
+ - name: Set up Python
32
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
33
+ with:
34
+ python-version: "3.13"
35
+
36
+ - name: Install Hatch
37
+ run: pip install --upgrade hatch
38
+
39
+ - name: Build the wheel
40
+ run: python3 -m hatch build
41
+
42
+ - name: Upload artifacts
43
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
44
+ with:
45
+ name: python-package-distributions
46
+ path: dist/
47
+
48
+ - name: Publish to PyPI
49
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
50
+ with:
51
+ verbose: true
52
+
53
+ - name: Sign with sigstore
54
+ uses: sigstore/gh-action-sigstore-python@f832326173235dcb00dd5d92cd3f353de3188e6c # v3.1.0
55
+ with:
56
+ inputs: >-
57
+ ./dist/*.tar.gz
58
+ ./dist/*.whl
59
+
60
+ - name: Create GitHub Release
61
+ env:
62
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
63
+ RELEASE_NAME: ${{ github.ref_name }}
64
+ run: gh release create $RELEASE_NAME dist/* --repo $GITHUB_REPO --generate-notes
@@ -0,0 +1,77 @@
1
+ name: Publish to TestPyPI
2
+
3
+ on: workflow_dispatch
4
+
5
+ jobs:
6
+ publish:
7
+ name: Build
8
+ runs-on: ubuntu-latest
9
+
10
+ # This environment is required as an input to pypa/gh-action-pypi-publish
11
+ environment:
12
+ name: testpypi
13
+ url: https://test.pypi.org/p/seclab-taskflows
14
+
15
+ env:
16
+ GITHUB_REPO: ${{ github.repository }}
17
+
18
+ permissions:
19
+ contents: write
20
+ id-token: write # For trusted publishing
21
+
22
+ steps:
23
+ - name: Checkout repository
24
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
25
+ with:
26
+ persist-credentials: false
27
+
28
+ - name: Set up Python
29
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
30
+ with:
31
+ python-version: "3.13"
32
+
33
+ - name: Install Hatch
34
+ run: pip install --upgrade hatch
35
+
36
+ - name: Generate new pre-release version number
37
+ id: create_version_number
38
+ run: |
39
+ # Convert current version number to an alpha release of the next version.
40
+ # For example, 1.0.2 becomes 1.0.3a0
41
+ hatch version micro,a
42
+ # Get latest version number from test.pypi.org
43
+ CURRENT_VERSION_NUMBER=$(pip index versions --pre --index-url https://test.pypi.org/simple seclab-taskflows | sed 's/[^(]*[(]\([^)]*\)[)].*/\1/' | head -n 1)
44
+ # Set version number to match test.pypi.org
45
+ hatch version "$CURRENT_VERSION_NUMBER" || echo TestPyPI is behind current version
46
+ # Bump version number
47
+ hatch version a
48
+ # Create a name for the release
49
+ echo "RELEASE_NAME=test-release-v`hatch version`" >> $GITHUB_OUTPUT
50
+
51
+ - name: Build the wheel
52
+ run: python3 -m hatch build
53
+
54
+ - name: Upload artifacts
55
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
56
+ with:
57
+ name: python-package-distributions
58
+ path: dist/
59
+
60
+ - name: Publish to TestPyPI
61
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
62
+ with:
63
+ repository-url: https://test.pypi.org/legacy/
64
+ verbose: true
65
+
66
+ - name: Sign with sigstore
67
+ uses: sigstore/gh-action-sigstore-python@f832326173235dcb00dd5d92cd3f353de3188e6c # v3.1.0
68
+ with:
69
+ inputs: >-
70
+ ./dist/*.tar.gz
71
+ ./dist/*.whl
72
+
73
+ - name: Create GitHub Release
74
+ env:
75
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76
+ RELEASE_NAME: ${{ steps.create_version_number.outputs.RELEASE_NAME }}
77
+ run: gh release create $RELEASE_NAME dist/* --repo $GITHUB_REPO --prerelease --generate-notes
@@ -0,0 +1,191 @@
1
+ *.log
2
+ .direnv
3
+ .envrc
4
+
5
+ # https://github.com/github/gitignore/blob/main/Python.gitignore
6
+ # Byte-compiled / optimized / DLL files
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+
11
+ # emacs backup files
12
+ *~
13
+
14
+ # C extensions
15
+ *.so
16
+
17
+ # Distribution / packaging
18
+ .Python
19
+ build/
20
+ develop-eggs/
21
+ dist/
22
+ downloads/
23
+ eggs/
24
+ .eggs/
25
+ parts/
26
+ sdist/
27
+ var/
28
+ wheels/
29
+ share/python-wheels/
30
+ *.egg-info/
31
+ .installed.cfg
32
+ *.egg
33
+ MANIFEST
34
+
35
+ # PyInstaller
36
+ # Usually these files are written by a python script from a template
37
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
38
+ *.manifest
39
+ *.spec
40
+
41
+ # Installer logs
42
+ pip-log.txt
43
+ pip-delete-this-directory.txt
44
+
45
+ # Unit test / coverage reports
46
+ htmlcov/
47
+ .tox/
48
+ .nox/
49
+ .coverage
50
+ .coverage.*
51
+ .cache
52
+ nosetests.xml
53
+ coverage.xml
54
+ *.cover
55
+ *.py,cover
56
+ .hypothesis/
57
+ .pytest_cache/
58
+ cover/
59
+
60
+ # Translations
61
+ *.mo
62
+ *.pot
63
+
64
+ # Django stuff:
65
+ *.log
66
+ local_settings.py
67
+ db.sqlite3
68
+ db.sqlite3-journal
69
+
70
+ # Flask stuff:
71
+ instance/
72
+ .webassets-cache
73
+
74
+ # Scrapy stuff:
75
+ .scrapy
76
+
77
+ # Sphinx documentation
78
+ docs/_build/
79
+
80
+ # PyBuilder
81
+ .pybuilder/
82
+ target/
83
+
84
+ # Jupyter Notebook
85
+ .ipynb_checkpoints
86
+
87
+ # IPython
88
+ profile_default/
89
+ ipython_config.py
90
+
91
+ # pyenv
92
+ # For a library or package, you might want to ignore these files since the code is
93
+ # intended to run in multiple environments; otherwise, check them in:
94
+ # .python-version
95
+
96
+ # pipenv
97
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
98
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
99
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
100
+ # install all needed dependencies.
101
+ #Pipfile.lock
102
+
103
+ # UV
104
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ #uv.lock
108
+
109
+ # poetry
110
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
111
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
112
+ # commonly ignored for libraries.
113
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
114
+ #poetry.lock
115
+
116
+ # pdm
117
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
118
+ #pdm.lock
119
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
120
+ # in version control.
121
+ # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
122
+ .pdm.toml
123
+ .pdm-python
124
+ .pdm-build/
125
+
126
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
127
+ __pypackages__/
128
+
129
+ # Celery stuff
130
+ celerybeat-schedule
131
+ celerybeat.pid
132
+
133
+ # SageMath parsed files
134
+ *.sage.py
135
+
136
+ # Environments
137
+ .env
138
+ .venv
139
+ env/
140
+ venv/
141
+ ENV/
142
+ env.bak/
143
+ venv.bak/
144
+
145
+ # Spyder project settings
146
+ .spyderproject
147
+ .spyproject
148
+
149
+ # Rope project settings
150
+ .ropeproject
151
+
152
+ # mkdocs documentation
153
+ /site
154
+
155
+ # mypy
156
+ .mypy_cache/
157
+ .dmypy.json
158
+ dmypy.json
159
+
160
+ # Pyre type checker
161
+ .pyre/
162
+
163
+ # pytype static type analyzer
164
+ .pytype/
165
+
166
+ # Cython debug symbols
167
+ cython_debug/
168
+
169
+ # PyCharm
170
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
171
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
172
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
173
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
174
+ #.idea/
175
+
176
+ # Ruff stuff:
177
+ .ruff_cache/
178
+
179
+ # PyPI configuration file
180
+ .pypirc
181
+
182
+ #config.yaml
183
+ config.yaml
184
+
185
+ #database
186
+ *.db
187
+ #logs
188
+ logs/
189
+
190
+ #data
191
+ data/
@@ -0,0 +1,2 @@
1
+ # This repository is maintained by:
2
+ * @m-y-mo @p- @jarlob @kevinbackhouse @sylwia-budzynska
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at <opensource@github.com>. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1,31 @@
1
+ ## Contributing
2
+
3
+ [fork]: https://github.com/GitHubSecurityLab/seclab-taskflows/fork
4
+ [pr]: https://github.com/GitHubSecurityLab/seclab-taskflows/compare
5
+ [style]: https://github.com/styleguide/python
6
+
7
+ Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
8
+
9
+ Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE).
10
+
11
+ Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
12
+
13
+ ## Submitting a pull request
14
+
15
+ 1. [Fork][fork] and clone the repository
16
+ 1. Configure and install the dependencies
17
+ 1. Create a new branch: `git checkout -b my-branch-name`
18
+ 1. Make your change, add tests, and make sure the tests still pass
19
+ 1. Push to your fork and [submit a pull request][pr]
20
+ 1. Pat yourself on the back and wait for your pull request to be reviewed and merged.
21
+
22
+ Here are a few things you can do that will increase the likelihood of your pull request being accepted:
23
+
24
+ - Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
25
+ - Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
26
+
27
+ ## Resources
28
+
29
+ - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/)
30
+ - [Using Pull Requests](https://help.github.com/articles/about-pull-requests/)
31
+ - [GitHub Help](https://help.github.com)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) GitHub, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,61 @@
1
+ Metadata-Version: 2.4
2
+ Name: seclab-taskflows
3
+ Version: 0.0.1
4
+ Summary: Example taskflows to use with the the GitHub Security Lab Taskflow Agent Framework (https://github.com/GitHubSecurityLab/seclab-taskflow-agent)
5
+ Project-URL: Source, https://github.com/GitHubSecurityLab/seclab-taskflows
6
+ Project-URL: Issues, https://github.com/GitHubSecurityLab/seclab-taskflows/issues
7
+ Author-email: GitHub Security Lab <securitylab@github.com>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: Implementation :: CPython
18
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
19
+ Requires-Python: >=3.9
20
+ Requires-Dist: seclab-taskflow-agent
21
+ Description-Content-Type: text/markdown
22
+
23
+ ## SecLab taskflows
24
+
25
+ This repository contains example taskflows to use with the [SecLab Taskflow Agent](https://github.com/GitHubSecurityLab/seclab-taskflow-agent), as well as the custom MCP servers that are needed to run the taskflows. To run these taskflows, first create a directory named `data` in `src`. Various environment variables need to be set for the custom MCP servers to store data.
26
+
27
+ ```
28
+ MEMCACHE_STATE_DIR=/app/data
29
+ CODEQL_DBS_BASE_PATH=/app/data
30
+ DATA_DIR=/app/data
31
+ ```
32
+
33
+ The `MEMCACHE_STATE_DIR` is needed to persist some intermediate data in the memcache, `DATA_DIR` is needed for various mcp server to store intermediate results. These can be set in a `.env` file in the `src` directory.
34
+
35
+ The repo provides a script [`run_seclab_agent.sh`](https://github.com/GitHubSecurityLab/seclab-taskflows/blob/main/src/run_seclab_agent.sh) to run a docker container of the `seclab-taskflow-agent` as outlined [here](https://github.com/GitHubSecurityLab/seclab-taskflow-agent/tree/main?tab=readme-ov-file#deploying-from-docker). Note that this script needs to be run from the `src` directory.
36
+
37
+ Individual taskflows may need additional setup, please refer to the `README.md` in the relevant subdirectories for further requirements.
38
+
39
+ ## Background
40
+
41
+ [SecLab Taskflows](https://github.com/GitHubSecurityLab/seclab-taskflows) is a companion repository to the [SecLab Taskflow Agent](https://github.com/GitHubSecurityLab/seclab-taskflow-agent) repository.
42
+ SecLab Taskflow Agent is an experimental agentic framework maintained by [GitHub Security Lab](https://securitylab.github.com/). This repository provides example taskflows and supporting resources for use with the SecLab Taskflow Agent. We are using the agent and these taskflows to experiment with using AI Agents for security purposes, such as auditing code for vulnerabilities or triaging issues.
43
+
44
+ We'd love to hear your feedback. Please [create an issue](https://github.com/GitHubSecurityLab/seclab-taskflows/issues/new/choose) to send us a feature request or bug report. We also welcome pull requests (see our [contribution guidelines](./CONTRIBUTING.md) for more information if you wish to contribute).
45
+
46
+ ## Requirements
47
+
48
+ Python >= 3.9 or Docker
49
+
50
+ ## License
51
+
52
+ This project is licensed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license. Please refer to the [LICENSE](./LICENSE) file for the full terms.
53
+
54
+ ## Maintainers
55
+
56
+ [CODEOWNERS](./CODEOWNERS)
57
+
58
+ ## Support
59
+
60
+ [SUPPORT](./SUPPORT.md)
61
+
@@ -0,0 +1,39 @@
1
+ ## SecLab taskflows
2
+
3
+ This repository contains example taskflows to use with the [SecLab Taskflow Agent](https://github.com/GitHubSecurityLab/seclab-taskflow-agent), as well as the custom MCP servers that are needed to run the taskflows. To run these taskflows, first create a directory named `data` in `src`. Various environment variables need to be set for the custom MCP servers to store data.
4
+
5
+ ```
6
+ MEMCACHE_STATE_DIR=/app/data
7
+ CODEQL_DBS_BASE_PATH=/app/data
8
+ DATA_DIR=/app/data
9
+ ```
10
+
11
+ The `MEMCACHE_STATE_DIR` is needed to persist some intermediate data in the memcache, `DATA_DIR` is needed for various mcp server to store intermediate results. These can be set in a `.env` file in the `src` directory.
12
+
13
+ The repo provides a script [`run_seclab_agent.sh`](https://github.com/GitHubSecurityLab/seclab-taskflows/blob/main/src/run_seclab_agent.sh) to run a docker container of the `seclab-taskflow-agent` as outlined [here](https://github.com/GitHubSecurityLab/seclab-taskflow-agent/tree/main?tab=readme-ov-file#deploying-from-docker). Note that this script needs to be run from the `src` directory.
14
+
15
+ Individual taskflows may need additional setup, please refer to the `README.md` in the relevant subdirectories for further requirements.
16
+
17
+ ## Background
18
+
19
+ [SecLab Taskflows](https://github.com/GitHubSecurityLab/seclab-taskflows) is a companion repository to the [SecLab Taskflow Agent](https://github.com/GitHubSecurityLab/seclab-taskflow-agent) repository.
20
+ SecLab Taskflow Agent is an experimental agentic framework maintained by [GitHub Security Lab](https://securitylab.github.com/). This repository provides example taskflows and supporting resources for use with the SecLab Taskflow Agent. We are using the agent and these taskflows to experiment with using AI Agents for security purposes, such as auditing code for vulnerabilities or triaging issues.
21
+
22
+ We'd love to hear your feedback. Please [create an issue](https://github.com/GitHubSecurityLab/seclab-taskflows/issues/new/choose) to send us a feature request or bug report. We also welcome pull requests (see our [contribution guidelines](./CONTRIBUTING.md) for more information if you wish to contribute).
23
+
24
+ ## Requirements
25
+
26
+ Python >= 3.9 or Docker
27
+
28
+ ## License
29
+
30
+ This project is licensed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license. Please refer to the [LICENSE](./LICENSE) file for the full terms.
31
+
32
+ ## Maintainers
33
+
34
+ [CODEOWNERS](./CODEOWNERS)
35
+
36
+ ## Support
37
+
38
+ [SUPPORT](./SUPPORT.md)
39
+
@@ -0,0 +1,31 @@
1
+ Thanks for helping make GitHub safe for everyone.
2
+
3
+ # Security
4
+
5
+ GitHub takes the security of our software products and services seriously, including all of the open source code repositories managed through our GitHub organizations, such as [GitHub](https://github.com/GitHub).
6
+
7
+ Even though [open source repositories are outside of the scope of our bug bounty program](https://bounty.github.com/index.html#scope) and therefore not eligible for bounty rewards, we will ensure that your finding gets passed along to the appropriate maintainers for remediation.
8
+
9
+ ## Reporting Security Issues
10
+
11
+ If you believe you have found a security vulnerability in any GitHub-owned repository, please report it to us through coordinated disclosure.
12
+
13
+ **Please do not report security vulnerabilities through public GitHub issues, discussions, or pull requests.**
14
+
15
+ Instead, please send an email to opensource-security[@]github.com.
16
+
17
+ Please include as much of the information listed below as you can to help us better understand and resolve the issue:
18
+
19
+ * The type of issue (e.g., buffer overflow, SQL injection, or cross-site scripting)
20
+ * Full paths of source file(s) related to the manifestation of the issue
21
+ * The location of the affected source code (tag/branch/commit or direct URL)
22
+ * Any special configuration required to reproduce the issue
23
+ * Step-by-step instructions to reproduce the issue
24
+ * Proof-of-concept or exploit code (if possible)
25
+ * Impact of the issue, including how an attacker might exploit the issue
26
+
27
+ This information will help us triage your report more quickly.
28
+
29
+ ## Policy
30
+
31
+ See [GitHub's Safe Harbor Policy](https://docs.github.com/en/site-policy/security-policies/github-bug-bounty-program-legal-safe-harbor#1-safe-harbor-terms)
@@ -0,0 +1,13 @@
1
+ # Support
2
+
3
+ ## How to file issues and get help
4
+
5
+ This project uses GitHub issues to track bugs and feature requests. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or feature request as a new issue.
6
+
7
+ For help or questions about using this project, please file an issue.
8
+
9
+ - This project is under active development and maintained by GitHub staff **AND THE COMMUNITY**. We will do our best to respond to support, feature requests, and community questions in a timely manner.
10
+
11
+ ## GitHub Support Policy
12
+
13
+ Support for this project is limited to the resources listed above.