mirror of
https://github.com/FlipsideCrypto/livequery-models.git
synced 2026-02-06 10:56:46 +00:00
* Update GitHub Actions workflow to reduce thread count and add extensive API integration documentation - Changed thread count from 24 to 5 in GitHub Actions workflows for improved performance. - Added comprehensive README files for various API integrations including Alchemy, NBA All Day, API Layer, Binance, and more. - Introduced new UDFs and UDTFs for Groq and Slack API integrations, enhancing functionality and usability. - Implemented tests for new UDFs and UDTFs to ensure reliability and correctness. - Updated existing UDF definitions and added new tests for enhanced coverage and robustness. * Refactor Slack UDFs to use webhook secret names and improve error handling - Updated UDF definitions to replace WEBHOOK_URL and BOT_TOKEN with WEBHOOK_SECRET_NAME for enhanced security. - Improved error messages for required parameters in the SQL logic. - Standardized comments for clarity and consistency across UDFs. - Ensured proper handling of user context for accessing secrets in the vault. * update test * fix test * update slack * remove test * fix tests * fix * fix test args * fix * add .gitignore * Add Slack Notification Macros and Enhance UDFs - Introduced a new dbt macro for sending Slack notifications from GitHub Actions with AI-powered failure analysis. - Added comprehensive README documentation for the new macro, detailing setup, configuration options, and usage examples. - Implemented a SQL macro to handle Slack message formatting and sending, including support for AI analysis and threading. - Updated existing UDFs to utilize webhook secret names for improved security and added detailed comments for clarity. - Enhanced error handling and logging within the macros to ensure robust operation and easier debugging. * update slack alerts * update * remove groq * Enhance Slack Alert Macros with AI Analysis Features - Updated README documentation to clarify AI provider options and added new parameters for model selection and custom prompts. - Modified SQL macros to support the new `model_name` and `ai_prompt` parameters for improved AI analysis capabilities. - Adjusted UDF signatures and comments to reflect the changes in AI provider functionality and requirements. - Improved test cases to validate the new features and ensure robust performance of the Slack alert macros. * update slack_alert * change secret path to data_platform * add backward compatibility for udf_api_v2 * revert to Object return type * update type
210 lines
7.5 KiB
SQL
210 lines
7.5 KiB
SQL
{% macro config_github_actions_udfs(schema_name = "github_actions", utils_schema_name = "github_utils") -%}
|
|
{#
|
|
This macro is used to generate the Github API Calls
|
|
#}
|
|
- name: {{ schema_name -}}.workflows
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [query, "OBJECT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$[List repository workflows](https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#list-repository-workflows).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/workflows'),
|
|
query
|
|
):data::OBJECT
|
|
- name: {{ schema_name -}}.workflows
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$[List repository workflows](https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#list-repository-workflows).$$
|
|
sql: |
|
|
SELECT
|
|
{{ schema_name -}}.workflows(owner, repo, {})
|
|
|
|
- name: {{ schema_name -}}.runs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [query, "OBJECT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Lists all workflow runs for a repository. You can use query parameters to narrow the list of results. [Docs](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-repository).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/runs'),
|
|
query
|
|
):data::OBJECT
|
|
- name: {{ schema_name -}}.runs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Lists all workflow runs for a repository. You can use query parameters to narrow the list of results. [Docs](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-repository).$$
|
|
sql: |
|
|
SELECT
|
|
{{ schema_name -}}.runs(owner, repo, {})
|
|
|
|
- name: {{ schema_name -}}.workflow_runs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
- [query, "OBJECT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$List all workflow runs for a workflow. You can replace workflow_id with the workflow file name. You can use query parameters to narrow the list of results. [Docs](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-workflow).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/workflows', workflow_id, 'runs'),
|
|
query
|
|
):data::OBJECT
|
|
- name: {{ schema_name -}}.workflow_runs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$List all workflow runs for a workflow. You can replace workflow_id with the workflow file name. You can use query parameters to narrow the list of results. [Docs](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#list-workflow-runs-for-a-workflow).$$
|
|
sql: |
|
|
SELECT
|
|
{{ schema_name -}}.workflow_runs(owner, repo, workflow_id, {})
|
|
|
|
- name: {{ schema_name -}}.workflow_dispatches
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
- [body, "OBJECT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. [Docs](https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.post_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/workflows', workflow_id, 'dispatches'),
|
|
COALESCE(body, {'ref': 'main'})::OBJECT
|
|
)::OBJECT
|
|
|
|
- name: {{ schema_name -}}.workflow_dispatches
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$You can use this endpoint to manually trigger a GitHub Actions workflow run. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. [Docs](https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event).$$
|
|
sql: |
|
|
SELECT
|
|
{{ schema_name -}}.workflow_dispatches(owner, repo, workflow_id, NULL)
|
|
|
|
- name: {{ schema_name -}}.workflow_enable
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Enables a workflow. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. [Docs](https://docs.github.com/en/rest/reference/actions#enable-a-workflow).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.put_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/workflows', workflow_id, 'enable'),
|
|
{}
|
|
)::OBJECT
|
|
- name: {{ schema_name -}}.workflow_disable
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [workflow_id, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Disables a workflow. You can replace workflow_id with the workflow file name. For example, you could use main.yaml. [Docs](https://docs.github.com/en/rest/reference/actions#disable-a-workflow).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.put_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/workflows', workflow_id, 'disable'),
|
|
{}
|
|
)::OBJECT
|
|
|
|
- name: {{ schema_name -}}.workflow_run_logs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [run_id, "TEXT"]
|
|
return_type:
|
|
- "TEXT"
|
|
options: |
|
|
COMMENT = $$Download workflow run logs as a ZIP archive. Gets a redirect URL to the actual log archive. [Docs](https://docs.github.com/en/rest/actions/workflow-runs?apiVersion=2022-11-28#download-workflow-run-logs).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/runs', run_id, 'logs'),
|
|
{}
|
|
):data::TEXT
|
|
|
|
- name: {{ schema_name -}}.job_logs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [job_id, "TEXT"]
|
|
return_type:
|
|
- "TEXT"
|
|
options: |
|
|
COMMENT = $$Download job logs. Gets the plain text logs for a specific job. [Docs](https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#download-job-logs-for-a-workflow-run).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/jobs', job_id, 'logs'),
|
|
{}
|
|
):data::TEXT
|
|
|
|
- name: {{ schema_name -}}.workflow_run_jobs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [run_id, "TEXT"]
|
|
- [query, "OBJECT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Lists jobs for a workflow run. [Docs](https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#list-jobs-for-a-workflow-run).$$
|
|
sql: |
|
|
SELECT
|
|
{{ utils_schema_name }}.get_api(
|
|
CONCAT_WS('/', 'repos', owner, repo, 'actions/runs', run_id, 'jobs'),
|
|
query
|
|
):data::OBJECT
|
|
- name: {{ schema_name -}}.workflow_run_jobs
|
|
signature:
|
|
- [owner, "TEXT"]
|
|
- [repo, "TEXT"]
|
|
- [run_id, "TEXT"]
|
|
return_type:
|
|
- "OBJECT"
|
|
options: |
|
|
COMMENT = $$Lists jobs for a workflow run. [Docs](https://docs.github.com/en/rest/actions/workflow-jobs?apiVersion=2022-11-28#list-jobs-for-a-workflow-run).$$
|
|
sql: |
|
|
SELECT
|
|
{{ schema_name -}}.workflow_run_jobs(owner, repo, run_id, {})
|
|
|
|
{% endmacro %} |