n8n-nodes-azuredevops-advanced 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +595 -0
  2. package/package.json +1 -1
package/README.md ADDED
@@ -0,0 +1,595 @@
1
+ # n8n-nodes-azuredevops-advanced
2
+
3
+ [![npm version](https://img.shields.io/npm/v/n8n-nodes-azuredevops-advanced.svg)](https://www.npmjs.com/package/n8n-nodes-azuredevops-advanced)
4
+ [![npm downloads](https://img.shields.io/npm/dm/n8n-nodes-azuredevops-advanced.svg)](https://www.npmjs.com/package/n8n-nodes-azuredevops-advanced)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![n8n community node](https://img.shields.io/badge/n8n-community%20node-orange)](https://docs.n8n.io/integrations/community-nodes/)
7
+
8
+ A comprehensive n8n community node package for Azure DevOps integration. Manage Git, Pipelines, Work Items, Pull Requests, Test Plans, Boards, Wiki, Service Hooks, TFVC, and Artifacts — all from a single node.
9
+
10
+ ---
11
+
12
+ ## Table of Contents
13
+
14
+ - [Features](#features)
15
+ - [Installation](#installation)
16
+ - [Credential Configuration](#credential-configuration)
17
+ - [Resources & Operations](#resources--operations)
18
+ - [Git Repositories](#1-git-repositories)
19
+ - [Pipeline (CI/CD)](#2-pipeline-cicd)
20
+ - [Work Items](#3-work-items)
21
+ - [Pull Requests](#4-pull-requests)
22
+ - [Test Plans](#5-test-plans)
23
+ - [Boards](#6-boards)
24
+ - [Wiki](#7-wiki)
25
+ - [Service Hooks](#8-service-hooks)
26
+ - [TFVC](#9-tfvc)
27
+ - [Artifacts](#10-artifacts)
28
+ - [Usage Examples](#usage-examples)
29
+ - [Requirements](#requirements)
30
+ - [Contributing](#contributing)
31
+ - [License](#license)
32
+
33
+ ---
34
+
35
+ ## Features
36
+
37
+ - **10 Azure DevOps resources** managed through a single node
38
+ - **40+ operations** for comprehensive automation
39
+ - Azure DevOps REST API **v7.1** support
40
+ - Secure authentication via Personal Access Token (PAT)
41
+ - Full support for n8n error handling and **continueOnFail**
42
+ - Built with TypeScript for complete type safety
43
+
44
+ ### Supported Resources
45
+
46
+ | Resource | Operations | Description |
47
+ |----------|-----------|-------------|
48
+ | Git Repositories | 4 | List repos, read files, create branches, push commits |
49
+ | Pipeline (CI/CD) | 4 | List, run, get logs, cancel pipelines |
50
+ | Work Items | 6 | Create, update, list work items; manage users and tags |
51
+ | Pull Requests | 5 | Create, update, list PRs, read comments |
52
+ | Test Plans | 4 | List test plans, suites, cases, and runs |
53
+ | Boards | 3 | List boards, columns, and iterations (sprints) |
54
+ | Wiki | 4 | Read, create, and update wiki pages |
55
+ | Service Hooks | 2 | List and create webhook subscriptions |
56
+ | TFVC | 2 | List TFVC branches and read files |
57
+ | Artifacts | 2 | List feeds and packages |
58
+
59
+ ---
60
+
61
+ ## Installation
62
+
63
+ ### Via n8n UI (Recommended)
64
+
65
+ 1. In n8n, go to **Settings → Community Nodes**
66
+ 2. Click **Install**
67
+ 3. Enter the package name: `n8n-nodes-azuredevops-advanced`
68
+ 4. Click **Install** and confirm the restart
69
+
70
+ ### Manual Installation via npm
71
+
72
+ For self-hosted n8n environments:
73
+
74
+ ```bash
75
+ npm install n8n-nodes-azuredevops-advanced
76
+ ```
77
+
78
+ If you're running Docker, add it to the `n8n-custom-extensions` folder or build a custom Docker image:
79
+
80
+ ```dockerfile
81
+ FROM n8nio/n8n
82
+ RUN cd /usr/local/lib/node_modules/n8n && npm install n8n-nodes-azuredevops-advanced
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Credential Configuration
88
+
89
+ ### Creating an Azure DevOps Personal Access Token (PAT)
90
+
91
+ 1. Go to [dev.azure.com](https://dev.azure.com) and sign in
92
+ 2. Click your user icon in the top right → **Personal access tokens**
93
+ 3. Click **New Token**
94
+ 4. Give the token a name (e.g. `n8n-integration`)
95
+ 5. Set an **Expiration** date
96
+ 6. Under **Scopes**, select the permissions you need:
97
+
98
+ | Scope | Permission | Used For |
99
+ |-------|-----------|----------|
100
+ | Code | Read & Write | Git, Pull Requests |
101
+ | Build | Read & Execute | Pipeline |
102
+ | Work Items | Read & Write | Work Items, Boards |
103
+ | Test Management | Read & Write | Test Plans |
104
+ | Wiki | Read & Write | Wiki |
105
+ | Service Hooks | Read, Write & Manage | Service Hooks |
106
+ | Packaging | Read | Artifacts |
107
+
108
+ 7. Click **Create** and copy the token (it won't be shown again!)
109
+
110
+ ### Creating a Credential in n8n
111
+
112
+ 1. In n8n, go to **Credentials → Add Credential**
113
+ 2. Select **Azure DevOps Advanced API**
114
+ 3. Fill in the following fields:
115
+
116
+ | Field | Description | Example |
117
+ |-------|-------------|---------|
118
+ | Organization | Your Azure DevOps organization name | `mycompany` |
119
+ | Personal Access Token | The PAT you created above | `xxxxxxxxxxxxxxxxxxxx` |
120
+
121
+ 4. Click **Save**
122
+
123
+ > **Note:** You can find your organization name in the URL: `dev.azure.com/{organization}`
124
+
125
+ ---
126
+
127
+ ## Resources & Operations
128
+
129
+ ### 1. Git Repositories
130
+
131
+ Manage Azure DevOps Git repositories.
132
+
133
+ #### Operations
134
+
135
+ | Operation | Description | Required Parameters |
136
+ |-----------|-------------|-------------------|
137
+ | **List Repositories** | List all Git repos in a project | Project |
138
+ | **Get File Content** | Retrieve the content of a file | Project, Repository ID, File Path |
139
+ | **Create Branch** | Create a new branch (from main) | Project, Repository ID, Branch Name |
140
+ | **Push Commit** | Commit a file change | Project, Repository ID, Branch Name, Commit Message |
141
+
142
+ #### Example: Get File Content
143
+
144
+ ```
145
+ Resource: Git Repositories
146
+ Operation: Get File Content
147
+ Project: MyProject
148
+ Repository ID: my-repo
149
+ File Path: /src/app.ts
150
+ ```
151
+
152
+ #### Example: Create Branch
153
+
154
+ ```
155
+ Resource: Git Repositories
156
+ Operation: Create Branch
157
+ Project: MyProject
158
+ Repository ID: my-repo
159
+ Branch Name: refs/heads/feature/new-feature
160
+ ```
161
+
162
+ ---
163
+
164
+ ### 2. Pipeline (CI/CD)
165
+
166
+ Automate Azure DevOps build and release pipelines.
167
+
168
+ #### Operations
169
+
170
+ | Operation | Description | Required Parameters |
171
+ |-----------|-------------|-------------------|
172
+ | **List Pipelines** | List all pipelines | Project |
173
+ | **Run Pipeline** | Trigger a pipeline | Project, Pipeline ID |
174
+ | **Get Build Logs** | Retrieve logs for a specific run | Project, Pipeline ID, Run ID |
175
+ | **Cancel Run** | Cancel an active pipeline run | Project, Pipeline ID, Run ID |
176
+
177
+ #### Example: Trigger a Pipeline
178
+
179
+ ```
180
+ Resource: Pipeline
181
+ Operation: Run Pipeline
182
+ Project: MyProject
183
+ Pipeline ID: 42
184
+ ```
185
+
186
+ #### Example: Get Build Logs
187
+
188
+ ```
189
+ Resource: Pipeline
190
+ Operation: Get Build Logs
191
+ Project: MyProject
192
+ Pipeline ID: 42
193
+ Run ID: 1234
194
+ ```
195
+
196
+ ---
197
+
198
+ ### 3. Work Items
199
+
200
+ Manage Azure DevOps work items (Task, Bug, Epic, Feature, User Story).
201
+
202
+ #### Operations
203
+
204
+ | Operation | Description | Required Parameters |
205
+ |-----------|-------------|-------------------|
206
+ | **Get Work Item** | Fetch a single work item | Project, Work Item ID |
207
+ | **List All Work Items** | List all work items via WIQL query | Project |
208
+ | **Create Work Item** | Create a new work item | Project, Work Item Type, Title |
209
+ | **Update Work Item** | Update an existing work item | Project, Work Item ID |
210
+ | **List Users** | List organization users | — |
211
+ | **List Tags** | List all tags in a project | Project |
212
+
213
+ #### Supported Work Item Types
214
+
215
+ - Task
216
+ - Bug
217
+ - Epic
218
+ - Feature
219
+ - User Story
220
+ - Issue
221
+ - Test Case
222
+
223
+ #### Supported Work Item States
224
+
225
+ - New / To Do
226
+ - Active / Doing
227
+ - Resolved
228
+ - Closed / Done
229
+ - Removed
230
+
231
+ #### Additional Fields (Optional)
232
+
233
+ Extra fields available when creating or updating a work item:
234
+
235
+ | Field Name | Description |
236
+ |-----------|-------------|
237
+ | `System.Description` | Work item description (HTML supported) |
238
+ | `System.AssignedTo` | Assigned user name or email |
239
+ | `System.State` | State (New, Active, Resolved, Closed) |
240
+ | `Microsoft.VSTS.Common.Priority` | Priority (1=Highest, 4=Lowest) |
241
+ | `System.Tags` | Tags (semicolon-separated) |
242
+ | `Custom.FieldName` | Any custom field |
243
+
244
+ #### Example: Create a Bug
245
+
246
+ ```
247
+ Resource: Work Items
248
+ Operation: Create Work Item
249
+ Project: MyProject
250
+ Work Item Type: Bug
251
+ Title: Login button not working
252
+ Additional Fields:
253
+ - System.Description: Steps to reproduce...
254
+ - System.AssignedTo: john.doe@company.com
255
+ - Microsoft.VSTS.Common.Priority: 1
256
+ ```
257
+
258
+ ---
259
+
260
+ ### 4. Pull Requests
261
+
262
+ Automate Git pull request workflows.
263
+
264
+ #### Operations
265
+
266
+ | Operation | Description | Required Parameters |
267
+ |-----------|-------------|-------------------|
268
+ | **Get Pull Request** | Fetch a single PR | Project, Repository ID, PR ID |
269
+ | **List Pull Requests** | List PRs with filters | Project, Repository ID |
270
+ | **Create Pull Request** | Open a new PR | Project, Repository ID, Source Branch, Target Branch, Title |
271
+ | **Update Pull Request** | Update or merge a PR | Project, Repository ID, PR ID |
272
+ | **Get Comments** | Fetch PR review threads | Project, Repository ID, PR ID |
273
+
274
+ #### PR Listing Filters
275
+
276
+ | Filter | Options |
277
+ |--------|---------|
278
+ | Status | active, abandoned, completed, all |
279
+ | Source Branch | Source branch name |
280
+ | Target Branch | Target branch name |
281
+ | Limit | Maximum number of results |
282
+
283
+ #### Merge Strategies
284
+
285
+ Merge strategies available when completing a PR:
286
+
287
+ | Strategy | Description |
288
+ |----------|-------------|
289
+ | `noFastForward` | Create a merge commit |
290
+ | `rebase` | Rebase onto target branch |
291
+ | `rebaseMerge` | Rebase and create a merge commit |
292
+ | `squash` | Squash all commits into one |
293
+
294
+ #### Example: Create a Pull Request
295
+
296
+ ```
297
+ Resource: Pull Requests
298
+ Operation: Create Pull Request
299
+ Project: MyProject
300
+ Repository ID: my-repo
301
+ Source Branch: refs/heads/feature/new-feature
302
+ Target Branch: refs/heads/main
303
+ Title: Add new authentication feature
304
+ Additional Fields:
305
+ - Description: This PR adds OAuth2 support
306
+ - isDraft: false
307
+ - Reviewers: user-id-1,user-id-2
308
+ ```
309
+
310
+ ---
311
+
312
+ ### 5. Test Plans
313
+
314
+ Automate Azure DevOps test management.
315
+
316
+ #### Operations
317
+
318
+ | Operation | Description | Required Parameters |
319
+ |-----------|-------------|-------------------|
320
+ | **List Test Plans** | List all test plans | Project |
321
+ | **List Test Suites** | List suites within a plan | Project, Plan ID |
322
+ | **List Test Cases** | List test cases within a suite | Project, Plan ID, Suite ID |
323
+ | **List Test Runs** | List all test runs | Project |
324
+
325
+ #### Example: List Test Cases
326
+
327
+ ```
328
+ Resource: Test Plans
329
+ Operation: List Test Cases
330
+ Project: MyProject
331
+ Plan ID: 10
332
+ Suite ID: 25
333
+ ```
334
+
335
+ ---
336
+
337
+ ### 6. Boards
338
+
339
+ Agile board and sprint management.
340
+
341
+ #### Operations
342
+
343
+ | Operation | Description | Required Parameters |
344
+ |-----------|-------------|-------------------|
345
+ | **List Boards** | List team boards | Project, Team |
346
+ | **List Board Columns** | List columns in a board | Project, Team, Board ID |
347
+ | **List Iterations** | Get sprint/iteration list | Project, Team |
348
+
349
+ #### Example: Get Sprint List
350
+
351
+ ```
352
+ Resource: Boards
353
+ Operation: List Iterations
354
+ Project: MyProject
355
+ Team: MyProject Team
356
+ ```
357
+
358
+ #### Common Board IDs
359
+
360
+ - `Epics`
361
+ - `Features`
362
+ - `Stories`
363
+ - `Backlog items`
364
+
365
+ ---
366
+
367
+ ### 7. Wiki
368
+
369
+ Manage Azure DevOps wiki pages.
370
+
371
+ #### Operations
372
+
373
+ | Operation | Description | Required Parameters |
374
+ |-----------|-------------|-------------------|
375
+ | **List Wikis** | List all wikis in a project | Project |
376
+ | **Get Page** | Fetch a wiki page | Project, Wiki Identifier, Page Path |
377
+ | **Create Page** | Create a new wiki page | Project, Wiki Identifier, Page Path, Content |
378
+ | **Update Page** | Update an existing wiki page | Project, Wiki Identifier, Page Path, Content |
379
+
380
+ #### Example: Create a Wiki Page
381
+
382
+ ```
383
+ Resource: Wiki
384
+ Operation: Create Page
385
+ Project: MyProject
386
+ Wiki Identifier: MyProject.wiki
387
+ Page Path: /Documentation/API-Guide
388
+ Content: # API Guide\n\nThis page contains the API reference...
389
+ ```
390
+
391
+ > **Note:** The Content field supports Markdown format.
392
+
393
+ ---
394
+
395
+ ### 8. Service Hooks
396
+
397
+ Manage webhook subscriptions for Azure DevOps events.
398
+
399
+ #### Operations
400
+
401
+ | Operation | Description | Required Parameters |
402
+ |-----------|-------------|-------------------|
403
+ | **List Subscriptions** | List all webhook subscriptions | — |
404
+ | **Create Subscription** | Create a new webhook subscription | Project, Event Type, Consumer URL |
405
+
406
+ #### Supported Event Types
407
+
408
+ | Event Type | Description |
409
+ |-----------|-------------|
410
+ | `build.complete` | Build completed |
411
+ | `git.push` | Code pushed |
412
+ | `git.pullrequest.created` | Pull request created |
413
+ | `git.pullrequest.merged` | Pull request merged |
414
+ | `workitem.created` | Work item created |
415
+ | `workitem.updated` | Work item updated |
416
+ | `ms.vss-release.release-created-event` | Release created |
417
+
418
+ #### Example: Create a Webhook Subscription
419
+
420
+ ```
421
+ Resource: Service Hooks
422
+ Operation: Create Subscription
423
+ Project: MyProject
424
+ Event Type: git.push
425
+ Consumer URL: https://your-n8n-instance.com/webhook/xyz
426
+ ```
427
+
428
+ > **Tip:** Use your n8n Webhook node's URL as the Consumer URL to connect Azure DevOps events directly to n8n workflows.
429
+
430
+ ---
431
+
432
+ ### 9. TFVC
433
+
434
+ Support for Team Foundation Version Control (legacy source control).
435
+
436
+ #### Operations
437
+
438
+ | Operation | Description | Required Parameters |
439
+ |-----------|-------------|-------------------|
440
+ | **List Branches** | List TFVC branches and folders | Project |
441
+ | **Get File Content** | Read a file from TFVC | Project, File Path |
442
+
443
+ #### Example: Read a TFVC File
444
+
445
+ ```
446
+ Resource: TFVC
447
+ Operation: Get File Content
448
+ Project: MyProject
449
+ File Path: $/MyProject/src/main.cs
450
+ ```
451
+
452
+ > **Note:** TFVC paths start with `$/`.
453
+
454
+ ---
455
+
456
+ ### 10. Artifacts
457
+
458
+ Azure Artifacts package feed management.
459
+
460
+ #### Operations
461
+
462
+ | Operation | Description | Required Parameters |
463
+ |-----------|-------------|-------------------|
464
+ | **List Feeds** | List all artifact feeds | Project |
465
+ | **List Packages** | List packages in a feed | Project, Feed ID |
466
+
467
+ #### Example: List Packages
468
+
469
+ ```
470
+ Resource: Artifacts
471
+ Operation: List Packages
472
+ Project: MyProject
473
+ Feed ID: my-nuget-feed
474
+ ```
475
+
476
+ ---
477
+
478
+ ## Usage Examples
479
+
480
+ ### Example 1: Automated PR Creation Workflow
481
+
482
+ This workflow automatically creates a PR in Azure DevOps in response to an external event:
483
+
484
+ 1. **Webhook Trigger** → Receives a GitHub push event
485
+ 2. **Azure DevOps Advanced** (Git: Create Branch) → Creates a new branch
486
+ 3. **Azure DevOps Advanced** (Pull Requests: Create) → Opens a PR
487
+ 4. **Slack** → Sends a notification to the team
488
+
489
+ ### Example 2: Work Item Automation
490
+
491
+ Synchronize issues from Jira to Azure DevOps:
492
+
493
+ 1. **Schedule Trigger** → Runs every hour
494
+ 2. **Jira** → Lists new issues
495
+ 3. **IF** → Filters out items already in Azure DevOps
496
+ 4. **Azure DevOps Advanced** (Work Items: Create) → Creates a Task
497
+ 5. **Jira** → Updates the original issue
498
+
499
+ ### Example 3: Build Monitoring
500
+
501
+ Send an alert when a pipeline fails:
502
+
503
+ 1. **Azure DevOps Advanced** (Service Hooks: Create Subscription) → Subscribes to build events
504
+ 2. **Webhook** → Receives the build complete event
505
+ 3. **IF** → Checks whether the build failed
506
+ 4. **Azure DevOps Advanced** (Pipeline: Get Build Logs) → Fetches error logs
507
+ 5. **Email / Slack** → Sends a detailed failure notification
508
+
509
+ ---
510
+
511
+ ## Requirements
512
+
513
+ - **n8n** >= 1.0.0
514
+ - **Node.js** >= 18.x
515
+ - An Azure DevOps account and organization
516
+ - A Personal Access Token (PAT) with sufficient permissions
517
+
518
+ ---
519
+
520
+ ## Development
521
+
522
+ To run the project locally:
523
+
524
+ ```bash
525
+ # Clone the repository
526
+ git clone https://github.com/ertekinozturgut/n8n-nodes-azuredevops-advanced.git
527
+ cd n8n-nodes-azuredevops-advanced
528
+
529
+ # Install dependencies
530
+ npm install
531
+
532
+ # TypeScript compilation (watch mode)
533
+ npm run dev
534
+
535
+ # Production build
536
+ npm run build
537
+ ```
538
+
539
+ ### Project Structure
540
+
541
+ ```
542
+ n8n-nodes-azuredevops-advanced/
543
+ ├── nodes/
544
+ │ └── AzureDevOpsAdvanced/
545
+ │ ├── AzureDevOpsAdvanced.node.ts # Main node implementation
546
+ │ ├── GenericFunctions.ts # API request helper
547
+ │ ├── azureDevOps.svg # Node icon
548
+ │ └── descriptions/
549
+ │ ├── GitDescription.ts
550
+ │ ├── PipelineDescription.ts
551
+ │ ├── WorkItemDescription.ts
552
+ │ ├── PullRequestDescription.ts
553
+ │ ├── TestPlanDescription.ts
554
+ │ ├── BoardDescription.ts
555
+ │ ├── WikiDescription.ts
556
+ │ ├── ServiceHookDescription.ts
557
+ │ ├── TfvcDescription.ts
558
+ │ └── ArtifactsDescription.ts
559
+ ├── credentials/
560
+ │ └── AzureDevOpsAdvancedApi.credentials.ts
561
+ ├── dist/ # Compiled JavaScript
562
+ ├── package.json
563
+ └── tsconfig.json
564
+ ```
565
+
566
+ ---
567
+
568
+ ## Contributing
569
+
570
+ Contributions are welcome! Please follow these steps:
571
+
572
+ 1. Fork the repository
573
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
574
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
575
+ 4. Push the branch (`git push origin feature/amazing-feature`)
576
+ 5. Open a Pull Request
577
+
578
+ ### Bug Reports
579
+
580
+ You can report bugs or request features via [GitHub Issues](https://github.com/ertekinozturgut/n8n-nodes-azuredevops-advanced/issues).
581
+
582
+ ---
583
+
584
+ ## License
585
+
586
+ This project is licensed under the [MIT License](LICENSE).
587
+
588
+ ---
589
+
590
+ ## Links
591
+
592
+ - [npm Package](https://www.npmjs.com/package/n8n-nodes-azuredevops-advanced)
593
+ - [GitHub Repository](https://github.com/ertekinozturgut/n8n-nodes-azuredevops-advanced)
594
+ - [Azure DevOps REST API Documentation](https://docs.microsoft.com/en-us/rest/api/azure/devops/)
595
+ - [n8n Community Nodes Guide](https://docs.n8n.io/integrations/community-nodes/)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-azuredevops-advanced",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Comprehensive Azure DevOps custom node for n8n",
5
5
  "main": "dist/nodes/AzureDevOpsAdvanced/AzureDevOpsAdvanced.node.js",
6
6
  "license": "MIT",