{"id":19705181,"url":"https://github.com/linux-system-roles/auto-maintenance","last_synced_at":"2026-04-28T20:08:44.971Z","repository":{"id":37185783,"uuid":"194283978","full_name":"linux-system-roles/auto-maintenance","owner":"linux-system-roles","description":"Linux system roles wide automated repo maintenance","archived":false,"fork":false,"pushed_at":"2026-04-14T21:44:20.000Z","size":785,"stargazers_count":27,"open_issues_count":1,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-04-14T23:35:02.609Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linux-system-roles.png","metadata":{"files":{"readme":"README-manage_issues.md","changelog":null,"contributing":"contributing.md","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":"2019-06-28T14:07:14.000Z","updated_at":"2026-04-14T21:44:25.000Z","dependencies_parsed_at":"2024-03-15T03:32:24.017Z","dependency_job_id":"5adffc51-e473-4dbf-9f34-bde3c6b8ca60","html_url":"https://github.com/linux-system-roles/auto-maintenance","commit_stats":null,"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"purl":"pkg:github/linux-system-roles/auto-maintenance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-system-roles%2Fauto-maintenance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-system-roles%2Fauto-maintenance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-system-roles%2Fauto-maintenance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-system-roles%2Fauto-maintenance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linux-system-roles","download_url":"https://codeload.github.com/linux-system-roles/auto-maintenance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-system-roles%2Fauto-maintenance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32396894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"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":[],"created_at":"2024-11-11T21:26:42.358Z","updated_at":"2026-04-28T20:08:44.940Z","avatar_url":"https://github.com/linux-system-roles.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# manage_issues.py\n\n## What is it?\n\nManagement of Jira issues - create issues, list issues, other issue management\n\n\n## Requirements\n\nPython based\n\nUses the (https://jira.readthedocs.io/)[python jira] library for the Jira REST\nAPI.  This is available in Fedora as the `python3-jira` package.\n\nUses (https://click.palletsprojects.com/en/8.1.x/)[python click] library for CLI\noption/argument management, instead of the built-in python `argparse` library,\nwhich allows more complex option/arguments.  This is available in Fedora as the\n`python3-click` package.\n\n### Token\n\nYou must have a valid Jira API token.\n\nLog in to your Jira instance.  Go to `Profile -\u003e Personal Access Tokens`.  If\nyou do not already have a token that you want to use here, go to `Create token`.\nCopy the token value to `~/.config/jira.yml` which looks like this:\n\n```yaml\nproduction:\n  token: xxxxTheTokenxxxx\n  url: https://issues.example.com\ncurrent: production\n```\n\nEach item is a context e.g. you can use different contexts for production,\nstaging, test, etc. each with a different url and token.  The `current` item is\nthe name of the current context you want to use.\n\n## Commands\n\n### create-issue\n\nCreate a Jira issue.  There are 3 main ways to create an issue:\n\n* `--github-url` - use the data from a github PR or issue - summary, description, role,\n  status, and doc fields will be set, and the new issue will have a remote link\n  to the github issue\n* `--base-issue` - use the summary, labels, and github remote link from the given issue\n* specify all fields individually\n\n#### project\n\nRequired - name of Jira project\n\n#### component\n\nValue for Jira component field\n\n#### issue-type\n\nRequired if not using `--github-url` - Jira issue type (\"Task\", \"Bug\", etc.) - if using `--github-url` then the issue type will be determined by the Conventional Commit\nformat of the PR title (e.g. `feat:` is `Story`, `fix:` is `Bug`)\n\n#### version\n\nFix version e.g. `rhel-9.6`\n\n#### itm\n\nInternal target milestone e.g. `19`\n\n#### dtm\n\nDev target milestone e.g. `15`\n\n#### dev_ack\n\nSet the Dev ack e.g. `Dev ack`\n\n#### status\n\n\"In Progress\", \"Planning\", etc. - if using `--github-url`, then will default to\n\"In Progress\" for merged PRs, \"Planning\" otherwise\n\n#### severity\n\n\"Critical\", \"Moderate\", etc.\n\n#### summary\n\nThe title of the issue - if using `--github-url`, will use the PR/issue title -\nif using `--base-issue`, then you can specify `--summary` with `{issue_summary}`\nin the string e.g. `--summary 'packaging work for {issue_summary}'` - this also\nworks when using `--github-url` for subsequent `create-issue`\n\n#### description\n\nThe description of the issue - if using `--github-url`, will use the PR/issue\nbody - if using `--base-issue`, then you can specify `--description` with\n`{issue_summary}` in the string e.g. `--description 'packaging work for\n{issue_summary}'` - this also works when using `--github-url` for subsequent\n`create-issue`\n\n#### epic-name\n\nThis is the name of the epic when creating a `--issue-type Epic` - if using\n`--github-url` or `--base-issue` you can use `{issue_summary}` in the string\ne.g. `--epic-name '[Epic] for {issue_summary}`\n\n\n#### role\n\nOne or more role names to associate with the issue.  If more than one, specify\nthe argument multiple times on the command line e.g. `--role kdump --role ssh`\n\n#### doc-text-type\n\nSets the field `Release Note Type` in the issue - see help for option values -\nif using `--github-url` this will be derived like `issue-type`\n\n#### doc-text\n\nThe text to use for the `Release Note`.  If using `--github-url`, this will\nuse the PR body.\n\n#### docs-impact\n\n`Yes` if this will impact documentation, otherwise `No`\n\n#### story-points\n\nNumber of story points to assign to issue\n\n#### sprint\n\nNot supported yet\n\n#### label\n\nOne or more labels.  To specify more than one, use `--label foo --label bar`\n\n#### product\n\nproduct\n\n#### epic-issue-link\n\nOne or more other issues to assign to the epic when creating an epic.  This is\nuseful if there are already Jira issues created that you want to link into\nthe epic `--epic-issue-link PROJECT-123 --epic-issue-link ANOTHER-456`\n\n### dump-issue\n\nPrint one or more issues in JSON format.\n\n```bash\nmanage_issues.py dump-issues PROJECT-123 PROJECT-456 ....\n```\n\n### rpm-release\n\nDoing an RPM release requires several types of text - spec file `%changelog`, CHANGELOG.md,\ngit commit message, and a list of issues.  `rpm-release` will create those for you in\nseveral files - `cl-spec`, `cl-md`, `git-commit-msg`, and `issue-list`.\n\n```bash\nmanage_issues.py --project PROJECT --component my-package --rpm-version 1.90.0-0.1 \\\n  --status \"In Progress\" --version rhel-9.6\n```\n\n#### project\n\nRequired - name of Jira project\n\n#### component\n\nValue for Jira component field\n\n#### issue-type\n\nJira issue type (\"Task\", \"Bug\", etc.) - default is `(\"Bug\", \"Story\")`\n\n#### version\n\nFix version e.g. `rhel-9.6`\n\n#### status\n\nIssue status - default is `\"In Progress\"`\n\n#### role\n\nOne or more role names to associate with the issue.  If more than one, specify\nthe argument multiple times on the command line e.g. `--role kdump --role ssh`\n\n#### label\n\nOne or more labels.  To specify more than one, use `--label foo --label bar`\n\n#### fields\n\nOne or more fields to return in the search.  The default is `(\"summary\", \"labels\", \"issuetype\")`\nThe code right now is more or less hard coded to expect and output these fields.\n\n#### jql\n\nA Jira JQL query to use in the search rather than a search string constructed from\nthe options above.\n\n#### rpm-version\n\nThis is the version number to use for the RPM update e.g. `1.88.9-0.1`.  This will\nbe used in `cl-spec`, `cl-md`, and `git-commit-msg`.\n\n## Examples\n\nCreate a product bug/story in the product project from a github PR, an upstream\ntracking task, a downstream packaging task, and an epic to contain them:\n\n```bash\nmanage_issues.py create-issue --project PRODPROJ --component my-component \\\n    --github-url https://github.com/linux-system-roles/ROLE/pull/999 --version rhel-9.6 --itm 26 --dtm 22 --story-points 5 --status New --severity Low \\\n  create-issue --project TEAM --summary 'upstream work for {issue_summary}' \\\n    --description 'upstream work for {issue_summary}' --issue-type Task --story-points 1 \\\n    --label upstream --status \"In Progress\" \\\n  create-issue --project TEAM --summary 'packaging work for {issue_summary}' \\\n    --description 'packaging work for {issue_summary}' --issue-type Task --story-points 1 \\\n    --label packaging \\\n  create-issue --project TEAM --issue-type Epic --epic-name '[Epic]: {issue_summary}' \\\n    --summary '[Epic]: {issue_summary}' \\\n    --description 'tracker for all tasks related to {issue_summary}'\n```\n\nThere is already a `PRODPROJ` issue, and we just want to create the other tracking\ntasks/epics in our TEAM project, plus add a link to another issue to the epic -\nthis assumes `PRODPROJ-999` already has a label like `system_role_ROLENAME`, and\nhas a remote link to the github PR/issue:\n\n```bash\nmanage_issues.py create-issue --base-issue PRODPROJ-999 --project TEAM \\\n    --summary 'upstream work for {issue_summary}' \\\n    --description 'upstream work for {issue_summary}' --issue-type Task --story-points 1 \\\n    --label upstream --status \"In Progress\" \\\n  create-issue --base-issue PRODPROJ-999 --project TEAM \\\n    --summary 'packaging work for {issue_summary}' \\\n    --description 'packaging work for {issue_summary}' --issue-type Task --story-points 1 \\\n    --label packaging \\\n  create-issue  --base-issue PRODPROJ-999 --project TEAM --issue-type Epic \\\n    --epic-name '[Epic]: {issue_summary}' --summary '[Epic]: {issue_summary}' \\\n    --description 'tracker for all tasks related to {issue_summary}' \\\n    --epic-issue-link ANOTHER-555\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-system-roles%2Fauto-maintenance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinux-system-roles%2Fauto-maintenance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-system-roles%2Fauto-maintenance/lists"}