Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Jira Automation and GitHub Integration: Rules, Smart Values, Usage Limits and the REST API
Jira automation rules are made of triggers, conditions, actions and branches; from 3 December 2026 every step that runs is billed by usage, and by default a rule's action does not trigger another rule. The post covers Bookstore's four rules, the step count, GitHub for Atlassian and smart commits, and a .NET tool that checks commit messages and drafts release notes with REST API v3.
JQL, Filters and Dashboards: Asking the Right Question Without Misusing Metrics
JQL works with clauses made of a field, an operator and a value or function; currentUser(), openSprints(), startOfWeek() and membersOf() each support only certain operators. The post covers the Bookstore team's queries, keeping filters in the repo and checking them with a .NET tool, sharing filters and dashboards, which question each Jira report answers and the trap of turning a dashboard into a personal performance board.
Board and Workflow Design in Jira: Statuses, Transitions, Columns and WIP Limits
Jira's reports read whether an item is finished from two places: the board's right-most column and the resolution field; if they are not set up consistently, the board and the filters contradict each other. The post derives the Bookstore workflow from the Definition of Workflow and covers transition names, the resolution rule, column mapping, the Scrum board, column constraints, swimlanes and custom filters.
Jira Cloud's Model: Spaces, Work Items, Work Types, Hierarchy and Team-Managed vs Company-Managed
In Jira Cloud a project is now a space and an issue is now a work item; the API and JQL still accept the old names. The post builds the work type hierarchy and the Parent relationship with Bookstore's Institutional Ordering epic, explains team-managed versus company-managed spaces, why there is no conversion between them, what a move loses and when Jira is too heavy.