You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current Server Plugin version (2.x) will be maintained to support TFS.
7
9
The Web Service flavor will be discontinued in favor of this (its deployment and configuration was too complex for most users).
8
10
9
-
The main scenario for Aggregator (3.x) is supporting VSTS and the cloud scenario. It will work for TFS as long as it is reachable from Internet.
11
+
The main scenario for Aggregator (3.x) is supporting Azure DevOps and the cloud scenario. It will work for TFS as long as it is reachable from Internet.
10
12
11
-
> **This is an early version (alpha)**: we might change verbs and rule language before the final release!
13
+
> **This is an early version (beta)**: we might change verbs and rule language before the final release!
14
+
*Note*: The documentation is limited to this page and the content of the `doc` folder.
12
15
13
16
## Major features
14
17
15
-
- use of new REST API
18
+
- use of new Azure DevOps REST API
16
19
- simple deployment via CLI tool
17
-
-similar model for Rules
20
+
-Rule object model similar to v2
18
21
19
22
## Planned features
20
23
21
24
- Support for Deployment Slots for blue/green-style deployments
22
25
- OAuth support to avoid maintain access tokens
23
-
- Additional VSTS events
24
-
- Additional VSTS objects
26
+
- Additional Azure DevOps events
27
+
- Additional Azure DevOps objects
25
28
26
29
## How it works
27
30
28
31
An Aggregator Instance is an Azure Function Application in its own Resource Group,
29
-
sharing the same VSTS credential. You can have only one Application per Resource Group.
32
+
sharing the same Azure DevOps credential. You can have only one Application per Resource Group.
30
33
If the Resource Group does not exists, Aggregator will try to create it.
31
34
*Note*: The Instance name must be **unique** amongst all Aggregator Instances in Azure!
32
35
@@ -36,28 +39,28 @@ To work, it uses an Aggregator Runtime.
36
39
Aggregator checks its latest GitHub Release to ensure that Aggregator Runtime is up-to-date before uploading the function.
37
40
*Note*: We use [Azure Functions Runtime](https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions) 2.0 for C# which is still in Preview.
38
41
39
-
An Aggregator Mapping is a VSTS Service Hook for a specific work item event that invokes an Aggregator Rule i.e. the Azure Function hosting the Rule code. VSTS saves the Azure Function Key in the Service Hook configuration.
42
+
An Aggregator Mapping is a Azure DevOps Service Hook for a specific work item event that invokes an Aggregator Rule i.e. the Azure Function hosting the Rule code. Azure DevOps saves the Azure Function Key in the Service Hook configuration.
40
43
41
-
You can deploy the same Rule in many Instances or map the same VSTS event to many Rules: it is up how to organize.
44
+
You can deploy the same Rule in many Instances or map the same Azure DevOps event to many Rules: it is up to you choosing the best way to organize.
42
45
43
46
## Authentication
44
47
45
48
You must instruct Aggregator which credential to use.
46
-
To do this, run the `login.azure` and `login.vsts` commands.
49
+
To do this, run the `login.azure` and `login.ado` commands.
47
50
48
-
To create the credentials, you need an Azure Service Principal and a VSTS Personal Access Token.
51
+
To create the credentials, you need an Azure Service Principal and a Azure DevOps Personal Access Token.
49
52
50
-
These documents will guide you
53
+
These documents will guide you in creating the credentials
51
54
*[Use portal to create an Azure Active Directory application and service principal that can access resources](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal)
52
-
*[Create personal access tokens to authenticate access](https://docs.microsoft.com/en-us/vsts/organizations/accounts/use-personal-access-tokens-to-authenticate?view=vsts#create-personal-access-tokens-to-authenticate-access).
55
+
*[Create personal access tokens to authenticate access](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate).
53
56
54
57
Logon credentials are stored locally and expire after 2 hours.
55
58
56
-
The PAT is stored in the Azure Function settings: **whoever has access to the Resource Group can read it!**
59
+
The PAT is also stored in the Azure Function settings: **whoever has access to the Resource Group can read it!**
57
60
58
-
The Service Principal must have Contributor permission to the Azure Subscription.
59
-
In alternative, pre-create the `aggregator-`Resource Group in Azure and give the service account Contributor permission to the Resource Group.
60
-
The `instance` parameter prefixes `aggregator-` to identify the Resource Group.
61
+
The Service Principal must have Contributor permission to the Azure Subscription or, in alternative, pre-create the Resource Group in Azure and give the service account Contributor permission to the Resource Group.
62
+

63
+
If you go this route, remember add the `--resourceGroup` to all commands requiring an instance, otherwise the `instance` parameter adds an `aggregator-`prefixe to find the Resource Group.
In Visual Studio, `src\aggregator-function\Directory.Build.targets` will automatically package and copy the runtime needed by CLI.
10
+
You might have to change the version number in `src\aggregator-function\aggregator-manifest.ini` to force your local version.
11
+
12
+
You can also use the *Pack* right-click command on the `aggregator-function` project and make sure to copy the created zip into your CLI directory so it uploads the correct one when creating an instance.
13
+
14
+
## CLI
15
+
Set `aggregator-cli` as Start-up project
16
+
Use the Visual Studio Project properties to set the Command line arguments
17
+
18
+
## Runtime
19
+
Set `aggregator-function` as Start-up project
20
+
Use **Postman** or similar tool to send the request at http://localhost:7071/api/name_of_rule
21
+
22
+
# Integration tests
23
+
`git update-index --assume-unchanged src/integrationtests-cli/logon-data.json` and edit the file content
It move a parent work item to Closed state, if all children are closed.
15
-
The major difference is the navigation: `Parent` and `Children` properties do not returns work items but relation. You have to explicitly query VSTS to retrieve the referenced work items.
15
+
The major difference is the navigation: `Parent` and `Children` properties do not returns work items but relation. You have to explicitly query Azure DevOps to retrieve the referenced work items.
16
16
17
17
```
18
18
string message = "";
19
-
if (self.Parent != null)
19
+
var parent = self.Parent;
20
+
if (parent != null)
20
21
{
21
-
var parent = store.GetWorkItem(self.Parent);
22
-
var children = store.GetWorkItems(parent.Children);
0 commit comments