{"id":23709710,"url":"https://github.com/imio/gha","last_synced_at":"2026-04-02T12:04:07.985Z","repository":{"id":247362800,"uuid":"822967246","full_name":"IMIO/gha","owner":"IMIO","description":"Repository hosting our GitHub actions ","archived":false,"fork":false,"pushed_at":"2026-03-19T15:46:22.000Z","size":117,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-20T02:53:48.075Z","etag":null,"topics":["devops"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IMIO.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-02T07:15:11.000Z","updated_at":"2026-03-19T15:47:39.000Z","dependencies_parsed_at":"2024-07-15T09:32:21.223Z","dependency_job_id":"ea5f92ec-dcbf-4e50-b4fb-d020d7d6c05d","html_url":"https://github.com/IMIO/gha","commit_stats":null,"previous_names":["imio/gha"],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/IMIO/gha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMIO%2Fgha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMIO%2Fgha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMIO%2Fgha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMIO%2Fgha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IMIO","download_url":"https://codeload.github.com/IMIO/gha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IMIO%2Fgha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31305971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T09:48:21.550Z","status":"ssl_error","status_checked_at":"2026-04-02T09:48:19.196Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["devops"],"created_at":"2024-12-30T18:57:51.311Z","updated_at":"2026-04-02T12:04:07.972Z","avatar_url":"https://github.com/IMIO.png","language":"Python","readme":"# iMio github actions\n\n[![GitHub Release](https://img.shields.io/github/v/release/IMIO/gha)](https://github.com/IMIO/gha/blob/main/CHANGELOG.md)\n\nThis repository hosts a set of github actions we use to deploy our apps.\n\n## Actions\n- [iMio github actions](#imio-github-actions)\n  - [Actions](#actions)\n    - [build-push-notify](#build-push-notify)\n      - [Inputs](#inputs)\n      - [Example of usage](#example-of-usage)\n    - [check-url-availibility](#check-url-availibility)\n      - [Example of usage](#example-of-usage-1)\n    - [code-analysis-notify](#code-analysis-notify)\n      - [Inputs](#inputs-1)\n      - [Example of usage](#example-of-usage-2)\n    - [deb-build-push-notify](#deb-build-push-notify)\n      - [Inputs](#inputs-2)\n      - [Example of usage](#example-of-usage-3)\n    - [helm-release-notify](#helm-release-notify)\n      - [Inputs](#inputs-3)\n      - [Example of usage](#example-of-usage-4)\n    - [helm-test-notify](#helm-test-notify)\n      - [Inputs](#inputs-4)\n      - [Example of usage](#example-of-usage-5)\n    - [mattermost-notify](#mattermost-notify)\n      - [Inputs](#inputs-5)\n      - [Example of usage](#example-of-usage-6)\n    - [plone-package-test-notify](#plone-package-test-notify)\n      - [Inputs](#inputs-6)\n      - [Example of usage](#example-of-usage-7)\n    - [plone-theme-build-push-notify](#plone-theme-build-push-notify)\n      - [Inputs](#inputs-7)\n      - [Example of usage](#example-of-usage-8)\n    - [rundeck-notify](#rundeck-notify)\n      - [Inputs](#inputs-8)\n      - [Example of usage](#example-of-usage-9)\n    - [tag-notify](#tag-notify)\n      - [Inputs](#inputs-9)\n      - [Example of usage](#example-of-usage-10)\n    - [k8s-update-tag](#k8s-update-tag)\n      - [Inputs](#inputs-10)\n      - [Example of usage](#example-of-usage-11)\n  - [Contribute](#contribute)\n    - [Release](#release)\n\n### build-push-notify\n\nbuild/push a docker image using docker/build-push-action and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| IMAGE_NAME             |    yes   | string |                 | Name of the image to build |\n| IMAGE_TAGS             |    yes   | string |                 | Tags of the image to build and push (one per line)|\n| REGISTRY_URL           |    yes   | string |                 | URL of the registry |\n| REGISTRY_USERNAME      |    yes   | string |                 | Username to login to registry |\n| REGISTRY_PASSWORD      |    yes   | string |                 | Password to login to registry |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n| PLATFORMS              |    yes   | string | `\"linux/amd64\"` | Platforms to build the image for |\n| CONTEXT                |    yes   | string | `\"./\"`          | Build context |\n| DOCKERFILE             |    yes   | string | `\"Dockerfile\"`  | Name of the Dockerfile |\n| BUILD_ARGS             |    yes   | string | `\"\"`            | Build arguments to pass to the Dockerfile |\n| TARGET                 |    no    | string |                 | Target stage to build |\n| PRE_BUILD_COMMANDS     |    no    | string |                 | Optional commands to run before the build (one per line) |\n\n#### Example of usage\n\n[IMIO/docker-teleservices](https://github.com/IMIO/docker-teleservices/blob/7ee9bd77714bbbd1049c510aae222105460d72c6/.github/workflows/publish.yml#L16)\n\n---\n### check-url-availibility\n\nLoop until a given url returns a 200 status-code. Can be used during deployments to test if an app is available.\n\n| name                   | required |  type   | default         | description |\n| ---------------------- | -------- | ------- | --------------- | ----------- |\n|         URL            |   yes    |  string |                 | URL to test |\n|       TIMEOUT          |   yes    | integer |       5         | Timeout (in minutes) |\n\n#### Example of usage\n\n[IMIO/docker-teleservices](https://github.com/IMIO/docker-teleservices/blob/7ee9bd77714bbbd1049c510aae222105460d72c6/.github/workflows/publish.yml#L59)\n\n---\n### code-analysis-notify\n\nRun checks for Plone backend code and optionally notify via a mattermost webhook\n\nThis github action uses the [code-analysis-action](https://github.com/plone/code-analysis-action/tree/main) from the Plone organization.\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| BASE_DIR               |    no    | string |                 | Base directory |\n| CHECK                  |    no    | string |                 | Checks to be used |\n| PATH                   |    no    | string |                 | Path to be checked |\n| LOG_LEVEL              |    no    | string | \"INFO\"          | Log level |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/imio.smartweb.core](https://github.com/IMIO/imio.smartweb.core/blob/fdb331eb004eed0744f419264f063a336b40d069/.github/workflows/plone-package-test-gha.yml#L16)\n\n---\n### deb-build-push-notify\n\nBuild a deb package, push it on a repository and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| REPOSITORY_URL         |   yes    | string |                 | URL of the repository |\n| REPOSITORY_LOGIN       |   yes    | string |                 | Login for the repository |\n| REPOSITORY_PASSWORD    |   yes    | string |                 | Passsword for the repository |\n| PACKAGE_NAME           |   yes    | string |                 | Name of the package to build |\n| PACKAGE_INSTALL_PATH   |   yes    | string | `'/usr/...'`    | Path to install package |\n| PACKAGE_VERSION        |   yes    | string |                 | Package version |\n| PACKAGE_DEPENDENCY     |   yes    | string | `'passerelle'`  | Package dependency |\n| SIGNER_KEY             |   yes    | string |                 | Key to sign deb package (base64 encoded) |\n| SIGNER_KEY_ID          |   yes    | string | `'9D4...'`      | ID of the key to sign deb package |\n| SIGNER_KEY_PASSPHRASE  |   yes    | string |                 | Passphrase to sign deb package |\n| MATTERMOST_WEBHOOK_URL |   no     | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/scripts-teleservices](https://github.com/IMIO/scripts-teleservices/blob/613d1563be3ddbafb3c66347022558c5dffb678c/.github/workflows/deb.yml#L20)\n\n---\n### helm-release-notify\n\nRelease a helm chart and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| HELM_VERSION           |    yes   | string | \"3.12.3\"       | Helm version to use |\n| HELM_DEPENDENCIES      |    no    | string |                 | Helm dependencies |\n| INDEX_DIR              |    yes   | string | \".\"             | Index directory |\n| CHARTS_DIR             |    yes   | string | \".\"             | Charts directory |\n| TARGET_DIR             |    yes   | string | \"test\"          | Target directory to release |\n| APP_ID                 |    yes   | string |                 | Github App ID |\n| SECRET_KEY             |    yes   | string |                 | Github App Secret key |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n/\n\n---\n### helm-test-notify\n\nLint and test a helm chart and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| PYTHON_VERSION         |    yes   | string | \"3.10\"          | Python version to use |\n| HELM_VERSION           |    yes   | string | \"v3.12.3\"       | Helm version to use |\n| HELM_RELEASE           |    yes   | string | \"test\"          | Helm release name |\n| HELM_NAMESPACE         |    yes   | string | \"test\"          | Helm namespace name |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n/\n\n---\n### mattermost-notify\n\nSend a notification on a Mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| MESSAGE                |    yes   | string |                 | Message to send on Mattermost |\n| MATTERMOST_WEBHOOK_URL |    yes   | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/imio_smartweb_themes](https://github.com/IMIO/imio_smartweb_themes/blob/12c86daff672c89fa90a21c6fe6f6b4214d94547/.github/workflows/build-upload.yml#L63)\n\n---\n### plone-package-test-notify\n\nTest a Plone package and optionally notify via a mattermost webhook\n\n\u003e [!WARNING] \n\u003e Python 2 support has been dropped in v5. If you still need it, use [v4](https://github.com/IMIO/gha/tree/v4)\n\n#### Inputs\n\n| name                          | required | type   | default            | description |\n| ----------------------------- | -------- | ------ | ------------------ | ----------- |\n| BUILDOUT_COMMAND              |    yes   | string | \"buildout\"         | Command to run buildout |\n| BUILDOUT_CONFIG_FILE          |    yes   | string | \"buildout.cfg\"     | Buildout config file |\n| BUILDOUT_OPTIONS              |    no    | string |                    | Options to pass to buildout |\n| CACHE_KEY                     |    no    | string |                    | key to use in actions/cache |\n| INSTALL_DEPENDENCIES_COMMANDS |    no    | string |                    | Install dependencies commands (one per line) |\n| MATTERMOST_WEBHOOK_URL        |    no    | string |                    | Webhook URL to send notifications on Mattermost |\n| PYTHON_VERSION                |    yes   | string | \"3.13\"             | Python version to use |\n| TEST_COMMAND                  |    yes   | string | \"bin/test\"         | Test command to run |\n| UV_VERSION                    |    yes   | string | \"0.7.13\"           | uv version to use |\n\n#### Example of usage\n\n[IMIO/imio.smartweb.core](https://github.com/IMIO/imio.smartweb.core/blob/fdb331eb004eed0744f419264f063a336b40d069/.github/workflows/plone-package-test-gha.yml#L33)\n\n---\n### plone-theme-build-push-notify\n\nBuild a theme, upload it to a plone site and optionally notify on Mattermost\n\n#### Inputs\n\n| name                   | required | type   | default      | description |\n| ---------------------- | -------- | ------ | -------------| ----------- |\n| THEME_PATH             |    yes   | string |              | Folder where theme files are located |\n| PLONE_URL              |    yes   | string |              | URL of the Plone site |\n| PLONE_USERNAME         |    yes   | string |              | Username to login to Plone |\n| PLONE_PASSWORD         |    yes   | string |              | Password to login to Plone |\n| MATTERMOST_WEBHOOK_URL |    no    | string |              | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/imio_smartweb_themes](https://github.com/IMIO/imio_smartweb_themes/blob/2268e1ee7350214b7fe7e98c4353622a61c3250a/.github/workflows/build-upload.yml#L117)\n\n---\n### repository-dispatch-notify\n\nTrigger a repository dispatch event and optionally notify on Mattermost\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| REPOSITORY             |    yes   | string |                 | Repository to trigger the dispatch event |\n| GIT_REFERENCE          |    no    | string | \"main\"          | Reference to trigger the event on |\n| INPUTS                 |    no    | string | \"{}\"            | Inputs to pass to the workflow, Exemple : {\"input1\":\"abc\", \"input2\":\"abc\"} |\n| REPOSITORY_OWNER       |    yes   | string |                 | Repository owner |\n| WORKFLOW_FILENAME      |    yes   | string |                 | Filename of the workflow to trigger |\n| APP_ID                 |    yes   | string |                 | GitHub App ID |\n| APP_PRIVATE_KEY        |    yes   | string |                 | GitHub App private key |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n/\n\n---\n### rundeck-notify\n\ncall a rundeck job and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| RUNDECK_URL            |    yes   | string |                 | URL of the Rundeck server |\n| RUNDECK_TOKEN          |    yes   | string |                 | Auth token to call Rundeck job |\n| RUNDECK_JOB_ID         |    yes   | string |                 | ID of the rundeck job to call |\n| RUNDECK_PARAMETERS     |    no    | string |                 | Parameters to pass to the Rundeck job |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/buildout.news](https://github.com/IMIO/buildout.news/blob/6b229a3a0e00dda2986e496ebc7b70da2069273e/.github/workflows/prod.yml#L35)\n\n---\n### tag-notify\n\nAdd tags to a docker image and optionally notify via a mattermost webhook\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| IMAGE_NAME             |    yes   | string |                 | Name of the image to tag |\n| IMAGE_TAG              |    yes   | string | `\"staging\"`     | Actual tag of the image |\n| NEW_IMAGE_TAGS         |    yes   | string |                 | Tags to add to the image (one per line) |\n| REGISTRY_URL           |    yes   | string |                 | URL of the registry |\n| REGISTRY_USERNAME      |    yes   | string |                 | Username to login to registry |\n| REGISTRY_PASSWORD      |    yes   | string |                 | Password to login to registry |\n| MATTERMOST_WEBHOOK_URL |    no    | string |                 | Webhook URL to send notifications on Mattermost |\n\n#### Example of usage\n\n[IMIO/buildout.ideabox](https://github.com/IMIO/buildout.ideabox/blob/9e8218d6f52a5060d14139864b6b0d993f633202/.github/workflows/prod.yml#L16)\n\n---\n### k8s-update-tag\n\nUpdate a component tag in Kubernetes values file and commit to repository. This action is useful for automated deployments where you want to update the image tag in your Kubernetes configuration files.\n\n#### Inputs\n\n| name                   | required | type   | default         | description |\n| ---------------------- | -------- | ------ | --------------- | ----------- |\n| TAG                    |    yes   | string |                 | Tag to set for the component (e.g., commit SHA) |\n| REPO_TOKEN_NAME        |    yes   | string |                 | Name of the repository access token |\n| REPO_ACCESS_TOKEN      |    yes   | string |                 | Repository access token for authentication |\n| REPO_URL               |    yes   | string |                 | Repository URL (without https://) |\n| TARGET_BRANCH          |    no    | string | `\"main\"`        | Target branch to update |\n| VALUES_FILE_PATH       |    yes   | string |                 | Path to the values file to update |\n\n#### Example of usage\n\n```yaml\n- name: Update Kubernetes tag\n  uses: IMIO/gha/k8s-update-tag@v5\n  with:\n    TAG: ${{ github.sha }}\n    REPO_TOKEN_NAME: DEPLOY_TOKEN\n    REPO_ACCESS_TOKEN: ${{ secrets.K8S_DEPLOY_TOKEN }}\n    REPO_URL: github.com/myorg/k8s-configs.git\n    TARGET_BRANCH: main\n    VALUES_FILE_PATH: staging/myapp/values-dev.yaml\n```\n\n## Contribute\n\n### Release\n\nA new release is issued when a tag beginning with v is pushed.\nThe main release (for instance v3) will also be updated with the latest tag.\n\nThe release note is automatically populated using the \"[tag]\" section from the CHANGELOG.md .\n\n[See the CHANGELOG.md file for an example](https://github.com/IMIO/gha/blob/66f298e6e5081e5e917df21e1036c6fa52246a8d/CHANGELOG.md?plain=1#L3)\n\nTypically, you will first update the changelog ([Example commit](https://github.com/IMIO/gha/commit/edb3c35ac9eac8b489d1a41972ee74f930859d31)).\n\nThen, you will push the tags.\n\n\n```bash\ngit add CHANGELOG.md\ngit commit -m 'doc: Release v5.0.0'\ngit tag -a -m 'release v5.0.0' v5.0.0\ngit push --follow-tags\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimio%2Fgha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimio%2Fgha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimio%2Fgha/lists"}