<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abdallah Deeb</title>
    <description>The latest articles on DEV Community by Abdallah Deeb (@abdallahdeeb).</description>
    <link>https://dev.to/abdallahdeeb</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F268058%2F05a1e5e3-d199-41a8-8877-657036cec382.jpeg</url>
      <title>DEV Community: Abdallah Deeb</title>
      <link>https://dev.to/abdallahdeeb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdallahdeeb"/>
    <language>en</language>
    <item>
      <title>🚀 Automating Daily Task Management with Claude + YouTrack MCP</title>
      <dc:creator>Abdallah Deeb</dc:creator>
      <pubDate>Fri, 08 Aug 2025 13:58:22 +0000</pubDate>
      <link>https://dev.to/abdallahdeeb/automating-daily-task-management-with-claude-youtrack-mcp-42po</link>
      <guid>https://dev.to/abdallahdeeb/automating-daily-task-management-with-claude-youtrack-mcp-42po</guid>
      <description>&lt;p&gt;If you spend half your day bouncing between Git, your project tracker, and chat tools just to keep tickets updated, you’re not alone.&lt;br&gt;&lt;br&gt;
Manual updates eat time, cause inconsistencies, and are easy to forget — especially when you’re in the zone coding.&lt;/p&gt;

&lt;p&gt;In this guide, I’ll show you how I integrated &lt;a href="https://claude.ai/" rel="noopener noreferrer"&gt;Claude&lt;/a&gt; with &lt;a href="https://www.jetbrains.com/youtrack/" rel="noopener noreferrer"&gt;YouTrack&lt;/a&gt; using the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; to build a &lt;strong&gt;fully automated daily task management system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git commits &lt;strong&gt;automatically update tickets&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Time is logged without manual input&lt;/li&gt;
&lt;li&gt;I finish the day with a &lt;strong&gt;ready-to-send daily report&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;All without leaving my terminal&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🛠 What You’ll Build
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;todo&lt;/code&gt; Command&lt;/strong&gt; – Quick CLI view of your assigned YouTrack tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Ticket Updates&lt;/strong&gt; – Git hooks post progress, log time, and avoid duplicates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily Report Generator&lt;/strong&gt; – Structured, markdown-based work logs&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  📋 Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Claude CLI installed &amp;amp; configured&lt;/li&gt;
&lt;li&gt;YouTrack MCP server set up &amp;amp; authenticated&lt;/li&gt;
&lt;li&gt;Bash shell environment&lt;/li&gt;
&lt;li&gt;Git repositories with proper branch naming (&lt;code&gt;PROJ-XXXX&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;YouTrack API token with:

&lt;ul&gt;
&lt;li&gt;Read Issues&lt;/li&gt;
&lt;li&gt;Update Issues&lt;/li&gt;
&lt;li&gt;Create Issues&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  1️⃣ Setup the &lt;code&gt;todo&lt;/code&gt; Command
&lt;/h2&gt;

&lt;p&gt;A tiny bash alias to check your assigned YouTrack tasks from anywhere:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;todo&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"claude -p 'show my todo items from youtrack'"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The MCP handles authentication and API calls, so this instantly lists your current tasks.&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ Automate Ticket Updates from Git
&lt;/h2&gt;

&lt;p&gt;The magic happens with &lt;strong&gt;git hooks&lt;/strong&gt; + a YouTrack update script.&lt;/p&gt;

&lt;h3&gt;
  
  
  A. Update Script – &lt;code&gt;youtrack-git-update&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;~/.local/bin/youtrack-git-update&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extracts ticket IDs from branch names (&lt;code&gt;PROJ-1234&lt;/code&gt;, &lt;code&gt;feature/PROJ-5678&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Posts progress comments with commit details&lt;/li&gt;
&lt;li&gt;Logs estimated time based on changed lines&lt;/li&gt;
&lt;li&gt;Avoids duplicate updates
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
extract_ticket_id&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;branch_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nv"&gt;$branch_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;~ &lt;span class="o"&gt;(&lt;/span&gt;PROJ-[0-9]+&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;BASH_REMATCH&lt;/span&gt;&lt;span class="p"&gt;[1]&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

generate_commit_summary&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;commit_hash&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;commit_msg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git log &lt;span class="nt"&gt;-1&lt;/span&gt; &lt;span class="nt"&gt;--pretty&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;format:&lt;span class="s2"&gt;"%s"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$commit_hash&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;local &lt;/span&gt;&lt;span class="nv"&gt;files_changed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git diff-tree &lt;span class="nt"&gt;--no-commit-id&lt;/span&gt; &lt;span class="nt"&gt;--name-only&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$commit_hash&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; | &lt;span class="nb"&gt;wc&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"**Branch Progress Update**
Commit: &lt;/span&gt;&lt;span class="se"&gt;\`&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;commit_hash&lt;/span&gt;:0:7&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\`&lt;/span&gt;&lt;span class="s2"&gt;
Message: &lt;/span&gt;&lt;span class="nv"&gt;$commit_msg&lt;/span&gt;&lt;span class="s2"&gt;
Changes: &lt;/span&gt;&lt;span class="nv"&gt;$files_changed&lt;/span&gt;&lt;span class="s2"&gt; files modified
*Auto-generated from git commit*"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Time Estimation Rules:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&amp;gt;200 lines → 2h
&lt;/li&gt;
&lt;li&gt;&amp;gt;100 lines → 1h
&lt;/li&gt;
&lt;li&gt;&amp;gt;50 lines → 30m
&lt;/li&gt;
&lt;li&gt;&amp;lt;50 lines → 15m
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  B. Hook Installer – &lt;code&gt;install-youtrack-hooks&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;~/.local/bin/install-youtrack-hooks&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c"&gt;# Install hooks in the current repo&lt;/span&gt;
install-youtrack-hooks

&lt;span class="c"&gt;# Install globally for new repos&lt;/span&gt;
install-youtrack-hooks &lt;span class="nt"&gt;--global&lt;/span&gt;

&lt;span class="c"&gt;# Install in a specific repo&lt;/span&gt;
install-youtrack-hooks /path/to/repo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;post-commit hook&lt;/strong&gt; – Runs on local commits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;post-receive hook&lt;/strong&gt; – Runs on pushes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.youtrack-config&lt;/strong&gt; – Per-repo settings&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  C. Ticket Creation Utility – &lt;code&gt;create_ticket&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;~/.local/bin/create_ticket&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/python3
# Usage: create_ticket -s "Summary" -d "Description"
&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;create_youtrack_ticket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;YOUTRACK_URL&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;/api/issues&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;id&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;PROJECT_ID&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;summary&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="c1"&gt;# POST to YouTrack API
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3️⃣ Generate Daily Reports
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;daily-report&lt;/code&gt; script keeps a structured log of your work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; &lt;code&gt;~/.local/bin/daily-report&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;DATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%Y-%m-%d&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;CLAUDE_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.claude"&lt;/span&gt;
&lt;span class="nv"&gt;REPORT_FILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CLAUDE_DIR&lt;/span&gt;&lt;span class="s2"&gt;/daily-reports/report-&lt;/span&gt;&lt;span class="nv"&gt;$DATE&lt;/span&gt;&lt;span class="s2"&gt;.md"&lt;/span&gt;

&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$CLAUDE_DIR&lt;/span&gt;&lt;span class="s2"&gt;/daily-reports"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[[&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$REPORT_FILE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$REPORT_FILE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;else
    &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$REPORT_FILE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;EOF&lt;/span&gt;&lt;span class="sh"&gt;
# Daily Work Report - &lt;/span&gt;&lt;span class="nv"&gt;$DATE&lt;/span&gt;&lt;span class="sh"&gt;

## Tickets Worked On
- **PROJ-XXXX** [Ticket Title] (status/notes)

## Other Activities
- Activity description

## Notes
- Additional context
&lt;/span&gt;&lt;span class="no"&gt;EOF
&lt;/span&gt;    &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;EDITOR&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;nano&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$REPORT_FILE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📆 Daily Workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Morning
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;todo          &lt;span class="c"&gt;# See today’s assigned tasks&lt;/span&gt;
daily-report  &lt;span class="c"&gt;# Start the daily log&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  During Development
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; PROJ-1234
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Fix authentication bug"&lt;/span&gt;
&lt;span class="c"&gt;# Hook auto-updates YouTrack &amp;amp; logs time&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Anytime
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;create_ticket &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"Fix OAuth2 bug"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"Users unable to log in"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🖥 Example Daily Report
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Daily Work Report - 2025-08-07&lt;/span&gt;

&lt;span class="gu"&gt;## Tickets Worked On&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**PROJ-9814**&lt;/span&gt; Upgrade Aurora MySQL clusters (completed)
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**PROJ-9881**&lt;/span&gt; Account API VPC config troubleshooting

&lt;span class="gu"&gt;## Other Activities&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Infrastructure debugging for Account API
&lt;span class="p"&gt;-&lt;/span&gt; DRP documentation suite creation

&lt;span class="gu"&gt;## Notes&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Aurora upgrade smooth
&lt;span class="p"&gt;-&lt;/span&gt; VPC config still needs resolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 Troubleshooting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Git Hooks Not Running
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt; .git/hooks/post-commit  &lt;span class="c"&gt;# Check executable perms&lt;/span&gt;
youtrack-git-update            &lt;span class="c"&gt;# Test manually&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  API Issues
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$YOUTRACK_TOKEN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;      &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$YOUTRACK_URL&lt;/span&gt;&lt;span class="s2"&gt;/api/issues/PROJ-1234"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💡 Why This Works
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Automation-first&lt;/strong&gt; – No more manual ticket updates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accurate logs&lt;/strong&gt; – Time estimated from actual changes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One source of truth&lt;/strong&gt; – Git commits → YouTrack → Daily reports&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero context switching&lt;/strong&gt; – All in terminal&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Get the Complete Implementation
&lt;/h2&gt;

&lt;p&gt;The code shown in this article is simplified for clarity. The &lt;strong&gt;full, production-ready implementation&lt;/strong&gt; is available on GitHub with enhanced features:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📦 Repository:&lt;/strong&gt; &lt;a href="https://github.com/abdallah/claude-youtrack-integration" rel="noopener noreferrer"&gt;claude-youtrack-integration&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional features in the repo:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enhanced error handling and validation&lt;/li&gt;
&lt;li&gt;Flexible branch pattern matching&lt;/li&gt;
&lt;li&gt;Per-repository configuration files&lt;/li&gt;
&lt;li&gt;Duplicate commit prevention&lt;/li&gt;
&lt;li&gt;Direct API integration with MCP fallback&lt;/li&gt;
&lt;li&gt;Comprehensive installation script&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quick setup:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/abdallah/claude-youtrack-integration.git
&lt;span class="nb"&gt;cd &lt;/span&gt;claude-youtrack-integration
./install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📎 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This Claude + YouTrack MCP setup has saved me &lt;strong&gt;hours every week&lt;/strong&gt; and completely removed the “Oh, I forgot to update that ticket” problem.&lt;br&gt;&lt;br&gt;
If you work in a ticket-driven workflow and live in your terminal, this integration will feel like a superpower.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>automation</category>
      <category>devtools</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
