Git Product home page Git Product logo

jiraworklogtool's Introduction

Jira Worklog Tool

Download from Chrome Web Store

CircleCI

A simple Chrome Extension that allows adding worklogs in Jira easily. Logging your time in Jira doesn't need to be a pain anymore. If you already keep track of your tasks in a TODO list from a text file, then all you need to do is to adapt your list items to the below intuitive format:

<Jira number> - <time spent> - <worklog details and comments>

You can separate the fields with comma, semi-colon, dash, or even a simple white space. See some examples below:

JIRA-123 - 1h 30m - working on stuff
JIRA-222 - 45m    - developing that amazing feature in the website
DEV-456 2h 10m fixing bugs in my Pull Request
1m updating my worklog in Jira!

You can also omit the Jira # and time spent and add it later.

Current Features

  • Bulk insert worklogs in Jira;
  • Converts your task list from text format to a worklog format Jira understands;
  • Log your time in Jira issues without the need to open Jira;
  • Add, edit and delete worklogs directly from the Chrome Extension;
  • Keep track of how many hours you already spent in the tasks;
  • Supports SAML and Basic Authentication with Jira app token.

Getting Started

Before using it, you need to do two things:

  • Make sure you are logged in to your Jira instance in Chrome. The extension leverages the existing authentication cookie when it is present in the browser;
  • Open the Options page and configure the Jira Hostname, which needs to point to the API services*. For example: https://jira.atlassian.com.

After that, click Test Connection to make sure the extension can reach Jira correctly. If so, click Save and you are good to go.

If by only providing the Jira Hostname the connection fails, you'll need to configure the Basic Authentication with your user and password. Also, depending on the authentication method of the Jira API, you'll also need to provide an app token. If that's the case, please consult your IT department to get one.

*The extension uses the Jira Hostname to build the URL and API calls to the Jira instance like this: https://jira.atlassian.com/rest/api/2/search.

Some Images

Main popup screen

See it in action: Adding worklogs

Built With

Jira Worklog Tool's major implementation was built with vanilla Javascript. Below are the list of libraries used to help building it:

  • Mediator - A light utility class to help implement the Mediator pattern for easy eventing

Contributions

If you find any issues or have ideas for new features, feel free to open an issue in Github, or even contribute with a new Pull Request!

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Development

install dependencies:

npm i

run tests (unit and UI):

npm run tests

UI test playground:

npm run ui-test-playground

Running UI tests in Windows' wsl 2

  • install xvfb with
sudo apt install xvfb
  • install Headless Chrome dependencies (see .circleci/config.yml for reference).

  • run the tests with xvfb-run:

xvfb-run npm run test

jiraworklogtool's People

Contributors

alfeu-cit avatar alfeugds avatar dependabot[bot] avatar leontada avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

jiraworklogtool's Issues

Support multiple Jira instances

As a developer I need to log work on multiple Jira instances by multiple clients/projects.

I would like to configure them all on the tool and have it sync with them by Project ID. The mapping could be configured in the instance config, example:

  • JIRA 1 URL -> syncs PROJ1, PROJ3
  • JIRA 2 URL -> syncs PROJ2, PROJ4

Add GTM to extension to track Jira API Usage

Add GTM container to extension, then configure container to:

  1. use function that intercepts xhr responses (reference)
  2. when readyState == 4, get responseURL from pointer
  3. parse responseURL to new URL(responseURL)
  4. send track event with data:
    • origin
    • pathname

Add support for day time format

The 'Time Spent' column fields don't accept the day format. e.g.:
1d
Change the validator to support it, and add new unit test scenarios to cover the change.

Keyboard shortcuts

Keyboard shortcuts for the following actions:

  • add worklogs from clipboard
  • select worklog date
  • save worklogs

Decimal hours submission

Can you include inserting jira hours in decimal hours like

JIRA-30 - 0.1h -Test entry

Currently, 0.1h is translating into hours like 1h instead of 6 mins.

Thanks in advance.

It is not possible to open the tool, even when user is logged in

Some Jira instances don't return the X-AUSERNAME header in the response anymore, thus breaking the code.
I think it is due to a change in Jira to be compliant with GDPR (reference).

Now we need to consider another response header to link the user with the worklog author.
The x-aaccountid seems to be the best candidate for it.

The logic to link the user should check if any of the headers are present, and just add another validation for the new header x-aaccountid, while preserving the existing link logic.

Work log time is fixed to 06:00 AM

When logging time the work log time is set to 06:00 AM instead of the current timestamp.
Is it possible to change this behavior?

worklog.started = date + 'T06:00:00.075+0000' // TODO: refactor to expected date format

Background: sprints normally do start during the day, not at 06:00 AM, which then, when logging time for the day the sprint started, results in logs not showing up in burndown charts.

if yes, what would you (@alfeugds) suggest?

  • use current timestamp (recalculated in UTC if necessary) in code directly without any frontend input
  • add new field "work log time"
  • add checkbox "log for current timestamp"

Ability to save a worklog without the hours

It would be nice to have the hability to add a worklog even tough you can't send it to Jira with only the Jira Issue and a comment, this way It's easier to remember I was working on that task even tough I don't know how much time I spent on it.

As a user,
I want to save the jira issue and a comment of what I was working on without the hours spent,
So that after I finish the task I can update the hours spent and save it to Jira.

Feature request - Add a button to open up the ticket

Feature request

Description

Rename the "Delete" column to something like actions or create a new one. Add a button next to the delete icon to open the ticket in the browser.

image

Why would it be helpful

This would allow to check this ticket out after you booked some time on this, this would be helpful to quickly access the ticket description.

Screen freezes when JIRA requests return '429 Too Many Requests' error

When the current rate exceeds the maximum rate for JIRA API calls, it returns 429 Too Many Requests error, making the screen to freeze in loading state.

This is due to a missing Promise reject threatment in getDetailedWorklogs function in jira-helper.js

User must receive a meaningful feedback when 429 Too Many Requests HTTP code occurs.

Error when saving two or more worklogs for the same issue

Thanks for the nice plugin.
Error when saving two or more worklogs for the same issue
example)
issue-1 10m planning
issue-1 20m devlop
issue-1 30m test

saving....

result)
It is recorded in jira worklog, but only the last log is recorded for the total time.

img

Cannot connect jira cloud instance

Problem description

I cannot get it to work with my cloud instance, I always get a connection error telling me the URL is not valid.

I'm trying to use this tool because my company is using two different Jira instances with different user accounts ...

The idea was to use this tool to log my time for the second instance while keeping the log-in into the primary instance.

Please give me an advice what could be wrong.

Information about the options set in the plugin

URL: https:///rest/api/2/search
While the Jira URL was set to {instancename}.atlassian.net

Username and password were used.

If I copied the URL to the browser URL I was receiving the JSON data so it seems correct to me.

Enhance login flow for basic authentication

Show user and password fields when authentication fails and username field is saved in options.
Also, give the option to navigate to Options page directly from popup page.
EDIT: make the login process more clear by emphasizing the login cookie usage in Chrome

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.