Apache Airflow Providers Jira

raw JSON →
3.1.0 verified Mon Apr 27 auth: no python

Provider package for Apache Airflow that integrates with Jira. It provides hooks, operators, and sensors to interact with Jira issues, projects, and workflows. Current version: 3.1.0. Release cadence: follows Airflow provider releases.

pip install apache-airflow-providers-jira
error ModuleNotFoundError: No module named 'airflow.contrib'
cause Importing from deprecated contrib module after Airflow 2.0.
fix
Use from airflow.providers.jira.hooks.jira import JiraHook instead.
error airflow.exceptions.AirflowException: 'JiraOperator' object has no attribute 'execute'
cause Misconfiguration or outdated version of provider not compatible with Airflow version.
fix
Ensure apache-airflow-providers-jira version matches your Airflow version. Upgrade both to latest compatible versions.
error jira.exceptions.JIRAError: JiraError HTTP 400 Bad Request
cause Invalid project key or issue type in `JiraOperator` parameters.
fix
Verify that the project and issuetype exist in your Jira instance. For cloud, use project key (e.g., 'TEST') not name.
breaking Starting with Airflow 2.0, all Jira hooks and operators must be imported from `airflow.providers.jira` instead of `airflow.contrib`.
fix Update imports: `from airflow.providers.jira.hooks.jira import JiraHook` and `from airflow.providers.jira.operators.jira import JiraOperator`.
gotcha The `JiraOperator` uses the `operation` parameter to specify the Jira API method. Not all methods are available; check the operator source code for a list.
fix Refer to the operator source or docs for valid operations like 'create_issue', 'search_issues', 'transition_issue'.
deprecated The `jira_conn_id` must point to a connection with host, login, password or token. The provider uses the JIRA Python library which expects a token or basic auth.
fix Configure Airflow connection with 'jira' type, set host (e.g., https://your-domain.atlassian.net), login (email), and password (API token for cloud).

Minimal DAG that creates a Jira issue using the JiraOperator.

from datetime import datetime
from airflow import DAG
from airflow.providers.jira.operators.jira import JiraOperator
from airflow.providers.jira.hooks.jira import JiraHook

default_args = {
    'owner': 'airflow',
    'start_date': datetime(2023, 1, 1),
}
with DAG(dag_id='jira_test', default_args=default_args, schedule_interval=None, catchup=False) as dag:
    create_issue = JiraOperator(
        task_id='create_issue',
        jira_conn_id='jira_default',
        operation='create_issue',
        project='TEST',
        summary='Test issue from Airflow',
        issuetype='Task',
        description='Created via Airflow JiraOperator',
    )
    create_issue