Skip to content

Add GitHub Enterprise Server and Cloud URL support#190

Merged
Malcolmnixon merged 3 commits into
mainfrom
github-enterprise-support
Jun 11, 2026
Merged

Add GitHub Enterprise Server and Cloud URL support#190
Malcolmnixon merged 3 commits into
mainfrom
github-enterprise-support

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member
  • 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)

Pull Request

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Closes #

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully and all tests pass: pwsh ./build.ps1
  • Code produces zero warnings

Code Quality

  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • All linters pass: pwsh ./lint.ps1

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated docs/ documentation (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

Additional Notes

- 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>
Copilot AI review requested due to automatic review settings June 11, 2026 15:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 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 GitHubRepoConnector to 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.

Comment thread src/DemaConsulting.BuildMark/RepoConnectors/GitHub/GitHubRepoConnector.cs Outdated
Comment thread docs/verification/build-mark/repo-connectors/github/git-hub-repo-connector.md Outdated
Comment thread docs/verification/build-mark/repo-connectors/github/git-hub-repo-connector.md Outdated
- 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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Comment thread docs/verification/build-mark/repo-connectors/github/git-hub-repo-connector.md Outdated
- 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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated no new comments.

@Malcolmnixon Malcolmnixon merged commit 9682c97 into main Jun 11, 2026
44 of 46 checks passed
@Malcolmnixon Malcolmnixon deleted the github-enterprise-support branch June 11, 2026 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants