Git Product home page Git Product logo

vstsextension-activepullrequests's Introduction

Pull Request

VSTSExtension-ActivePullRequests

An Azure DevOps extension to view all active pull requests across all repositories for a team project.

Screenshot

Compiling

This extension can be compiled by running npm run build. This will automatically compile the TypeScript, increment the extension's version number, and package it up.

Contribute

Check out the contribution guidelines if you want to contribute to this project.

License

MIT

Credits

Icon - pull request by Richard Slater from the Noun Project Richard Slater

vstsextension-activepullrequests's People

Contributors

abe-froman avatar dependabot[bot] avatar ipckdodge avatar joelbourbon avatar kyledodge avatar langdonx avatar nshenoy avatar sand-head avatar sandhead 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vstsextension-activepullrequests's Issues

Lost sorting functionality after update to v1.1.1

I use to be able to sort each column by clicking on the header before the update to v1.1.1. This feature seems to have been broken or lost. I have been using this so I could see which open PRs need my attention or are waiting on my feedback again.

I did notice the new search bar could be a replacement for this, however it does not include the "My Vote" column. I know #54 is currently open for fixing the wrong status going in that column, but once fixed I think this would be a nice replacement if the sorting was removed intentionally.

Security Issue on codeql scan

Hello,
In order to use this extension, I need to make sure that it doesn't contain any security alerts or vulnerabilities. To verify it I have performed a codeql scan over this repository and found out a high severity issue Incomplete URL substring sanitization. I am attaching the screenshot of alert below. It would be helpful if this can be fixed.
active_pull_requestdashboard

Thanks,

Filter pull requests with multiple choice

Hi!

Thanks for your work, it is a very nice plugin!
Would it be possible to add multiple choice filtering based on all columns (project is the one i'm most interested in).

Ott

Columns could use some adjustment

After some use of the extension we have found that the width allocated for the Author is rarely sufficient. On the other hand, the width for Repository name is too much and probably the width for Reviewers is too much as well.

I would suggest a new distribution like this:
Author: Before 25% of available space -> Now 35%-ish of available space.
Repository: Before 25% of available space -> Now 15-20% of available space.
Reviewers: Before 33% of available space -> Now 25% of available space.

I'd be happy to provide a PR for this suggestion, if you think it's a good idea.

Feature Request: Upgrade to Azure DevOps API & SDK modules

About the time that VSTS switched to Azure DevOps, they stopped development on vss-web-extension-sdk in favor of both azure-devops-extension-sdk and azure-devops-extension-api. Therefore, the SDK we're using is 8 months out of date, and we should probably upgrade sometime, just in case Microsoft rolls out some new features (or already has).

After today's update (v1.1.1) it stopped working, error in js console

Not showing pull requests, there's an error in js console in browser. TFS is on premise.

image

bundle.js:53 Uncaught (in promise) TFS.WebApi.Exception: 404: Not Found at Object.<anonymous> (http://***:8080/tfs/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.1/assetbyname/dist/bundle.js:53:51961) at http://***:8080/tfs/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.1/assetbyname/dist/bundle.js:53:50486 at Object.next (http://***:8080/tfs/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.1/assetbyname/dist/bundle.js:53:50591) at a (http://***:8080/tfs/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.1/assetbyname/dist/bundle.js:53:49337)

After updating extension to 1.0.10 the page shows "Loading..."

Because we had to change the manifest to include the "vso.build" scope, it caused a certificate update to happen behind the scenes. Unfortunately, users may need to uninstall the extension from their organization and then reinstall it. I apologize for the inconvenience.

Dashboard tile

Would be nice to have a (1ร—1) tile on the dashboard, which shows the number of pull requests. Clicking the tile could navigate to the All Active Pull Requests page.

Extension stopped working after update to 1.1.1

I get the following error in the console:
image

Request response looks like this:
{"$id":"1","innerException":null,"message":"HostAuthorizationNotFound","typeName":"Microsoft.VisualStudio.Services.DelegatedAuthorization.SessionTokenCreateException, Microsoft.VisualStudio.Services.WebApi","typeKey":"SessionTokenCreateException","errorCode":0,"eventId":3000}

It's still working for another tenant. I'm in the process of reinstalling the extension. I'll update the issue if I have more infos.

Extension does not work with OnPremise TFS

Using version 0.2.6

When I open the extension on both IE and Chrome I do not get any pull requests even though I have active pull requests. I see the following error in the console window.

[object Object]
   {
      [functions]: ,
      __proto__: { },
      description: "Value cannot be null.
Parameter name: sessionToken.AppId",
      message: "Value cannot be null.
Parameter name: sessionToken.AppId",
      name: "TFS.WebApi.Exception",
      responseText: "{"$id":"1","innerException":null,"message":"Value cannot be null.\r\nParameter name: sessionToken.AppId","typeName":"System.ArgumentNullException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089","typeKey":"ArgumentNullException","errorCode":0,"eventId":0}",
      serverError: { },
      status: 400
   }

Saving filters?

Hey,

Great widget guys! I stumbled upon an inconvenience after introducing it in new organization. My organization has a lots of repositories in project (around 300).
As a team member I don't care for all of them, rather only for those my team manages ( lets say around 30).
All repositories my team manages have constant prefix. Filtering works great, yet it doesn't include repository name. (Not a problem there is separate filter for that.) It just takes more time to select those I'm interested in. That's fine solution.

What bugs me is fact that I've got to select them again every single time I open widget.
This is why I thought that saving filters would be great or having an option to include repository name in text filter.

What do you think about it ?

Feature Request: Settings Tab to Show/Hide Columns

Add a new settings tab that will have toggle components to turn on/off each column from being displayed to save screen real estate. It looks like devops extensions can store key value pairs as user settings, so storing a flag for each column as a user preference to show/hide.

Toggle Component: https://developer.microsoft.com/en-us/azure-devops/components/toggle
Extension Data Storage: https://docs.microsoft.com/en-us/azure/devops/extend/develop/data-storage?view=azure-devops

It doesn't look like it would take much to do this, I can take a stab at it if it would be merged in

Feature Request: Draft pull request

There is a new feature in VSTS where you can flag a Pull Request as Draft. It is the same as marking a Pull Request title with WIP at the beginning but with this, it actually blocks the pull request in being merged.

Would it be possible to add a little icon or color to identify which PRs are in draft mode?

Feature Request: Display Build Status

It would be nice if you can see the build status of each Active Pull Request (passed, failed, in progress, not run ..), so you can quickly see when the reason that it is not completed is a failed build.

Profile pictures may not load

I've had this problem for a while where, when I'm at work, most of the time profile pictures don't load though they always did from home.

Last night I rebuilt my home PC with new hardware and now profile pictures aren't showing up here.

image

There are two failed network calls, both 404s, the relevant one seems to be:

https://amcdn.msftauth.net/me/profile-images?partner=vsts-social&accountIds=aad:{myemail}&wreply=https://dev.azure.com/{myOrg}/{myProject}/_apps/hub/mimeo-vs-marketplace.mimeo-active-pull-requests.active-pull-requests-extension-hub

Since it seems this plugin hasn't been updated for a couple years I'd not be surprised if some API change on the Azure DevOps side causes this but then I'd be quite surprised that nobody else has raised this. Plus that doesn't explain why it was working yesterday on my old PC.

Any thoughts?

Extension does not work

I installed the extension on our On Premise TFS server, however when I click "All Pull Requests" I get a Active Pull Requests by Mimeo failed to load. error

I have installed version 0.2.4 of the extension. Is there any logs I can look for to try to identify the problem?

TFS Installed on Windows Server 2012 R2
Client is Windows 8 with Internet Explorer 11 browser.

I get the following in the IE Console Window:

SCRIPT1002: Syntax error
File: hub.html, Line: 193, Column: 39

When I open hub.html the code part in question is

                window.setTimeout( () => {
                    prCount = activePullRequests.length;
                    if(prCount === 0) {
                        grid.setDataSource([{
                            id: "",
                            title: "",
                            repo: "",
                            vote: ""
                        }]);
                    } 
                    $("#hub-title").text($("#hub-title").text() + " (" + prCount + " pull requests)");
                }, 5000);

It seems to not like the () => part as the cursor goes there

Only 99 pull requests display

Thank you for creating an all active pull request extension. We have a single large mono-project with many repos, and therefore hundreds of active pull requests. When using the extension, we only see the 99 most recent active pull requests? Is this a purposeful limit, or am I missing something? Maybe a possible solution would be to display a cached 'paged' list of 100, that can be moved through???
ActivePullRequests

Pull request created under same repository does not get reflected in "All Active Pull Requests"

We have below issue :

  1. I have created few PRs for a repository, previously I was able to see all my and teams PR as well under "All Active Pull Requests", but now the list shows all PR`s excluding my PR.
  2. Also I need to visit every repositories "Pull Requests" tabs to see the PRs created by me against the specific repository. It never shows me under "All Active Pull Requests".
  3. The count for all repositories in "All Active Pull Requests" does not match with the list of PRs shown below it.

total pr counts

Feature request: Add Tags to Column Display options

As our team grows, our PR list grows, and it's somewhat difficult to let reviewers know the status of a current PR.

Tags is a great solution for that, but without tags being on the All Repositories screen, you have to end up looking at each one to find the status.

e.g.:

image

image

Doesn't have to be crazy, letting you add tags, just view them.

Feature Request: Support for themes

VSTS added new color themes on the website. Having the bright white background in the plugin tab is clashing with the rest of the UI.

Is it possible to apply part of the selected color theme?

Pull request links not valid for on-premises Azure DevOps Server

The latest version of the extension works great on Azure DevOps Server except for one thing: the URL for pull requests go to hosted Azure DevOps instead of our local on-premises Azure DevOps server. This makes the extension frustratingly unusable. We love the other features, and this is the only thing preventing us from deploying it.

No Scroll Bar

We currently have 78 pull requests open, which does not fit in the page without a scroll bar. There is no scrollbar available, so our only option to see the others is to zoom out or use the dev console to add the "overflow: scroll" styling.

Icon appears low resolution on retina displays

The menu icon shown is low resolution on retina displays. I see right now it's a 16x16 image and the UI seems to use a 16px font size for the other icons (custom font). For retina, the image needs to be at least 32x32 if shown at 16x16. I can submit a PR but am not sure if the image can be enlarged.

Edit: Image attached

Screen Shot 2020-07-11 at 9 50 57 AM

HostAuthorizationNotFound when loading page and specifically when it tries to access {organization}.visualstudio.com/_apis/WebPlatformAuth/SessionToken

I'm seeing the following response in the Chrome developer tools network; the server code is 500; this is returned as the body.

{"$id":"1","innerException":null,"message":"HostAuthorizationNotFound","typeName":"Microsoft.VisualStudio.Services.DelegatedAuthorization.SessionTokenCreateException, Microsoft.VisualStudio.Services.WebApi","typeKey":"SessionTokenCreateException","errorCode":0,"eventId":3000}

Feature request: Create new PR

I can see this feature being useful.
Just a normal create PR button at the top with the latest branch you updated, the same as if you were to go to a normal project's pull request.
image
or even better:
image

Don't see extension after install

I feel a bit thick here, but I've installed this extension but can't seem to find it anywhere clicking through Azure DevOps.

Where can I find it?

Add base and target branches in table

Would you consider adding "Base" and "Target" columns to the table and display the branch names there? There's a lot of room on the screen for additional columns, at least on a desktop in 1920x, which I imagine is a fairly common size.

image

Quite often I find myself using this list primarily and want to check out a branch or two but have to drill into the PR to find the name. It would also let me more quickly catch PRs that aren't going into master (and don't require as much attention since we have our deployments wired up to master merges).

Also, the ID column, assuming it's not fed to you that way by VSTS could even be reduced to just #123 instead of including the words Pull Request on each line.

Being able to select which columns are displayed and the way they are ordered would be ideal, but I imagine that's a lot of work.

Thanks!

New "My Drafts" tab goes to blank page if clicked too quickly

Hey guys!

Thanks for the latest update! It is awesome and beautiful!

One small bug: New "My Drafts" tab goes to blank page if clicked too quickly

Repro steps:

  • When in the extension page
  • Refresh the page
  • Rapidly click on the "My Drafts" tab

Current Result: loads a blank page
Expected Result: Show same skeleton UI than in "Active Pull Requests" tab until loaded

I can take a look if you guys don't have the time ๐Ÿ˜‰

unfortunately, the link under "Pull Request #" doesn't work

In our TFS on premises instance, clicking on the link "Pull Request 123" opens a new tab.
But the opened tab doesn't show up correctly. It is almost empty. Moreover, it can't be used to navigate elsewhere.

When opening the chrome developer tools, I see two messages like:

chrome-extension://jeoacafpbcihiomhlakheieifhpjdfeo/scripts/vendor/port/port.js:30 Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag.
:8080/tfs/_static/tfs/Dev14.M95.4/_scripts/TFS/min/corejs?v=YrJp6kQQNlNj0Ry13Qyzbxc2AlDqoyJIv9ZoZrnvNN81:88 Uncaught SecurityError: Failed to read the 'cookie' property from 'Document': The document is sandboxed and lacks the 'allow-same-origin' flag.

:8080/tfs/_static/tfs/Dev14.M95.4/_scripts/TFS/min/corejs?v=YrJp6kQQNlNj0Ry13Qyzbxc2AlDqoyJIv9ZoZrnvNN81:88 
Uncaught SecurityError: Failed to read the 'cookie' property from 'Document': The document is sandboxed and lacks the 'allow-same-origin' flag.

f I copy the link to the clipboard and paste it in a new, fresh, tab, wverything works fine..

"Pending" comments considered resolved

On the Active Pull Requests page, the comments for a PR shows 14/15 comments:
image

But clicking on the PR itself shows 12/15 comments:
image

This appears to be a matter of "Pending" comments being considered resolved by the Active Pull Requests page, since I currently have 1 active and 2 pending comments.

This appears to be the relevant bit of code:

if (threadStatus !== "1") {

Links to PRs wrong for second project

This extension was working great for us, but recently it stopping correctly. I think the bug I am about to describe was introduced in version 1.6 on December 18, 2019.

Steps to reproduce

  1. Create an organization in Azure DevOps MyOrg called MyOrg.
  2. Create a project called ProjectA.
  3. Create a project called ProjectB.
  4. Create a repository in ProjectB called MyRepo.
  5. Create a PR in MyRepo.
  6. Navigate to the URL for this extension in ProjectB, which is
https://myorg.visualstudio.com/ProjectB/_apps/hub/mimeo-vs-marketplace.mimeo-active-pull-requests.active-pull-requests-extension-hub

Actual result

The actual URL for the PR is

https://myorg.visualstudio.com/MyOrg/ProjectB/_git/MyRepo/pullRequest/1

and no PR data loads (i.e. the menus on top and left load, but the "center" of the screen is just white).

Expected result

The expected URL for the PR is

https://myorg.visualstudio.com/ProjectB/_git/MyRepo/pullRequest/1

The difference is that this URL lacks MyOrg. For this URL, all the PR data loads correctly.

Additional correct URLs

These URLs are not expected but still work correctly.

https://dev.azure.com/MyOrg/ProjectB/_git/MyRepo/pullRequest/1
https://myorg.visualstudio.com/ProjectB/ProjectB/_git/MyRepo/pullRequest/1

I think the first of those might be the actual URL for version 1.5.

Same steps for ProjectA

When doing steps 4 to 6 for ProjectA, the actual URL is

https://myorg.visualstudio.com/MyOrg/ProjectA/_git/MyRepo/pullRequest/1

and all the PR data loads correctly.


I reviewed the code in an attempt to find when and where this change was introduced. I think this is the relevant code.

const parentUrl = new URL(document.referrer);
let hostUrl = `${parentUrl.origin}/${parentUrl.pathname.split('/')[0]}`;
if (!hostUrl.includes(hostContext.name)) {
hostUrl += hostContext.name;
}
this.setState({
hostUrl: hostUrl + (hostUrl.endsWith('/') ? '' : '/') + this.projectName,

My best guess would be to set hostUrl to ${parentUrl.origin}/${this.projectName}. I think that would work for the steps I described above, but I don't know if this would work in all the other current use cases.

Feature Request: View pull requests across all projects.

This is a very nice plugin.
Thanks for sharing.

Any chance it could be extended to show ActivePullRequests not only on all Repos, but also across all projects and their respective repos?

Otherwise a developer working on multiple projects would still need to go through each project to see the PRs.

Thanks

When 0 Pull Requests, Grid Never Finishes Loading

Today the extension in DevOps cloud stopped working when there are 0 PRs. Iโ€™m guessing this was due to the latest update. The screen just shows the loading image but if you inspect devtools there are hundreds of api calls, each returning an empty result. If we have at least 1 PR the extension works fine.

Feature Request: Filter by repositories

It would be nice if we could filter by repository.
Ideally, you'd be presented with a multi-select containing all repositories you have access to.
If the user selects one or more options from the multi-select, the results would be filtered.

A possibility to save the state of the selected values in the multi-select would also be ideal, so that you don't have to reselect those repositories each time you visit the page.

Loading error

Sinds a week or two the page keeps saying: loading...
My team members do not have any problems at this moment.

Is this a common issue?

Incorrect Uri for PR on Azure DevOps when organization name ends with project name

When clicking on any "Active Pull Request" via the extension page, we get redirected to a 404 page of Azure DevOps.

Repro steps:

  1. Navigate to https://dev.azure.com/FooBAR/BAR/_apps/hub/mimeo-vs-marketplace.mimeo-active-pull-requests.active-pull-requests-extension-hub
  2. Click on any active PR. We get redirected over to https://dev.azure.com/FooFooBAR/BAR/_git/myrepo/pullRequest/1

Notice that Foo is there twice. I think this might be caused by #76 since it appeared over the weekend

Not loading on Azure Devops server

I've just installed the extension on a server installation and installation went fine.
I followed the instructions here:

  • To install "All Active Pull Requests" on Azure DevOps Server, perform following steps:
  • Navigate to the Azure DevOps Server Extensions page on your server. (For example, http://someserver/_gallery/manage)
  • Click upload new extension and select the file you have just downloaded.
  • After the extension has successfully uploaded, click Install and select the Team Project Collection to install into.

But no no data is loaded in the UI, I only get this placeholder image:
image

This error from the console might be related

bundle.js:53 Uncaught (in promise) TFS.WebApi.Exception: 404: Not Found
    at Object.<anonymous> (https://devops.inyett.se/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.5/assetbyname/dist/bundle.js:53:53852)
    at https://devops.inyett.se/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.5/assetbyname/dist/bundle.js:53:52377
    at Object.next (https://devops.inyett.se/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.5/assetbyname/dist/bundle.js:53:52482)
    at a (https://devops.inyett.se/_apis/public/gallery/publisher/mimeo-vs-marketplace/extension/mimeo-active-pull-requests/1.1.5/assetbyname/dist/bundle.js:53:51228)

Tell me what's necessary to troubleshoot, or if anything more is necessary from my end.

Hiding title bar when clicking PR from list

The first time a pull request link is clicked from the list, the title bar is hidden and no action occurs. The issue exists when a long list of pull requests are pending (larger than the viewable screen area). I have been able to reproduce this issue on devices with small screens or using a smaller desktop browser window.

The issue seems to be a CSS one where the body of the iframe generated by hub.html is 20px up causing the hub-title to be hidden and for links to be invalid (hit area gets moved as soon you click). I haven't found the exact cause for this yet or I would have submitted a PR but wanted to document the issue here.

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.