-
Notifications
You must be signed in to change notification settings - Fork 19
JIRA Cheatsheet
Below are results from experimenting with our Jira's GitHub integration and Smart Commits.
Our Jira uses your va.gov email addresses to recognize you as a user who can edit Jira tickets. This means your git commit messages must have that email address for the Smart Commit to work.
- Check your email address: in your caseflow directory, run
git config user.email
- If needed, updated it:
git config user.email "[email protected]"
or edit.git/config
(more details) - Uncheck "Keep my email addresses private" in your GitHub account settings (Settings > Email). This is explained in the "gotchas" below.
Things you can do with Smart Commit
- comment on issues (using
#comment
) - transition issues to any status defined in the project's workflow
- (irrelevant) record time tracking information against issues
Smart Commit operates on all git branches, not just the main master
branch. Although it seems a GitHub pull request is needed for Jira to see the commit messages(?)
Given a Jira ticket workflow like this:
we can update the Jira ticket status and add comments without going to Jira:
- Create your feature branch (and eventually a GitHub PR) to work on Jira ticket
CASEFLOW-106
- Update Jira ticket's status to "IN PROGRESS" and also add a comment:
git commit --allow-empty -m "CASEFLOW-106 #in-progress #comment Starting on this ticket"
- The
--allow-empty
argument enables creating a git commit without any file changes. - Regarding the workflow transition name
in-progress
, process-issues-with-smart-commits states: "The Smart Commit only considers the part of a transition name before the first space. So, for a transition name such asfinish work
, then specifying#finish
is sufficient. You must use hyphens to replace spaces when ambiguity can arise over transition names, for example:#finish-work
". - Gotcha: The transition name in the commit message must match the label in the Workflow dropdown of the Jira ticket. For example, if the dropdown shows a "Start Work" option, the commit message must include
#start-work
even though the desired status name is "In Progress". - TODO: If we set up a trigger, then the assignee could be automatically updated to the commenter.
- The
-
git push
your latest branch so that Jira can know about the latest commit. - Create a GitHub pull request
- If desired, add a Jira comment with a link to the PR:
git commit --allow-empty -m "CASEFLOW-106 #comment Associated PR: https://github.com/department-of-veterans-affairs/caseflow/pull/15631"
. Note there should already be a link to the PR in Jira's "Development" sidebar.- It could take about 30 minutes for Jira to recognize the commit messages and update the "Development" sidebar, which shows the commits that contain the Jira ticket ID, along with branches and PRs associated with the commit messages:
- Unlike GitHub, you'll have to refresh your browser to get updates to the Jira page.
- It could take about 30 minutes for Jira to recognize the commit messages and update the "Development" sidebar, which shows the commits that contain the Jira ticket ID, along with branches and PRs associated with the commit messages:
-
git push
your latest branch so that Jira can know about the latest commit. git commit --allow-empty -m "CASEFLOW-106 #in-code-review PR is ready for review"
-
git push
your latest branch so that Jira can know about the latest commit.
You could write a script that does something like the following:
JIRA_TICKET=CASEFLOW-106
BRANCH_SUFFIX=my-cool-feature
git checkout -b ${JIRA_TICKET#*-}-${BRANCH_SUFFIX}
git commit --allow-empty -m "${JIRA_TICKET} #in-progress #comment Starting on this ticket"
git push
# Use gh CLI tool (https://github.com/cli/cli) to create a PR
gh pr create --web --title "${JIRA_TICKET} #done ${BRANCH_SUFFIX} [${JIRA_TICKET}](https://vajira.max.gov/browse/${JIRA_TICKET})"
# Then, manually edit the PR title and description in the browser.
Once the PR is ready for review:
git commit --allow-empty -m "${JIRA_TICKET} #in-code-review PR is ready for review"
git push
If you title your PR with something like "CASEFLOW-106 #done Allow CAVC Litigation Support Users to Correct Issues", then once the PR is merged by GitHub, Jira will recognize the Smart Commit message and update the status of the Jira ticket:
and the PR shows as "MERGED":
- Gotcha: Because the PR merge is done by GitHub using your primary email address of your GitHub account, you'll have to make your va.gov email as your primary email and uncheck "Keep my email addresses private" in your GitHub account settings (Settings > Email).
- GitHub notifications can still go to another email address (Settings > Notifications > Email notification preferences)
- Why this works: Jira is not aware of Smart Commit commands in the PR's title until the PR is actually merged (and a corresponding commit is created).
If you want more immediate email notifications from Jira, create an auto-forward rule in Outlook for your va.gov email account.
- Quickly navigate and edit a field - If you want to edit a single field of the ticket without clicking edit and scrolling, hit
.
, start to type out the field, hit enter, and type in your value!
See more keyboard shortcuts here: https://jira.atlassian.com/secure/ViewKeyboardShortcuts!default.jspa
- Home
- Acronyms and Glossary
- Caseflow products
- Caseflow Intake
- Caseflow Queue
- Appeals Consumer
- Caseflow Reader
- Caseflow eFolder
- Caseflow Hearings
- Caseflow Certification
- Caseflow APIs
- Appeal Status API
- Caseflow Dispatch
-
CSUM Roles
- System Admin
- VHA Team Management
- Active Record Queries Resource
- External Integrations
- Caseflow Demo
- Caseflow ProdTest
- Background
- Stuck Jobs
- VA Notify
-
Caseflow-Team
- Tier 4
- Bat Team
- Technical Documentation
- Backend Code Patterns
- Backend Working Group
- FACOLS, VACOLS DB Schema
- Asyncable Models
- External Data: where and why
- Data Fetching Scripts
- Caseflow Data Model and Dictionary
- User Access Permissions
- Controller Schemas
- Constants
- Frontend Best Practices
- Accessibility
- How-To
- Debugging Tips
- Adding a Feature Flag with FeatureToggle
- Editing AMA issues
- Editing a decision review
- Fixing task trees
- Investigating and diagnosing issues
- Data and Metric Request Workflow
- Exporting and Importing Appeals
- Explain page for Appeals
- Record associations and Foreign Keys
- Upgrading Ruby
- Stuck Appeals
- Testing Action Mailer Messages Locally
- Re-running Seed Files
- Rake Generator for Legacy Appeals
- Manually running Scheduled Jobs
- System Admin UI
- Caseflow Makefile
- Upgrading Postgresql from v11.7 to v14.8 Locally
- VACOLS VM Trigger Fix M1
- Using SlackService to Send a Job Alert
- Technical Talks