{"id":22870884,"url":"https://github.com/percona-lab/pmm-submodules","last_synced_at":"2025-05-05T22:16:46.778Z","repository":{"id":37266129,"uuid":"114283030","full_name":"Percona-Lab/pmm-submodules","owner":"Percona-Lab","description":"A repo dedicated to building Percona Monitoring and Management (PMM)","archived":false,"fork":false,"pushed_at":"2025-05-05T15:34:57.000Z","size":4994,"stargazers_count":12,"open_issues_count":70,"forks_count":29,"subscribers_count":25,"default_branch":"PMM-2.0","last_synced_at":"2025-05-05T22:16:41.448Z","etag":null,"topics":["pmm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Percona-Lab.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-14T18:25:41.000Z","updated_at":"2025-05-05T10:10:50.000Z","dependencies_parsed_at":"2023-10-14T22:15:30.658Z","dependency_job_id":"55bd591c-9a2b-43b6-bb41-a04a4b620b39","html_url":"https://github.com/Percona-Lab/pmm-submodules","commit_stats":null,"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpmm-submodules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpmm-submodules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpmm-submodules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Percona-Lab%2Fpmm-submodules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Percona-Lab","download_url":"https://codeload.github.com/Percona-Lab/pmm-submodules/tar.gz/refs/heads/PMM-2.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252584333,"owners_count":21771945,"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":["pmm"],"created_at":"2024-12-13T13:16:29.555Z","updated_at":"2025-05-05T22:16:46.757Z","avatar_url":"https://github.com/Percona-Lab.png","language":"Python","readme":"# PMM Submodules\n\nThis repository serves the purpose of creating and/or updating the feature builds for PMM Server and PMM Client. It is auxiliary\nto our build system managed by Jenkins as it helps pull the right branches from different repositories that PMM [consists of](https://github.com/percona/pmm/blob/main/CONTRIBUTING.md#project-repos-structure).\n\n# Installation of dependencies\n\nIf you build with Python's script then you need to install the dependencies:\n\n```\npip install -r requirements.txt\n```\n\n## How to create a feature build\n\nTo create a feature build (FB) you have to edit `ci.yml` and specify the branches that you want the system to pull when building a feature. For example:\n\n```yaml\ndeps:\n  - name: pmm\n    branch: PMM-0000-fix-everything\n  - name: pmm-qa\n    branch: PMM-0000-fix-everything-and-even-more\n```\n\nTo build from a fork, you need to specify `url` for the dependency, for example:\n\n```yaml\ndeps:\n  - name: pmm-server\n    url: https://github.com/\u003cyour-account\u003e/pmm-server\n    branch: PMM-0000-fix-everything\n```\n\nNext, you will commit changes to git and push them to the repo:\n\n```\ngit add ci.yml\ngit commit -m 'use custom branches'\ngit push\n```\n\nWhenever you commit and push to a feature branch, a Jenkins job will be triggered and it will start building your feature. You can follow its progress right from the PR's actions (at the bottom of each PR).\n\n## Using a Personal Access Token (PAT)\n\nGiven that github is limiting the number of API requests for unauthenticated users, it'd be a good idea to use your personal access token. You can create a personal token in [Github settings](https://github.com/settings/tokens). Generate New Token -\u003e Click on a repo -\u003e Create an environment variable called `GITHUB_API_TOKEN` and provide your token as the value.\n\nThe token requires the following permissions:\n\n- `repo:status`\n- `public_repo`\n- `read:user`\n\nIt is recommended to set an expiration date for your token.\n\nif you use zsh:\n\n```console\necho 'export GITHUB_API_TOKEN=********' \u003e\u003e ~/.zshrc\nsource ~/.zshrc\n```\n\nif you use bash:\n\n```console\necho 'export GITHUB_API_TOKEN=********' \u003e\u003e ~/.bash_profile\nsource ~/.bash_profile\n```\n\nNOTE: Please make sure you don't commit your PAT to github. Should the PAT accidentally leak out, please revoke it asap and re-create it.\n\n## FAQ\n\n### What if my FB is made up of branches with the same name?\n\nIf you use the same branch name in all repos then you can run:\n\n```console\nmake prepare \u003cyou branch name\u003e\n```\n\nBranches with \"you branch name\" will be used for all repos or the default branch (usually called `main`) if the branch with this name isn't found in the repo.\n\nIf you want to create a FB from a fork, you can pass an environment variable \"FORK_OWNER\" which should be equal to your username in github and run:\n\n```console\nFORK_OWNER=\u003cyour username\u003e make prepare \u003cyou branch name\u003e\n```\n\n### I got an error \"...branch has no upstream branch\"\n\nThis happens because of your newly created branch. Your Git is not configured to create that same branch on remote. To fix this you can run:\n\n```console\ngit config --global push.default current\n```\n\n### What's a `global` repo in ci.yml?\n\nIt's a branch name that this script will try to find in a repo instead of the default branch (usually called `main` or `PMM-2.0`).\n\n### Can I build my FB as before using .gitmodules?\n\nCertainly. If `ci.yml` is left empty, the system will pick the branches from `.gitmodules` as before. The mix of both however is not supported.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercona-lab%2Fpmm-submodules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpercona-lab%2Fpmm-submodules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercona-lab%2Fpmm-submodules/lists"}