feat: Gophish Integration#5
feat: Gophish Integration#5cubic-dev-local[bot] wants to merge 5 commits intoeval-pr-1444-target-1758210056979from
Conversation
…for campaign data
…aign from Gophish API
There was a problem hiding this comment.
4 issues found across 3 files
Prompt for AI agents (all 4 issues)
Understand the root cause of the following 4 issues and fix them.
<file name="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml">
<violation number="1" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml:6">
doc_url anchor references listing campaigns instead of campaign results; link likely misleading.</violation>
</file>
<file name="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml">
<violation number="1" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml:21">
Remove trailing slash from the endpoint to align with other Gophish commands and avoid potential redirects.
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact style/consistency issue; trailing slash unlikely to cause functional problems or meaningful redirects. Not worth reporting per guidelines.</violation>
<violation number="2" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml:26">
Fix typo in comment: replace "exeed" with "exceed" (twice) for clarity.</violation>
</file>
<file name="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign.yml">
<violation number="1" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign.yml:6">
doc_url points to the list endpoint section ("get-campaigns") instead of the single campaign action. Link to the campaigns page root or the correct anchor for single campaign.</violation>
</file>
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
| title: Get campaign results | ||
| description: Get a campaign's results from Gophish. | ||
| display_group: Gophish | ||
| doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns |
There was a problem hiding this comment.
doc_url anchor references listing campaigns instead of campaign results; link likely misleading.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml at line 6:
<comment>doc_url anchor references listing campaigns instead of campaign results; link likely misleading.</comment>
<file context>
@@ -0,0 +1,29 @@
+ title: Get campaign results
+ description: Get a campaign's results from Gophish.
+ display_group: Gophish
+ doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns
+ namespace: tools.gophish
+ name: get_campaign_results
</file context>
[internal] Confidence score: 8/10
[internal] Posted by: General AI Review Agent
| headers: | ||
| Authorization: Bearer ${{ SECRETS.gophish.GOPHISH_API_KEY }} | ||
|
|
||
| # This is needed because the API will return results and timelines for all campaigns. This can exeed the max size of workflow data steps very easily. For example a campaign with 1,000 recipients will return 11,000 lines of just results, in addition to the at least 1000 timeline items which are each another 8 lines of data. Very quickly this can exeed the max size of workflow data steps. |
There was a problem hiding this comment.
Fix typo in comment: replace "exeed" with "exceed" (twice) for clarity.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml at line 26:
<comment>Fix typo in comment: replace "exeed" with "exceed" (twice) for clarity.</comment>
<file context>
@@ -0,0 +1,38 @@
+ headers:
+ Authorization: Bearer ${{ SECRETS.gophish.GOPHISH_API_KEY }}
+
+ # This is needed because the API will return results and timelines for all campaigns. This can exeed the max size of workflow data steps very easily. For example a campaign with 1,000 recipients will return 11,000 lines of just results, in addition to the at least 1000 timeline items which are each another 8 lines of data. Very quickly this can exeed the max size of workflow data steps.
+ - ref: parse_campaigns_list
+ action: core.script.run_python
</file context>
[internal] Confidence score: 10/10
[internal] Posted by: General AI Review Agent
| - ref: list_campaigns | ||
| action: core.http_request | ||
| args: | ||
| url: ${{ inputs.base_url }}/api/campaigns/ |
There was a problem hiding this comment.
Remove trailing slash from the endpoint to align with other Gophish commands and avoid potential redirects.
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• GPT-5: Low-impact style/consistency issue; trailing slash unlikely to cause functional problems or meaningful redirects. Not worth reporting per guidelines.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml at line 21:
<comment>Remove trailing slash from the endpoint to align with other Gophish commands and avoid potential redirects.
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Low-impact style/consistency issue; trailing slash unlikely to cause functional problems or meaningful redirects. Not worth reporting per guidelines.</comment>
<file context>
@@ -0,0 +1,38 @@
+ - ref: list_campaigns
+ action: core.http_request
+ args:
+ url: ${{ inputs.base_url }}/api/campaigns/
+ method: GET
+ headers:
</file context>
[internal] Confidence score: 8/10
[internal] Posted by: General AI Review Agent
| title: Get campaign | ||
| description: Get a campaign from Gophish. | ||
| display_group: Gophish | ||
| doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns |
There was a problem hiding this comment.
doc_url points to the list endpoint section ("get-campaigns") instead of the single campaign action. Link to the campaigns page root or the correct anchor for single campaign.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign.yml at line 6:
<comment>doc_url points to the list endpoint section ("get-campaigns") instead of the single campaign action. Link to the campaigns page root or the correct anchor for single campaign.</comment>
<file context>
@@ -0,0 +1,29 @@
+ title: Get campaign
+ description: Get a campaign from Gophish.
+ display_group: Gophish
+ doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns
+ namespace: tools.gophish
+ name: get_campaign
</file context>
[internal] Confidence score: 8/10
[internal] Posted by: General AI Review Agent
There was a problem hiding this comment.
3 issues found across 3 files
Prompt for AI agents (all 3 issues)
Understand the root cause of the following 3 issues and fix them.
<file name="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml">
<violation number="1" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml:6">
doc_url points to the "get-campaigns" (list campaigns) section, but this action retrieves campaign results; link is likely incorrect.</violation>
</file>
<file name="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml">
<violation number="1" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml:26">
Typo in comment: "exeed" should be "exceed" (appears twice on this line).</violation>
<violation number="2" location="packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml:35">
Trailing whitespace at end of line. Remove to adhere to style and avoid noisy diffs.
*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Minor formatting-only issue; negligible impact. Filter out.</violation>
</file>
React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.
| title: Get campaign results | ||
| description: Get a campaign's results from Gophish. | ||
| display_group: Gophish | ||
| doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns |
There was a problem hiding this comment.
doc_url points to the "get-campaigns" (list campaigns) section, but this action retrieves campaign results; link is likely incorrect.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/get_campaign_results.yml at line 6:
<comment>doc_url points to the "get-campaigns" (list campaigns) section, but this action retrieves campaign results; link is likely incorrect.</comment>
<file context>
@@ -0,0 +1,29 @@
+ title: Get campaign results
+ description: Get a campaign's results from Gophish.
+ display_group: Gophish
+ doc_url: https://docs.getgophish.com/api-documentation/campaigns#get-campaigns
+ namespace: tools.gophish
+ name: get_campaign_results
</file context>
[internal] Confidence score: 8/10
[internal] Posted by: General AI Review Agent
| headers: | ||
| Authorization: Bearer ${{ SECRETS.gophish.GOPHISH_API_KEY }} | ||
|
|
||
| # This is needed because the API will return results and timelines for all campaigns. This can exeed the max size of workflow data steps very easily. For example a campaign with 1,000 recipients will return 11,000 lines of just results, in addition to the at least 1000 timeline items which are each another 8 lines of data. Very quickly this can exeed the max size of workflow data steps. |
There was a problem hiding this comment.
Typo in comment: "exeed" should be "exceed" (appears twice on this line).
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml at line 26:
<comment>Typo in comment: "exeed" should be "exceed" (appears twice on this line).</comment>
<file context>
@@ -0,0 +1,38 @@
+ headers:
+ Authorization: Bearer ${{ SECRETS.gophish.GOPHISH_API_KEY }}
+
+ # This is needed because the API will return results and timelines for all campaigns. This can exeed the max size of workflow data steps very easily. For example a campaign with 1,000 recipients will return 11,000 lines of just results, in addition to the at least 1000 timeline items which are each another 8 lines of data. Very quickly this can exeed the max size of workflow data steps.
+ - ref: parse_campaigns_list
+ action: core.script.run_python
</file context>
[internal] Confidence score: 10/10
[internal] Posted by: General AI Review Agent
| script: | | ||
| def main(data): | ||
| return [ | ||
| {"id": campaign["id"], "name": campaign["name"]} |
There was a problem hiding this comment.
Trailing whitespace at end of line. Remove to adhere to style and avoid noisy diffs.
DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• GPT-5: Minor formatting-only issue; negligible impact. Filter out.
Prompt for AI agents
Address the following comment on packages/tracecat-registry/tracecat_registry/templates/tools/gophish/list_campaigns.yml at line 35:
<comment>Trailing whitespace at end of line. Remove to adhere to style and avoid noisy diffs.
*DEV MODE: This violation would have been filtered out by screening filters. Failing filters: functionalImpact.*
DEV MODE: This violation would have been filtered out by GPT-5.
Reasoning:
• **GPT-5**: Minor formatting-only issue; negligible impact. Filter out.</comment>
<file context>
@@ -0,0 +1,38 @@
+ script: |
+ def main(data):
+ return [
+ {"id": campaign["id"], "name": campaign["name"]}
+ for campaign in data
+ ]
</file context>
[internal] Confidence score: 9/10
[internal] Posted by: General AI Review Agent
Created an integration for Gophish which is an Open-Source Phishing Framework.
Created all commands and documented that are in the API Docs: https://docs.getgophish.com/api-documentation/
List of Commands:
gophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishgophishScreenshots / Recordings
Steps to QA
Run the following Workflow:
testing-gophish.yaml
Summary by cubic
Adds a full Gophish integration to manage campaigns, groups, landing pages, sending profiles, and templates. Also updates docs and adds a Gophish icon.
New Features
Migration