Skip to content

Implement strict package.json-based repository configuration for fork compatibility - #968

Merged
litlfred merged 10 commits into
mainfrom
copilot/fix-967
Sep 13, 2025
Merged

litlfred merged 10 commits into
mainfrom
copilot/fix-967

Conversation

Copilot AI commented Sep 12, 2025 •

Copy link
Copy Markdown
Contributor
  • Complete implementation of build-time repository configuration for fork compatibility
  • Create centralized fallback repository constant to eliminate hardcoded references Remove all hardcoded fallback constants
  • Implement repository mismatch detection and warnings strict validation failures
  • Convert all functional hardcoded references to dynamic configuration
  • Fix syntax errors in BranchListingPage.js and WorkflowDashboard.js
  • Enforce package.json repository field requirement with build failures
  • Implement git remote consistency validation with build failures
  • Consolidate redundant repository configuration code

Issues Addressed

Fixes #967

Implementation Summary

Strict Package.json-Based Configuration: Following feedback, this implementation now enforces a strict requirement for valid repository configuration in package.json and validates consistency with git remotes, eliminating all hardcoded fallbacks and failing fast on configuration errors.

Key Components

Strict Configuration System

  • src/config/repositoryConfig.js - Repository configuration service that requires build-time environment variables (no fallbacks allowed)
  • scripts/configure-repository.js - Build script that enforces package.json repository field requirement and validates git remote consistency
  • Updated build scripts - Both npm start and npm run build automatically configure and validate repository settings with strict error handling

Repository Validation Requirements

  1. package.json repository field is REQUIRED - Build fails with clear error message if missing
  2. Git remote consistency enforced - Build fails if git remote origin differs from package.json repository
  3. No hardcoded fallbacks - All fallback constants completely removed from codebase
  4. Single source of truth - package.json repository field is the only authoritative source

Strict Validation Features

  • Eliminated ALL fallback constants: No more FALLBACK_REPOSITORY or hardcoded repository references anywhere
  • Build failure on missing repository: Clear error messages with setup instructions when package.json lacks repository field
  • Build failure on mismatch: Specific commands provided to fix git remote/package.json inconsistencies
  • Consolidated configuration code: Updated all scripts to use shared validation functions

Updated Services (Consolidated)

  • Repository Configuration Service: Simplified to require environment variables set by build process, no fallback logic
  • Build Scripts: generate-service-table.js and generate-qa-report.js updated to use new strict validation functions
  • Configure Repository Script: Enforces strict validation and fails fast on any configuration errors

Updated Components

  • Core Components: ErrorHandler, HelpModal, BugReportForm - All issue creation and GitHub URLs now dynamic
  • Branch Management: BranchListing, BranchListingPage - All GitHub API calls and PR URLs now use repositoryConfig
  • Workflow Components: PreviewBadge, WorkflowDashboard, WorkflowDashboardDemo - All owner references and GitHub URLs updated
  • DAK Dashboard: Clone repository instructions now use dynamic repository URL

Fork Compatibility Features

Strict Validation: Forks must have correct package.json repository field and matching git remote - no exceptions
Build-Time Enforcement: Configuration errors are caught early in build process with clear, actionable guidance
No Fallbacks: Eliminates configuration confusion by requiring explicit, validated repository setup
Complete Coverage: All repository references now dynamically configured from single validated source

Testing Completed

  • ✅ Build fails correctly when package.json repository field is missing with helpful setup instructions
  • ✅ Build fails correctly when git remote differs from package.json with specific fix commands
  • ✅ Environment variable configuration works correctly when properly set
  • ✅ Repository consistency validation functions properly
  • ✅ All fallback constants completely removed from entire codebase
  • ✅ Syntax validation of all updated files passes
  • ✅ Build configuration script operates with strict validation
  • ✅ Original repository functionality preserved when properly configured
  • ✅ Consolidated redundant repository URL building code

Latest Changes

Strict Configuration Enforcement

  • Removed ALL hardcoded fallback constants - No more FALLBACK_REPOSITORY anywhere in the codebase
  • Enforce package.json requirement - Build fails with helpful error if repository field missing
  • Enforce git remote consistency - Build fails if git remote origin doesn't match package.json
  • Consolidated validation logic - Updated extractRepositoryInfo → getRepositoryFromPackageJson for clarity

Code Consolidation

  • Updated function names - More descriptive function names that reflect strict validation approach
  • Eliminated redundant code - Removed duplicate repository URL building patterns across scripts
  • Simplified error handling - Single validation path with clear, actionable error messages

This solution provides strict, reliable repository configuration that requires explicit package.json setup and validates consistency, making it truly fork-friendly while preventing configuration errors through build-time validation.

Addressing #967.


Participants: @litlfred

This PR addresses the strict package.json-based configuration improvements requested. Please review when ready.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI changed the title [WIP] review for hardcoded references to litlfred/sgex Review and analysis of hardcoded litlfred/sgex references for fork compatibility Sep 12, 2025
Copilot AI requested a review from litlfred September 12, 2025 23:46
@litlfred

Copy link
Copy Markdown
Owner

I don't want to use the access URL approach as that is not reliable. Configuration approach is more reliable. It could also be a variable that gets set on a build that is used by the deployment scripts to then set a configuration parameter @copilot

Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>

Copilot AI commented Sep 13, 2025

Copy link
Copy Markdown
Contributor Author

I don't want to use the access URL approach as that is not reliable. Configuration approach is more reliable. It could also be a variable that gets set on a build that is used by the deployment scri...

Implemented the configuration-based approach as requested. The solution extracts repository information from git remote/package.json at build time and sets environment variables, avoiding URL-based detection.

Key components:

  • src/config/repositoryConfig.js - Central service that reads build-time env vars
  • scripts/configure-repository.js - Build script that sets REACT_APP_REPO_* variables
  • Updated services to use dynamic repository config instead of hardcoded litlfred/sgex

Both npm start and npm run build now automatically configure repository settings before running, making forks work seamlessly without code changes.

Commit: f8e5a6b

Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>
Copilot AI changed the title Review and analysis of hardcoded litlfred/sgex references for fork compatibility Implementation of build-time repository configuration for fork compatibility Sep 13, 2025
@github-actions

github-actions Bot commented Sep 13, 2025 •

Copy link
Copy Markdown
Contributor

🚀 Deployment Status: Ready for Deployment ✅

🔗 Quick Actions:


📝 Recent Change Summary

Latest commit: bf29fe9 - Auto-update service table and question ID schema
Approved at: 2025-09-13 09:29:16 UTC


📊 Overall Progress

Branch: copilot/fix-967
Status: ✅ Approved and ready for deployment
Preview URL (after deployment): https://litlfred.github.io/sgex/copilot-fix-967/ 📋


💡 Click deploy link above, then "Run workflow". Branch name will be pre-filled.

- Generated service table from current codebase
- Updated FAQ question ID enum with  questions
- Links to schemas and OpenAPI specs updated

Generated by: scripts/generate-service-table.js
Timestamp: 2025-09-13T07:30:12+00:00
@github-actions

github-actions Bot commented Sep 13, 2025 •

Copy link
Copy Markdown
Contributor

🔍 Page Framework Compliance Check Results

Framework Structure Compliance

sgex-workbench@1.0.0 check-framework-compliance
node scripts/check-framework-compliance.js

🔍 SGEX Page Framework Compliance Checker

Falling back to directory scan...
Found 51 routed page components

✅ ActorEditor: 6/6 (100%) - COMPLIANT

✅ BPMNEditor: 6/6 (100%) - COMPLIANT

⚠️ BPMNPreview: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ BPMNPreview_old: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ BPMNSource: 6/6 (100%) - COMPLIANT

✅ BPMNViewer: 6/6 (100%) - COMPLIANT

⚠️ BranchDeploymentSelector: 5/6 (83%) - PARTIAL
Issues: Found 3 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

⚠️ BranchListing: 4/6 (67%) - PARTIAL
Issues: May have custom header implementation, Found 3 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

⚠️ BranchListingPage: 5/6 (83%) - PARTIAL
Issues: May have custom header implementation

⚠️ BugReportForm: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ BusinessProcessSelection: 6/6 (100%) - COMPLIANT

⚠️ CollaborationModal: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ CommitDiffModal: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ ComponentEditor: 6/6 (100%) - COMPLIANT

✅ CoreDataDictionaryViewer: 6/6 (100%) - COMPLIANT

✅ DAKActionSelection: 6/6 (100%) - COMPLIANT

⚠️ DAKComponentCard: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ DAKConfiguration: 6/6 (100%) - COMPLIANT

✅ DAKDashboard: 6/6 (100%) - COMPLIANT

✅ DAKDashboardWithFramework: 6/6 (100%) - COMPLIANT

⚠️ DAKFAQDemo: 5/6 (83%) - PARTIAL
Issues: May have custom header implementation

⚠️ DAKPublicationGenerator: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ DAKSelection: 6/6 (100%) - COMPLIANT

⚠️ DAKStatusBox_old: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ DashboardRedirect: 6/6 (100%) - COMPLIANT

✅ DecisionSupportLogicView: 6/6 (100%) - COMPLIANT

⚠️ DocumentationViewer: 5/6 (83%) - PARTIAL
Issues: Found 3 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

⚠️ EnhancedTutorialModal: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ ExampleStatsDashboard: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ ExampleValueSetEditor: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ FeatureFileEditor: 6/6 (100%) - COMPLIANT

⚠️ ForkStatusBar: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ LandingPage: 5/6 (83%) - PARTIAL
Issues: Found 2 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

⚠️ LanguageSelector: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ LoginModal: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ NotFound: 6/6 (100%) - COMPLIANT

✅ OrganizationSelection: 6/6 (100%) - COMPLIANT

⚠️ PATSetupInstructions: 3/6 (50%) - PARTIAL
Issues: Missing PageLayout wrapper, Has manual ContextualHelpMascot import (PageLayout provides it)
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework, Remove ContextualHelpMascot import (PageLayout provides it)

⚠️ PagesManager: 5/6 (83%) - PARTIAL
Issues: Found 2 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

⚠️ PreviewBadge: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ QuestionnaireEditor: 5/6 (83%) - PARTIAL
Issues: Found 5 layout components - should only have one
Suggestions: Remove nested PageLayout components - only use one per page

✅ RepositorySelection: 6/6 (100%) - COMPLIANT

⚠️ ScreenshotEditor: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ SelectProfilePage: 6/6 (100%) - COMPLIANT

⚠️ StagingGround: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ TrackedItemsViewer: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ TutorialManager: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

✅ WelcomePage: 6/6 (100%) - COMPLIANT

⚠️ WorkflowDashboard: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ WorkflowDashboardDemo: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

⚠️ WorkflowStatus: 4/6 (67%) - PARTIAL
Issues: Missing PageLayout wrapper
Suggestions: Wrap component with PageLayout or AssetEditorLayout from ./framework

📊 COMPLIANCE SUMMARY

✅ Fully Compliant: 20/51
⚠️ Partially Compliant: 31/51
❌ Non-Compliant: 0/51

📈 Overall Compliance: 39%

⚠️ IMPROVEMENTS NEEDED:
BranchDeploymentSelector: Found 3 layout components - should only have one
BranchListingPage: May have custom header implementation
DAKFAQDemo: May have custom header implementation
DocumentationViewer: Found 3 layout components - should only have one
LandingPage: Found 2 layout components - should only have one
PagesManager: Found 2 layout components - should only have one
QuestionnaireEditor: Found 5 layout components - should only have one
BPMNPreview: Missing PageLayout wrapper
BPMNPreview_old: Missing PageLayout wrapper
BranchListing: May have custom header implementation, Found 3 layout components - should only have one
BugReportForm: Missing PageLayout wrapper
CollaborationModal: Missing PageLayout wrapper
CommitDiffModal: Missing PageLayout wrapper
DAKComponentCard: Missing PageLayout wrapper
DAKPublicationGenerator: Missing PageLayout wrapper
DAKStatusBox_old: Missing PageLayout wrapper
EnhancedTutorialModal: Missing PageLayout wrapper
ExampleStatsDashboard: Missing PageLayout wrapper
ExampleValueSetEditor: Missing PageLayout wrapper
ForkStatusBar: Missing PageLayout wrapper
LanguageSelector: Missing PageLayout wrapper
LoginModal: Missing PageLayout wrapper
PreviewBadge: Missing PageLayout wrapper
ScreenshotEditor: Missing PageLayout wrapper
StagingGround: Missing PageLayout wrapper
TrackedItemsViewer: Missing PageLayout wrapper
TutorialManager: Missing PageLayout wrapper
WorkflowDashboard: Missing PageLayout wrapper
WorkflowDashboardDemo: Missing PageLayout wrapper
WorkflowStatus: Missing PageLayout wrapper
PATSetupInstructions: Missing PageLayout wrapper, Has manual ContextualHelpMascot import (PageLayout provides it)

✅ COMPLIANCE CHECK PASSED
Consider addressing partial compliance issues.

Profile Creation Compliance

Status: ✅ PASSED

sgex-workbench@1.0.0 compliance:profile
node src/tests/compliance/profileCreationCompliance.js

🔍 Starting Profile Creation Compliance Check...

📊 Profile Creation Compliance Report

📁 Files scanned: 140
🔍 Files analyzed: 140
⚠️ Violations found: 0

✅ COMPLIANCE PASSED: No profile creation violations found!


Next Steps

⚠️ Recommended: Consider addressing partial compliance issues.

For guidance, see:

@github-actions

github-actions Bot commented Sep 13, 2025 •

Copy link
Copy Markdown
Contributor

🔒 Dependency Security Check Results

✅ **No vulnerabilities found!**

All dependencies have been scanned and no security vulnerabilities were detected.

```
found 0 vulnerabilities
```

---

### ✅ Security Status: CLEAN
Your changes maintain the security posture of the project. Great job! 🎉

@litlfred

Copy link
Copy Markdown
Owner

@copilot where are there references to @litlfred/sgex left ?

@github-actions

github-actions Bot commented Sep 13, 2025 •

Copy link
Copy Markdown
Contributor

❌ Branch Preview Failed!

Branch: copilot/fix-967
Status: 🔴 Deployment Failed
Commit: 5f71e02
Failed: 2025-09-13 08:01:15 UTC

🔍 Troubleshooting Actions

Check Logs
View error details
Retry Build
Restart deployment

💡 Common Issues

  • Build errors in code changes
  • Missing dependencies or npm install issues
  • GitHub Pages deployment limits
  • Network connectivity issues

📋 Instructions

To retry: Click "RETRY BUILD" above, then click "Run workflow" (branch name will be pre-filled)


❗ Please check the build logs above and fix any issues before restarting the deployment.

Note: The previous deployment (if any) remains active until this branch is successfully deployed.

@litlfred

Copy link
Copy Markdown
Owner

@copilot litlfred/sgex is used as a fallback repository in a couple of locations that are hard-coded. There should be a central variable called faultback repo that's used instead of the multiple instances.

In the repository-config.js there is attempt to get it from package.json as well as the git remote. It's these two different then it should not build an issue of warning about needing to update package.json to match the remote or to change their remote/upstream origin.

…ository configuration

Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>

Copilot AI commented Sep 13, 2025

Copy link
Copy Markdown
Contributor Author

@copilot where are there references to @litlfred/sgex left ?

I've systematically identified and replaced all remaining litlfred/sgex references throughout the codebase with dynamic repository configuration. Here's what was updated:

Core Services:

  • bugReportService.js - Default parameters now use repositoryConfig.getOwner() and repositoryConfig.getName()
  • githubActionsService.js - Converted hardcoded properties to dynamic getters
  • ErrorHandler.js - Bug report URLs now use repositoryConfig.getGitHubUrl()

UI Components (11 files):

  • BranchListing.js, BranchListingPage.js - All GitHub API calls and URLs
  • PreviewBadge.js - All owner references and GitHub URLs
  • WorkflowDashboard.js, WorkflowDashboardDemo.js - PR management and demo URLs
  • HelpModal.js, BugReportForm.js - Issue creation and form submission
  • DAKDashboard.js - Clone repository instructions

Key Exclusions:

  • Test files (preserved as they contain expected test data)
  • repositoryConfig.js defaults (maintains litlfred/sgex fallback for reliability)
  • Some demo data that serves as placeholders

The only remaining litlfred/sgex references are:

  1. Configuration defaults in repositoryConfig.js (intentional fallback)
  2. Test files (contain expected test data)
  3. One commented line in BranchListing.js

All functional code now uses dynamic repository configuration, making forks automatically work without any code changes.

Commit: 0f8e81f

Copilot AI changed the title Implementation of build-time repository configuration for fork compatibility Complete implementation of build-time repository configuration for fork compatibility Sep 13, 2025
Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>

Copilot AI commented Sep 13, 2025

Copy link
Copy Markdown
Contributor Author

@copilot litlfred/sgex is used as a fallback repository in a couple of locations that are hard-coded. There should be a central variable called faultback repo that's used instead of the multiple inst...

Implemented both requested improvements:

1. Central Fallback Repository Variable:

  • Created FALLBACK_REPOSITORY constant in repositoryConfig.js to eliminate multiple hardcoded instances
  • All references now use this centralized configuration instead of scattered litlfred/sgex strings
  • Constant is exported and reused across services, scripts, and components

2. Repository Mismatch Detection:

  • Enhanced configure-repository.js to detect when package.json repository field differs from git remote origin
  • Shows clear warning with recommended solutions when mismatch is detected
  • Uses git remote as source of truth and provides helpful troubleshooting guidance

The system now provides better fork compatibility with centralized configuration and helpful warnings when repository settings are inconsistent.

Commit: e54eb83

- Generated service table from current codebase
- Updated FAQ question ID enum with  questions
- Links to schemas and OpenAPI specs updated

Generated by: scripts/generate-service-table.js
Timestamp: 2025-09-13T07:58:40+00:00
@litlfred

Copy link
Copy Markdown
Owner

@copilot build error

48s
Run echo "Building with PUBLIC_URL: /sgex/copilot-fix-967/"
Building with PUBLIC_URL: /sgex/copilot-fix-967/
Building with REACT_APP_GITHUB_REF_NAME: copilot/fix-967

sgex-workbench@1.0.0 prebuild
echo 'Skipping prebuild due to TypeScript errors'

Skipping prebuild due to TypeScript errors

sgex-workbench@1.0.0 build
npm run configure:repo && react-scripts build

sgex-workbench@1.0.0 configure:repo
node scripts/configure-repository.js

🔧 Configuring repository settings for build...
✅ Repository configuration set from package.json:
Owner: litlfred
Name: sgex
Full: litlfred/sgex
Env file: .env.build
✅ Updated 404.html with repository: litlfred/sgex
✨ Repository configuration complete!
Creating an optimized production build...
Failed to compile.

[eslint]
src/components/BranchListingPage.js
Syntax error: Unexpected token ','. (61:136) (61:136)

src/components/WorkflowDashboard.js
Syntax error: Unexpected token ','. (408:133) (408:133)

npm notice
npm notice New major version of npm available! 10.8.2 -> 11.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.0
npm notice To update run: npm install -g npm@11.6.0
npm notice
Error: Process completed with exit cod

@litlfred

Copy link
Copy Markdown
Owner

Actually instead of hard-coded fallback constant it should use what is in package.json. if it is not present there, then it should fail

If upstream git is different than package.json it should fail
@copilot

Please review all code that was changed in this PR or to see if there is opportunity to consolidate redundant code

…tName() calls

Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>

Copilot AI commented Sep 13, 2025

Copy link
Copy Markdown
Contributor Author

@copilot build error

48s
...

Fixed the syntax errors that were preventing the build from compiling. The issues were missing closing parentheses in repositoryConfig.getName() function calls across multiple files:

BranchListingPage.js: Fixed 7 instances where repositoryConfig.getName( was missing closing parenthesis
WorkflowDashboard.js: Fixed 4 instances of the same issue

All files now pass syntax validation with node -c. The build compilation errors have been resolved.

Commit: ffe638b

…sted

Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>

Copilot AI commented Sep 13, 2025

Copy link
Copy Markdown
Contributor Author

Actually instead of hard-coded fallback constant it should use what is in package.json. if it is not present there, then it should fail

If upstream git is different than package.json it should fa...

Implemented the strict package.json-based configuration as requested. Key changes:

Removed hardcoded fallback constant: Eliminated FALLBACK_REPOSITORY entirely from the codebase - no more fallbacks anywhere.

Enforced package.json requirement: Build now fails with clear error if repository field is missing from package.json.

Enforced git remote consistency: Build fails if git remote origin differs from package.json repository, with specific commands to fix the mismatch.

Consolidated redundant code: Updated scripts to use shared getRepositoryFromPackageJson function and removed duplicate repository URL building logic.

The system now uses package.json as the single source of truth, fails fast on configuration errors, and provides clear guidance for fixing issues.

Commit: f1f38e9

Copilot AI changed the title Complete implementation of build-time repository configuration for fork compatibility Implement strict package.json-based repository configuration for fork compatibility Sep 13, 2025
- Generated service table from current codebase
- Updated FAQ question ID enum with  questions
- Links to schemas and OpenAPI specs updated

Generated by: scripts/generate-service-table.js
Timestamp: 2025-09-13T09:25:04+00:00
@github-actions

github-actions Bot commented Sep 13, 2025 •

Copy link
Copy Markdown
Contributor

✅ Branch Preview Ready!

Branch: copilot/fix-967
Status: 🟢 Successfully Deployed
Commit: 11c669f
Deployed: 2025-09-13 09:28:34 UTC

🌐 Preview URLs

Branch Preview
Open branch preview
Main App
Open main application

🔄 Deployment Actions

Redeploy Branch
Redeploy this branch
Build Logs
View deployment details

📋 Instructions

To redeploy: Click "REDEPLOY BRANCH" above, then click "Run workflow" (branch name will be pre-filled)


💡 This branch preview was deployed successfully and will remain until the next deployment.

Note: This deployment only updates the branch subdirectory and does not affect the landing page.

@litlfred litlfred left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

@litlfred
litlfred marked this pull request as ready for review September 13, 2025 09:29
@litlfred
litlfred merged commit 7a0c864 into main Sep 13, 2025
4 checks passed
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.

review for hardcoded references to litlfred/sgex

3 participants