Your comments

Also as I previously reported and now confirmed by Martillo
Entering Personal Access Token does not work, I can't see how it would work as it never asks for username, which would be needed if you want to authenticate with Personal Access Token.

Hi Marc,
Here's more details

> This call is not actually sent from SmartGit, but it's an URL which is
passed to your browser. A "Request Too Long" is definitely not expected
here. The URL looks identical for me (client_id is a constant) and it
will finally result in opening the callback URL:

Correct, it turns out that smartgit passing url to browser is running into an issue and concatenating multiple times.
here's how the urldecoded version looks like what is actually passed to the browser.

```
https://app.vssps.visualstudio.com/_signin?realm=app.vssps.visualstudio.com&reply_to=https://app.vssps.visualstudio.com/_signin?realm=app.vssps.visualstudio.com&redirect=1&force=1&context=REDACTED&reply_to=https%3A%2F%2Fapp.vssps.visualstudio.com%2F_signin%3Frealm%3Dapp.vssps.visualstudio.com%26redirect%3D1%26force%3D1%26context%3DRE...
```

if I copy the url shown in the dialog and paste that in the browser, I get a proper login dialog, and when I paste back the Authorization code, the Account field is filled with one of our organizations.

If I repeat the process and this time I manually change the Account to my other organization (same account credentials by the way)
Then Smartgit falls into an infinite loop when doing the REST call to
https://app.vssps.visualstudio.com/_apis/profile/profiles/me
And I have to kill it to get out of it.
Here's the logs portion


```

Sending GET 'https://app.vssps.visualstudio.com/_apis/profile/profiles/me'
3m 5s159 (2021-04-02 16:20:38) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=0'
3m 5s386 (2021-04-02 16:20:38) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=50'
3m 5s626 (2021-04-02 16:20:39) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=100'
3m 5s881 (2021-04-02 16:20:39) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=150'
3m 6s 38 (2021-04-02 16:20:39) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=200'
3m 6s213 (2021-04-02 16:20:39) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=250'
3m 6s439 (2021-04-02 16:20:40) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=300'
3m 6s663 (2021-04-02 16:20:40) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=350'
3m 6s826 (2021-04-02 16:20:40) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=400'
3m 7s 32 (2021-04-02 16:20:40) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=450'

...
7m23s911 (2021-04-02 16:24:57) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=64300'
7m24s 69 (2021-04-02 16:24:57) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=64350'
7m24s229 (2021-04-02 16:24:57) [ThreadPool-6 (smartgit.TM$$Lambda$849/0x0000000100730840)] INFO q.json - Sending GET 'https://dev.azure.com/REDACTED/_apis/git/repositories?api-version=6.1-preview.1&$top=50&$skip=64400'

```

Now if we forget about the second org, and look into the first one that properly got added, I still don't see anywhere any traces of pull request.




Hope this helps.
Thanks

Hi Marc,

> Good question. I guess the one(s) for which you are logged in. Frankly, I
do not yet understand the relationship between users (accounts?) and
organizations.

Here it gets worse, a user logged in can be a member of multiple organizations, I do happen to be part of multiple organizations, with a single login, hence why I asked which organization is picked up.

I think this is very critical in the implementation as the REST APIs are all based on the organization.
I found this stack overflow information on how to get a list of organizations
https://stackoverflow.com/questions/54762368/get-all-organizations-in-azure-devops-using-rest-api

As suggested I downloaded the latest portable, and upgraded to the latest preview
logged out of Azure DevOps
when I attempt to add the Hosting Provider, the app made a rest call (extracted from the logs) to

2m21s129 (2021-04-02 07:39:56) [main] INFO q.browserLauncher - Launching command='["rundll32", "url.dll,FileProtocolHandler", "https://app.vssps.visualstudio.com/oauth2/authorize?client_id=REDACTED&response_type=Assertion&state=nothing&scope=vso.code_write&redirect_uri=https://www.syntevo.com/smartgit/azuredevops-callback"]' in 'C:\Users\hrant'


And I got this on the browser

It doesn't look like the logs are capturing the request headers.


Thanks


@Martillo make sure you check for updates and installed build is 17068, from the looks of the title bar yours is going to expire on April 29th, so it was probably last updated on March 29th which wouldn't include that build

As for our case.

I found few issues with Hosting providers Azure DevOps that are blocking.
1- If enter Personal Access Token as it alludes to that I can, it fails, and yes the token is valid.

What does the Account field represent? is it a label to name the account or is it actually my account email?
Or is it the organization name?
I tried all possibilities and all failed.

If I try to Generate Token instead, I get redirected to a browser and get an Authorization Code? however this is not clear as to what organization it is using?
We have multiple Azure DevOps Organizations.

If I enter one of the Organization names in the Account section, The SmartGit gets stuck and the only way out of it is to force kill it through task manager

@Marc, this is promising, but
Same here, I'm running 21.1 preview 3 #17068, I don't see anything in the menus or elsewhere that are PR related.

No,
As the original request posted 4 years ago we stated that our main need is to be able to do Pull Requests similar to how it is possible with Github and Bitbucket.
It is sad that after 4 years and this is still not available, it's not like Azure DevOps is unpopular and rarely used.

Of course we couldn't wait around for SmartGit to deliver on this, so we wrote our own external integration, that utilizes DevOps APIs and Jira APIs to create the necessary PR and link to a Jira Ticket, This is still a half baked solution and far from a seamless integration that a tool like SmartGit should provide.