Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support issues for Azure platform #9592

Open
zharinov opened this issue Apr 17, 2021 · 29 comments
Open

Support issues for Azure platform #9592

zharinov opened this issue Apr 17, 2021 · 29 comments
Labels
platform:azure Azure DevOps platform priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others type:feature Feature (new functionality)

Comments

@zharinov
Copy link
Collaborator

zharinov commented Apr 17, 2021

What would you like Renovate to be able to do?

Renovate should support issues on azure devops. That way dependency dashborad and other config issues can be created by renovate.

Did you already have any implementation ideas?

@zharinov zharinov added priority-5-triage status:requirements Full requirements are not yet known, so implementation should not be started type:feature Feature (new functionality) platform:azure Azure DevOps platform labels Apr 17, 2021
@HonkingGoose HonkingGoose added priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others and removed priority-5-triage labels Apr 28, 2021
@viceice
Copy link
Member

viceice commented Jul 6, 2021

These functions need to be implemented:

/* istanbul ignore next */
export function findIssue(): Promise<Issue | null> {
logger.warn(`findIssue() is not implemented`);
return null;
}
/* istanbul ignore next */
export function ensureIssue(): Promise<EnsureIssueResult | null> {
logger.warn(`ensureIssue() is not implemented`);
return Promise.resolve(null);
}
/* istanbul ignore next */
export function ensureIssueClosing(): Promise<void> {
return Promise.resolve();
}
/* istanbul ignore next */
export function getIssueList(): Promise<Issue[]> {
logger.debug(`getIssueList()`);
// TODO: Needs implementation (#9592)
return Promise.resolve([]);
}

@viceice viceice changed the title Implement "getIssueList" for Azure platform Support issues for Azure platform Jul 6, 2021
@fmustapha
Copy link

Hello, any updates on this. I am getting the same warning in Azure Devops. The pipeline built successfully but I do not see any PRs created.

@rarkins
Copy link
Collaborator

rarkins commented Apr 2, 2022

@JamieMagee do you think the dependency dashboard would make sense as a work item?

@JamieMagee
Copy link
Contributor

I looked into this before and Azure DevOps is almost too configurable for this.

To give you an idea, Azure DevOps comes pre-configured with four processes1. However, this is just a starting point and you can completely customize all your work items and hierarchy. This also includes mandatory fields. In which case, what should they be? Of course we can query for a list of work item types, choose one, query for required work item fields, and set them randomly, but the resulting work item might not make much sense? Or might pop up in a query where it's not supposed to. And trigger some other processes.

All of the above is why I implemented azureWorkItemId instead of asking Renovate to create work items. It's easier for users to give us an existing work item ID that is pre-configured to meet their workflow.

As for dependency dashboards, I also investigated that. Azure DevOps does support rendering markdown and HTML in a work item description. But the checkboxes aren't interactive. That makes the dependency dashboard read-only, and not useful IMO.

Footnotes

  1. https://docs.microsoft.com/en-us/azure/devops/boards/work-items/guidance/choose-process?view=azure-devops&tabs=basic-process

@rarkins rarkins added status:blocked Issue is blocked by another issue or external requirement and removed status:requirements Full requirements are not yet known, so implementation should not be started labels Apr 3, 2022
@ecraig12345
Copy link
Contributor

ecraig12345 commented May 25, 2022

Would it be possible to add a dependencyDashboardAzureWorkItemId or something like that? Basically the user manually creates an appropriate work item, then Renovate edits the description.

@rarkins
Copy link
Collaborator

rarkins commented May 25, 2022

We could definitely attempt that idea, but I assume keeping in mind that the checkboxes won't be possible so we'd need to adjust our markdown a bit to accommodate.

@JamieMagee
Copy link
Contributor

This might also make more sense, even as a read-only dashboard, with the recent changes to include all detected dependencies.

@ecraig12345
Copy link
Contributor

A read-only dashboard would be better than nothing, but being able to use the dashboard to take actions is a big part of the appeal. Even if I had to manually edit the markdown to "check" checkboxes, that might still be useful.

@rarkins
Copy link
Collaborator

rarkins commented May 25, 2022

So checkboxes display ok, the only problem is that they're not interactive?

@ecraig12345
Copy link
Contributor

ecraig12345 commented May 25, 2022

I had to go try it out since I haven't actually used Azure DevOps work items in awhile (my team primarily works on github, but I'm helping set up Renovate for some ADO repos).

It looks like the "Description" field is displayed with a rich text editor and stored as HTML, not markdown. (Probably the same for other multi-line text fields.) It's possible to save markdown text into the field using the API, but it will display as plain text rather than being nicely formatted...which might be sort of usable, but not great.

In theory Renovate could also render the markdown into HTML and save that into the field. That would be a decent approach for a read-only dashboard, but it wouldn't help with checkboxes: if you put an <input type="checkbox"> in the HTML, it will render, but checking it doesn't actually modify the underlying HTML.

(There's an extension that fakes markdown support in work item fields, but what that actually does is convert to HTML as you type and save a ton of CSS and HTML in the field.)

@Nisden
Copy link

Nisden commented May 25, 2022

Just injecting another idea here, would it be possible to use a "dummy" pull request instead of work items?
I just noticed that pull requests in Azure DevOps actually supports markdown with checkbox'es (And it saves the changes)

@rarkins
Copy link
Collaborator

rarkins commented May 26, 2022

@ecraig12345 I think that converting from markdown to html is something we could add as part of our azure-specific code for ensureIssue()

@Nisden that's an interesting idea! @JamieMagee wdyt?

@agilenut
Copy link

agilenut commented Jun 3, 2022

Just another idea... would it be possible to use the Azure DevOps wiki for the dashboard? It supports a task list.

@JamieMagee
Copy link
Contributor

The wiki is a git repository behind the scenes, so it should be possible.

@danielmertens
Copy link

Is there an update on this item? I would like to have this functionality in Azure Devops.
If not, I could see if I can give it a go.

@rarkins rarkins added status:requirements Full requirements are not yet known, so implementation should not be started and removed status:blocked Issue is blocked by another issue or external requirement labels Feb 1, 2023
@rarkins
Copy link
Collaborator

rarkins commented Feb 1, 2023

@danielmertens a PR for this would be very welcome! I've left this as status:requirements because it sounds like there might be some requirements gathering or decision making you find along the way, but it is OK to start.

BTW I've also sent you an invite to our contributor-only Slack channel in case you would like to join to discuss

@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@renovatebot renovatebot deleted a comment from 3rdigen Mar 31, 2023
@rikhal

This comment was marked as off-topic.

@rarkins

This comment was marked as off-topic.

@rikhal

This comment was marked as off-topic.

@rarkins

This comment was marked as off-topic.

@rikhal

This comment was marked as off-topic.

@rarkins

This comment was marked as off-topic.

@waszakCeneo
Copy link

What would be good if this was also implemented "Create new work item for each PR "
From comments in that PR it is said to scope this in this issue.

#15876

I think what could also help is make task on PR creation or after. So people could just do it on it own.

@sheldonhull
Copy link

What would be good if this was also implemented "Create new work item for each PR " From comments in that PR it is said to scope this in this issue.

#15876

I think what could also help is make task on PR creation or after. So people could just do it on it own.

Just going to mention that Azure DevOps Boards is a pretty big challenge and personally I wouldn't find much value in it as a long-term Azure Repos + Renovate user. In the multiple companies I've worked at there tends to be customization and required fields & rules in this that would be difficult to handle. This is far different than github issues which are very unrestricted and freeform.

I've not yet worked at any place that used vanilla backlog type settings.

The required fields can actually block the automatic resolution of a work-item by merging the PR so it becomes another things to go track and manually edit, and no one would know without trying to manual edit and transition the file. There's additionally rule validation logic that is a UI for building conditional rules.

The pull request itself is the most important piece to me.
The dependency dashboard linking to an existing long-lived item is satisfactory.

@rarkins rarkins removed the status:requirements Full requirements are not yet known, so implementation should not be started label Oct 1, 2023
@black-snow

This comment was marked as spam.

@gioce90

This comment was marked as off-topic.

@gioce90
Copy link

gioce90 commented Apr 11, 2024

So in this discussion I see that some of you consider Azure devops's Work items not a good choice because there is a rich html editor that does not supports checkboxes.
There is a Feature request on MS dev community to embrace Markdown. Upvotes if you want.
Ultimately MS introduced markdown in PR's Description and Comments area. Other places who uses MD are reported here

What about the idea of using Azure DevOps wiki? There are two kind of: project wiki and code wiki (the last one have a git repository behind the scenes).

@RolfMoleman
Copy link

If you’re proposing to use wilis why not have a common renovate directory of some sort that gets mounted as a code based wiki from the relevant repo?

That shouldn’t be too complicated via the rest apis

@rbev
Copy link

rbev commented May 21, 2024

What about the idea of using Azure DevOps wiki? There are two kind of: project wiki and code wiki (the last one have a git repository behind the scenes).

In fact the project wiki is ALSO a git repository, it just isn't visible directly.
It's path/name is predictable but you can also see the repo URL if you query the api

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
platform:azure Azure DevOps platform priority-3-medium Default priority, "should be done" but isn't prioritised ahead of others type:feature Feature (new functionality)
Projects
None yet
Development

No branches or pull requests