Інтеграція Jira API з сайтом

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Інтеграція Jira API з сайтом
Середня
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція Jira API з веб-сайтом

Jira API використовується для створення завдань з форм на сайті, відображення статусу тикетів клієнтам, синхронізації статусів запитів підтримки та побудови порталів самообслуговування.

Аутентифікація (Jira Cloud)

from jira import JIRA

jira = JIRA(
    server='https://your-company.atlassian.net',
    basic_auth=('[email protected]', JIRA_API_TOKEN)  # API токен, не пароль
)

Створення завдання з форми підтримки

class JiraService
{
    public function createIssue(SupportRequest $data): string
    {
        $resp = Http::withBasicAuth(
            config('services.jira.email'),
            config('services.jira.token')
        )->post(config('services.jira.url') . '/rest/api/3/issue', [
            'fields' => [
                'project'     => ['key' => 'SUPPORT'],
                'summary'     => "[Web] {$data->subject}",
                'description' => [
                    'type'    => 'doc',
                    'version' => 1,
                    'content' => [[
                        'type'    => 'paragraph',
                        'content' => [['type' => 'text', 'text' => $data->message]],
                    ]],
                ],
                'issuetype'   => ['name' => 'Support'],
                'priority'    => ['name' => $data->priority ?? 'Medium'],
                'labels'      => ['website', 'customer-request'],
                'customfield_10014' => $data->customer_email,  // Кастомне поле email
            ],
        ]);

        $issueKey = $resp->json('key');  // SUPPORT-123

        // Зберігаємо привʼязку заявки до тикету
        SupportTicket::create([
            'user_id'   => $data->userId,
            'jira_key'  => $issueKey,
            'subject'   => $data->subject,
            'status'    => 'open',
        ]);

        return $issueKey;
    }
}

Відображення статусу тикета клієнту

public function getTicketStatus(string $issueKey): array
{
    $resp = Http::withBasicAuth($email, $token)
        ->get(config('services.jira.url') . "/rest/api/3/issue/{$issueKey}");

    $issue = $resp->json();

    return [
        'key':       $issue['key'],
        'summary':   $issue['fields']['summary'],
        'status':    $issue['fields']['status']['name'],
        'updated':   $issue['fields']['updated'],
        'comments':  count($issue['fields']['comment']['comments'] ?? []),
    ];
}

Webhooks для оновлення статусу

Route::post('/webhooks/jira', function (Request $request) {
    $event    = $request->input('webhookEvent');
    $issue    = $request->input('issue');
    $issueKey = $issue['key'];

    if ($event === 'jira:issue_updated') {
        $newStatus = $issue['fields']['status']['name'];

        SupportTicket::where('jira_key', $issueKey)->update([
            'status'     => $this->mapJiraStatus($newStatus),
            'updated_at' => now(),
        ]);

        // Сповіщаємо клієнта про змінення статусу
        $ticket = SupportTicket::where('jira_key', $issueKey)->first();
        if ($ticket) {
            Mail::to($ticket->user->email)->send(new TicketStatusUpdatedMail($ticket));
        }
    }

    return response('ok');
});

Графік

Створення тикетів з форм + відображення статусу: 3–4 робочих дні. З webhooks та сповіщеннями: 5–6 днів.