Giter VIP home page Giter VIP logo

bugzilla-github-extension's Introduction

Build Status

bugzilla-github-extension

This browser extension integrates Bugzilla and GitHub to make your life easier. It is a work in progress, so feel free to contribute!

Supported Browsers

  • Chrome
  • Firefox

Features

Bugzilla

  • If GitHub Pull Request URL is populated with the pull request's URL, then a link will be added to the bug's title
  • There is a button for marking selected bugs as duplicates when changing several bugs at once
TODOs:
  • Open to suggestions... add an issue!

GitHub

  • If the repository is associated with a Bugzilla product:
    • The Product will be listed under the repository name
    • There will be buttons to jump to Bugzilla lists of unresolved or resolved bugs
    • There will be buttons to jump to Bugzilla lists of bugs in milestones
    • Ability to choose Bugzilla milestones when adding/editing GitHub milestones
  • If the pull request's title includes the bug number (ex: 83513, [83513], Bug 83513, Bug83513):
    • Bug number in title will be a link to the bug
    • Ability to update Bugzilla summary field when editing pull request title
    • Bugzilla section added to side listing some bug details that you can configure
    • Comments will be sent to Bugzilla along with the Hours Worked entered in a new input added next to the comment buttons
      • This includes line comments, though they do not have an Hours Worked field
      • Have the option of setting but to RESOLVED FIXED when making a pull request comment
    • When creating a pull request, you have the option to:
      • Update the GitHub Pull Request URL on the bug in Bugzilla
      • Send the comment to Bugzilla
    • When merging a pull request, you have the option to:
      • Update a Code Status field in Bugzilla to "Merged to master/trunk" or "Merged to parent branch" or something similar based on your configuration
      • Update the bug to RESOLVED TESTED
    • Labels are pushed to the GitHub Labels field on the bug
  • If the release's comments include bug numbers (ex: 83513, [83513], Bug 83513, Bug83513):
    • Have the option of setting a Code Status field in Bugzilla to "In Staging" or "In Production" or something similar based on your configuration
    • Have the option of updating a Release field in Bugzilla
TODOs:
  • Open to suggestions... add an issue!

Install

Chrome Web Store

https://chrome.google.com/webstore/detail/bugzilla-github-extension/ofkjoeocpbkpamfhbfmgglkhhincgbdj

Firefox Add-ons

https://addons.mozilla.org/en-US/firefox/addon/bugzilla-github-extension-ff/

Local Install

Chrome

Here's how you load an extension in Chrome when developing, taken from https://developer.chrome.com/extensions/getstarted#unpacked:

Extensions that you download from the Chrome Web Store are packaged up as .crx files, which is great for distribution, but not so great for development. Recognizing this, Chrome gives you a quick way of loading up your working directory for testing. Let's do that now.

  1. Visit chrome://extensions in your browser (or open up the Chrome menu by clicking the icon to the far right of the Omnibox: The menu's icon is three horizontal bars. and select Extensions under the Tools menu to get to the same place).

  2. Ensure that the Developer mode checkbox in the top right-hand corner is checked.

  3. Click Load unpacked extension… to pop up a file-selection dialog.

  4. Navigate to the directory in which your extension files live, and select it.

Alternatively, you can drag and drop the directory where your extension files live onto chrome://extensions in your browser to load it.

If the extension is valid, it'll be loaded up and active right away! If it's invalid, an error message will be displayed at the top of the page. Correct the error, and try again.

Firefox

Firefox is a little more complicated. In order for the sync storage to work, you need to have an applications key in the manifest.json file, with an email address as the value for "gecko". Something like this:

"applications": {
  "gecko": {
    "id": "[email protected]"
  }
}

Follow the instructions on this site for getting it installed locally: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension

Open "about:debugging" in Firefox, click "Load Temporary Add-on" and select any file in your extension's directory

bugzilla-github-extension's People

Contributors

bmelikant avatar jtl3d avatar lcao1602 avatar sjmatta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

lramirez925

bugzilla-github-extension's Issues

jQuery no longer a dependency?

Looks like a recent GitHub update has removed github/jquery from the dependencies, meaning our code breaks. Going to have to dig into this, but my main concern is capturing PJAX events.

Labels do not sync when creating pull request

Labels sync when editing on an existing pull request, but when adding a pull request with labels predefined, the bug is not getting updated.

Should make it so when the pull request is created, the labels are synced. May be easiest to do this as part of the code that syncs the pull request link field.

GitHub Labels should get pushed to Bugzilla

Add a new field to Buzilla called Labels. When we push comments to Bugzilla we also should push the Labels as a comma delimited list. Sure Labels kind of match up with Status in Bugzilla, but there are 'statuses' we are missing, such as Help Needed, and WIP the list goes on....

Add close bugs button to Edit Release

Currently when I make a release there is an option to close the bugs in Bugzilla. However, I don't want to close the bug UNTIL the release is in production. Therefore the close bugs in Bugzilla option should always be available as an option.

Bugzilla Milestones should show up in GitHub as options under Milestone

Bugzilla Milestones should show up in GitHub as options under Milestone.

Why can't we pull the Milestone from the bugzilla bug into GitHub? Else, can query bugzilla for available milestones based upon the github repository? It is starting to sound like we may need a mapping API between the two more and more.

Inject Bugzilla comments into Git Hub conversation

When viewing a Pull Request, the first tab is Conversation and boy does that look great. Now click on Commits. We lost our link to Bugzilla at the top (I think this is a bug, if I come in from Files Changed the link works). Can we pull comments from Bugzilla and inject them in here? Do we want to? Files Changed, looks pretty good but can we add any additional knowledge here?

One thing I'd love to do is pull in requirements from Bugzilla and map them code in GitHub. I don't have a good strategy yet but this is something I'd love to brainstorm.

Installation warning

Received the following warning when installing the latest version (happens during a reload as well as during initial installation):

There were warnings when trying to install this extension: Unrecognized manifest key 'applications'.

Despite the warning everything seems to be working ok, so maybe this is a low priority item.

2016-05-09 09_33_36-extensions

Use branch title as a hint to the Bugzilla bug number

I can take this on in a couple of weeks when I have time if @jtl3d doesn't get to it first.

In CWOT, I use the format "bug-95484" for my branch names. Adding the bracketed bug number to the pull request title seems redundant in that case. I suggest we use the branch name as an alternative hint for the bug association.

Upon creating a release in Git Hub, autopopulate comment with bugs

Upon creating a release in Git Hub it would be nice to change the code status to 'In Staging' in Bugzilla for any bugs listed in the comments.

I've been listing the pull requests in the release comments with title, so the bug # will be in the title as well, or gives you the option to change them en-mass.

Allow user to change QA assignee in Bugzilla.

We could implement this in numerous places, but basically where I'd like to implement this is when I create a release, I'd like the option to update all the bugs in the release to use a new QA contact in Bugzilla. However, this is probably something we will want in the pull request as an option too.

Introduce options

To open this up to the world, we need to remove some hard-coded things and make it more configurable.

Add gradle for building

@sjmatta can hopefully knock this out quickly.

I want to add a gradle build file so that we can build the .zip archive needed to upload to the web store.

Everything except these files would be added to the archive:

  • .gitignore
  • README.md
  • images/store
  • All the gradle stuff

Would want to add the resulting .zip to the .gitignore file, probably.

Get extension to work in Firefox

Firefox's WebExtension API should mean the plugin will just work in FF. I tried it, and it does partially work, but any call to Bugzilla is tripping a cross domain policy error. I don't know why, I've tried adding the appropriate permissions, but in Chrome the content-scripts run in their own CSP so you can do XSS just fine... maybe a future update will work, or maybe we should move the calls from the content-script to the background page? Either way, it's so close to working in FF!

Request for login is repeated and does not have a close button.

Tried doing a few actions and the plugin asked me to login multiple times at the top. ( I did not see it originally)

This issue is that it should only display once even if I try multiple actions without loggin in or at the very least give me a way to remove the other login requests without having to refresh the page.

capture

Upon link navigation the bug is not being updated. Time being reported to the wrong bug.

I use a lot of github internal linking to other pull requests especially to and from epics. In error when I added time to my bug it was added to the epic. Here is how the reproduction script.

  1. Navigatted to this pull request https://github.com/ditinc/ia-scap/pull/196
  2. Once it loaded I saw the quark was correct in the extra data we inject.
  3. Then I clicked the link to pull request 234 which is three lines from the bottom in the first comment.
  4. Looking at the extra information we inject the quark has not changed correctly and is still looking at the epic
  5. Add time to this quark
  6. Navigate to the epic in quantum
    • you will see the time you just added was added to the epic not the quark.

Comment is sent even if hours input validation fails

At least for the Review form, if you enter .1 as the hours worked and click submit, you'll get a comment in Bugzilla created even though HTML5 form validation prevents the review from being submitted in GitHub.

Create pull request button becomes disabled when switching base branch

I just noticed this yesterday, and it's been happening every time I open a pull request and switch the base branch. As soon as you change the base branch to something other than master, the Create pull request button becomes disabled. It's only until you refresh the page that it becomes enabled again.

P.S. The Submit new issue button had the same problem when I clicked to create an Issue. It became enabled when I refreshed the page.

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.