Azure Devops Assignee Broken

Originally asked by C M on 12 May 2021 (original question)


I’m trying to integrate JIRA and Azure DevOps to sync items. Most of this works, except assignee.

Assignee does work from Azure DevOps -> JIRA.

It doesn’t work from JIRA -> AzureDevOps.

The call to get the user is always null, for users that exist too.

def user = nodeHelper.getUserByEmail(replica.assignee.email)

The replica.assignee.email is set to a correct email address.

“user” is always null.

I’ve seen in some docs that this might be because of a permission issue; but not where I should fix said permission issue.


Answer by Daniel Carvajal on 12 May 2021

Hi Cameron

There 2 reasons why the method would return a ‘null’ value:

  • the user email address is not found
  • the Exalate user has no ‘Browse Users’ permissions

By Exalate user we refer to the proxy user that Exalate uses to make updates, more information here: https://docs.idalko.com/exalate/x/HIA7

For the method to work on Azure DevOps, you need to make sure that the user is part of the team that has access to the Azure DevOps project, so you must verify the user’s permission there.

Please verify this and let me know if it works.

Kind regards,

Daniel


Comments:

C M commented on 13 May 2021

Hey Daniel,

The users I am testing definitely have access to the project as I can add them manually to work items (tasks, user stories, etc) with no problem. It’s only when trying to the user with the Exalate script that it doesn’t work.

I’ve seen the docs about the Proxy User; but I don’t recall setting one up. Where should I look to see the Proxy User to confirm they have the permissions they need ?

Thanks,

Cameron

Daniel Carvajal commented on 14 May 2021

Hi Cameron

The instructions on setup and verification are here: Azure DevOps and Jira on-premise

Kind regards,

Daniel

C M commented on 19 May 2021

Hey,

That’s almost the same content before about what a proxy user “is” but not answering my question.

I found where to update the PAT through (General Settings → Configure). I’ve created a new PAT with full permissions for testing with my account. My account is a member of the needed team of “Project Collection Administrator”.

So both conditions should be met :

  1. Proxy User is a member of “Project Collection Administrator”
  2. Proxy User PAT has work item manage and team reading permissions (it has all permissions atm for the sake of testing)

Calling:

def user = nodeHelper.getUserByEmail(replica.assignee.email)

debug.error("User is: " + user)

For users that do exist in our system (my email for example) this is still not working.
The error print statement is always “User is: null”

Anywhere I should check ? Any solutions ?

Francis Martens (Exalate) commented on 21 May 2021

Hi C M

Make sure that the email parameter in the lookup function is properly capitalised.
(we’ve seen problems there) and that the user you are looking up is part of the project team.

I did a small test - but the functionality does work when all conditions are met