{"id":21616483,"url":"https://github.com/jbsnewmedia/gitinstall","last_synced_at":"2026-04-17T01:03:32.785Z","repository":{"id":115795328,"uuid":"498067052","full_name":"jbsnewmedia/gitinstall","owner":"jbsnewmedia","description":"Install releases from github/gitlan with php. comes with uninstaller.","archived":false,"fork":false,"pushed_at":"2024-02-23T20:21:08.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-24T20:48:01.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbsnewmedia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-30T19:07:54.000Z","updated_at":"2024-02-23T10:33:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"0dcb24d3-b42d-4c6d-9cbc-3f501dd2b890","html_url":"https://github.com/jbsnewmedia/gitinstall","commit_stats":null,"previous_names":["jbsnewmedia/gitinstall"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbsnewmedia%2Fgitinstall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbsnewmedia%2Fgitinstall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbsnewmedia%2Fgitinstall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbsnewmedia%2Fgitinstall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbsnewmedia","download_url":"https://codeload.github.com/jbsnewmedia/gitinstall/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244267475,"owners_count":20425835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T22:14:36.043Z","updated_at":"2026-04-17T01:03:23.731Z","avatar_url":"https://github.com/jbsnewmedia.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GITInstall\n\nGITInstall is a PHP package developed by Juergen Schwind of JBS New Media GmbH. This package is designed to simplify the process of installing or updating software directly from a Git repository. It supports GitHub and GitLab repositories, allowing for automated downloading and installation of software releases.\n\n## Features\n\n- **Easy Installation**: Automate the download and installation of software from Git repositories.\n- **Support for GitHub and GitLab**: Compatible with both major Git hosting services.\n- **Configurable**: Customize aspects like cache time, ignored files/directories, and more.\n- **Secure**: Supports basic authentication for private repositories.\n- **Flexible**: Allows specifying which release to install, supporting stable and prerelease versions.\n\n## Requirements\n\n- PHP 8.0 or higher\n- curl extension for PHP\n- zip extension for PHP\n\n## Installation\n\nTo use GITInstall, include it in your project manually by downloading the package and including `Installer.php` in your PHP script.\n\n## Usage\n\n1. **Initialization**: Create an instance of the `JBSNewMedia\\GitInstall\\Installer` class.\n\n```php\nuse JBSNewMedia\\GitInstall\\Installer;\n\n$installer = new Installer();\n```\n\n2. **Configuration**: Set the necessary parameters such as Git type (GitHub or GitLab), repository details, authentication credentials (if needed), and the desired action (e.g., install, update, remove).\n\n```php\n$installer-\u003esetGit('github'); // or 'gitlab'\n$installer-\u003esetName('Your Project Name');\n$installer-\u003esetRelease('stable'); // or 'prerelease', 'commit (only github yet)'\n$installer-\u003esetReleaseUrl('https://api.github.com/repos/username/repository/releases');\n// For private repositories\n$installer-\u003esetUser('username');\n$installer-\u003esetPassword('password');\n// Set action\n$installer-\u003esetAction('execute'); // Possible values: execute, info, remove\n```\n\n3. **Execution**: Call the `runEngine` method to perform the specified action.\n\n```php\n$result = $installer-\u003erunEngine();\nprint_r($result);\n```\n\n## Options and Methods\n\nThis section describes all available options and methods you can use with the Installer class to configure and run the installation process.\n\n### Options\n* `cache_time`: Duration in seconds to cache the data fetched from Git repositories.\n* `action`: The action to perform. Can be execute, info, or remove.\n* `useragent`: Custom user agent string for making HTTP requests.\n* `name`: The name of the software to install.\n* `git`: Type of Git service, github or gitlab.\n* `release_url`: URL to fetch release information from the Git repository.\n* `download_url`: URL to download the release archive.\n* `release`: Specify the release type, stable, prerelease or commit.\n* `user`, `password`, `token`: Authentication credentials for private repositories.\n* `remote_path`: Path within the Git repository to install from.\n* `ignored_files`, `ignored_directories`: Files or directories to ignore during installation.\n* `chmod_file`, `chmod_dir`: File and directory permissions to apply.\n* `executable`: Flag to determine if the current version is executable.\n\n### Methods\n* `setCacheTime(int $cache_time)`: Set the cache duration.\n* `setAction(string $action)`: Define the action to perform.\n* `setUseragent(string $useragent)`: Set a custom user agent for HTTP requests.\n* `setName(string $name)`: Set the software name.\n* `setGit(string $git)`: Specify the Git service type.\n* `setReleaseUrl(string $release_url)`: Set the URL for fetching release information.\n* `setDownloadUrl(string $download_url)`: Set the download URL for the release archive.\n* `setRelease(string $release)`: Define the release type.\n* `setUser(string $user)`, `setPassword(string $password)`, `setToken(string $token)`: Set authentication credentials.\n* `setRemotePath(string $remote_path)`: Specify a path within the repository for installation.\n* `setIgnoredFiles(array $ignored_files)`, `setIgnoredDirectories(array $ignored_directories)`: Specify files or directories to ignore.\n* `setChmodFile(int $chmod_file)`, `setChmodDir(int $chmod_dir)`: Set file and directory permissions.\n* `setExecutable(bool $executable)`: Set the executable flag.\n* `runEngine()`: Execute the defined action with the current configuration.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit pull requests or create issues for bugs, feature requests, or documentation improvements.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Contact\n\nIf you have any questions, feature requests, or issues, please open an issue on our [GitHub repository](https://github.com/jbs-newmedia/gitinstall/issues) or submit a pull request.\n\nThank you for considering GITInstall for your project!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbsnewmedia%2Fgitinstall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbsnewmedia%2Fgitinstall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbsnewmedia%2Fgitinstall/lists"}