{"id":23632096,"url":"https://github.com/ergut/jira-field-sync","last_synced_at":"2026-02-09T22:33:04.048Z","repository":{"id":269608665,"uuid":"907984208","full_name":"ergut/jira-field-sync","owner":"ergut","description":"A Python tool for managing project-level custom field defaults in Jira. Automatically syncs field values across existing issues. Perfect for maintaining consistent field values across multiple Jira projects.","archived":false,"fork":false,"pushed_at":"2024-12-24T19:30:10.000Z","size":294,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-23T12:53:05.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/ergut.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":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-24T19:25:35.000Z","updated_at":"2024-12-25T10:05:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"d0e66e7e-e3bc-4e31-af25-6949b709ff1f","html_url":"https://github.com/ergut/jira-field-sync","commit_stats":null,"previous_names":["ergut/jira-field-sync"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ergut/jira-field-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergut%2Fjira-field-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergut%2Fjira-field-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergut%2Fjira-field-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergut%2Fjira-field-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ergut","download_url":"https://codeload.github.com/ergut/jira-field-sync/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ergut%2Fjira-field-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29283639,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T21:57:15.303Z","status":"ssl_error","status_checked_at":"2026-02-09T21:57:11.537Z","response_time":56,"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":[],"created_at":"2024-12-28T03:19:47.017Z","updated_at":"2026-02-09T22:33:04.031Z","avatar_url":"https://github.com/ergut.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jira-field-sync\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logo-nobg.png\" alt=\"jira-field-sync logo\" width=\"200\"/\u003e\n\u003c/div\u003e\n\nA Python tool for managing project-level custom field defaults in Jira. Think of it as a \"set it and forget it\" solution for keeping your Jira fields consistent across projects.\n\n## What Problem Does This Solve?\n\nManaging custom field values across multiple Jira projects can be tedious and error-prone. This tool helps you:\n\n- Set default values for custom fields at the project level\n- Automatically update existing issues missing the correct values\n- Create automation rules to maintain these defaults for new issues\n- Monitor compliance across your projects\n\nFor example, you might want all issues in your R\u0026D projects to have \"R\u0026D\" as their Line of Business (LOB), while your Sales projects should have \"Sales\" as their LOB. Note that this tool only updates existing custom fields - it cannot create new ones. You'll need to create any custom fields through the Jira UI first.\n\n## Prerequisites\n\nBefore you start:\n\n1. **Jira Access**\n   - An Atlassian account with admin or project admin permissions\n   - An [API token](https://id.atlassian.com/manage-profile/security/api-tokens)\n   - Write access to the projects you want to manage\n\n2. **Project Configuration**\n   - The custom fields must be added to your project's screens\n   - Field options (like \"R\u0026D\", \"Sales\", etc.) must be pre-configured in Jira\n   - Projects should be either company-managed or next-gen\n\n3. **System Requirements**\n   - Python 3.7 or higher\n   - pip for package installation\n\n## Installation\n\n```bash\npip install jira-field-sync\n```\n\nOr from source:\n\n```bash\ngit clone https://github.com/ergut/jira-field-sync\ncd jira-field-sync\npip install -e .\n```\n\n## Finding Field IDs\n\nBefore configuring the tool, you'll need to find the IDs of your custom fields in Jira. Here's how:\n\n1. Go to Jira Settings \u003e Issues\n2. Click on \"Custom fields\"\n   - Direct URL: `https://your-domain.atlassian.net/secure/admin/ViewCustomFields.jspa`\n3. Search for your field (e.g. \"LOB\")\n4. Click on it and then click \"Edit details\"\n5. In the URL or on the page, you'll see the ID number (e.g. `11196`)\n6. The field ID to use in configuration is `customfield_` followed by this number (e.g. `customfield_11196`)\n\nNote: You need admin access to view custom field settings.\n\n## Configuration\n\nCreate a `defaults.yaml` file in your preferred location:\n\n```yaml\n# Jira instance configuration\njira:\n  url: \"https://your-domain.atlassian.net\"\n  email: \"your.email@example.com\"\n  token: \"your-api-token\"\n  \n# Field configurations\nfields:\n  lob:  # Line of Business field\n    id: \"customfield_11196\"\n    projects:\n      ARGE: \"R\u0026D\"\n      SALES: \"Sales\"\n      MKTG: \"Marketing\"\n```\n\nEach field configuration needs:\n\n- A descriptive name (e.g., \"lob\")\n- The Jira custom field ID (found using steps above)\n- A mapping of project keys to their default values\n\n## Usage\n\nBasic usage (provide the full path to your config file):\n\n```bash\njira-field-sync /path/to/your/defaults.yaml\n```\n\nCheck what would change without making updates:\n\n```bash\njira-field-sync /path/to/your/defaults.yaml --dry-run\n```\n\nView current status:\n\n```bash\njira-field-sync /path/to/your/defaults.yaml --status\n```\n\n## How It Works\n\nWhen you run the tool, it:\n\n1. Validates your configuration against available field options\n2. Finds issues missing the correct default values\n3. Updates those issues to match project defaults\n4. Generates detailed logs and reports\n\n**Note:** While we initially planned to include automation rules for new issues, this feature isn't currently possible due to limitations in Jira's API. The Jira Cloud REST API doesn't provide endpoints for programmatically creating or managing automation rules.\n\n## Logging\n\nThe tool creates detailed logs in the `logs` directory:\n\n- Daily log files with timestamp: `jira_update_YYYYMMDD.log`\n- Console output for quick status checks\n- Detailed error reporting and success tracking\n\n## Contributing\n\nContributions are welcome! Check out our [Roadmap](ROADMAP.md) for planned features and improvements.\n\n## Sponsorship\n\nThis project is proudly sponsored by:\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://www.oredata.com\"\u003e\n    \u003cimg src=\"assets/oredata-logo-nobg.png\" alt=\"OREDATA\" width=\"300\"/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fergut%2Fjira-field-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fergut%2Fjira-field-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fergut%2Fjira-field-sync/lists"}