Skip to content

Configuration Examples

This section contains example configuration files demonstrating common ways to use Lupaxa GitHub Repository Sync.

The examples are intended to illustrate the overall structure of a configuration rather than every supported option. Refer to the Configuration Reference for complete details of each available property.

All examples use JSON5 syntax.

Example 1: Single Organisation

This example synchronises two repositories from a single GitHub organisation.

{
  base_directory: "~/Development",

  organisations: [
    {
      name: "the-lupaxa-project",

      repositories: [
        {
          name: "workflows"
        },
        {
          name: "brand-assets"
        }
      ]
    }
  ]
}

This is an ideal starting point for individual developers or small projects.

Example 2: Multiple Organisations

The application can manage repositories from multiple GitHub organisations within a single configuration.

{
  base_directory: "~/Development",

  organisations: [
    {
      name: "the-lupaxa-project",

      repositories: [
        {
          name: "workflows"
        }
      ]
    },

    {
      name: "lupaxa-devops-toolbox",

      repositories: [
        {
          name: "terraform-toolkit"
        },
        {
          name: "docker-toolkit"
        }
      ]
    }
  ]
}

Repositories from each organisation are stored beneath the configured local repository root.

Example 3: Using Comments

One advantage of JSON5 is the ability to document your configuration using comments.

{
  // Root directory used to store repositories.
  base_directory: "~/Development",

  organisations: [
    {
      // Primary organisation.
      name: "the-lupaxa-project",

      repositories: [
        {
          // Shared reusable workflows.
          name: "workflows"
        },

        {
          // Branding assets.
          name: "brand-assets"
        }
      ]
    }
  ]
}

Comments are ignored by the application but make larger configurations significantly easier to understand and maintain.

Example 4: Organising Large Configurations

As configurations grow, keeping repositories grouped by organisation makes them easier to manage.

Development
├── the-lupaxa-project
│   ├── workflows
│   ├── brand-assets
│   └── github-private
├── lupaxa-devops-toolbox
│   ├── terraform-toolkit
│   ├── docker-toolkit
│   └── kubernetes-toolkit
└── lupaxa-security-toolbox
    ├── certtool
    ├── secrets-scanner
    └── compliance-toolkit

Keeping related repositories together also makes configurations easier to review and maintain.

Example 5: Maintaining Large Configurations

For larger repository collections, the following practices are recommended:

  • Group repositories by GitHub organisation.
  • Keep repository names alphabetically ordered.
  • Add comments explaining unusual configuration choices.
  • Remove obsolete repositories.
  • Validate the configuration before synchronising.

These simple practices improve readability and reduce the likelihood of configuration errors.

Next Steps

Once you have created your configuration, continue to the Usage section to learn how to validate it, inspect planned operations and synchronise your repositories.