{"id":18291215,"url":"https://github.com/violinist-dev/update-check-runner","last_synced_at":"2025-04-05T10:30:58.546Z","repository":{"id":37587647,"uuid":"110745338","full_name":"violinist-dev/update-check-runner","owner":"violinist-dev","description":"The update check runner that runs updates for violinist.io","archived":false,"fork":false,"pushed_at":"2025-03-29T05:50:24.000Z","size":1031,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T06:28:11.857Z","etag":null,"topics":["cd","ci","composer","composer-package","hacktoberfest","php","violinist"],"latest_commit_sha":null,"homepage":"https://violinist.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/violinist-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2017-11-14T21:12:42.000Z","updated_at":"2025-03-29T05:50:27.000Z","dependencies_parsed_at":"2023-10-17T04:23:51.215Z","dependency_job_id":"b3b0aaf5-a341-4e87-abb9-f141cf08a8a4","html_url":"https://github.com/violinist-dev/update-check-runner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violinist-dev%2Fupdate-check-runner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violinist-dev%2Fupdate-check-runner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violinist-dev%2Fupdate-check-runner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/violinist-dev%2Fupdate-check-runner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/violinist-dev","download_url":"https://codeload.github.com/violinist-dev/update-check-runner/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247324511,"owners_count":20920660,"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":["cd","ci","composer","composer-package","hacktoberfest","php","violinist"],"created_at":"2024-11-05T14:13:31.875Z","updated_at":"2025-04-05T10:30:58.525Z","avatar_url":"https://github.com/violinist-dev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# update-check-runner\n\nThe containers that run updates for [violinist.io](https://violinist.io), a PHP / Composer dependency updater for Bitbucket / GitHub / GitLab / Self Hosted GitLab.\n\nAlso available as standalone docker containers to self host the update running.\n\n[![Tests](https://github.com/violinist-dev/update-check-runner/actions/workflows/test.yml/badge.svg)](https://github.com/violinist-dev/update-check-runner/actions/workflows/test.yml)\n[![Violinist enabled](https://img.shields.io/badge/violinist-enabled-brightgreen.svg)](https://violinist.io)\n[![violinist-dev/update-check-runner/update-check-runner](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Feiriksm%2Fghcr-pulls%2Fmaster%2Fviolinist-dev-update-check-runner.yml\u0026query=$.human\u0026label=docker%20pulls)](https://github.com/violinist-dev/update-check-runner/pkgs/container/update-check-runner)\n\n## Quick start\n\nDon't even have time for a quick start? Here are some examples:\n\n\u003cdetails\u003e\n  \u003csummary\u003eExample for GitLab\u003c/summary\u003e\n  \n```bash\ndocker run \\\n  --pull=always \\\n  -e \"LICENCE_KEY=my_key\" \\\n  -e \"PROJECT_URL=https://gitlab.com/user/repo\" \\\n  -e \"USER_TOKEN=glpat-jjYgGb_1npvkiHTdnM\" \\\n  ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eExample for GitHub\u003c/summary\u003e\n  \n```bash\ndocker run \\\n  --pull=always \\\n  -e \"LICENCE_KEY=my_key\" \\\n  -e \"PROJECT_URL=https://github.com/user/repo\" \\\n  -e \"USER_TOKEN=ghp_jYgGb_1npvkiHTdnM\" \\\n  ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eExample for Bitbucket\u003c/summary\u003e\n  \n```bash\ndocker run \\\n  --pull=always \\\n  -e \"LICENCE_KEY=my_key\" \\\n  -e \"PROJECT_URL=https://bitbucket.org/org/project/repo\" \\\n  -e \"USER_TOKEN=myusername:app_p455w0rd\" \\\n  ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2\n```\n\u003c/details\u003e\n\n### 0. Find a repository to check for updates\n\nCopy the URL of the repository you want to check for updates. For the purpose of this quick start guide, let's assume this is `https://gitlab.com/user/repo`.\n\n### 1. Obtain an access token / app password\n\n- For GitHub visit [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new)\n- For Bitbucket visit [https://bitbucket.org/account/settings/app-passwords/new](https://bitbucket.org/account/settings/app-passwords/new). Please note your argument to running updates must include your username (see notice below).\n- For Gitlab visit [https://gitlab.com/-/user_settings/personal_access_tokens](https://gitlab.com/-/user_settings/personal_access_tokens)\n- For self hosted Gitlab visit [https://gitlab.example.com/-/user_settings/personal_access_tokens](https://gitlab.example.com/-/user_settings/personal_access_tokens) (replace with your own domain)\n\nFor the purpose of this quick start guide let's assume the token is `glpat-jjYgGb_1npvkiHTdnM`.\n\n\u003e 🚨️ For bitbucket your token should include both your username and your application password separated with a colon (`:`). For example `user:p455w0r0`.\n\n### 2. Obtain a license key from violinist.io\n\nYou can do this in one of the following ways:\n\n- Use a license key somehow provided to you\n- Use a trial license from [https://violinist.io/self-hosted-trial](https://violinist.io/self-hosted-trial)\n- Purchase a license on [https://violinist.io/purchase-licence](https://violinist.io/purchase-licence)\n\nFor the purpose of this quick start guide, let's assume the license key is `fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8`\n\n### 3. Run the appropriate container \n\nChoose the PHP version and composer version relevant to your project. For the purpose of this quick start guide, let's assume we use PHP 8.3 and Composer 2.\n\nThat means we should run the following docker image:\n\n\u003e ghcr.io/violinist-dev/update-check-runner:`8.3`-multi-composer-`2`\n\nPutting it all together with your noted arguments:\n\n```bash\ndocker run \\\n  --pull=always \\\n  -e \"LICENCE_KEY=fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8\" \\\n  -e \"PROJECT_URL=https://gitlab.com/user/repo\" \\\n  -e \"USER_TOKEN=glpat-jjYgGb_1npvkiHTdnM\" \\\n  ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2\n```\n\n## Variables\n\n### At a glance\n\n| Name | Required | Default value |\n| -- | -- | -- |\n| LICENCE_KEY | Yes | |\n| USER_TOKEN | Yes| |\n| PROJECT_URL | Yes | |\n| GIT_AUTHOR_NAME | No | violinist-bot |\n| GIT_AUTHOR_EMAIL | No | violinistdevio@gmail.com |\n| GIT_COMMITTER_NAME | No | violinist-bot |\n| GIT_COMMITTER_EMAIL | No | violinistdevio@gmail.com |\n| ALTERNATE_COMPOSER_PATH | No | |\n\n\n### Reference\n\n#### LICENCE_KEY \n\nThe licence key either handed to you, obtained or purchased for running your own update runners.\n\nPlease note the below key is an example, which is signed with an invalid private key.\n\nExample value: `fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8`\n\n#### USER_TOKEN\n\nA token valid for accessing the API, cloning the repo, pushing branches and creating pull requests on behalf of the user in question. Usually this will be a personal access token (PAT) or an app password.\n\nExample value: `ghp_eIgde31jggU3GIBB22fJbv2odcd0xy0e9jh8`\n\n#### PROJECT_URL\n\nThe repository to run update checks on.\n\nExample value: `https://github.com/violinist-dev/update-check-runner`\n\n#### GIT_AUTHOR_NAME\n\nAn environment variable used for git commits. From the git documentation:\n\n\u003e GIT_AUTHOR_NAME is the human-readable name in the “author” field.\n\n[See \"10.8 Git Internals - Environment Variables\" for more information](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n#### GIT_AUTHOR_EMAIL\n\nAn environment variable used for git commits. From the git documentation:\n\n\u003e GIT_AUTHOR_EMAIL is the email for the “author” field.\n\n[See \"10.8 Git Internals - Environment Variables\" for more information](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n#### GIT_COMMITTER_NAME\n\nAn environment variable used for git commits. From the git documentation:\n\n\u003e GIT_COMMITTER_NAME sets the human name for the “committer” field.\n\n[See \"10.8 Git Internals - Environment Variables\" for more information](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n#### GIT_COMMITTER_EMAIL\n\nAn environment variable used for git commits. From the git documentation:\n\n\u003e GIT_COMMITTER_EMAIL is the email address for the “committer” field.\n\n[See \"10.8 Git Internals - Environment Variables\" for more information](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n#### ALTERNATE_COMPOSER_PATH\n\nAn alternate path to use for the composer executable. For example, this is what you would use, should you want to use (or are forced to use) Composer 2.2 LTS instead of the latest version.\n\nYou can only set this value to one of the following alternatives, otherwise it will be ignored:\n\n- `/usr/local/bin/composer22` (this will be the latest Composer 2.2 LTS release)\n\n## Extensions\n\nThe following PHP extensions are available in the containers (long table, click to expand):\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to expand\u003c/summary\u003e\n\n  | Name | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| apcu | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| bcmath | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| bz2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| calendar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Core | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| ctype | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| curl | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| date | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| decimal | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| dom | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| exif | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| fileinfo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| filter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| ftp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| gd | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| gettext | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| gmp | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| hash | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| iconv | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| imagick | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| imap | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| intl | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| json | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| ldap | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| libxml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| mailparse | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| mbstring | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| memcached | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| mongodb | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| msgpack | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| mysqli | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| mysqlnd | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| OAuth | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| openssl | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pcntl | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pcre | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| PDO | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pdo_mysql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pdo_pgsql | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pdo_sqlite | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| pdo_sqlsrv | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Phar | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| posix | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| random | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ |\n| rdkafka | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| readline | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| redis | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Reflection | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| session | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| SimpleXML | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| soap | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| sockets | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| sodium | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| SPL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| sqlite3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| sqlsrv | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| standard | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| tokenizer | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| uuid | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| xml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| xmlreader | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| xmlrpc | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n| xmlwriter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| xsl | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| yaml | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Zend OPcache | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| zip | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| zlib | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n\n\n\u003c/details\u003e\n\n## FAQ\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eWhat is the difference between self hosting and using violinist.io (the SaaS)\u003c/strong\u003e\u003c/summary\u003e\n\n  In practice, all the automation, convenience, logging and persistance you would have to need.\n  \n  - No formatting, storing or analysis of logs. You would have to implement this yourself if needed.\n  - No notifications (email or slack)\n  - No automatic discovery of PHP version. When your project upgrade to a new version, you must also change the PHP version of the update container\n  - No private keys per project or per organization\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eCan I use this to run updates for my clients or customers and charge money for it?\u003c/strong\u003e\u003c/summary\u003e\n\n  Yes. There are no restrictions on what you use the licence key for, and if you use it for commercial purposes or something else.\n\n  You are not allowed to provide the same service as violinist.io (sell licences to this software, or provide a SaaS based on this software). But please go ahead and purchase a licence and charge your customers multiples of that to provide the service you purchased.\n\n  Otherwise, we refer to the licence of this repo: [https://github.com/violinist-dev/update-check-runner/blob/main/LICENSE](https://github.com/violinist-dev/update-check-runner/blob/main/LICENSE)\n\u003c/details\u003e\n\n## Licence\n\nLicenced under the commercial [violinist licence](https://github.com/violinist-dev/update-check-runner/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviolinist-dev%2Fupdate-check-runner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviolinist-dev%2Fupdate-check-runner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviolinist-dev%2Fupdate-check-runner/lists"}