JQL: query to find top level issue in current project - jira

I have several projects and BLI in one project could be parent of BLI in another project.
How can I use JQL to find top level BLI within its own project?
Thanks,
Guoping

A specific answer would require knowing your JIRA version (Cloud, Server, Data Center) and if the projects you are searching for are Software projects or Service Management projects. This solution assumes you have Portfolio for Jira and the paid add-on Adaptavist Scriptrunner.
If your list of projects is not very long, then you could explicitly search by each project and use issuefunction. This should work if you want any issue in one of these projects as long as it is not a subtask of another issue within its own project and regardless of whether it is linked to an epic or not:
(project = "child_project1" and issuefunction not in subtasksOf( 'project in ("child_project1")' ) ) OR (project = "child_project2" and issuefunction not in subtasksOf( 'project="child_project2"' ) ) OR (project = "child_project3" and issuefunction not in subtasksOf( 'project="child_project3"' ) )
If you also need to include the epics from the other parent project, then add:
OR issueFunction in epicsOf('Project = "parent_project1"')

A less elegant way which does not require using scriptrunner would be to filter by issue type. You could filter for the issue types you want to select or filter out the issue types you don't want to select, assuming those two sets do not overlap in any particular project. For example:
(project = "child_project1" and issuetype NOT in ( Sub-task, "Feature Defect") ) OR (project = "child_project2" and issuetype in ( Story, Bug ) ) OR (project = "child_project3" and issuetype in ( Story, Bug, Initiative ) )
To optionally include epics from parent project:
Or (project = "parent_project1" and issuetype in ( Epic) )

Related

How to restrict branch creation based on pattern in Bitbucket

I am using Atlassian Bitbucket server v4.8.6.
How do I restrict restrict branch creation based on pattern.
Rules explained below -
Only ABC team should be able to create release/ABC-*
Only XYZ team should be able to create personal/XYZ-*
You can't create rules to prevent only the "creation" of branches. These are the avaliable restrictions:
Prevent all changes
Prevent deletion
Prevent rewriting history
Prevent changes without a pull request
To create branch permissions do the following:
Go to Repository > Settings > Branch permissions > Add permissions
Select "Branch pattern"
Add branch pattern, ex: release/ABC-*
Select one of the restrictions available
Add the group exception, ex: ABC
This can be done by adding "*" on Select branch text field. See the screenshot below.
Go to your repository > Settings > Branch permissions > Add permission
Under "Select branch - By name or pattern", put an asterisk (*)
Save
After that, you can restrict each branch patterns you want for different teams or people.
ABC group
Select branch = release/ABC-*
Write access = ABC group or ABC members
Personal branch
Select branch = personal/XYZ-*
Write Access = Your account

Jira JQL find backlockitems with label and include their subtasks without a plugin

I need to select all backlogitems AND their corresponding subtasks. However, only the backlogitems have the label i'm looking for. Therefore the subtasks are always filtered out.
( issuetype = "Backlog Item" ) AND labels="Implementation" AND project = MY_PROJECT
I cannot install or use any plugin. All solutions I could find use plugins.

Search jira issues with open subtasks

We currently handle the progress of our tasks solely by using subtaks under each issue. For this reason, I would like to create a filter that only displays those issues that have at least one subtask that is stil open.
You can use Script Runner plugin (older versions are free) with this JQL:
issueFunction in parentsOf("issuetype in ('Sub-Task') and statusCategory != Complete")
You'll need to state all possible sub task types for issuetype.
Would something like this work as a filter?
project=PROJECTNAME AND issueType in subTaskIssueTypes() AND status ="To Do (or Open or whatever you are using)"
This should pull all issues that are in the sub task group (Sub-task, Sub-bug, etc.), that are in your current project and that have the desired status (Either the one you are looking for, or you could switch it to exclude the statuses you do not need like "Done").

How to create sub-milestones of a milestone in Jira?

Is it possible to create sub-milestones of a milestone and create different tasks under sub-milestone and create sub-tasks under task?
(parent)milestone => (child)sub-milestone_1 => sub-milestone_1_task_1 => sub-milestone_1_task_1.1
It seems you need multilevel hierarchy of issues.
Jira supports only two levels: issue and sub-issue.
You can try the Structure plugin. If you want a different (and free) approach try by referring to the issues hierarchy just with issue links like "derived by", "relates to", etc.

How to determine used process template in Team Foundation Server after creation of team project

I'm looking for a way to determine what process template was used for a team project after it has been created. I can now only guess by looking at the work item types. I could not find any option in Visual Studio to retrieve this information. I need to know what processs template was used for team projects not created by myself.
If you check your work item type:
Scrum = Product Backlog Item
Agile = User Story
CMMI = Requirement
For TFS 2010 & TFS 2012, you can follow below process to determine which process template a team project used:
Go to Team Explorer;
Open Documents folder;
Process Guidance;
Open ProcessGuidance.html, this will open specific Process Template documenation that your team project base on.
Refer to thread
There is no way to tell, in general.
If you create (or edit) a process template, you can put an identifier into a property then you will be able to track which projects have your template(s)
To do this:
Edit Classification\Classification.xml
add a node:
tasks/task/taskXml/properties/property
like this:
<property name="templateName" value="myTemplate_1.0.1" />
Once you have projects created with this template, in the object model you will be able to pull this info from a project:
TfsTeamProjectCollection c = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(myuri);
WorkItemStore wis = tpc.GetService();
ICommonStructureService ICss = tpc.GetService();
foreach (Project p in wis.Projects)
{
string ProjectName = string.Empty;
string ProjectState = String.Empty;
int templateId = 0;
ProjectProperty[] ProjectProperties = null;
ICss.GetProjectProperties(p.Uri.ToString(), out ProjectName, out ProjectState, out templateId, out ProjectProperties);
Console.WriteLine("Project: {0}\tTemplate: {1}", ProjectName, ProjectProperties.Where(n => n.Name == "templateName").FirstOrDefault().Value);
}
templateId is always -1 so dont think that will help you.
Also - If you have the rights to, I recommend adding this property into all the templates (even the default templates) in your collection, so that you will be able to track the templates of all future projects. Don't know why they didn't put it in the default templates. (if enough people complain maybe they will)
I found another workaround: in SharePoint Central Administration you can see in the Site Collection list a comment that described the process template that was used. I was actually looking for a way to programatically retrieve it via the TFS API, but could not find it.
Using witadmin, you can list the work item types in the project. The /collection parameter is the TPC url and the /p parameter is the project name. Here is an example (below). If you know the name of a work item type that is specific to a process template, then you know which process template is being used.
Output of command console from my test TFS:
D:\Program Files\Microsoft Team Foundation Server 2010\Tools>witadmin listwitd /collection:http://suluserver:8080/tfs/De
faultCollection /p:"First Team Project"
Bug
Shared Steps
Task
Test Case
User Story
Issue
Risk
User Scenario
Risk-Issue
For visual studio online, go to your collection profile page. You can see all the projects inside your collection including the process template information.
The URL format to your collection page should be:
https://[accountname].visualstudio.com/[collectionname]/_admin
This is definitely late but here's a couple different resources I found while searching:
If you have access to the TFS database: Determine Process Template SQL
Open source WinForms application: https://github.com/renevanosnabrugge/TFS-ProcessTemplateVersionCheck
I don't know a fail proof way to find this out.
I would recommend the following: There is a exe called witexport.exe that can export the xml of a work item. You can then look through the xml to see what kind of template was used. (ie if the conchango template is used you will see references to it.)
To run it fire up the VS Command line prompt (in the start menu). Here is an example run:
witexport /f "C:\Type.xml" /t "http:\MyServer:8080" /p MyProject /n "Sprint BackLog Item"

Resources