\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Justin Byrne (justinbyrne)} \pdfinfo{ /Title (jql-jira-query-language.pdf) /Creator (Cheatography) /Author (Justin Byrne (justinbyrne)) /Subject (JQL (JIRA Query Language) Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{9400DE} \definecolor{LightBackground}{HTML}{F8EFFC} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{JQL (JIRA Query Language) Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Justin Byrne (justinbyrne)} via \textcolor{DarkBackground}{\uline{cheatography.com/26383/cs/14048/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Justin Byrne (justinbyrne) \\ \uline{cheatography.com/justinbyrne} \\ \uline{\seqsplit{www}.byrne-systems.com} \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 19th December, 2017.\\ Updated 19th December, 2017.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{2} \begin{tabularx}{8.4cm}{x{2.72 cm} x{5.28 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Constructing JQL Queries}} \tn % Row 0 \SetRowColor{LightBackground} JIRA 1 Example Clause & project = TEST \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} JIRA 2 Example Clause & project = TEST AND assignee in (currentuser()) \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Breakdown} \tn % Row Count 5 (+ 1) % Row 3 \SetRowColor{white} Field & project \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} Operator & = \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} Value & TEST \tn % Row Count 8 (+ 1) % Row 6 \SetRowColor{LightBackground} Values \& Functions & TEST AND assignee = currentuser() \tn % Row Count 10 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{A simple query in JQL (also known as a 'clause') consists of a field, followed by an operator, followed by one or more values or functions. For example:} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{1.2 cm} x{6.8 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Scoping and sorting}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{Scoping} & Focusing your query so it pulls the right amount of data so the user sees only the information relevant to the current item at hand. \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} \seqsplit{Sorting} & Ordering your data such that the most critical set of data is listed first. \tn % Row Count 7 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{Part of a good query is knowing how to get data out of JIRA. The other part is knowing how to engage your team and your customers with the result. Let's start with two concepts that are critical to effective data presentation.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.964 cm} x{2.052 cm} x{2.584 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Fields}} \tn % Row 0 \SetRowColor{LightBackground} Assignee & Epic Link & Resolved \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Affected version & Filter & Sprint \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} Attachments & Fix version & Status \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} Comment & Issue key & Summary \tn % Row Count 6 (+ 1) % Row 4 \SetRowColor{LightBackground} Component & Labels & Text \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} Created & Last viewed & Time spent \tn % Row Count 9 (+ 2) % Row 6 \SetRowColor{LightBackground} Creator & Priority & Voter \tn % Row Count 10 (+ 1) % Row 7 \SetRowColor{white} Description & Project & Watcher \tn % Row Count 11 (+ 1) % Row 8 \SetRowColor{LightBackground} Due & Reporter & {\emph{custom field}} \tn % Row Count 13 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \SetRowColor{LightBackground} \mymulticolumn{3}{x{8.4cm}}{A field in JQL is a word that represents a Jira field (or a custom field that has already been defined in Jira).} \tn \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{3.04 cm} x{4.96 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Operators}} \tn % Row 0 \SetRowColor{LightBackground} = & != \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \textgreater{} & \textless{} \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} \textgreater{}= & \textless{}= \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} \textasciitilde{} & !\textasciitilde{} \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} in & not in \tn % Row Count 5 (+ 1) % Row 5 \SetRowColor{white} is & is not \tn % Row Count 6 (+ 1) % Row 6 \SetRowColor{LightBackground} was & was not \tn % Row Count 7 (+ 1) % Row 7 \SetRowColor{white} was in & was not in \tn % Row Count 8 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{changed} \tn % Row Count 9 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{8.4cm}}{An operator in JQL is one or more symbols or words that compare the value of a field on its left with one or more values (or functions) on its right, such that only true results are retrieved by the clause. Some operators may use the NOT keyword.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{3.648 cm} x{1.9 cm} x{2.052 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Functions}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Time}} & {\bf{People}} & {\bf{Issue}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \seqsplit{startOfDay/Week/Month/Year} & \seqsplit{currentLogin()} & \seqsplit{issueHistory()} \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \seqsplit{endOfDay/Week/Month/Year} & \seqsplit{currentUser()} & \seqsplit{openSprints()} \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} lastLogin() & & \seqsplit{watchedIssues()} \tn % Row Count 7 (+ 2) % Row 4 \SetRowColor{LightBackground} now() & & \seqsplit{myApproval()} \tn % Row Count 9 (+ 2) % Row 5 \SetRowColor{white} & & \seqsplit{myPending()} \tn % Row Count 11 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}---} \SetRowColor{LightBackground} \mymulticolumn{3}{x{8.4cm}}{A function in JQL appears as a word followed by parentheses, which may contain one or more explicit values or Jira fields. \newline \newline A function performs a calculation on either specific Jira data or the function's content in parentheses, such that only true results are retrieved by the function, and then again by the clause in which the function is used.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{2.204 cm} p{0.76 cm} x{4.636 cm} } \SetRowColor{DarkBackground} \mymulticolumn{3}{x{8.4cm}}{\bf\textcolor{white}{Reserved characters \& words}} \tn % Row 0 \SetRowColor{LightBackground} space (" ") & / & a, and, are, as, at, \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} + & \% & be, but, by, for, if, \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} . & \textasciicircum{} & in, into, is, it, no, \tn % Row Count 3 (+ 1) % Row 3 \SetRowColor{white} , & \$ & not, of, on, or, s, \tn % Row Count 4 (+ 1) % Row 4 \SetRowColor{LightBackground} ; & \# & such, t, that, the, their, \tn % Row Count 6 (+ 2) % Row 5 \SetRowColor{white} ? & @ & then, there, these, they, \tn % Row Count 8 (+ 2) % Row 6 \SetRowColor{LightBackground} | & {[} & this, to, was, will, with \tn % Row Count 10 (+ 2) % Row 7 \SetRowColor{white} * & {]} & \tn % Row Count 11 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}---} \SetRowColor{LightBackground} \mymulticolumn{3}{x{8.4cm}}{When using these common characters or words in queries, you need to: \newline \newline 1. Surround them with quote-marks. You can use either single quote-marks (') or double quote-marks (") eg. text \textasciitilde{} "encoding" \newline \newline 2. If you are searching a text eld and the character is on the list of reserved \newline characters or words, precede them with two backslashes \textbackslash{}\textbackslash{}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}---} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{x{4 cm} x{4 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Term modifiers}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{Wildcard search}} & {\bf{Fuzzy search}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} Replace single character with ? \{\{nl\}\} e.g. te?t \{\{nl\}\} Replace multiple characters with {\emph{ \{\{nl\}\} e.g. win}} & Add \textasciitilde{} to the end of a single term \{\{nl\}\} e.g. roam\textasciitilde{} \tn % Row Count 7 (+ 6) % Row 2 \SetRowColor{LightBackground} {\bf{Proximity search}} & {\bf{Boost term}} \tn % Row Count 8 (+ 1) % Row 3 \SetRowColor{white} Add \textasciitilde{} and a number to the end of a phrase in quotes \{\{nl\}\} e.g. text \textasciitilde{} '"Atlassian jira"\textasciitilde{}10' & Add \textasciicircum{} with a boost factor (a number) to the end of a search term e.g. atlassian\textasciicircum{}4 jira \tn % Row Count 13 (+ 5) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{8.4cm}{p{0.88 cm} x{7.12 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{8.4cm}}{\bf\textcolor{white}{Word stemming}} \tn % Row 0 \SetRowColor{LightBackground} Field & Add \textasciitilde{} to the beginning of a single term \{\{nl\}\} e.g. \textasciitilde{}customize \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}