go/pkg/updater
Snider e4d79ce952 feat(php): add quality commands and split cmd/php for maintainability
Add new PHP quality commands:
- psalm: Psalm static analysis with auto-fix support
- audit: Security audit for composer and npm dependencies
- security: Filesystem security checks (.env exposure, permissions)
- qa: Full QA pipeline with quick/standard/full stages
- rector: Automated code refactoring with dry-run
- infection: Mutation testing

Split cmd/php/php.go (2k+ lines) into logical files:
- php.go: Styles and command registration
- php_dev.go: dev, logs, stop, status, ssl
- php_build.go: build, serve, shell
- php_quality.go: test, fmt, analyse, psalm, audit, security, qa, rector, infection
- php_packages.go: packages link/unlink/update/list
- php_deploy.go: deploy commands

QA pipeline improvements:
- Suppress tool output noise in pipeline mode
- Show actionable "To fix:" suggestions with commands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:58:03 +00:00
..
.github/workflows refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
build feat(php): add quality commands and split cmd/php for maintainability 2026-01-29 23:58:03 +00:00
docs refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
ui refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
.gitignore refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
generic_http.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
generic_http_test.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
github.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
github_test.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
LICENSE refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
Makefile refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
mock_github_client_test.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
package.json refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
README.md refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
service.go refactor: migrate module path from Snider/Core to host-uk/core 2026-01-28 15:29:42 +00:00
service_examples_test.go refactor: migrate module path from Snider/Core to host-uk/core 2026-01-28 15:29:42 +00:00
service_test.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
tests.patch refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
updater.go refactor: bring external packages home and restructure 2026-01-15 15:30:43 +00:00
updater_test.go feat: add initial project structure with configuration files and components 2026-01-15 22:46:50 +00:00

Core Element Template

This repository is a template for developers to create custom HTML elements for the core web3 framework. It includes a Go backend, an Angular custom element, and a full release cycle configuration.

Getting Started

  1. Clone the repository:

    git clone https://github.com/your-username/core-element-template.git
    
  2. Install the dependencies:

    cd core-element-template
    go mod tidy
    cd ui
    npm install
    
  3. Run the development server:

    go run ./cmd/demo-cli serve
    

    This will start the Go backend and serve the Angular custom element.

Building the Custom Element

To build the Angular custom element, run the following command:

cd ui
npm run build

This will create a single JavaScript file in the dist directory that you can use in any HTML page.

Usage

To use the updater library in your Go project, you can use the UpdateService.

GitHub-based Updates

package main

import (
	"fmt"
	"log"

	"github.com/snider/updater"
)

func main() {
	config := updater.UpdateServiceConfig{
		RepoURL:        "https://github.com/owner/repo",
		Channel:        "stable",
		CheckOnStartup: updater.CheckAndUpdateOnStartup,
	}

	updateService, err := updater.NewUpdateService(config)
	if err != nil {
		log.Fatalf("Failed to create update service: %v", err)
	}

	if err := updateService.Start(); err != nil {
		fmt.Printf("Update check failed: %v\n", err)
	}
}

Generic HTTP Updates

For updates from a generic HTTP server, the server should provide a latest.json file at the root of the RepoURL. The JSON file should have the following structure:

{
  "version": "1.2.3",
  "url": "https://your-server.com/path/to/release-asset"
}

You can then configure the UpdateService as follows:

package main

import (
	"fmt"
	"log"

	"github.com/snider/updater"
)

func main() {
	config := updater.UpdateServiceConfig{
		RepoURL:        "https://your-server.com",
		CheckOnStartup: updater.CheckAndUpdateOnStartup,
	}

	updateService, err := updater.NewUpdateService(config)
	if err != nil {
		log.Fatalf("Failed to create update service: %v", err)
	}

	if err := updateService.Start(); err != nil {
		fmt.Printf("Update check failed: %v\n", err)
	}
}

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the EUPL-1.2 License - see the LICENSE file for details.