US20140236649A1 - Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment - Google Patents

Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment Download PDF

Info

Publication number
US20140236649A1
US20140236649A1 US14/014,311 US201314014311A US2014236649A1 US 20140236649 A1 US20140236649 A1 US 20140236649A1 US 201314014311 A US201314014311 A US 201314014311A US 2014236649 A1 US2014236649 A1 US 2014236649A1
Authority
US
United States
Prior art keywords
issue
instance
remote
tracking system
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/014,311
Inventor
Shihab Hassan Hamid
Matthew QUAIL
Graeme David SMITH
Olli Risto NEVALAINEN
Paul Slade
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Atlassian Pty Ltd
Original Assignee
Atlassian Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Atlassian Pty Ltd filed Critical Atlassian Pty Ltd
Priority to US14/014,311 priority Critical patent/US20140236649A1/en
Publication of US20140236649A1 publication Critical patent/US20140236649A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/01Customer relationship services

Definitions

  • the invention relates to issue tracking systems. More particularly, the invention relates to performing remote operations in an issue tracking environment.
  • An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization. Issue tracking systems are commonly used, for example, in an organization's customer support call center to create, update, and resolve reported customer issues, or even issues reported by that organization's other employees. An issue tracking system often also contains a knowledge base containing information on each customer, resolutions to common problems, and other such data.
  • a database is the main storage repository for all data.
  • the data is managed by the business logic layer of the application. This layer gives the underlying raw data more structure and meaning, preparing it for human consumption.
  • the now human readable data are then presented to the support technician by another software application or Web page.
  • the end-user of the issue tracking system can create entirely new issues, read existing issues, add details to existing issues, or resolve an issue.
  • the issue tracking system records the action and who made it, and thus maintains a history of the actions taken.
  • Each user of the system may have issues assigned to them, that is, that user is responsible for the proper resolution of that issue. This is generally presented to the user in a list format. The user may have the option of re-assigning an issue to another user, if needed.
  • an issue tracking system authenticates its users before allowing access to the systems.
  • Issues can have several aspects to them. Each issue in the system may have an urgency value assigned to it, based on the overall importance of that issue. Critical issues are the most severe and should be resolved in the most expedient way possible, taking precedence over all other issues. Low or zero urgency issues are minor and should be resolved as time permits. Other details of issues include the customer experiencing the issue, whether external or internal, date of submission, detailed descriptions of the problem being experienced, attempted solutions or work-arounds, and other relevant information. As previously noted, each issue maintains a history of each change.
  • a customer service technician receives a telephone call, email, or other communication from a customer about a problem.
  • Some applications provide a built-in messaging system and automatic error reporting from exception handling blocks.
  • the technician verifies that the problem is real, and not just perceived.
  • the technician also ensures that enough information about the problem is obtained from the customer. This information generally includes the environment of the customer, when and how the issue occurs, and all other relevant circumstances.
  • the technician creates the issue in the system, entering all relevant data, as provided by the customer.
  • the ticket is reopened once the technician receives information about failure of addressing problem from the customer.
  • issue tracking system is a project tracking environment, such as provided by the JIRA product, offered by Atlassian, which is a proprietary system that is used for bug tracking, issue tracking, and project management.
  • a bug tracking system or defect tracking system is a software application that is designed to help keep track of reported software bugs in software development efforts. It may be regarded as a type of issue tracking system.
  • JIRA is written in Java and uses the Pico inversion of control container, Apache OFBiz entity engine, and WebWork 1 technology stack; for Remote Procedure Calls (RPC), JIRA supports SOAP, XML-RPC, and REST.
  • Tracking systems such as JIRA are used to capture and organize issues, prioritize and take action on important issues, and allow system users to stay up-to-date with the activity going on around them.
  • Different organizations use such systems to track different kinds of issues.
  • an issue could represent a software bug, a project task, a helpdesk ticket, a leave request form, etc.
  • Issues may cross domains, enterprises, or organizations.
  • state of the art issue tracking systems cannot link issues to items that are external to the system installation, e.g. issues that reside on external applications or system instances.
  • An embodiment of the invention links issues to items that are external to the system installation, e.g. issues that reside on external applications or system instances.
  • An embodiment of the invention provides remote issue links that connect issue tracking system issues to objects and pages in other applications, such as Web applications.
  • activity streams show events from all linked applications and third-party applications.
  • a remote link API supports contribution to the issue tracking system activity stream.
  • Another embodiment of the invention allows a user to copy issues from one issue tracking system site to another.
  • a new issue action remote copy appears in a view issue page.
  • the user can limit this action to a particular user group, but by default in a preferred embodiment everyone can use it.
  • the user is prompted to map field values by field names for the issue tracking system's built-in fields and/or to configure default values for required fields. In some embodiments of the invention, appropriate permissions are required to set the field value on the target site.
  • FIG. 1 is a screenshot that is displayed when a user accesses an issue in an issue tracking system from a search result or from a dashboard gadget that provides access to issues according to the invention
  • FIG. 2 is a screen shot that shows a remote issue link in an issue tracking system according to the invention
  • FIG. 3 is a screen shot that shows a user dialog for creating a remote issue link in an issue tracking system according to the invention
  • FIG. 4 is a block schematic diagram that shows an issue tracking system making a remote call to another server that is hosting a remote plugin according to the invention
  • FIG. 5 is a further block schematic diagram showing an issue tracking system and a remote instance with which a remote issue link is established according to the invention
  • FIG. 6 is a block schematic diagram showing an issue tracking system and a remote instance with which a remote issue copy/move operation is implemented according to the invention.
  • FIG. 7 is a block schematic diagram that depicts a machine in the exemplary form of a computer system within which a set of instructions for causing the machine to perform any of the herein disclosed methodologies may be executed.
  • FIG. 1 is a screenshot that is displayed when a user accesses an issue in an issue tracking system from a search result or from a dashboard gadget that provides access to issues according to the invention.
  • FIG. 1 shows an implementation of the invention in the JIRA product, discussed above, but those skilled in the art will appreciate that the invention may be implemented in many different environments.
  • An issue tracking system can be used to track many different types of issues. Some of the more common types of issues are listed below.
  • An issue's priority indicates its relative importance.
  • the default priorities are listed below; note that both the priorities and their meanings can be customized by an administrator to suit an organization.
  • Each issue has a status, which indicates where the issue currently is in its lifecycle (workflow).
  • An issue starts as being Open, generally progresses to Resolved, and then Closed or, depending on circumstances, it may progress to other statuses.
  • An embodiment of the invention links issues to items that are external to the system installation, e.g. issues that reside on external applications or remote instances.
  • the invention provides a technique that connects people, teams and applications, in which users can share issues and search results with each other.
  • An embodiment of the invention provides remote issue links that connect issue tracking system issues to objects and pages in other instances, such as Web applications.
  • Activity streams show events from all linked applications and third-party applications.
  • the remote link API supports contribution to the issue tracking system activity stream.
  • the herein disclosed remote issue links invention provides a powerful tool for linking issues to items that are external to an issue tracking system installation, i.e. issues that reside on external instances and applications.
  • An embodiment of the invention uses a Java and REST API to add these links to the issue tracking system.
  • users can add an issue link from one instance of an issue tracking system issue at one site to an issue on another instance of an issue tracking system or application at another site, including reciprocal links between these issues.
  • Users can search for a page within a separate application from an issue within the issue tracking system and add an issue link to that page.
  • users can add an issue link from an issue tracking system issue to any Web page URL, such as a page of documentation, a technical note, or any other page on another Web site.
  • the herein disclosed remote issue links invention offers a simple but powerful way to integrate an application with an issue tracking system. For example, if there is an object in an application that relates to an issue tracking system ticket, a user can link that object to that issue using such remote issue links. For example, a support ticket is created for an issue raised by a customer in a help desk system, and the bug that causes that issue is being tracked in an issue tracking system.
  • a single API call allows a link to be created in that issue pointing to the support ticket.
  • a user can provide an icon, a title, a summary, even a status icon for the remote object.
  • FIG. 2 is a screen shot that shows a remote issue link in an issue tracking system according to the invention.
  • an exemplary, but non-limiting, example of an issue “relates to” another bug on the same server, “is detailed by” a task on a different server, “links to” a Website, and appears on a “Wiki page.”
  • the view shown in FIG. 2 is provided for purposes of example and those skilled in the art will appreciate the details provided can be expanded or collapsed as necessary to describe all aspects of the issue and to define all remote links.
  • FIG. 3 is a screen shot that shows a user dialog for creating a remote issue link in an issue tracking system according to the invention.
  • a user enters a URL as the destination for the remote issue link and any authorization the may be required.
  • Various REST actions are available to the user, as well as fields into which the user may enter files, content type, comments, and the like.
  • FIG. 3 shows user creation of remote links via the REST API, the invention may be practiced with other user interfaces, for example remote links may be created using a Web user interface.
  • Status Icon object.status.icon.title Textual description of the status for the Status icon doesn't Text tooltip of the the status icon. Not used have a tooltip if Status icon URL is blank.
  • a remote issue link has the following construction:
  • This value must be unique across all remote objects in all remote applications.
  • the maximum length of this field is 255 characters. For simplicity, this could simply be the URL.
  • This value is not displayed in the user interface. Including in this field any values that are needed by a renderer plugin is suggested, for example the application URL and remote object identifier to make REST calls.
  • the size of the icon should be 16 ⁇ 16 pixels.
  • Links are grouped based on the applicationType and applicationName in the user interface.
  • the applicationName is prepended to the iconTitle to form the icon tool tip text.
  • An embodiment of the invention uses a REST API in connection with remote issue links.
  • REST Representational State Transfer
  • REST is a known style of software architecture for distributed systems such as the World Wide Web. As such, REST itself is not discussed in greater detail herein.
  • globalId can optionally be supplied, which is an identifier that uniquely identifies the remote application and the remote object within the remote system. This globally unique identifier can be used to update or delete existing links on an issue.
  • the remote link is updated. Otherwise it is created. The update replaces all existing fields with the new values. Fields not present in the request are interpreted as having a null value.
  • issue tracking systems are complex, as are the data structures that underlie them, as can be seen from the discussion above, the implementation of a remote issue link in accordance with the invention is not trivial.
  • the issue tracking system may be required to display a link, but it is not necessarily able to know immediately how to display it.
  • FIG. 4 is a block schematic diagram that shows an issue tracking system making a remote call via REST 30 and JAVA 31 via a communications path 35 to another server 32 that is hosting a remote plugin 33 .
  • the call follows appropriate links 34 at the remote server and returns sanitized HTML and JavaScript to the issue tracking system, which then renders this information inline.
  • the following approach can be used for the creation of the remote link.
  • An external system injects the remote link details into an instance of the issue tracking system using the remote link REST API.
  • the external system establishes the relationship between the remote object, i.e. the object in the external system, and an issue in the instance of the issue tracking system.
  • the following approach can be used for the creation of a remote link. From the context of an issue in the issue tracking system, the user searches the remote system and selects a remote object to be linked to the current issue.
  • custom rendering plugins can also make permissioning and security decisions, i.e. when they contact the remote system, they can use the user context to decide what amount of information should be rendered. If, for example, the current JIRA user does not have permission to see the remote object or page, the custom renderer can choose to display information which indicates that the user does not have permissions.
  • FIG. 5 shows an instance of an issue tracking system 40 in which a View Issue page 41 is displayed to a user.
  • a View Issue page 41 can perform calculations and/or look at linked issues and dependent linked issues to determine, e.g. their start dates.
  • the View Issue page shows this because start dates are necessarily shown in issue links.
  • the exemplary View Issue page includes a panel that shows such dependencies.
  • the outbound protocol is HTTP.
  • a remote link type rendering plugin 42 (discussed above in connection with FIG. 4 ) at the issue tracking system requests Web content from a remote instance 45 / 46 , for example within execution of an issue in the form of an XML file 43 which contains one or more URLs 44 that require remote content, i.e. the remote issue content of the remote issue link.
  • the structure or implementation details of the remote applications and/or systems with which the issue tracking system communicates when remote links are displayed is not relevant. As long as the remote system has an API that the issue tracking system can communicate with while displaying the remote links, the system operates as desired.
  • an embodiment of the invention is concerned with providing a set of APIs with which a remote plugin can quickly get the information needed by the issue tracking system and then send a response back to the issue tracking system that is then rendered inside the View Issue page.
  • an issue may be thought of as an object tree, in which there are the main issue details at a top level, and then underneath that there might be a list of fixed versions, e.g. versions that might have a list of issue links.
  • One aspect of the invention shapes the data that is returned for the request, for example to manage size of payload and/or chattiness of the interaction.
  • another application that is accessing the issue tracking system may know what it wants to show to its end user, e.g. a list of reported issues or a chart showing the user's progress.
  • the remote instance knows what data it needs, and so it formulates a query.
  • the remote instance could replicate the issue tracking system's reporting functionality in some way. But often the remote instance has a specific purpose and requires a very specific view.
  • Embodiments of the invention use the REST API to show the same information as that shown in the issue tracking system, but remotely, e.g. in a Windows application. This requires flexible use of the issue tracking system API where, depending on what the user requests, different results can be returned. This is especially a problem for applications that are hard-coded for a specific use case with a single view.
  • a query defines two things: the substance of the query, i.e. what the user is looking for; and the range of information that must be returned to satisfy the user once an answer is found to the query.
  • a user can apply the same JQL expression to identify both a set of issues and the actual pieces of information that are to be returned.
  • the issue tracking system knows that when it gets the query to look for the requested information but, with regard to all of the information that is available, only particular pieces of that information need to be returned.
  • a serialization engine within the issue tracking system takes an object view of the issue and flattens it out into JavaScript Object Notation (JSON).
  • JSON JavaScript Object Notation
  • the query When the query is processed, it may be determined that the user only wants a subset of the data about the issues that match the JQL. Thus, in the query there is an instruction to the issue tracking system that tells it how to report the query back.
  • the issue tracking system REST API clients or consumers can query for issue data using a very flexible query language (JQL) and can control the shape of the data that is returned. This allows clients to make optimization decisions, such as chattiness versus amount of data.
  • JQL very flexible query language
  • the API provides very fine grain control of the data returned by the issue tracking system. Typically, this significantly reduces the implementation complexity on the client side and makes the client more robust because it only needs to know about subsets of the object tree that can be provided by the issue tracking system REST API.
  • JSON is a naturally hierarchical data representation.
  • REST API is not purely a data API. It also includes a command paradigm where, if the appropriate HTTP verb is used (POST, DELETE), data within the issue tracking system can be created, updated, or deleted.
  • Another embodiment of the invention allows a user to copy issues from one issue tracking system site to another.
  • a new issue action Remote Copy
  • the user can limit this action to a particular user group, but by default in a preferred embodiment everyone can use it.
  • the user is prompted to map field values by field names for the issue tracking system's built-in fields and/or to configure default values for required fields.
  • appropriate permissions are required to set the field value on the target site.
  • FIG. 6 is a block schematic diagram showing an issue tracking system and a remote instance with which a remote issue copy/move operation is implemented according to the invention.
  • issue tracking system instances 50 , 53 there are two issue tracking system instances 50 , 53 .
  • This embodiment of the invention allows a user to copy an issue from one instance to another.
  • Applications of this aspect of the invention include customer-facing systems in which customers submit issues, and where there is a separate instance for that purpose and for security reasons; and there is an internal instance, e.g. what the internal developers work on.
  • an issue-collector approach where the instances directly interact to execute queries for issues, this embodiment of the invention provides a system for, e.g. collaborating with customers, and in which issues are received from an external issue tracking system, e.g. a public bug-tracker to which customers submit bugs. Such bugs can be copied into an internal instance using this copy and move function.
  • This embodiment of the invention takes into account the fact that there may be two very different schemas for the two different projects which reside at separate instances. They may not have overlapping fields. One may have a subset of the required fields. See, for example the issues 55 , 56 in FIG. 6 , where one issue 55 has fields A, B, and C and the other issue 56 has fields C. D, and E. Each instance is missing two fields that should be filled in to create the issue in the other project. The user needs to be able to fill those in. The system must be able to report these errors. There must be flexibility in terms of whether attachments and all the comments get copied over.
  • each instance has corresponding application links 51 , 54 .
  • This provides a way for connecting two systems so that they have a secure or trusted, or untrusted and authenticated, connection with each other.
  • the remote system provides a description of its requirements to create an issue, and the local system that is trying to push, move, or copy the issue to the other system looks at description, realizes where the mismatch is, and then either sensibly defaults to some behavior that can be successful or requires the user to get involved to make a decision.
  • a first part of this is the self-description language of the remote system or the local instance that is remote, and a second part is the ability of the first instance to interpret this description and figure out how to adapt it to local requirements.
  • the local instance of the issue tracking system looks at the remote instance for a particular item, for example, and the remote system identifies how it handles this particular item, e.g. the fields that are used by the remote instance. Then the local instance looks internally against what the remote instance required to determine if the local instance can either compensate for the differences or if it needs to send an alert to bring in a human intervention. For example, if there are fields that are not filled in in the remote instance, then there are defaults, or they are not required because they can be dropped.
  • issue tracking system REST API that supplies metadata about a given issue type within a given project context.
  • this metadata includes which fields are required, the possible values that “select list” type fields can take, and permissions on who can create issues.
  • the “source” issue tracking system instance uses this REST call to make decisions about which fields can be copied to the “destination” issue tracking system instance unchanged and which fields require human intervention.
  • Scenario 1 Trusted apps where there is a single user. This example assumes that the user names match in both the local instance and the remote instance.
  • Scenario 2 An OAuth situation. This occurs where one system wants to use information from another system, but it first asks for the user's permission. The first step of giving permission is the user identifying himself. As part of establishing that the user is authenticated, the user who is interacting with a local instance may try to do something with the remote instance, after which the user is advised that he needs to authenticate with the remote instance. If the user is already logged into the remote instance, the user is advised that the local instance wants permission to provide information about the user in the remote instance. If the user is not logged in, he is prompted to log in, thus identifying himself in the remote instance.
  • the application links establishes authenticated, remote interactions between applications.
  • a successful authentication and authorization results in issuance of a token that can be used for subsequent interactions between the two systems. This token typically has an expiry date.
  • the first step is to determine if the user is permitted to do so, as noted in the two scenarios above.
  • an administrator sets up the application links. If the user is set up as trusted, then the user never notices anything because he has permission to proceed immediately. If the user is set up on an OAuth system, then there is human intervention where the user, while in one instance, gives himself permission to act as himself on the other instance. Once this is done, the system looks at what is being copied. The View Issue page is refreshed and the user sees the issue, e.g. in an issue bundle, and the issue can be moved or copied, for example via a drag-and-drop user interface tool.
  • the instance of the user who wants to perform the action i.e. at the local instance, asks the remote instance for its capabilities, i.e. it asks the remote instance what is needed, what are requirements.
  • the user must first choose the destination project for the issue to be copied and/or moved. It is the issue type and/or project combination that allows the destination issue tracking system instance to describe its requirements fully for successful issue creation to the source issue tracking system instance.
  • the local instance receives the requirements from the remote instance and then, as the instance is trying to copy and/or move an issue, provides information back to the user: “successful,” “need more information,” “just not possible; you don't have permission.” Those are all three possible outcomes: automatically possible; possible with a little bit of manual intervention; and then impossible because the user does not have permission to create issues on that remote project. This may be inherent in a particular issue that is at the remote instance, based on issue type.
  • the remote instance gets a list of requirements from the local instance and compares these requirements to what it needs locally; and it either meets those requirements or it does not.
  • One of the first steps when trying to perform a remote copy is to pick a destination for that issue in the remote instance, both in terms of the project and issue type.
  • the remote instance can tell the local instance what its requirements are. For example, suppose that the remote instance has five requirements: three are mandatory and two are optional. It looks to see what is coming over from the local instance and sees that the three mandatory requirements are present, so it automatically accepts the issue. But, if one of the mandatory requirements is missing, it does not automatically accept the issue; and if there are, for example, three extra items, it does not care and merely drops them, but otherwise accepts the issue.
  • both move and copy are provided.
  • Moving the original means that the item is being relocated; copying the original means that the item stays in its original place and there is a copy of it at another location.
  • there is not an automatic defaulted copy in the case of loss of data. If there might be a loss of data due to incompatibilities between the source and target instance, i.e. one or more fields may not be present at the destination instance, then the system warns the user that these fields are missing from the destination instance, and a notification is sent to the user to let the user decide to proceed or not.
  • a copy operation which copies an issue to a destination issue tracking system instance also establishes a remote issue link between both copies of the issue.
  • inventions of the inventive remote linking functionality disclosed herein include the notion of linking with intent. That is, when two issues are linked in a way that designates them to be copies, then actions taken on one issue can affect the copy of the issue in the remote instance. Note, this is not restricted to just two copies of an issue.
  • Some example use cases include:
  • FIG. 7 is a block schematic diagram that depicts a machine in the exemplary form of a computer system 1600 within which a set of instructions for causing the machine to perform any of the herein disclosed methodologies may be executed.
  • the machine may comprise or include a network router, a network switch, a network bridge, personal digital assistant, a cellular telephone, a Web appliance or any machine capable of executing or transmitting a sequence of instructions that specify actions to be taken.
  • the computer system 1600 includes a processor 1602 , a main memory 1604 and a static memory 1606 , which communicate with each other via a bus 1608 .
  • the computer system 1600 may further include a display unit 1610 , for example, a liquid crystal display (LCD) or a cathode ray tube (CRT).
  • the computer system 1600 also includes an alphanumeric input device 1612 , for example, a keyboard; a cursor control device 1614 , for example, a mouse; a disk drive unit 1616 , a signal generation device 1618 , for example, a speaker, and a network interface device 1628 .
  • the disk drive unit 1616 includes a machine-readable medium 1624 on which is stored a set of executable instructions, i.e. software, 1626 embodying any one, or all, of the methodologies described herein below.
  • the software 1626 is also shown to reside, completely or at least partially, within the main memory 1604 and/or within the processor 1602 .
  • the software 1626 may further be transmitted or received over a network 1630 by means of a network interface device 1628 .
  • a different embodiment uses logic circuitry instead of computer-executed instructions to implement processing entities.
  • this logic may be implemented by constructing an application-specific integrated circuit (ASIC) having thousands of tiny integrated transistors.
  • ASIC application-specific integrated circuit
  • Such an ASIC may be implemented with CMOS (complementary metal oxide semiconductor), TTL (transistor-transistor logic), VLSI (very large systems integration), or another suitable construction.
  • DSP digital signal processing chip
  • FPGA field programmable gate array
  • PLA programmable logic array
  • PLD programmable logic device
  • a machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine, e.g. a computer.
  • a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals, for example, carrier waves, infrared signals, digital signals, etc.; or any other type of media suitable for storing or transmitting information.

Abstract

Issues are linked to items that are external to the system installation to connect people, teams, and applications, in which users can share issues and search results with each other. Remote issue links connect issue tracking system issues to objects and pages in other instances, such as Web applications. Activity streams show events from all linked applications and third-party applications. In another embodiment, a user is allowed to copy issues from one issue tracking system instance to another. Once an application link is established between the local issue tracking system instance and another, a new issue action, remote copy, appears in a view issue page. The user is prompted to map field values by field names for the issue tracking system's built-in fields and/or to configure default values for required fields. In some embodiments, appropriate permissions are required to set the field value on the target site.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims priority to U.S. provisional patent application Ser. No. 61/767,682, filed Feb. 21, 2013, which application is incorporated herein in its entirety by this reference thereto.
  • BACKGROUND OF THE INVENTION
  • 1. Technical Field
  • The invention relates to issue tracking systems. More particularly, the invention relates to performing remote operations in an issue tracking environment.
  • 2. Description of the Background Art
  • An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization. Issue tracking systems are commonly used, for example, in an organization's customer support call center to create, update, and resolve reported customer issues, or even issues reported by that organization's other employees. An issue tracking system often also contains a knowledge base containing information on each customer, resolutions to common problems, and other such data.
  • The most common issue tracking system's design is relatively simple. A database is the main storage repository for all data. The data is managed by the business logic layer of the application. This layer gives the underlying raw data more structure and meaning, preparing it for human consumption. The now human readable data are then presented to the support technician by another software application or Web page. The end-user of the issue tracking system can create entirely new issues, read existing issues, add details to existing issues, or resolve an issue. When a user of the system makes a change, the issue tracking system records the action and who made it, and thus maintains a history of the actions taken. Each user of the system may have issues assigned to them, that is, that user is responsible for the proper resolution of that issue. This is generally presented to the user in a list format. The user may have the option of re-assigning an issue to another user, if needed. For security, an issue tracking system authenticates its users before allowing access to the systems.
  • Issues
  • Issues can have several aspects to them. Each issue in the system may have an urgency value assigned to it, based on the overall importance of that issue. Critical issues are the most severe and should be resolved in the most expedient way possible, taking precedence over all other issues. Low or zero urgency issues are minor and should be resolved as time permits. Other details of issues include the customer experiencing the issue, whether external or internal, date of submission, detailed descriptions of the problem being experienced, attempted solutions or work-arounds, and other relevant information. As previously noted, each issue maintains a history of each change.
  • Workflow
  • An example scenario is presented to demonstrate how a common issue tracking system works:
  • A customer service technician receives a telephone call, email, or other communication from a customer about a problem. Some applications provide a built-in messaging system and automatic error reporting from exception handling blocks.
  • The technician verifies that the problem is real, and not just perceived. The technician also ensures that enough information about the problem is obtained from the customer. This information generally includes the environment of the customer, when and how the issue occurs, and all other relevant circumstances.
  • The technician creates the issue in the system, entering all relevant data, as provided by the customer.
  • As work is done on that issue, the system is updated with new data by the technician. Any attempt at fixing the problem should be noted in the issue system. Ticket status most likely is changed from open to pending.
  • After the issue has been fully addressed, it is marked as resolved in the issue tracking system.
  • If the problem is not fully resolved, the ticket is reopened once the technician receives information about failure of addressing problem from the customer.
  • One type of issue tracking system is a project tracking environment, such as provided by the JIRA product, offered by Atlassian, which is a proprietary system that is used for bug tracking, issue tracking, and project management. A bug tracking system or defect tracking system is a software application that is designed to help keep track of reported software bugs in software development efforts. It may be regarded as a type of issue tracking system. While there are many known implementations of project tracking systems, JIRA is written in Java and uses the Pico inversion of control container, Apache OFBiz entity engine, and WebWork 1 technology stack; for Remote Procedure Calls (RPC), JIRA supports SOAP, XML-RPC, and REST.
  • Tracking systems, such as JIRA, are used to capture and organize issues, prioritize and take action on important issues, and allow system users to stay up-to-date with the activity going on around them. Different organizations use such systems to track different kinds of issues. Depending on how an organization is using such system, an issue could represent a software bug, a project task, a helpdesk ticket, a leave request form, etc.
  • Issues may cross domains, enterprises, or organizations. Unfortunately, state of the art issue tracking systems cannot link issues to items that are external to the system installation, e.g. issues that reside on external applications or system instances.
  • SUMMARY OF THE INVENTION
  • An embodiment of the invention links issues to items that are external to the system installation, e.g. issues that reside on external applications or system instances. An embodiment of the invention provides remote issue links that connect issue tracking system issues to objects and pages in other applications, such as Web applications. In another embodiment of the invention, activity streams show events from all linked applications and third-party applications. A remote link API supports contribution to the issue tracking system activity stream.
  • Another embodiment of the invention allows a user to copy issues from one issue tracking system site to another. In this embodiment of the invention, once an application link is established between the local issue tracking system site and another, a new issue action remote copy appears in a view issue page. The user can limit this action to a particular user group, but by default in a preferred embodiment everyone can use it. The user is prompted to map field values by field names for the issue tracking system's built-in fields and/or to configure default values for required fields. In some embodiments of the invention, appropriate permissions are required to set the field value on the target site.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a screenshot that is displayed when a user accesses an issue in an issue tracking system from a search result or from a dashboard gadget that provides access to issues according to the invention;
  • FIG. 2 is a screen shot that shows a remote issue link in an issue tracking system according to the invention;
  • FIG. 3 is a screen shot that shows a user dialog for creating a remote issue link in an issue tracking system according to the invention;
  • FIG. 4 is a block schematic diagram that shows an issue tracking system making a remote call to another server that is hosting a remote plugin according to the invention;
  • FIG. 5 is a further block schematic diagram showing an issue tracking system and a remote instance with which a remote issue link is established according to the invention;
  • FIG. 6 is a block schematic diagram showing an issue tracking system and a remote instance with which a remote issue copy/move operation is implemented according to the invention; and
  • FIG. 7 is a block schematic diagram that depicts a machine in the exemplary form of a computer system within which a set of instructions for causing the machine to perform any of the herein disclosed methodologies may be executed.
  • DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 is a screenshot that is displayed when a user accesses an issue in an issue tracking system from a search result or from a dashboard gadget that provides access to issues according to the invention. FIG. 1 shows an implementation of the invention in the JIRA product, discussed above, but those skilled in the art will appreciate that the invention may be implemented in many different environments.
  • Issues are complex. Consider the fields shown in FIG. 1, which are:
      • Project (1): The parent project to which the issue belongs.
      • Key (2): A unique identifier for this issue. The characters to the left of the hyphen represent the project to which this issue belongs.
      • Summary (3): A brief one-line summary of the issue.
      • Type (4): See below for a list of types.
      • Status (5): The stage the issue is currently at in its lifecycle (workflow).
  • See below for a list of statuses.
      • Priority (6): The importance of the issue in relation to other issues. See below for a list of priorities.
      • Resolution (7): A record of the issue's resolution, if the issue has been resolved or closed. See below for a list of resolutions.
      • Affects Version(s) (if applicable) (8): Project version(s) for which the issue is or was manifesting.
      • Fix Version(s) (if applicable) (9): Project version(s) in which the issue was, or is to be, fixed.
      • Component(s) (if applicable) (10): Project component(s) to which this issue relates.
      • Labels(s) (if applicable) (11): Labels to which this issue relates.
      • Environment (if applicable) (12): The hardware or software environment to which the issue relates.
      • Description (13): A detailed description of the issue.
      • Links (14): A list of links to related issues. Strikethrough text, like this, indicates that an issue has been resolved.
      • Assignee (15): The person to whom the issue is currently assigned.
      • Reporter (16): The person who entered the issue into the system.
      • Votes (17): The number shown in brackets indicates how many votes this issue has.
      • Watchers (18): The number shown in brackets indicates how many people who are watching this issue.
      • Due (if applicable) (19): The date by which this issue is scheduled to be completed.
      • Created (20): The time and date on which this issue was entered into the issue tracking system.
      • Updated (21): The time and date on which this issue was last edited.
      • Resolved (22): The time and date on which this issue was resolved.
      • Estimate (23): The Original Estimate of the total amount of time required to resolve the issue, as estimated when the issue was created.
      • Remaining (24): The Remaining Estimate, i.e. the current estimate of the remaining amount of time required to resolve the issue.
      • Logged (25): The sum of the Time Spent from each of the individual work logs for this issue.
  • Some of the more important fields, i.e. Type, Priority, Status, and Resolution, are described as follows:
  • Issue Type
  • An issue tracking system can be used to track many different types of issues. Some of the more common types of issues are listed below.
      • Bug: A problem which impairs or prevents the functions of the product.
      • Improvement: An enhancement to an existing feature.
      • New Feature: A new feature of the product.
      • Task: A task that needs to be done.
      • Custom Issue: A custom issue type, as defined by an organization if required.
  • Priority
  • An issue's priority indicates its relative importance. The default priorities are listed below; note that both the priorities and their meanings can be customized by an administrator to suit an organization.
      • Blocker: Highest priority. Indicates that this issue takes precedence over all others.
      • Critical: Indicates that this issue is causing a problem and requires urgent attention.
      • Major: Indicates that this issue has a significant impact.
      • Minor: Indicates that this issue has a relatively minor impact.
      • Trivial: Lowest priority.
  • Status
  • Each issue has a status, which indicates where the issue currently is in its lifecycle (workflow). An issue starts as being Open, generally progresses to Resolved, and then Closed or, depending on circumstances, it may progress to other statuses.
      • Open: This issue is in the initial Open state, ready for the assignee to start work on it.
      • In Progress: This issue is being actively worked on at the moment by the assignee.
      • Resolved: A Resolution has been identified or implemented, and this issue is awaiting verification by the reporter. From here, issues are either Reopened or are Closed.
      • Reopened: This issue was once Resolved or Closed, but is now being re-examined. For example, an issue with a Resolution of Cannot Reproduce is Reopened when more information becomes available and the issue becomes reproducible. From here, issues are either marked In Progress, Resolved or Closed.
      • Closed: This issue is complete.
  • Resolution
  • An issue can be resolved in many ways, only one of them being Fixed. Some default resolutions are listed below.
      • Fixed: A fix for this issue has been implemented.
      • Won't Fix: This issue is not to be fixed, e.g. it may no longer be relevant.
      • Duplicate: This issue is a duplicate of an existing issue.
      • Incomplete: There is not enough information to work on this issue.
      • Cannot Reproduce: This issue could not be reproduced at this time, or not enough information was available to reproduce the issue. If more information becomes available, please reopen the issue.
  • Note that once an issue has been resolved, i.e. the issue's Resolution field is not empty, textual references to that issue show the key in strikethrough text.
  • Remote Issue Links
  • An embodiment of the invention links issues to items that are external to the system installation, e.g. issues that reside on external applications or remote instances. Thus, the invention provides a technique that connects people, teams and applications, in which users can share issues and search results with each other. An embodiment of the invention provides remote issue links that connect issue tracking system issues to objects and pages in other instances, such as Web applications. Activity streams show events from all linked applications and third-party applications. The remote link API supports contribution to the issue tracking system activity stream.
  • The herein disclosed remote issue links invention provides a powerful tool for linking issues to items that are external to an issue tracking system installation, i.e. issues that reside on external instances and applications. An embodiment of the invention uses a Java and REST API to add these links to the issue tracking system. In this way, users can add an issue link from one instance of an issue tracking system issue at one site to an issue on another instance of an issue tracking system or application at another site, including reciprocal links between these issues. Users can search for a page within a separate application from an issue within the issue tracking system and add an issue link to that page. Thus, in an embodiment of the invention users can add an issue link from an issue tracking system issue to any Web page URL, such as a page of documentation, a technical note, or any other page on another Web site.
  • The herein disclosed remote issue links invention offers a simple but powerful way to integrate an application with an issue tracking system. For example, if there is an object in an application that relates to an issue tracking system ticket, a user can link that object to that issue using such remote issue links. For example, a support ticket is created for an issue raised by a customer in a help desk system, and the bug that causes that issue is being tracked in an issue tracking system. In an embodiment of the invention, a single API call allows a link to be created in that issue pointing to the support ticket. Thus, a user can provide an icon, a title, a summary, even a status icon for the remote object.
  • FIG. 2 is a screen shot that shows a remote issue link in an issue tracking system according to the invention. In FIG. 2, an exemplary, but non-limiting, example of an issue “relates to” another bug on the same server, “is detailed by” a task on a different server, “links to” a Website, and appears on a “Wiki page.” The view shown in FIG. 2 is provided for purposes of example and those skilled in the art will appreciate the details provided can be expanded or collapsed as necessary to describe all aspects of the issue and to define all remote links.
  • FIG. 3 is a screen shot that shows a user dialog for creating a remote issue link in an issue tracking system according to the invention. As shown in FIG. 3, a user enters a URL as the destination for the remote issue link and any authorization the may be required. Various REST actions are available to the user, as well as fields into which the user may enter files, content type, comments, and the like. Those skilled in the art will appreciate that, while FIG. 3 shows user creation of remote links via the REST API, the invention may be practiced with other user interfaces, for example remote links may be created using a Web user interface.
  • TABLE 1
    Fields for Remote Issue Links
    Field Required JSON Key Description Impact if blank
    GlobalID
    Figure US20140236649A1-20140821-P00001
    globalid A globally unique identifier which uniquely You will not be able to
    identifies the remote application and the update or delete the
    remote object within the remote system. The link unless you know
    maximum length is 255 characters. the internal ID of the
    link.
    Relationship relationship Relationship between the remote object and “links to” used in Ul
    the JIRA issue. This can be a verb or a
    noun. It is used to group together links in the
    Ul.
    Object
    URL
    Figure US20140236649A1-20140821-P00002
    object.url A hyperlink to the object in the remote N/A
    system.
    Title
    Figure US20140236649A1-20140821-P00002
    object.title The title of the remote object. N/A
    Summary object.summary Textual summary of the remote object. No text in Ul
    Icon URL
    Figure US20140236649A1-20140821-P00001
    object.icon.url16×16 A 16 × 16 icon representing the type of the Default link icon will be
    object in the remote system. used in Ul
    Icon Title
    Figure US20140236649A1-20140821-P00001
    object.icon.title Text for the tooltip of the main icon Only Application
    describing the type of the object in the Name is used in tootip
    remote system. The Icon Title
    Figure US20140236649A1-20140821-P00899
    and Application Name are combined to form
    the tootip.
    Resolved object.status.resolved Whether the remote object is “resolved” Title text will appear in
    (value is “true”) or “unresolved” (value is normal font in Ul
    “false”). This value will only make sense
    where the remote object is something that is
    resolvable (eg. an issue, support ticket, etc).
    it will not make sense for things like wiki
    pages.
    If Resolved is “true”, the link to the issue will
    have a be in a strikethrough font.
    Status Icon object.status.icon.url16×16 A 16 × 16 icon representing the status of the No status icon in Ul
    URL remote object.
    Status Icon object.status.icon.title Textual description of the status for the Status icon doesn't
    Text tooltip of the the status icon. Not used have a tooltip
    if Status icon URL is blank.
    Field Remote JIRA Example
    Global ID appLinkId=123&issueId=123
    Relationship duplicates
    URL http://mycompany.com/jira/CWD-111
    Title CWD-111
    Summary Support nested group
    Icon URL http://mycompany.com/jira/bug.png
    Icon Title Bug - A problem which impairs or prevents the functions of the product
    Resolved false
    Status Icon URL https://www.mycompany.com/jira/images/icons/newfeature.gif
    Status Icon Text Resolved - A resolution has been taken, and it is awaiting verification by reporter. From here issues are either
    reopened, or are closed.
    Application Name My Company JIRA
    Application Type com.atlassian.jira
    Figure US20140236649A1-20140821-P00899
    indicates data missing or illegible when filed
  • In an embodiment of the invention, a remote issue link has the following construction:
  • public RemotelssueLink(Long id,
      • Long issueId,
      • String globalId,
      • String title,
      • String summary,
      • String url,
      • String IconUrl,
      • String iconTitle,
      • String relationship,
      • Boolean resolved,
      • String statusIconUrl,
      • String statusIconTitle,
      • String statusIconLink,
      • String applicationType,
      • String applicationName)
  • The following details the various elements of the above construction:
  • getId
  • public Long getId( )
  • Returns the id of the link. This is used to refer to a link when updating and deleting.
  • Returns: the id of the link
  • getIssueId
  • public Long getIssueId( )
  • Returns the id of the issue we are linking with.
  • Returns: the id of the issue we are linking with
  • getGloballd
  • public String getGloballd( )
  • Returns a String which uniquely identifies the object in the remote application.
  • This value must be unique across all remote objects in all remote applications. The maximum length of this field is 255 characters. For simplicity, this could simply be the URL.
  • This value is not displayed in the user interface. Including in this field any values that are needed by a renderer plugin is suggested, for example the application URL and remote object identifier to make REST calls.
  • For example: “url=http://www.myapplication.com&ticketid=12345”
  • Returns: a String which uniquely identifies the object in the remote application
  • getTitle
  • public String getTitle( )
  • Returns a String to identify the remote object. This is shown as the text for the URL in the user interface. For example: an issue key, a page title, a helpdesk ticket number
  • Returns: a String to identify the remote object
  • getSummary
  • public String getSummary( )
  • Returns a summary of the remote object. This is shown after the title in the user interface. For example: an issue summary, a helpdesk ticket title
  • Returns: a summary of the remote object
  • getUrl
  • public String getUrl( )
  • Returns a url to the object in the remote application. For example: a page URL
  • Returns: a URL to the object in the remote application
  • getIconUrl
  • public String getIconUrl( )
  • Returns a URL for an icon to represent the remote object. The size of the icon should be 16×16 pixels.
  • For example: http://mycompany.com/jira/images/icons/bug.png
  • Returns: a URL for an icon to represent the remote object
  • getIconTitle
  • public String geticonTitle( )
  • Returns the tool tip text for the icon. The applicationName is prepended to this value to form the icon tool tip text.
  • For example: “Bug—A problem which impairs or prevents the functions of the product”
  • Returns: the tool tip text for the icon
  • getRelationship
  • public String getRelationship( )
  • Returns a String which describes the relationship between the issue and the remote object.
  • For example: “relates to”, “is mentioned in”, “links to”. It could even be a simple noun, such as “Test Case”.
  • Returns: a String which describes the relationship between the issue and the remote object
  • isResolved
  • public Boolean isResolved( )
  • Returns a Boolean to indicate whether the remote object is resolved or not. If the value is true, it is resolved, and if the value is false, it is unresolved. This value only makes sense where the remote object is something that is resolvable, e.g. an issue, support ticket, etc. It does not make sense for things such as wiki pages. In that case, the value should be null. If the value is true, the remote issue link be shown in a strikethrough font in the user interface.
  • Returns: a Boolean to indicate whether the remote object is resolved or not
  • getStatusIconUrl
  • public String getStatusIconUrl( )
  • Returns a URL for an icon representing the status of the remote object. The size of the icon should be 16×16 pixels. This icon is shown next to the summary in the user interface, and is right justified. This icon does not have to strictly represent a status, and may instead represent some secondary information about the link.
  • For example: the status of an issue, the author of a test case
  • Returns: a URL for an icon representing the status of the remote object
  • getStatusIconTitle
  • public String getStatusIconTitle( )
  • Returns the tool tip text for the status icon. If null, no tool tip text is shown. This value is not used if the statusIconUrl is null.
  • Returns: the tool tip text for the status icon
  • getStatusIconLink
  • public String getStatusIconLink( )
  • Returns a hyperlink for the status icon. If null, no hyperlink is shown. This value is not used if the statusIconUrl is null.
  • Returns: a hyperlink for the status icon
  • getApplicationType
  • public String getApplicationType( )
  • Returns the type of remote application that is linked with. This should be the product name, namespaced with the product company. This value is not displayed in the user interface. Links are grouped based on the applicationType and applicationName in the user interface. Rendering plugins can register to render a certain type of application. It is not possible to use a plugin to render links without an applicationType.
  • For example: “com.atlassian.confluence”, “com.mycompany.myproduct”
  • Returns: the type of remote application that is linked with
  • getApplicationName
  • public String getApplicationName( )
  • Returns the human-readable name of the remote application instance that contains the remote object. Links are grouped based on the applicationType and applicationName in the user interface. The applicationName is prepended to the iconTitle to form the icon tool tip text.
  • For example: “My Company's Confluence”, “HR JIRA”, “Helpdesk JIRA”
  • Returns: the human-readable name of the remote application instance that contains the remote object
  • REST API
  • An embodiment of the invention uses a REST API in connection with remote issue links. Representational State Transfer (REST) is a known style of software architecture for distributed systems such as the World Wide Web. As such, REST itself is not discussed in greater detail herein. In some embodiments of the invention there are two required fields for creating a link to a remote object: a URL and a link title.
  • POST http://localhost:8090/jira/rest/api/latest/issue/TST-1/remotelink
    {
    “object”: {
    “url”:“,
    “title”:“Crazy customer support issue”
    }
    }
    Returns the successful response:
    { “self”:“http://localhost:8090/jira/rest/api/latest/issue/TST-1/remotelink/100”,
    “id”:100} |
    {
    “self”:“http://localhost:8090/jira/rest/api/latest/issue/TST-1/remotelink/100”,
    “id”:100
    }
  • When a link is created, globalId: can optionally be supplied, which is an identifier that uniquely identifies the remote application and the remote object within the remote system. This globally unique identifier can be used to update or delete existing links on an issue.
  • POST http://localhost:8090/jira/rest/api/latest/issue/TST-1/remotelink
    {
    “globalId”: “system=http://www.mycompany.com/support&id=1”,
    “object”: {
    “url”:“http://www.mycompany.com/support?id=1”,
    “title”:“Crazy customer support issue (RESOLVED)”
    }
    }
  • If a remote link on the issue exists with the same URL, the remote link is updated. Otherwise it is created. The update replaces all existing fields with the new values. Fields not present in the request are interpreted as having a null value.
  • Implementation
  • Because issue tracking systems are complex, as are the data structures that underlie them, as can be seen from the discussion above, the implementation of a remote issue link in accordance with the invention is not trivial. For example, the issue tracking system may be required to display a link, but it is not necessarily able to know immediately how to display it.
  • Consider FIG. 4, which is a block schematic diagram that shows an issue tracking system making a remote call via REST 30 and JAVA 31 via a communications path 35 to another server 32 that is hosting a remote plugin 33. The call follows appropriate links 34 at the remote server and returns sanitized HTML and JavaScript to the issue tracking system, which then renders this information inline.
  • In embodiments of the invention, the following approach can be used for the creation of the remote link. An external system injects the remote link details into an instance of the issue tracking system using the remote link REST API. In this case, the external system establishes the relationship between the remote object, i.e. the object in the external system, and an issue in the instance of the issue tracking system.
  • In alternative embodiments of the invention, the following approach can be used for the creation of a remote link. From the context of an issue in the issue tracking system, the user searches the remote system and selects a remote object to be linked to the current issue.
  • In embodiments of the invention, the following occurs for the display of remote link details on the View Issue page:
      • Determine the type, T, of the remote link being displayed on the View Issue page.
      • If there is a rendering plugin associated with T, then execute the rendering logic in that plugin. There is no limit to what the rendering plugin can do when displaying a remote link. Typically, rendering plugins connect with the remote system in real time to collect all of the information necessary to render the remote link completely. Such remote system communication typically uses a REST protocol. Sanitized markup is either returned from the remote system or a markup is assembled by the rendering plugin using JSON data returned from the remote system.
      • If a rendering plugin is not associated with T, then execute the default rendering plugin. The default behavior displays all of the information stored within the issue tracking system about the remote link. In contrast to a custom rendering plugin, the default behavior does not attempt to contact the remote system while displaying the remote link.
  • In embodiments of the invention, custom rendering plugins can also make permissioning and security decisions, i.e. when they contact the remote system, they can use the user context to decide what amount of information should be rendered. If, for example, the current JIRA user does not have permission to see the remote object or page, the custom renderer can choose to display information which indicates that the user does not have permissions.
  • Although other protocols may be used in various embodiments of the invention, an embodiment of the invention uses REST and/or HTTP for such calls. For example, FIG. 5 shows an instance of an issue tracking system 40 in which a View Issue page 41 is displayed to a user. In this example, such page can perform calculations and/or look at linked issues and dependent linked issues to determine, e.g. their start dates. In this example, the View Issue page shows this because start dates are necessarily shown in issue links. The exemplary View Issue page includes a panel that shows such dependencies.
  • In this example, the outbound protocol is HTTP. A remote link type rendering plugin 42 (discussed above in connection with FIG. 4) at the issue tracking system requests Web content from a remote instance 45/46, for example within execution of an issue in the form of an XML file 43 which contains one or more URLs 44 that require remote content, i.e. the remote issue content of the remote issue link.
  • The structure or implementation details of the remote applications and/or systems with which the issue tracking system communicates when remote links are displayed is not relevant. As long as the remote system has an API that the issue tracking system can communicate with while displaying the remote links, the system operates as desired.
  • The sophistication of the information that is displayed in the remote link section on the View Issue page, e.g. the derived or calculated information, is a function of what the remote system API can provide. In such case, a remote plugin 47 might have to make five REST calls to get the start dates of all of the dependent issues. Thus, an embodiment of the invention is concerned with providing a set of APIs with which a remote plugin can quickly get the information needed by the issue tracking system and then send a response back to the issue tracking system that is then rendered inside the View Issue page. In this regard, an issue may be thought of as an object tree, in which there are the main issue details at a top level, and then underneath that there might be a list of fixed versions, e.g. versions that might have a list of issue links. There is also a list of comments and a list of history. The REST request can ask for these items from the remote instance 46. For example, a comment has an author, an issue link has another issue linked to it.
  • One aspect of the invention shapes the data that is returned for the request, for example to manage size of payload and/or chattiness of the interaction. However, another application that is accessing the issue tracking system may know what it wants to show to its end user, e.g. a list of reported issues or a chart showing the user's progress. To accomplish such use case, the remote instance knows what data it needs, and so it formulates a query. The remote instance could replicate the issue tracking system's reporting functionality in some way. But often the remote instance has a specific purpose and requires a very specific view.
  • In an issue tracking system there is a client application that connects a user to an issue tracking system server. Embodiments of the invention use the REST API to show the same information as that shown in the issue tracking system, but remotely, e.g. in a Windows application. This requires flexible use of the issue tracking system API where, depending on what the user requests, different results can be returned. This is especially a problem for applications that are hard-coded for a specific use case with a single view.
  • In embodiments of the invention, a query defines two things: the substance of the query, i.e. what the user is looking for; and the range of information that must be returned to satisfy the user once an answer is found to the query. For example, a user can apply the same JQL expression to identify both a set of issues and the actual pieces of information that are to be returned. In embodiments of the invention, the issue tracking system knows that when it gets the query to look for the requested information but, with regard to all of the information that is available, only particular pieces of that information need to be returned. A serialization engine within the issue tracking system takes an object view of the issue and flattens it out into JavaScript Object Notation (JSON).
  • When the query is processed, it may be determined that the user only wants a subset of the data about the issues that match the JQL. Thus, in the query there is an instruction to the issue tracking system that tells it how to report the query back.
  • There is a set of options where the user can specify the list of desired fields. This shapes the information returned to satisfy the query. At the machine level a decision is made as to the form in which the information is to be reported back. The form is always the same, while REST API is purely a data API, i.e. a query interface that a remote system can use to get information out, all decisions as to form are made in the remote application. The issue tracking system has no decision in this process, but receives instructions from the remote instance for specific information, and the issue tracking system sends back exactly what is requested.
  • The foregoing discussion concerns the point that, with the issue tracking system REST API, clients or consumers can query for issue data using a very flexible query language (JQL) and can control the shape of the data that is returned. This allows clients to make optimization decisions, such as chattiness versus amount of data. In embodiments of the invention, the API provides very fine grain control of the data returned by the issue tracking system. Typically, this significantly reduces the implementation complexity on the client side and makes the client more robust because it only needs to know about subsets of the object tree that can be provided by the issue tracking system REST API.
  • One way to represent the way the data shape can be controlled is by drawing a tree structure and highlighting the branches of the tree that are included in the data returned to a client given a particular request. In embodiments of the invention, JSON is a naturally hierarchical data representation.
  • It should be appreciated that the REST API is not purely a data API. It also includes a command paradigm where, if the appropriate HTTP verb is used (POST, DELETE), data within the issue tracking system can be created, updated, or deleted.
  • Remote Issue Copying
  • Another embodiment of the invention allows a user to copy issues from one issue tracking system site to another. In this embodiment of the invention, once an application link is established (see the discussion below) between the local issue tracking system site and another, a new issue action, Remote Copy, appears in a view issue page. The user can limit this action to a particular user group, but by default in a preferred embodiment everyone can use it. The user is prompted to map field values by field names for the issue tracking system's built-in fields and/or to configure default values for required fields. In some embodiments of the invention, appropriate permissions are required to set the field value on the target site.
  • FIG. 6 is a block schematic diagram showing an issue tracking system and a remote instance with which a remote issue copy/move operation is implemented according to the invention. In this example, there are two issue tracking system instances 50, 53. This embodiment of the invention allows a user to copy an issue from one instance to another. Applications of this aspect of the invention include customer-facing systems in which customers submit issues, and where there is a separate instance for that purpose and for security reasons; and there is an internal instance, e.g. what the internal developers work on. Instead of an issue-collector approach. where the instances directly interact to execute queries for issues, this embodiment of the invention provides a system for, e.g. collaborating with customers, and in which issues are received from an external issue tracking system, e.g. a public bug-tracker to which customers submit bugs. Such bugs can be copied into an internal instance using this copy and move function.
  • This embodiment of the invention takes into account the fact that there may be two very different schemas for the two different projects which reside at separate instances. They may not have overlapping fields. One may have a subset of the required fields. See, for example the issues 55, 56 in FIG. 6, where one issue 55 has fields A, B, and C and the other issue 56 has fields C. D, and E. Each instance is missing two fields that should be filled in to create the issue in the other project. The user needs to be able to fill those in. The system must be able to report these errors. There must be flexibility in terms of whether attachments and all the comments get copied over.
  • In FIG. 6, each instance has corresponding application links 51, 54. This provides a way for connecting two systems so that they have a secure or trusted, or untrusted and authenticated, connection with each other. The remote system provides a description of its requirements to create an issue, and the local system that is trying to push, move, or copy the issue to the other system looks at description, realizes where the mismatch is, and then either sensibly defaults to some behavior that can be successful or requires the user to get involved to make a decision. A first part of this is the self-description language of the remote system or the local instance that is remote, and a second part is the ability of the first instance to interpret this description and figure out how to adapt it to local requirements.
  • In an embodiment of the invention, the local instance of the issue tracking system looks at the remote instance for a particular item, for example, and the remote system identifies how it handles this particular item, e.g. the fields that are used by the remote instance. Then the local instance looks internally against what the remote instance required to determine if the local instance can either compensate for the differences or if it needs to send an alert to bring in a human intervention. For example, if there are fields that are not filled in in the remote instance, then there are defaults, or they are not required because they can be dropped.
  • There is an API call within the issue tracking system REST API that supplies metadata about a given issue type within a given project context. Among other things, this metadata includes which fields are required, the possible values that “select list” type fields can take, and permissions on who can create issues. The “source” issue tracking system instance uses this REST call to make decisions about which fields can be copied to the “destination” issue tracking system instance unchanged and which fields require human intervention.
  • With regard to the architecture shown in FIG. 6, there are at least two scenarios.
  • Scenario 1: Trusted apps where there is a single user. This example assumes that the user names match in both the local instance and the remote instance.
  • Scenario 2: An OAuth situation. This occurs where one system wants to use information from another system, but it first asks for the user's permission. The first step of giving permission is the user identifying himself. As part of establishing that the user is authenticated, the user who is interacting with a local instance may try to do something with the remote instance, after which the user is advised that he needs to authenticate with the remote instance. If the user is already logged into the remote instance, the user is advised that the local instance wants permission to provide information about the user in the remote instance. If the user is not logged in, he is prompted to log in, thus identifying himself in the remote instance. There is typically no persistent relationship stored between the two instances regarding the user's appearance at each instance, but the user is allowed to authorize the exchange of information between the two instances. The application links establishes authenticated, remote interactions between applications. A successful authentication and authorization results in issuance of a token that can be used for subsequent interactions between the two systems. This token typically has an expiry date.
  • In this example, if a user wants to copy and move something, the first step is to determine if the user is permitted to do so, as noted in the two scenarios above. In an embodiment of the invention, an administrator sets up the application links. If the user is set up as trusted, then the user never notices anything because he has permission to proceed immediately. If the user is set up on an OAuth system, then there is human intervention where the user, while in one instance, gives himself permission to act as himself on the other instance. Once this is done, the system looks at what is being copied. The View Issue page is refreshed and the user sees the issue, e.g. in an issue bundle, and the issue can be moved or copied, for example via a drag-and-drop user interface tool.
  • The instance of the user who wants to perform the action, i.e. at the local instance, asks the remote instance for its capabilities, i.e. it asks the remote instance what is needed, what are requirements. Once a user has authenticated with the remote instance, the user must first choose the destination project for the issue to be copied and/or moved. It is the issue type and/or project combination that allows the destination issue tracking system instance to describe its requirements fully for successful issue creation to the source issue tracking system instance. The local instance receives the requirements from the remote instance and then, as the instance is trying to copy and/or move an issue, provides information back to the user: “successful,” “need more information,” “just not possible; you don't have permission.” Those are all three possible outcomes: automatically possible; possible with a little bit of manual intervention; and then impossible because the user does not have permission to create issues on that remote project. This may be inherent in a particular issue that is at the remote instance, based on issue type.
  • In one embodiment of the invention, the remote instance gets a list of requirements from the local instance and compares these requirements to what it needs locally; and it either meets those requirements or it does not. One of the first steps when trying to perform a remote copy is to pick a destination for that issue in the remote instance, both in terms of the project and issue type. In some embodiments of the invention, the remote instance can tell the local instance what its requirements are. For example, suppose that the remote instance has five requirements: three are mandatory and two are optional. It looks to see what is coming over from the local instance and sees that the three mandatory requirements are present, so it automatically accepts the issue. But, if one of the mandatory requirements is missing, it does not automatically accept the issue; and if there are, for example, three extra items, it does not care and merely drops them, but otherwise accepts the issue.
  • In embodiments of the invention, both move and copy are provided. Moving the original means that the item is being relocated; copying the original means that the item stays in its original place and there is a copy of it at another location. In the case of a move, there is not an automatic defaulted copy in the case of loss of data. If there might be a loss of data due to incompatibilities between the source and target instance, i.e. one or more fields may not be present at the destination instance, then the system warns the user that these fields are missing from the destination instance, and a notification is sent to the user to let the user decide to proceed or not. Further, in embodiments of the invention a copy operation which copies an issue to a destination issue tracking system instance also establishes a remote issue link between both copies of the issue.
  • OTHER EMBODIMENTS
  • Other embodiments of the inventive remote linking functionality disclosed herein include the notion of linking with intent. That is, when two issues are linked in a way that designates them to be copies, then actions taken on one issue can affect the copy of the issue in the remote instance. Note, this is not restricted to just two copies of an issue. Some example use cases include:
      • Keeping comments in sync between the copies of the issue.
      • When one copy of an issue goes through a workflow transition, then other copies of the issue may go through the same transition or some equivalent transition. Thus, the status of the copies of an issue is kept in sync.
      • When some change is made to an issue, then that change event is broadcast to all instances that have a copy of the issue. Those events can be fed into the notification systems of each instance and the appropriate notifications can be generated.
      • Change events could also be used to build a distributed Lucene index and search library of issues. This allows generation of richer reports on a network of issue copies that reside across a set of issue tracking system instances.
  • Computer Implementation
  • FIG. 7 is a block schematic diagram that depicts a machine in the exemplary form of a computer system 1600 within which a set of instructions for causing the machine to perform any of the herein disclosed methodologies may be executed. In alternative embodiments, the machine may comprise or include a network router, a network switch, a network bridge, personal digital assistant, a cellular telephone, a Web appliance or any machine capable of executing or transmitting a sequence of instructions that specify actions to be taken.
  • The computer system 1600 includes a processor 1602, a main memory 1604 and a static memory 1606, which communicate with each other via a bus 1608. The computer system 1600 may further include a display unit 1610, for example, a liquid crystal display (LCD) or a cathode ray tube (CRT). The computer system 1600 also includes an alphanumeric input device 1612, for example, a keyboard; a cursor control device 1614, for example, a mouse; a disk drive unit 1616, a signal generation device 1618, for example, a speaker, and a network interface device 1628.
  • The disk drive unit 1616 includes a machine-readable medium 1624 on which is stored a set of executable instructions, i.e. software, 1626 embodying any one, or all, of the methodologies described herein below. The software 1626 is also shown to reside, completely or at least partially, within the main memory 1604 and/or within the processor 1602. The software 1626 may further be transmitted or received over a network 1630 by means of a network interface device 1628.
  • In contrast to the system 1600 discussed above, a different embodiment uses logic circuitry instead of computer-executed instructions to implement processing entities. Depending upon the particular requirements of the application in the areas of speed, expense, tooling costs, and the like, this logic may be implemented by constructing an application-specific integrated circuit (ASIC) having thousands of tiny integrated transistors. Such an ASIC may be implemented with CMOS (complementary metal oxide semiconductor), TTL (transistor-transistor logic), VLSI (very large systems integration), or another suitable construction. Other alternatives include a digital signal processing chip (DSP), discrete circuitry (such as resistors, capacitors, diodes, inductors, and transistors), field programmable gate array (FPGA), programmable logic array (PLA), programmable logic device (PLD), and the like.
  • It is to be understood that embodiments may be used as or to support software programs or software modules executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine or computer readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine, e.g. a computer. For example, a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals, for example, carrier waves, infrared signals, digital signals, etc.; or any other type of media suitable for storing or transmitting information.
  • Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. For example, embodiments of the invention allow the user to create remote issue links between the original and the copy.
  • Accordingly, the invention should only be limited by the Claims included below.

Claims (37)

1. A computer implemented method for performing remote operations in an issue tracking environment, comprising:
a processor creating at least one link between issues in a local issue tracking system instance to objects and pages in at least one other, remote instance; and
said processor using at least the following two fields for creating said link to said remote object: a URL and a link title.
2. The method of claim 1, wherein said remote instance hosts a remote plugin.
3. The method of claim 1, further comprising:
said processor creating said at least one link pursuant to user execution of a query for at least one page within a separate application in said at least one other, remote instance from an issue within said local issue tracking system instance;
wherein said query comprises a request for specific information regarding said issue and a form in which said information is to be reported back;
said remote instance sending instructions to said local instance regarding the form for said specific information; and
said local instance sending said information to said remote instance in the requested form.
4. The method of claim 1, wherein an issue comprises any of the following fields:
project, key, summary, type, status, priority, resolution, affects version, fix version, component, labels, environment, description, links, assignee, reporter, votes, watchers, due, created, updated, resolved, estimate, remaining, and logged.
5. The method of claim 1, wherein an issue type comprises any of:
a bug, an improvement, a new feature, a task, and a custom issue.
6. The method of claim 1, wherein issue priority comprises any of:
blocker, critical, major, minor, and trivial.
7. The method of claim 1, wherein issue status comprises any of:
open, in progress, resolved, reopened, and closed.
8. The method of claim 1, wherein issue resolution comprises any of:
fixed, won't fix, duplicate, incomplete, and cannot reproduce.
9. The method of claim 1, further comprising:
said processor providing at least one activity stream that shows events from all linked applications and third-party applications.
10. The method of claim 2, further comprising:
said processor using a Java and REST API to add links to said issue tracking system in connection with said remote plugin.
11. The method of claim 1, further comprising:
said processor providing a user dialog for creating said at least one link, said dialog comprising a field for entering a URL as a destination for said link.
12. The method of claim 1, further comprising:
said processor providing a user dialog for searching the remote instance and selecting objects from the remote instance;
wherein an underlying URL for the remote object is not known to the user and is constructed.
13. The method of claim 1, wherein said links comprise any of the following fields:
a globally unique identifier which uniquely identifies a remote application and a remote object within said remote instance;
a relationship between the remote object and the local instance issue;
a hyperlink to the remote object;
a title of the remote object;
a textual summary of the remote object;
an iconic representation of the type of object in the remote instance;
text for a tooltip of an icon describing a type of object in the remote instance;
an indication of whether the remote object is resolved;
an iconic representation of status; and
a textual description of the status for a tooltip of a status icon.
14. The method of claim 12, wherein said at least one link has the following construction:
public RemotelssueLink(Long id,
Long issueId,
String globalId,
String title,
String summary,
String url,
String IconUrl,
String iconTitle,
String relationship,
Boolean resolved,
String statusIconUrl,
String statusIconTitle,
String statusIconLink,
String applicationType,
String applicationName).
15. The method of claim 1, further comprising:
when a link is created, said processor creating a global identifier that uniquely identifies the remote application and the remote object within the remote instance.
16. The method of claim 1, wherein when a link on an issue exists with a same URL, said link is updated; otherwise said link is created;
wherein said update replaces all existing fields with new values; and
wherein fields that are not present in a request are interpreted as having a null value.
17. The method of claim 1, further comprising:
said processor displaying a View Issue page to a user.
18. The method of claim 17, further comprising:
a plugin at said local instance requesting content from said remote instance; and
said remote plugin sending a response back to said local instance in a format that can then be rendered inside said View Issue page.
19. The method of claim 1, further comprising:
a serialization engine for flattening an object view of an issue into JavaScript Object Notation (JSON).
20. A computer implemented method for copying and moving issues between issue tracking system instances, comprising:
a processor establishing an application link between a first issue tracking system instance and a second issue tracking system instance;
said processor creating a remote copy action in a view issue dialog;
said processor prompting a user to map field values by field names for said target issue tracking system instance and, as required, to configure default values for required fields; and
said processor effecting any of a copy and move action for an issue, wherein said first issue tracking system instance and second issue tracking system instance comprise either of a source instance and a target instance which each have different schemas and different projects.
21. The method of claim 20, further comprising:
said processor prompting a user to select a destination project and issue type.
22. The method of claim 20, further comprising:
said processor requiring permissions to set a field value on said target issue tracking system instance.
23. The method of claim 20, wherein said source instance and said target instance do not have overlapping fields;
wherein one of said source instance and said target instance has a subset of the required fields;
said processor issuing a notification prior to effecting a move of copy operation if any required fields are missing.
24. The method of claim 20, further comprising:
said source instance system requesting a description of said target instance's requirements to create an issue;
said target instance, pursuant to pushing, moving, or copying said issue, identifying areas of mismatch regarding said source instance requirements; and
based upon said areas of mismatch, said target instance either defaulting to a locally compliant format or requiring user input.
25. The method of claim 24, further comprising:
said source instance implementing a self-description language that describes its requirements; and
said target instance interpreting said description and adapting said issue to said source instance requirements.
26. The method of claim 25, further comprising:
said target instance looking at said source instance for a particular issue;
said source instance identifying fields that are used at said source instance for said issue;
said target instance identifying those internal requirements versus requirements of said source instance that are necessary for said target instance and either compensating for differences between requirements of said target instance and said source instance or sending an alert for intervention.
27. The method of claim 20, wherein user names match in both the target instance and the source instance.
28. The method of claim 20, further comprising:
said processor using OAuth to create application links and establish authenticated, remote interactions between said target instance and said source instance.
29. The method of claim 20, further comprising:
said processor effecting any of three outcomes for a copy or move operation, said outcomes comprising automatically possible, possible with a little bit of manual intervention, and impossible because the user does not have permission to create issues on a remote instance.
30. The method of claim 20, further comprising:
pursuant to performing a remote copy, selecting a destination for an issue in said target instance with regard to both a target project and an issue type; and
said target instance informing said source instance regarding said target instance requirements.
31. The method of claim 20, wherein a move operation relocates an original issue;
wherein a copy operation leaves the original item in its original place and makes a copy at another location; and
wherein an automatic defaulted copy is not performed for a move operation in the case of loss of data due to incompatibilities between the source and target instance.
32. The method of claim 20, wherein a copy operation which copies an issue to a destination issue tracking system instance also establishes a remote issue link between both copies of the issue.
33. The method of claim 20, wherein when two issues are linked in a way that designates them to be copies, then actions taken on one issue affect the copy of the issue in the remote instance.
34. The method of claim 33, wherein comments are kept in sync between copies of the issue.
35. The method of claim 33, wherein when one copy of an issue goes through a workflow transition, other copies of the issue go through the same transition or an equivalent transition;
wherein the status of the copies of an issue is kept in sync.
36. The method of claim 33, wherein when a change is made to an issue, then a change event is broadcast to all instances that have a copy of the issue.
37. The method of claim 36, wherein said change events are fed into notification systems of each instance and appropriate notifications are generated.
US14/014,311 2013-02-21 2013-08-29 Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment Abandoned US20140236649A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/014,311 US20140236649A1 (en) 2013-02-21 2013-08-29 Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361767682P 2013-02-21 2013-02-21
US14/014,311 US20140236649A1 (en) 2013-02-21 2013-08-29 Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment

Publications (1)

Publication Number Publication Date
US20140236649A1 true US20140236649A1 (en) 2014-08-21

Family

ID=51351923

Family Applications (3)

Application Number Title Priority Date Filing Date
US14/014,311 Abandoned US20140236649A1 (en) 2013-02-21 2013-08-29 Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment
US14/014,307 Active 2034-01-06 US9773216B2 (en) 2013-02-21 2013-08-29 Workflow sharing
US15/714,981 Active US10176440B2 (en) 2013-02-21 2017-09-25 Workflow sharing

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/014,307 Active 2034-01-06 US9773216B2 (en) 2013-02-21 2013-08-29 Workflow sharing
US15/714,981 Active US10176440B2 (en) 2013-02-21 2017-09-25 Workflow sharing

Country Status (1)

Country Link
US (3) US20140236649A1 (en)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9369413B2 (en) 2005-09-14 2016-06-14 Tagatoo, Inc. Method and apparatus for communication and collaborative information management
US20180107959A1 (en) * 2016-10-18 2018-04-19 Dell Products L.P. Managing project status using business intelligence and predictive analytics
EP3547235A1 (en) * 2018-03-30 2019-10-02 Atlassian Pty Ltd Issue tracking system
WO2020028459A1 (en) * 2018-07-31 2020-02-06 Jpmorgan Chase Bank, N.A. Method and system for implementing an automated data validation tool
EP3629183A1 (en) * 2018-09-28 2020-04-01 Atlassian Pty Ltd Improved issue tracking systems and methods
US10958612B2 (en) 2016-10-02 2021-03-23 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US10970150B1 (en) * 2019-12-23 2021-04-06 Atlassian Pty Ltd. Incident detection and management
US11032220B2 (en) * 2016-06-24 2021-06-08 Airwatch Llc Architecture for performing actions in a third-party service by an email client
EP3851963A3 (en) * 2019-12-23 2021-08-18 Atlassian Pty Ltd Incident detection and management
US20210279297A1 (en) * 2016-05-13 2021-09-09 Equals 3 LLC Linking to a search result
US11243830B2 (en) 2020-03-25 2022-02-08 Atlassian Pty Ltd. Incident detection and management
US11340961B2 (en) 2017-03-23 2022-05-24 Airwatch Llc Dynamically integrating a client application with third-party services
US11372894B2 (en) * 2018-12-21 2022-06-28 Atlassian Pty Ltd. Associating product with document using document linkage data
US11405468B2 (en) * 2018-08-27 2022-08-02 Box, Inc. Forming activity streams across heterogeneous applications
US11416124B2 (en) * 2020-07-02 2022-08-16 Atlassian Pty Ltd. Graphical computer interface for an issue tracking system
US11500834B2 (en) * 2020-09-18 2022-11-15 Atlassian Pty Ltd. Systems and methods for migrating data
US11556225B1 (en) * 2021-12-29 2023-01-17 Atlassian Pty Ltd. Displaying queue information in a graphical user interface of an issue tracking system

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140278723A1 (en) * 2013-03-13 2014-09-18 Xerox Corporation Methods and systems for predicting workflow preferences
US10001908B2 (en) 2013-08-30 2018-06-19 Oracle International Corporation Flow state totals and auto flow warehousing
US9448791B1 (en) * 2013-11-06 2016-09-20 Amazon Technologies, Inc. Synchronizing source code objects and software development workflow objects
WO2016050270A1 (en) 2014-09-29 2016-04-07 Hewlett-Packard Development Company L.P. Provisioning a service
US10552797B2 (en) 2015-03-13 2020-02-04 Gemba Software Solutions Inc. Procedure flow administration system and method
TWI643083B (en) * 2016-01-07 2018-12-01 葉振忠 Electronic application developing method and,non-transitory computer-readable storage medium and system
US20170206483A1 (en) * 2016-01-15 2017-07-20 Level 3 Communications, Llc Workflow storage, processing, management, and task creation system
US11196643B2 (en) 2018-04-04 2021-12-07 Hewlett Packard Enterprise Development Lp State transitions for a set of services
US11016756B1 (en) 2018-06-28 2021-05-25 Kahua, Inc. Application repository protocol for disparate entity applications
US10496557B1 (en) 2018-06-28 2019-12-03 Kahua, Inc. Transport protocol for disparate entity applications
US11281491B2 (en) 2018-11-21 2022-03-22 Hewlett Packard Enterprise Development Lp Execution of services concurrently
CN111651334A (en) * 2020-05-31 2020-09-11 成都新潮传媒集团有限公司 Data generation method and device for jira system
US20220229648A1 (en) * 2021-01-21 2022-07-21 Jpmorgan Chase Bank, N.A. Method and apparatus for project transformation and migration automation
US11444903B1 (en) * 2021-02-26 2022-09-13 Slack Technologies, Llc Contextual discovery and design of application workflow

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510427B1 (en) * 1999-07-19 2003-01-21 Ameritech Corporation Customer feedback acquisition and processing system
US20040025082A1 (en) * 2002-07-31 2004-02-05 Roddy Nicholas Edward Method and system for monitoring problem resolution of a machine
US20040230438A1 (en) * 2003-05-13 2004-11-18 Sbc Properties, L.P. System and method for automated customer feedback
US20050010461A1 (en) * 2003-07-08 2005-01-13 John Manos Information technology service request level of service monitor
US20050050210A1 (en) * 2003-08-28 2005-03-03 Kennedy Douglas Mark Issue tracking systems and methods
US20050097197A1 (en) * 2003-10-07 2005-05-05 International Business Machines Corporation Web browser control for customer support
US20060085238A1 (en) * 2004-10-08 2006-04-20 Oden Insurance Services, Inc. Method and system for monitoring an issue
US20070143165A1 (en) * 2005-08-12 2007-06-21 John Roberts Customer relationship management system and method
US20080294447A1 (en) * 2007-05-22 2008-11-27 Avaya Technology Llc Issue or transaction tracking by using presence information and instant messaging
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
US7516438B1 (en) * 2001-09-12 2009-04-07 Sun Microsystems, Inc. Methods and apparatus for tracking problems using a problem tracking system
US7587678B1 (en) * 2006-04-13 2009-09-08 Kayak Software Corporation Email-based customer support management system
US20090307763A1 (en) * 2008-06-05 2009-12-10 Fiberlink Communications Corporation Automated Test Management System and Method
US20100088683A1 (en) * 2000-03-03 2010-04-08 Identify Software, Ltd. System and method for software diagnostics using a combination of visual and dynamic tracing
US20110066559A1 (en) * 2009-09-15 2011-03-17 Verizon Patent And Licensing Inc. Method and system for providing automated trouble ticket status notifications
US8074119B1 (en) * 2008-03-26 2011-12-06 Tellabs San Jose, Inc. Method and apparatus for providing a multi-scope bug tracking process
US8301720B1 (en) * 2005-07-18 2012-10-30 Progress Software Corporation Method and system to collect and communicate problem context in XML-based distributed applications
US8341590B1 (en) * 2007-12-12 2012-12-25 Accurev, Inc. System for relating workflow status to code component status in a software project
US20130086224A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Method, apparatus, and program for supporting creation and management of metadata for correcting problem in dynamic web application
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8713531B1 (en) * 2011-06-28 2014-04-29 Google Inc. Integrated bug tracking and testing
US20140173087A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Framework Supporting Content Delivery With Adaptation Services
US20140344391A1 (en) * 2012-12-13 2014-11-20 Level 3 Communications, Llc Content Delivery Framework having Storage Services

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05197573A (en) * 1991-08-26 1993-08-06 Hewlett Packard Co <Hp> Task controlling system with task oriented paradigm
US5999911A (en) * 1995-06-02 1999-12-07 Mentor Graphics Corporation Method and system for managing workflow
AUPN773496A0 (en) * 1996-01-25 1996-02-15 Task Solutions Pty Ltd Task management system
US7627631B2 (en) * 2002-05-02 2009-12-01 Bea Systems, Inc. Systems and methods for collaborative business plug-ins
US8290805B2 (en) * 2004-09-13 2012-10-16 Hirokazu Usui Project management system
US20060069599A1 (en) * 2004-09-29 2006-03-30 Microsoft Corporation Workflow tasks in a collaborative application
US8655832B2 (en) * 2005-01-21 2014-02-18 International Business Machines Corporation Publishing activity tasks in a collaborative environment
US8037452B2 (en) * 2005-04-15 2011-10-11 Microsoft Corporation Task aware source checkin and build
US7933956B2 (en) * 2006-01-24 2011-04-26 Simulat, Inc. System and method to create a collaborative web-based multimedia layered platform
US8027861B2 (en) * 2006-06-05 2011-09-27 Lee Page Brintle Systems and methods for shared task management
US20090049108A1 (en) * 2007-07-17 2009-02-19 Gridiron Software Inc. Method and apparatus for workflow versioning
US20110264593A1 (en) * 2010-04-27 2011-10-27 Appigo, Inc. System and method for task management with sub-portions
US20120233555A1 (en) * 2010-11-08 2012-09-13 Eyelead Sa Real-time multi-user collaborative editing in 3d authoring system
US8645178B2 (en) * 2011-04-28 2014-02-04 Accenture Global Services Limited Task management for a plurality of team members
US20130006689A1 (en) * 2011-06-29 2013-01-03 Foliovision S.R.O. Methods, software, and systems for maintaining a single hierarchy of tasks across multiple projects and/or multiple task management tools
US8639552B1 (en) * 2013-01-24 2014-01-28 Broadvision, Inc. Systems and methods for creating and sharing tasks

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510427B1 (en) * 1999-07-19 2003-01-21 Ameritech Corporation Customer feedback acquisition and processing system
US20100088683A1 (en) * 2000-03-03 2010-04-08 Identify Software, Ltd. System and method for software diagnostics using a combination of visual and dynamic tracing
US7516438B1 (en) * 2001-09-12 2009-04-07 Sun Microsystems, Inc. Methods and apparatus for tracking problems using a problem tracking system
US20040025082A1 (en) * 2002-07-31 2004-02-05 Roddy Nicholas Edward Method and system for monitoring problem resolution of a machine
US20040230438A1 (en) * 2003-05-13 2004-11-18 Sbc Properties, L.P. System and method for automated customer feedback
US20050010461A1 (en) * 2003-07-08 2005-01-13 John Manos Information technology service request level of service monitor
US20050050210A1 (en) * 2003-08-28 2005-03-03 Kennedy Douglas Mark Issue tracking systems and methods
US8555273B1 (en) * 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050097197A1 (en) * 2003-10-07 2005-05-05 International Business Machines Corporation Web browser control for customer support
US20060085238A1 (en) * 2004-10-08 2006-04-20 Oden Insurance Services, Inc. Method and system for monitoring an issue
US8301720B1 (en) * 2005-07-18 2012-10-30 Progress Software Corporation Method and system to collect and communicate problem context in XML-based distributed applications
US20070143165A1 (en) * 2005-08-12 2007-06-21 John Roberts Customer relationship management system and method
US7587678B1 (en) * 2006-04-13 2009-09-08 Kayak Software Corporation Email-based customer support management system
US20080294447A1 (en) * 2007-05-22 2008-11-27 Avaya Technology Llc Issue or transaction tracking by using presence information and instant messaging
US20090037492A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
US8341590B1 (en) * 2007-12-12 2012-12-25 Accurev, Inc. System for relating workflow status to code component status in a software project
US8074119B1 (en) * 2008-03-26 2011-12-06 Tellabs San Jose, Inc. Method and apparatus for providing a multi-scope bug tracking process
US20090307763A1 (en) * 2008-06-05 2009-12-10 Fiberlink Communications Corporation Automated Test Management System and Method
US20110066559A1 (en) * 2009-09-15 2011-03-17 Verizon Patent And Licensing Inc. Method and system for providing automated trouble ticket status notifications
US8713531B1 (en) * 2011-06-28 2014-04-29 Google Inc. Integrated bug tracking and testing
US20130086224A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Method, apparatus, and program for supporting creation and management of metadata for correcting problem in dynamic web application
US20140173087A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Framework Supporting Content Delivery With Adaptation Services
US20140344391A1 (en) * 2012-12-13 2014-11-20 Level 3 Communications, Llc Content Delivery Framework having Storage Services

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9369413B2 (en) 2005-09-14 2016-06-14 Tagatoo, Inc. Method and apparatus for communication and collaborative information management
US20210279297A1 (en) * 2016-05-13 2021-09-09 Equals 3 LLC Linking to a search result
US11032220B2 (en) * 2016-06-24 2021-06-08 Airwatch Llc Architecture for performing actions in a third-party service by an email client
US11677696B2 (en) 2016-06-24 2023-06-13 Vmware, Inc. Architecture for performing action in a third-party service by an email client
US11336599B2 (en) * 2016-06-24 2022-05-17 Vmware, Inc. Architecture for performing action in a third-party service by an email client
US11632347B2 (en) 2016-10-02 2023-04-18 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US11444908B2 (en) 2016-10-02 2022-09-13 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US10958612B2 (en) 2016-10-02 2021-03-23 Vmware, Inc. Hero cards that display contextual information and actions for backend systems
US20180107959A1 (en) * 2016-10-18 2018-04-19 Dell Products L.P. Managing project status using business intelligence and predictive analytics
US10839326B2 (en) * 2016-10-18 2020-11-17 Dell Products L.P. Managing project status using business intelligence and predictive analytics
US11340961B2 (en) 2017-03-23 2022-05-24 Airwatch Llc Dynamically integrating a client application with third-party services
EP3547235A1 (en) * 2018-03-30 2019-10-02 Atlassian Pty Ltd Issue tracking system
US20190303139A1 (en) * 2018-03-30 2019-10-03 Atlassian Pty Ltd Issue tracking system
US10725774B2 (en) * 2018-03-30 2020-07-28 Atlassian Pty Ltd Issue tracking system
US11379222B2 (en) * 2018-03-30 2022-07-05 Atlassian Pty Ltd. Issue tracking system
US11010366B2 (en) 2018-07-31 2021-05-18 Jpmorgan Chase Bank, N.A. Method and system for implementing an automated data validation tool
WO2020028459A1 (en) * 2018-07-31 2020-02-06 Jpmorgan Chase Bank, N.A. Method and system for implementing an automated data validation tool
US11412049B2 (en) 2018-08-27 2022-08-09 Box, Inc. Activity-based application recommendations
US11799969B2 (en) 2018-08-27 2023-10-24 Box, Inc. Forming activity streams across heterogeneous applications
US11405468B2 (en) * 2018-08-27 2022-08-02 Box, Inc. Forming activity streams across heterogeneous applications
EP3629183A1 (en) * 2018-09-28 2020-04-01 Atlassian Pty Ltd Improved issue tracking systems and methods
US11423056B2 (en) 2018-12-21 2022-08-23 Atlassian Pty Ltd. Content discovery systems and methods
US11372894B2 (en) * 2018-12-21 2022-06-28 Atlassian Pty Ltd. Associating product with document using document linkage data
US11841879B2 (en) 2018-12-21 2023-12-12 Atlassian Pty Ltd. Content discovery systems and methods
US10970150B1 (en) * 2019-12-23 2021-04-06 Atlassian Pty Ltd. Incident detection and management
US11720432B2 (en) 2019-12-23 2023-08-08 Atlassian Pty Ltd. Incident detection and management
EP3851963A3 (en) * 2019-12-23 2021-08-18 Atlassian Pty Ltd Incident detection and management
US11243830B2 (en) 2020-03-25 2022-02-08 Atlassian Pty Ltd. Incident detection and management
US11416124B2 (en) * 2020-07-02 2022-08-16 Atlassian Pty Ltd. Graphical computer interface for an issue tracking system
US11500834B2 (en) * 2020-09-18 2022-11-15 Atlassian Pty Ltd. Systems and methods for migrating data
US11556225B1 (en) * 2021-12-29 2023-01-17 Atlassian Pty Ltd. Displaying queue information in a graphical user interface of an issue tracking system
US20230205396A1 (en) * 2021-12-29 2023-06-29 Atlassian Pty Ltd. Displaying queue information in a graphical user interface of an issue tracking system
US11789593B2 (en) * 2021-12-29 2023-10-17 Atlassian Pty Ltd. Displaying queue information in a graphical user interface of an issue tracking system

Also Published As

Publication number Publication date
US10176440B2 (en) 2019-01-08
US20180075374A1 (en) 2018-03-15
US20140236843A1 (en) 2014-08-21
US9773216B2 (en) 2017-09-26

Similar Documents

Publication Publication Date Title
US20140236649A1 (en) Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment
EP3695563B1 (en) Apparatus, method, and computing device for selectively granting permissions to group-based objects in a group-based communication system
US20210073051A1 (en) Late connection binding for bots
US20160085392A1 (en) System and method for seamlessly integrating separate information systems within an application
KR101622815B1 (en) Method of providing assistance to the end-user of a software application
US20070250531A1 (en) System and Method of Web Browser-Based Document and Content Management
US11379222B2 (en) Issue tracking system
US10356139B2 (en) Method and electronic device for editing content
US6804785B2 (en) Method and system for handling production problems in an extended enterprise environment
US7984170B1 (en) Cross-domain communication in domain-restricted communication environments
US20130283146A1 (en) Managing Web Content Creation in a Web Portal
US9020973B2 (en) User interface model driven data access control
EP3814903A1 (en) Systems and methods for initiating processing actions utilizing automatically generated data of a group-based communication system
US11388171B2 (en) Method, apparatus, and computer program product for installing and updating third party applications requiring variable host address identification in a group-based communication system
US10769166B1 (en) Distributed integrated platforms as a service network
US11861380B2 (en) Systems and methods for rendering and retaining application data associated with a plurality of applications within a group-based communication system
US8229977B1 (en) Web site deployment framework
US9495666B2 (en) End-user portal system for remote technical support
US9953070B1 (en) Enterprise resource planning (ERP) system data extraction, loading, and directing
Schweitzer et al. Concepts and solutions of the digital teams platform to support mobile work and virtual teams
US20210092042A1 (en) Configurable system for resolving requests received from multiple client devices in a network system
JP7467971B2 (en) Information processing system, message notification system, and message notification method
US20230208829A1 (en) System and method for merging graphical user interfaces of separate computing applications
US10097622B1 (en) Method and system for communication using published events
Atayero et al. FOSS implementation of an educational virtual office suite

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION