Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions airflow-core/src/airflow/provider.yaml.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,29 +84,35 @@
"type": "string"
},
"tags": {
"description": "List of tags describing the integration. While we're using RST, only one tag is supported per integration.",
"description": "List of tags describing the integration.",
"type": "array",
"items": {
"type": "string",
"enum": [
"ai",
"ai-inference",
"alibaba",
"apache",
"aws",
"azure",
"dbt",
"embeddings",
"gcp",
"generative-ai",
"gmp",
"google",
"kafka",
"llm",
"machine-learning",
"openai",
"protocol",
"service",
"software",
"text-generation",
"yandex"
]
},
"minItems": 1,
"maxItems": 1
"minItems": 1
}
},
"additionalProperties": false,
Expand Down
35 changes: 20 additions & 15 deletions dev/breeze/src/airflow_breeze/commands/pr_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -422,9 +422,7 @@ def _process_check_contexts(contexts: list[dict], total_count: int) -> tuple[str
return summary, failed, has_test_checks


def _fetch_check_status_counts(
token: str, github_repository: str, head_sha: str
) -> dict[str, int]:
def _fetch_check_status_counts(token: str, github_repository: str, head_sha: str) -> dict[str, int]:
"""Fetch counts of checks by status for a commit. Returns a dict like {"SUCCESS": 5, "FAILURE": 2, ...}.

Also includes an "IN_PROGRESS" key for checks still running.
Expand Down Expand Up @@ -491,10 +489,20 @@ def _format_check_status_counts(counts: dict[str, int]) -> str:
parts = []
# Show in a consistent order: failures first, then in-progress, then success, then others
order = [
"FAILURE", "TIMED_OUT", "ERROR", "STARTUP_FAILURE", "ACTION_REQUIRED",
"IN_PROGRESS", "QUEUED", "PENDING",
"SUCCESS", "EXPECTED",
"CANCELLED", "SKIPPED", "NEUTRAL", "STALE",
"FAILURE",
"TIMED_OUT",
"ERROR",
"STARTUP_FAILURE",
"ACTION_REQUIRED",
"IN_PROGRESS",
"QUEUED",
"PENDING",
"SUCCESS",
"EXPECTED",
"CANCELLED",
"SKIPPED",
"NEUTRAL",
"STALE",
]
shown = set()
for status in order:
Expand Down Expand Up @@ -839,10 +847,7 @@ def _classify_already_triaged_prs(
for comment in comments:
comment_author = (comment.get("author") or {}).get("login", "")
comment_date = comment.get("createdAt", "")
if (
comment_author == pr.author_login
and comment_date > triage_comment_date
):
if comment_author == pr.author_login and comment_date > triage_comment_date:
author_responded = True
break

Expand Down Expand Up @@ -2213,10 +2218,10 @@ def _display_pr_overview_table(
)
get_console().print(pr_table)
get_console().print(
f" Triage: [green]Ready for review[/] = ready for maintainer review "
f"[yellow]Waiting for Author[/] = triaged, no response "
f"[bright_cyan]Responded[/] = author replied "
f"[blue]-[/] = not yet triaged"
" Triage: [green]Ready for review[/] = ready for maintainer review "
"[yellow]Waiting for Author[/] = triaged, no response "
"[bright_cyan]Responded[/] = author replied "
"[blue]-[/] = not yet triaged"
)
if collab_count:
get_console().print(
Expand Down
4 changes: 3 additions & 1 deletion providers/openai/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@
apache-airflow-providers-openai package
------------------------------------------------------

`OpenAI <https://platform.openai.com/docs/introduction>`__
`OpenAI <https://platform.openai.com/docs/introduction>`__ provider for Apache Airflow.
Enables interaction with OpenAI APIs for text generation, embeddings,
and other AI-powered workflows directly from Airflow DAGs.


Release: 1.7.2
Expand Down
13 changes: 11 additions & 2 deletions providers/openai/src/airflow/providers/openai/get_provider_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,23 @@ def get_provider_info():
return {
"package-name": "apache-airflow-providers-openai",
"name": "OpenAI",
"description": "`OpenAI <https://platform.openai.com/docs/introduction>`__\n",
"description": "`OpenAI <https://platform.openai.com/docs/introduction>`__ provider for Apache Airflow.\nEnables interaction with OpenAI APIs for text generation, embeddings,\nand other AI-powered workflows directly from Airflow DAGs.\n",
"integrations": [
{
"integration-name": "OpenAI",
"external-doc-url": "https://platform.openai.com/docs/introduction",
"logo": "/docs/integration-logos/OpenAI.png",
"how-to-guide": ["/docs/apache-airflow-providers-openai/operators/openai.rst"],
"tags": ["software"],
"tags": [
"ai",
"openai",
"machine-learning",
"generative-ai",
"llm",
"text-generation",
"embeddings",
"ai-inference",
],
}
],
"hooks": [
Expand Down
Loading