Интеграция Jira API с сайтом

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Интеграция Jira API с сайтом
Средняя
~2-3 рабочих дня
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Интеграция 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 token, не пароль
)

Создание задачи из формы поддержки

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 дней.