AzFunc4DevOps.AzureDevOps
1.0.0
dotnet add package AzFunc4DevOps.AzureDevOps --version 1.0.0
NuGet\Install-Package AzFunc4DevOps.AzureDevOps -Version 1.0.0
<PackageReference Include="AzFunc4DevOps.AzureDevOps" Version="1.0.0" />
paket add AzFunc4DevOps.AzureDevOps --version 1.0.0
#r "nuget: AzFunc4DevOps.AzureDevOps, 1.0.0"
// Install AzFunc4DevOps.AzureDevOps as a Cake Addin #addin nuget:?package=AzFunc4DevOps.AzureDevOps&version=1.0.0 // Install AzFunc4DevOps.AzureDevOps as a Cake Tool #tool nuget:?package=AzFunc4DevOps.AzureDevOps&version=1.0.0
AzFunc4DevOps
A set of Azure DevOps Triggers and Bindings for Azure Functions. Leverages Azure Functions platform to simplify integration, automation, import/export and data synchronization scenarios for Azure DevOps.
How to use
As a prerequisite, you will need Azure Functions Core Tools installed on your devbox.
1. Create a local folder, name it e.g. AzFunc4DevOpsTest
and initialize an Azure Functions .NET project in it:
func init --worker-runtime dotnet
2. Install AzFunc4DevOps.AzureDevOps NuGet package:
dotnet add package AzFunc4DevOps.AzureDevOps --prerelease
3. Open the folder in Visual Studio Code:
code .
Alternatively open the project in Visual Studio or any other IDE of your choice.
4. In local.settings.json
file configure the following required settings:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"AzureWebJobsStorage": "my-azure-storage-connection-string",
"AZFUNC4DEVOPS_AZURE_DEVOPS_ORG_URL": "https://dev.azure.com/my-company-name",
"AZFUNC4DEVOPS_AZURE_DEVOPS_PAT": "my-azure-devops-personal-access-token"
}
}
AzureWebJobsStorage
needs to be configured, because AzFunc4DevOps internally uses Azure Durable Functions, which require a storage. It's OK to use Azurite for local development.
AZFUNC4DEVOPS_AZURE_DEVOPS_ORG_URL
is your Azure DevOps organization's full URL. E.g. https://dev.azure.com/my-company-name
.
AZFUNC4DEVOPS_AZURE_DEVOPS_PAT
is your Azure DevOps Personal Access Token. Create one in Azure DevOps portal. Alternatively use KeeShepherd tool for creating and safely handling it.
NOTE: the PAT needs to be given all relevant scopes. E.g. if your Function is going to read/write Work Items, then vso.work_write
will be needed.
5. Start adding Functions that use AzFunc4DevOps triggers and bindings.
E.g. the following Function adds [Critical]
title prefix to a bug, once its Severity
field changes to 1 - Critical
:
public static class AddCriticalToBugTitle
{
[FunctionName(nameof(AddCriticalToBugTitle))]
[return: WorkItem(Project = "MyProjectName")]
public static WorkItemProxy Run
(
[WorkItemChangedTrigger
(
Project = "MyProjectName",
WiqlQueryWhereClause = "[System.WorkItemType] = 'Bug'",
FieldName = "Microsoft.VSTS.Common.Severity",
ToValue = "1 - Critical"
)]
WorkItemChange change
)
{
var item = change.NewVersion;
if (!item.Title.StartsWith("[Critical]"))
{
item.Title = "[Critical] " + item.Title;
}
return item;
}
}
6. Run your Function locally:
func start
Samples
You can find more sample Functions in the samples folder.
Reference
See the documentation in our Wiki.
Contributing
Is very much welcomed.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Azure.WebJobs (>= 3.0.33)
- Microsoft.Azure.WebJobs.Extensions (>= 4.0.1)
- Microsoft.Azure.WebJobs.Extensions.DurableTask (>= 2.8.1)
- Microsoft.Azure.WebJobs.Extensions.Http (>= 3.0.2)
- Microsoft.TeamFoundationServer.Client (>= 16.170.0)
- Microsoft.VisualStudio.Services.Release.Client (>= 16.170.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 402 | 12/8/2022 |
0.0.6-preview | 185 | 11/6/2022 |