Add GitHub Enterprise Server and Cloud URL support#190
Merged
Conversation
- Parse SSH and HTTPS remote URLs from any hostname (github.com, *.ghe.com, on-premises GHE) rather than hardcoding github.com - Fix GenerateGitHubChangelogLink to derive web base URL from the actual remote hostname instead of hardcoding https://github.com - Add DeriveWebBaseUrl and DeriveWebBaseUrlFromConfig helpers - Split compound requirements BuildMark-GitHub-ParseUrl into BuildMark-GitHub-ParseUrl-SSH and BuildMark-GitHub-ParseUrl-HTTPS - Split compound BuildMark-AzureDevOps-UrlParsing into -HTTPS and -SSH - Add system-level requirement BuildMark-GitHub-EnterpriseSupport - Add ResolveGraphQLEndpoint and GenerateGitHubChangelogLink to design - Create unit design docs for GitHubConnectorConfig and AzureDevOpsConnectorConfig - Add TemporaryDirectory to introduction.md structure and folder layout - Update verification docs, test counts, and requirement ID references - Add 8 new tests (GHE URL parsing + GHE changelog URL hostname) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR expands BuildMark’s GitHub integration to support GitHub Enterprise Cloud/Server by making remote URL parsing and changelog link generation host-agnostic, and updates requirements/design/verification documentation to reflect the new behavior.
Changes:
- Update
GitHubRepoConnectorto parse SSH/HTTPS remotes from any hostname and generate compare (changelog) links using the derived host base URL. - Add unit tests covering GHE URL parsing and ensuring changelog links use the enterprise hostname.
- Split/extend ReqStream requirements (GitHub + Azure DevOps URL parsing) and update design/verification docs and counts accordingly.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| test/DemaConsulting.BuildMark.Tests/RepoConnectors/GitHub/GitHubRepoConnectorTests.cs | Adds enterprise-focused URL parsing tests and an end-to-end changelog host assertion. |
| src/DemaConsulting.BuildMark/RepoConnectors/GitHub/GitHubRepoConnector.cs | Implements host-agnostic URL parsing and derives the web base URL for compare links. |
| docs/verification/build-mark/repo-connectors/github/git-hub-repo-connector.md | Updates unit verification narrative with new URL parsing scenarios and requirement IDs. |
| docs/verification/build-mark/repo-connectors/github.md | Updates GitHub subsystem verification test counts. |
| docs/verification/build-mark.md | Adds system-level verification narrative for GitHub enterprise support. |
| docs/reqstream/build-mark/repo-connectors/github/github-repo-connector.yaml | Introduces split GitHub URL parsing requirements (SSH/HTTPS) with traced tests. |
| docs/reqstream/build-mark/repo-connectors/github.yaml | Adds new GitHub URL parsing requirement IDs to the GitHub requirement tree. |
| docs/reqstream/build-mark/repo-connectors/azure-devops/azure-devops-repo-connector.yaml | Splits Azure DevOps URL parsing into HTTPS vs SSH requirements. |
| docs/reqstream/build-mark/repo-connectors/azure-devops.yaml | Updates Azure DevOps requirement tree to reference the split URL parsing requirements. |
| docs/reqstream/build-mark.yaml | Adds a system-level BuildMark-GitHub-EnterpriseSupport requirement and links children. |
| docs/design/introduction.md | Updates design doc structure to include TemporaryDirectory. |
| docs/design/build-mark/repo-connectors/repo-connector-factory.md | Notes how enterprise remotes are handled by the factory’s default GitHub connector selection. |
| docs/design/build-mark/repo-connectors/github/github-repo-connector.md | Expands design details for host-agnostic parsing and changelog URL generation. |
| docs/design/build-mark/repo-connectors/github.md | Updates GitHub design narrative to mention enterprise URL parsing support. |
| docs/design/build-mark/configuration/github-connector-config.md | Adds unit design documentation for GitHubConnectorConfig. |
| docs/design/build-mark/configuration/azure-devops-connector-config.md | Adds unit design documentation for AzureDevOpsConnectorConfig. |
| docs/design/build-mark.md | Updates GitHub GraphQL endpoint design notes to include enterprise override behavior. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Fix DeriveWebBaseUrlFromConfig to use uri.Authority instead of uri.Host, preserving non-default ports (e.g., ghe.example.com:8443) - Fix top-level heading in git-hub-repo-connector.md from ##### to #### to be consistent with other connector verification chapters - Fix ImplementsInterface_ReturnsTrue requirement coverage from BuildMark-GitHub-BuildInformation to BuildMark-RepoConnectorBase-Interface Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix ParseGitHubUrl XmlDoc exception description to accurately reflect that HTTPS paths use the last two segments (not exactly two required) - Fix broken line wrap in git-hub-repo-connector.md Verification Approach paragraph (was splitting 'which contains' from '35 unit tests') Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Jun 15, 2026
This was referenced Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Description
Type of Change
Related Issues
Closes #
Pre-Submission Checklist
Before submitting this pull request, ensure you have completed the following:
Build and Test
pwsh ./build.ps1Code Quality
Quality Checks
Please run the following checks before submitting:
pwsh ./lint.ps1Testing
Documentation
Additional Notes