-
Notifications
You must be signed in to change notification settings - Fork 150
Add comprehensive documentation for DeliveryTargets and NuGet/GitHub Packages in AL-Go #1823
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
base: main
Are you sure you want to change the base?
Conversation
…eferences Co-authored-by: mazhelez <[email protected]>
…proper aka.ms links Co-authored-by: mazhelez <[email protected]>
Co-authored-by: mazhelez <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds comprehensive documentation for DeliveryTargets and NuGet/GitHub Packages in AL-Go, fills gaps in the existing workshop guide, and integrates the new content into the README.
- Adds a new
Scenarios/DeliveryTargets.md
guide covering setup, configuration, examples, troubleshooting, and security best practices for DeliveryTargets. - Updates
Workshop/ContinuousDelivery.md
to include a quick setup for GitHub Packages and custom NuGet feeds with references to the new guide. - Inserts a link to the new guide in
README.md
under usage scenarios.
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
File | Description |
---|---|
Workshop/ContinuousDelivery.md | Replaced WIP NuGet section with quick setup steps and cross-reference to new guide |
Scenarios/DeliveryTargets.md | Created detailed guide for DeliveryTargets and NuGet/GitHub Packages |
README.md | Added entry for the new DeliveryTargets guide in the scenarios list |
Comments suppressed due to low confidence (2)
Workshop/ContinuousDelivery.md:82
- [nitpick] Consider mentioning that the token should also include
read:packages
(andrepo
for private repos) to match the full scope requirements outlined in the detailed guide.
1. **Create Personal Access Token**: Create a classic personal access token with `write:packages` scope
Workshop/ContinuousDelivery.md:83
- [nitpick] Specify where this secret needs to be created (organization vs. repository level) to avoid confusion about secret scope and access permissions.
1. **Create Organizational Secret**: Create `GitHubPackagesContext` secret with format:
|
||
### Step 2: Create GitHubPackagesContext Secret | ||
|
||
Create an organizational secret named `GitHubPackagesContext` with the following compressed JSON format: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we want a warning here too to better catch attention that making the secret multi-line will break stuff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a warning about multi-line JSON breaking AL-Go functionality as curly brackets get masked in logs. 7c6f864
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warning is fine, but maybe it looks better to place it either right above or right below the tip?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Repositioned the warning to be right below the tip for better visibility. e9cb037
Scenarios/DeliveryTargets.md
Outdated
Create an organizational secret named `GitHubPackagesContext` with the following compressed JSON format: | ||
|
||
```json | ||
{"token":"ghp_YOUR_TOKEN_HERE","serverUrl":"https://nuget.pkg.github.com/YOUR_ORG/index.json"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: maybe <YOUR_TOKEN_HERE> and <YOUR_ORG>?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to <your_org>
format for consistency with existing AL-Go documentation patterns. 7c6f864
```json | ||
{"token":"YOUR_NUGET_TOKEN","serverUrl":"https://pkgs.dev.azure.com/YOUR_ORG/YOUR_PROJECT/_packaging/YOUR_FEED/nuget/v3/index.json"} | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe a comment here about replacing YOUR_NUGET_TOKEN, YOUR_ORG and YOUR_FEED to keep it consistent with the text above?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a note explaining what values to replace in the JSON example (token, org, project, feed). 7c6f864
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably keep the text 'YOUR_NUGET_TOKEN' but wrapped in <>.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed token format back to <YOUR_NUGET_TOKEN>
wrapped in angle brackets as requested. e9cb037
Scenarios/DeliveryTargets.md
Outdated
|
||
Common NuGet feed URLs: | ||
|
||
- **Azure DevOps**: `https://pkgs.dev.azure.com/{org}/{project}/_packaging/{feedName}/nuget/v3/index.json` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we use a consistent format for referencing replaceable text? On this line we use {replaceable_item}, above we use caps REPLACEABLE_ITEM, and in other files we wrap in <replaceable_item>.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Standardized all replaceable text to use <your_value>
format throughout the documentation for consistency. 7c6f864
…ceholder format, and add replacement instructions Co-authored-by: spetersenms <[email protected]>
|
||
### Step 2: Create GitHubPackagesContext Secret | ||
|
||
Create an organizational secret named `GitHubPackagesContext` with the following compressed JSON format: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Warning is fine, but maybe it looks better to place it either right above or right below the tip?
```json | ||
{"token":"YOUR_NUGET_TOKEN","serverUrl":"https://pkgs.dev.azure.com/YOUR_ORG/YOUR_PROJECT/_packaging/YOUR_FEED/nuget/v3/index.json"} | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably keep the text 'YOUR_NUGET_TOKEN' but wrapped in <>.
Scenarios/DeliveryTargets.md
Outdated
@@ -152,7 +158,7 @@ Unlike GitHub Packages, NuGet feeds configured with `NuGetContext` are not autom | |||
**Repository Secret**: `NuGetContext` | |||
|
|||
```json | |||
{"token":"YOUR_AZURE_DEVOPS_TOKEN","serverUrl":"https://pkgs.dev.azure.com/contoso/BusinessCentral/_packaging/BC-Apps/nuget/v3/index.json"} | |||
{"token":"<your_token>","serverUrl":"https://pkgs.dev.azure.com/contoso/BusinessCentral/_packaging/BC-Apps/nuget/v3/index.json"} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to above. your_token is more generic that the previous your_azure_devops_token.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Made the token name more specific by changing it to <YOUR_AZURE_DEVOPS_TOKEN>
for Azure DevOps examples. e9cb037
…d improve specificity Co-authored-by: spetersenms <[email protected]>
This PR addresses the lack of comprehensive documentation for DeliveryTargets and NuGet/GitHub Packages in AL-Go, particularly for Per-Tenant Extensions (PTEs).
Changes Made
📖 New Documentation
Scenarios/DeliveryTargets.md
- Comprehensive 311-line guide covering:📝 Enhanced Existing Documentation
Updated
Workshop/ContinuousDelivery.md
- Replaced "work-in-progress" NuGet section with:Updated
README.md
- Added DeliveryTargets documentation to usage scenarios list🔗 Proper Integration
aka.ms
links to official AL-Go settings documentationKey Features
Real-World Examples
Based on community feedback from issue #390, including practical implementations that have been used in production:
Comprehensive Troubleshooting
Covers common issues like:
Security & Best Practices
Quality Assurance
This documentation enables users to successfully implement NuGet package delivery for their PTEs while understanding the experimental nature and production considerations.
Fixes #410.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
bccontainerhelper-addgd5gzaxf9fneh.b02.azurefd.net
pwsh -c . (Join-Path "." "Tests/runtests.ps1") -Path "Tests"
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.