{"id":33313350,"url":"https://github.com/canonical/data-platform-workflows","last_synced_at":"2026-02-16T11:16:13.398Z","repository":{"id":65878191,"uuid":"599523554","full_name":"canonical/data-platform-workflows","owner":"canonical","description":"Reusable GitHub Actions workflows used by the Data Platform team","archived":false,"fork":false,"pushed_at":"2026-01-19T11:15:49.000Z","size":525,"stargazers_count":8,"open_issues_count":12,"forks_count":14,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-19T16:45:07.512Z","etag":null,"topics":["data-platform"],"latest_commit_sha":null,"homepage":"","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/canonical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","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":"2023-02-09T10:17:48.000Z","updated_at":"2026-01-19T08:53:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"45d64a7e-facb-46e3-8d70-c631e4a57a13","html_url":"https://github.com/canonical/data-platform-workflows","commit_stats":null,"previous_names":[],"tags_count":273,"template":false,"template_full_name":null,"purl":"pkg:github/canonical/data-platform-workflows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fdata-platform-workflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fdata-platform-workflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fdata-platform-workflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fdata-platform-workflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canonical","download_url":"https://codeload.github.com/canonical/data-platform-workflows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fdata-platform-workflows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28810606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T07:41:26.337Z","status":"ssl_error","status_checked_at":"2026-01-27T07:41:08.776Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["data-platform"],"created_at":"2025-11-19T10:00:40.974Z","updated_at":"2026-01-27T09:34:26.775Z","avatar_url":"https://github.com/canonical.png","language":"Python","readme":"## Usage\n### Workflows\n| Name                                                                         | Description                                                                                                       |\n|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|\n| [lint.yaml](.github/workflows/lint.md)                                       | Lint GitHub Actions workflows (`.github/workflows/`) and `tox run -e lint`                                        |\n| [tag_charm_edge.yaml](.github/workflows/tag_charm_edge.md)                   | Create charm refresh compatibility version git tag before edge build \u0026 release                                    |\n| [build_snap.yaml](.github/workflows/build_snap.md)                           | Build snap                                                                                                        |\n| [build_rock.yaml](.github/workflows/build_rock.md)                           | Build rock                                                                                                        |\n| [build_charm.yaml](.github/workflows/build_charm.md)                         | Build charm                                                                                                       |\n| [release_python_package.yaml](.github/workflows/release_python_package.md)   | Release Python package to PyPI                                                                                    |\n| [check_python_package_pr.yaml](.github/workflows/check_python_package_pr.md) | Check Python package pull request has required semantic version prefix                                            |\n| [release_snap.yaml](.github/workflows/release_snap.md)                       | Release snap to Snap Store                                                                                        |\n| [release_rock.yaml](.github/workflows/release_rock.md)                       | Release rock to GitHub Container Registry                                                                         |\n| [release_charm_edge.yaml](.github/workflows/release_charm_edge.md)           | Release charm to Charmhub \"edge\" risk                                                                             |\n| [release_charm_pr.yaml](.github/workflows/release_charm_pr.md)               | Release pull request charm to Charmhub branch                                                                     |\n| [_mirror_charm.yaml](.github/workflows/_mirror_charm.md)                     | **Experimental** Mirror subset of charm monorepo with local Python package to single-charm repo                   |\n| [_promote_charms.yaml](.github/workflows/_promote_charms.md)                 | **Experimental** `charmcraft promote` \u0026 generate release notes                                                    |\n| [_promote_charm_legacy.yaml](.github/workflows/_promote_charm_legacy.md)     | **Deprecated** `charmcraft promote` \u0026 generate release notes for charm without refresh compatibility version tags |\n| [check_charm_pr.yaml](.github/workflows/check_charm_pr.md)                   | Check charm pull request has required labels for release notes                                                    |\n| [approve_renovate_pr.yaml](.github/workflows/approve_renovate_pr.md)         | Reduce required approvals on [Renovate](https://docs.renovatebot.com/) pull requests by 1                         |\n| [_update_bundle.yaml](.github/workflows/_update_bundle.md)                   | **Experimental** Update charm revisions in bundle                                                                 |\n| [integration_test_charm.yaml](.github/workflows/integration_test_charm.md)   | **Deprecated** Integration test charm                                                                             |\n| [sync_docs.yaml](.github/workflows/sync_docs.md)                             | **Deprecated** Sync Discourse documentation to GitHub                                                             |\n\n### Version\nRecommendation: pin the latest version (e.g. `v1.0.0`) and use [Renovate](https://docs.renovatebot.com/) to stay up-to-date.\n\nBug fixes will **not** be backported.\n\nExample workflow:\n```yaml\njobs:\n  build:\n    name: Build charms\n    uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v1.0.0\n```\n\nExample Renovate configuration:\n```json5\n{\n  \"enabledManagers\": [\"poetry\", \"github-actions\"],\n  \"packageRules\": [\n    // Later rules override earlier rules\n\n    // Group data-platform-workflows Python package \u0026 workflow updates into the same PR\n    {\n      \"matchManagers\": [\"poetry\"],\n      \"matchPackageNames\": [\"canonical/data-platform-workflows\"],\n      // Ensure Renovate prefers vX.0.0 tag (e.g. \"v24.0.0\") over vX tag (e.g. \"v24\") if vX.X.X tag\n      // currently in use\n      // (Matches default versioning of \"github-actions\" manager)\n      \"versioning\": \"docker\",\n      \"groupName\": \"data-platform-workflows\"\n    },\n    {\n      \"matchManagers\": [\"github-actions\"],\n      \"matchPackageNames\": [\"canonical/data-platform-workflows\"],\n      \"groupName\": \"data-platform-workflows\"\n    },\n  ]\n}\n\n```\n\nNote: all workflows in this repository share a version number. If a breaking change is made to the public interface of one workflow, all workflows will have a new major version even if they have no breaking changes.\n\nIf you do not want to use Renovate, pin to the latest major version (e.g. `v1`).\n\n### Public interface\nWorkflows that do **not** begin with an underscore (e.g. `foo.yaml`) may be called outside this repository.\n\nWorkflows that begin with one underscore (e.g. `_foo.yaml`) are internal and are only intended to be called by reusable workflows in this repository (that begin with zero or one underscores).\n\nWorkflows that begin with two underscores (e.g. `__foo.yaml`) are for this repository only. They may only be (triggered by an event on this repository or) called by workflows in this repository that begin with two underscores.\n\n## Documentation\n\n- User Documentation: See [Workflows](#workflows) \n- Developer Documentation: See [CONTRIBUTING.md](CONTRIBUTING.md). To be improved.\n\n## Community and support\n\n- Report [issues](https://github.com/canonical/data-platform-workflows/issues)\n- [Contact us on Matrix](https://matrix.to/#/#charmhub-data-platform:ubuntu.com)\n\nData Platform Workflows is covered by the [Ubuntu Code of\nConduct](https://ubuntu.com/community/ethos/code-of-conduct).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fdata-platform-workflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanonical%2Fdata-platform-workflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fdata-platform-workflows/lists"}