{"id":24641147,"url":"https://github.com/elixir-cloud-aai/pubgrade","last_synced_at":"2025-05-12T14:59:12.215Z","repository":{"id":37962664,"uuid":"373140569","full_name":"elixir-cloud-aai/Pubgrade","owner":"elixir-cloud-aai","description":"Pubgrade is a decoupled, publish-subscribe-based continuous integration (CI) and continuous delivery (CD) microservice that allows developers to notify deploments of available updates","archived":false,"fork":false,"pushed_at":"2025-01-13T07:19:39.000Z","size":2135,"stargazers_count":3,"open_issues_count":10,"forks_count":3,"subscribers_count":26,"default_branch":"dev","last_synced_at":"2025-01-13T08:26:52.902Z","etag":null,"topics":["cicd","docker","flask","mongodb","python"],"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/elixir-cloud-aai.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":"2021-06-02T11:18:48.000Z","updated_at":"2024-10-23T07:07:53.000Z","dependencies_parsed_at":"2025-01-03T23:45:11.002Z","dependency_job_id":null,"html_url":"https://github.com/elixir-cloud-aai/Pubgrade","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/elixir-cloud-aai%2FPubgrade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-cloud-aai%2FPubgrade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-cloud-aai%2FPubgrade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elixir-cloud-aai%2FPubgrade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elixir-cloud-aai","download_url":"https://codeload.github.com/elixir-cloud-aai/Pubgrade/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235575671,"owners_count":19012158,"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":["cicd","docker","flask","mongodb","python"],"created_at":"2025-01-25T12:12:27.416Z","updated_at":"2025-01-25T12:12:27.983Z","avatar_url":"https://github.com/elixir-cloud-aai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pubgrade\n\n[![License][badge-license]][badge-url-license]\n[![Build_status][badge-build-status]][badge-url-build-status]\n[![Coverage Status][coverage-badge-svg]][badge-url-coverage]\n\n## Description\n\n**Pubgrade** (**Pub**lish-Up**grade**) is a decoupled, publish-subscribe-based\ncontinuous integration (CI) and continuous delivery (CD) service that allows\ndevelopers to notify deployments of available updates. These can can then\nautonomously decide what to do with them. Pubgrade has an optional link with\nthe [ELIXIR Cloud Service Registry][elixir-cloud-registry].\n\nCurrently supported features:\n\n- Register git repository.\n- Create and publish builds.\n- Register subscriptions.\n- Notify subscriptions on build updates.\n\n![app-schema][anim-schema]\n\n## Installation\n\n1. Install and setup [kubernetes][kubernetes-install].\n2. Install [Helm][helm-install].\n3. Modify deployment/values.yaml.\n4. Create a namespace. `kubectl create namespace pubgrade`\n5. Create deployment using helm. `helm install pubgrade deployment/ -n pubgrade`\n\n## Usage\n\n1. Register git repository.\n\n```bash\n    curl --location --request POST 'http://\u003chost_url\u003e:\u003chost_port\u003e/repositories' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"url\": \"\u003crepository_url\u003e\"\n}'\n```\n\n2. Create a user (System administrator).\n\n```bash\ncurl --location --request POST 'http://\u003chost_url\u003e:\u003chost_port\u003e/users/register' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"name\": \"\u003cname\u003e\"\n}'\n```\n\n3. Ask pubgrade admin to verify created user. (Only Admin) \n\n```bash\ncurl --location --request PUT 'http://\u003chost_url\u003e:\u003chost_port\u003e/users/\u003cuser-id\u003e/verify' \\\n--header 'X-Super-User-Access-Token: \u003cSuper-User-Access-Token\u003e' \\\n--header 'X-Super-User-Id: \u003cSuper-User-Id\u003e'\n```\n\n4. Subscribe to `repository`. (Use admin user)\n\n```bash\ncurl --location --request POST 'http://\u003chost_url\u003e:\u003chost_port\u003e/subscriptions' \\\n--header 'X-User-Access-Token: \u003cuser_access_token\u003e' \\\n--header 'X-User-Id: \u003cuser_identifier\u003e' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"repository_id\": \"\u003crepository_identifier\u003e\",\n    \"callback_url\": \"\u003curl\u003e\",\n    \"access_token\": \"\u003caccess_token\u003e\",\n    \"type\": \"\u003cbranch OR tag\u003e\",\n    \"value\": \"\u003cbranch_name OR tag_name\u003e\"\n}'\n```\n\n5. Register build. (CI should be configured to call this automatically)\n\n```bash\n    curl --location --request POST 'http://\u003chost_url\u003e:\u003chost_port\u003e/repositories/{repo_id}/builds' \\\n--header 'X-Project-Access-Token: \u003caccess_token\u003e' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"images\": [\n        {\n            \"name\": \"\u003cimage_name\u003e\",\n            \"location\": \"\u003cdocker_file_location\u003e\"\n       }\n    ],\n    \"head_commit\": {\n        \"branch\": \"\u003cbranch_name\u003e\"\n   },\n    \"dockerhub_token\": \"\u003cecho -n USER:PASSWD | base64\u003e\"\n}'\n```\n\nList available repositories.\n\n```bash\ncurl --location --request GET 'http://\u003chost_url\u003e:\u003chost_port\u003e/repositories'\n```\n\nList available builds for the repository.\n\n```bash\ncurl --location --request GET 'http://\u003chost_url\u003e:\u003chost_port\u003e/repositories/{repo_id}/builds'\n```\n\nList subscribed repositories\n\n```bash\ncurl --location --request GET 'http://\u003chost_url\u003e:\u003chost_port\u003e/subscriptions' \\\n--header 'X-User-Access-Token: \u003cuser_access_token\u003e' \\\n--header 'X-User-Id: \u003cuser_identifier\u003e'\n```\n\n## Contributing\n\nThis project is a community effort and lives off your contributions, be it in\nthe form of bug reports, feature requests, discussions, or fixes and other code\nchanges. Please refer to our organization's [contribution guidelines][contributing] if you are interested to\ncontribute. Please mind the [code of conduct][coc] for all interactions with\nthe community.\n\n## Versioning\n\nThe project adopts the [semantic versioning][semver] scheme for versioning.\nCurrently the service is in beta stage, so the API may change without further\nnotice.\n\n## License\n\nThis project is covered by the [Apache License 2.0][license-apache]\nalso [shipped with this repository][license].\n\n## Contact\n\nThe project is a collaborative effort under the umbrella\nof [ELIXIR Cloud \u0026 AAI][elixir-cloud]. Follow the link to get in touch with us\nvia chat or email. Please mention the name of this service for any inquiry,\nproposal, question etc.\n\n[anim-schema]: images/app-schema-animation.gif\n[badge-build-status]: https://travis-ci.com/elixir-cloud-aai/Pubgrade.svg?branch=dev\n[badge-coverage]: https://coveralls.io/repos/github/elixir-cloud-aai/Pubgrade/badge.svg?branch=dev\n[badge-license]: https://img.shields.io/badge/license-Apache%202.0-blue.svg\n[badge-url-build-status]: https://travis-ci.com/elixir-cloud-aai/Pubgrade\n[badge-url-coverage]: https://coveralls.io/github/elixir-cloud-aai/Pubgrade?branch=dev\n[coverage-badge-svg]: https://coveralls.io/repos/github/elixir-cloud-aai/Pubgrade/badge.svg?branch=dev\n[contributing]: https://github.com/elixir-cloud-aai/elixir-cloud-aai/blob/dev/CONTRIBUTING.md\n[elixir-cloud]: https://github.com/elixir-cloud-aai/elixir-cloud-aai\n[elixir-cloud-registry]: https://cloud-registry.rahtiapp.fi/ga4gh/registry/v1/ui/\n[helm-install]: https://helm.sh/docs/intro/install/\n[kubernetes-install]: https://kubernetes.io/docs/tasks/tools/\n[semver]: https://semver.org/\n[license-apache]: https://www.apache.org/licenses/LICENSE-2.0\n[license]: LICENSE\n[badge-license]: https://img.shields.io/badge/license-Apache%202.0-blue.svg\n[badge-url-license]: http://www.apache.org/licenses/LICENSE-2.0\n[ga4gh]: https://www.ga4gh.org/\n[coc]: https://github.com/elixir-cloud-aai/elixir-cloud-aai/blob/dev/CODE_OF_CONDUCT.md","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felixir-cloud-aai%2Fpubgrade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felixir-cloud-aai%2Fpubgrade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felixir-cloud-aai%2Fpubgrade/lists"}