{"id":23821134,"url":"https://github.com/frobware/jiramail","last_synced_at":"2025-02-21T23:41:54.873Z","repository":{"id":66961062,"uuid":"149633691","full_name":"frobware/jiramail","owner":"frobware","description":"Simple mail transport for Atlassian's Jira service written in Go","archived":false,"fork":false,"pushed_at":"2018-09-20T16:08:49.000Z","size":105,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-15T12:12:36.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"legionus/jiramail","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frobware.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":"2018-09-20T15:49:40.000Z","updated_at":"2023-09-04T13:45:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"10df43d5-74b1-48b1-86d9-678bb263c867","html_url":"https://github.com/frobware/jiramail","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fjiramail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fjiramail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fjiramail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fjiramail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frobware","download_url":"https://codeload.github.com/frobware/jiramail/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240102225,"owners_count":19747971,"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":[],"created_at":"2025-01-02T08:29:48.530Z","updated_at":"2025-02-21T23:41:54.868Z","avatar_url":"https://github.com/frobware.png","language":"Go","readme":"# jiramail\n\nThe `jiramail` is mail transport for Atlassian's Jira service written in Go. This utility\nstores data (`projects`, `sprints`, `issues`, `comments`, etc.) from jira to local maildir.\nOptionally for making changes, it provides an SMTP interface.\n\n# Runtime\n\nThere are two ways to run the utility. The first and the main way when the utility\nin an infinite loop after a some period of time synchronizes the state. The second way, when\nthe utility is started once, synchronizes the state and finishes execution:\n\n```bash\njiramail -1\n```\n\n# Folders layout\n\nThe utility will create the following directory hierarchy:\n\n```\n{Destdir}\n  ⤷ {RemoteName}\n    ⤷ boards\n      ⤷ {BoardName}\n        ⤷ backlog\n        ⤷ epics\n          ⤷ {EpicName}\n        ⤷ sprints\n          ⤷ {SprintName}\n    ⤷ projects\n      ⤷ {ProjectKey}\n```\n\nKnown problem: If the name of the `board`, `epic` or `sprint` changes, a new maildir will be created.\nIf I use identifiers, it becomes very uninformative.\n\n# Configuration\n\nExample:\n\n```yaml\ncore:\n  loglevel: debug\n  logfile: ~/logs/jiramail.log\n  lockdir: ~/tmp/jiramail.lock\nsmtp:\n  addr: 127.0.0.1:10025\n  auth:\n    username: jiramail\n    password: SMTP-PRIVATE-KEY\nremote:\n  coreos:\n    destdir: ~/Mail/jira/coreos\n    baseurl: https://jira.coreos.com\n    username: legionus\n    password: PRIVATE\n    projectmatch: DEVEXP\n    boardmatch: DEVEXEP\n    delete: remove\n```\n\n# Mail client\n\nYou can use any mail client that can read the local mailbox in the `maildir` format.\n\n# SMTP server\n\nThe utility provides a special SMTP server so that you can make changes in the Jira. It does not\nsend emails anywhere, but only performs API requests based on them. So this is not a real SMTP server.\n\nThe server understands the context and the necessary parameters when you reply to the generated message.\nSo it matters to which message you reply.\n\nIf you reply to the message and send it to:\n\n### To: reply@jira\n\n* reply to `issue` will add new comment, but if you use `reply+subtask@jira` then a subtask will be created;\n* reply to `comment` will add new comment;\n* reply to `project` will create a new issue.\n\n### To: edit@jira\n\nThe reply to this address is used to edit the `Subject` and the body of the message. Be careful and do not\nforget about quoting in your mail client. This operation is valid for `issues` and `comments`.\n\nTo update only subject of issue, use the address: `edit+subject@jira`. Same with the body of the message.\nTo update only the body, use the address: `edit+body@jira`.\n\n### To: bot@jira\n\nThis is a special address where the body of the message is treated as a sequence of directives.\nEach directive should take one line. Arguments with spaces must be specified in quota (as in shell).\nLines starting with '#' or '\u003e' will be ignored.\nThis operation is valid for `issues`\n\n#### Change labels\n\n```\njira labels add \"label one\" \"label two\"\njira labels remove no-qe\n```\n\n#### Change state\n\n```\njira state \"in progress\"\njira state To Do\n```\nArgument is not case sensitive.\n\n#### Change priority\n\n```\njira priority high\njira priority low\n```\nArgument is not case sensitive.\n\n#### Assignee\n\n```\njira assignee to me\njira assignee to legionus\n```\n\n#### Watchers\n\n```\njira watchers add user1\njira watchers remove user2\n```\n\n#### Story points\n\nAtlassian's Jira does not have a standard field for story points, so you need to have a custom\nfield with name `Story points` and type either a number or a string.\n\n```\njira story points 5\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrobware%2Fjiramail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrobware%2Fjiramail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrobware%2Fjiramail/lists"}