{"id":19508952,"url":"https://github.com/rhythmictech/pagerduty-to-jira-lambda","last_synced_at":"2025-08-17T11:11:00.668Z","repository":{"id":43331191,"uuid":"254647176","full_name":"rhythmictech/pagerduty-to-jira-lambda","owner":"rhythmictech","description":"Publish PagerDuty events to Jira","archived":false,"fork":false,"pushed_at":"2022-03-07T22:44:54.000Z","size":20,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-25T22:46:15.135Z","etag":null,"topics":["jira","pagerduty"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhythmictech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-10T13:55:34.000Z","updated_at":"2024-05-27T17:43:08.000Z","dependencies_parsed_at":"2022-09-06T10:00:44.756Z","dependency_job_id":null,"html_url":"https://github.com/rhythmictech/pagerduty-to-jira-lambda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rhythmictech/pagerduty-to-jira-lambda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fpagerduty-to-jira-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fpagerduty-to-jira-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fpagerduty-to-jira-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fpagerduty-to-jira-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhythmictech","download_url":"https://codeload.github.com/rhythmictech/pagerduty-to-jira-lambda/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhythmictech%2Fpagerduty-to-jira-lambda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270837583,"owners_count":24654391,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["jira","pagerduty"],"created_at":"2024-11-10T23:10:27.094Z","updated_at":"2025-08-17T11:11:00.636Z","avatar_url":"https://github.com/rhythmictech.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PagerDuty to Jira\n\nThis project integrates PagerDuty with Jira using the PagerDuty v2 Webhook API, AWS EventBridge, AWS Lambda and AWS Dynamo. It is intended to provide more robust and customizable integration than is possible using the native Jira Cloud integration. Additionally, many integrations can be configured between PagerDuty and Jira Cloud using this application. The native integration only supports a 1:1 mapping between PagerDity and Jira Cloud instances.\n\nThe project has the following structure:\n- events - Test events\n- pd2jira - Lambda code\n- tests - Unit tests (not started)\n- utils - script to configure AWS Parameter Store with appropriate values.\n- template.yaml - CloudFormation template\n\nOnce configured, Services in PagerDuty that use the AWS EventBridge integration will be created as issues in Jira under the specified project. Acknowledgements, notes, escalations and resolution will all come through as comments. The integration by design will not resolve an issue in Jira until it is resolved in PagerDuty.\n\n## Installation\n\nThis integration must be authorized in Jira, which requires creating an application link and configuring OAuth. OAuth tokens can be used across multiple deployments of this function.\n\nCreate an SSL key:\n\n```\nopenssl genrsa -out rsa.pem 2048\nopenssl rsa -in rsa.pem -pubout -out rsa.pub\n```\n\nIn Jira Cloud, create an application link. Use a fake URL.\n\nOn the Link applications page, set values as follows:\n\n* Application Name - meaningful description\n* Application Type - generic application\n* Create incoming link - checked\n\nAll other fields remain blank. Click continue.\n\nFill in \"pagerduty-to-jira\" for Consumer Key. Consumer Name should be the same as Application Name.\n\nPaste the contents of rsa.pub.\n\nConfigure oauth:\n\n```\njirashell -s https://rhythmic.atlassian.net --consumer-key pagerduty-to-jira --key-cert rsa.pem --oauth-dance\n```\n\nInside the shell, run `oauth` and note the corresponding values.\n\nRun `STAGE=production utils/registerParams.py` and enter the appropriate values. STAGE can be any environment prefix you prefer.\n\nDeploy to AWS:\n\n```bash\nsam deploy --stack-name PagerDutyToJira --capabilities CAPABILITY_IAM --s3-bucket BUCKET_TO_HOLD_LAMBDAS\n```\n\n## View Logs\n\n```bash\npagerduty-to-jira$ sam logs -n PagerDutyToJiraFunction --stack-name pagerduty-to-jira --tail\n```\n\n## Develop\n\nBuild the application with the `sam build --use-container` command.\n\n```bash\npagerduty-to-jira$ sam build --use-container\n```\n\nRun functions locally and invoke them with the `sam local invoke` command.\n\n```bash\npagerduty-to-jira$ sam local invoke PagerDutyToFunction --event events/event.json\n```\n\n## Unit tests\n\nTests are defined in the `tests` folder in this project. Use PIP to install the [pytest](https://docs.pytest.org/en/latest/) and run unit tests.\n\n```bash\npagerduty-to-jira$ pip install pytest pytest-mock --user\npagerduty-to-jira$ python -m pytest tests/ -v\n```\n\n## Cleanup\n\nTo delete the sample application that you created, use the AWS CLI. Assuming you used your project name for the stack name, you can run the following:\n\n```bash\naws cloudformation delete-stack --stack-name pagerduty-to-jira\n```\n\n## Requirements\n\n* [AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)\n* [Python 3.x](https://www.python.org/downloads/)\n* [Docker](https://hub.docker.com/search/?type=edition\u0026offering=community)\n\n## TODO\nFeatures we want to add soon:\n\n* Assign Jira issues in response to acknowledgements.\n* Extract alert info and add to Jira issue description.\n* Set issue Organization field (in Jira Service Desk) by using the Business Service feature in PagerDuty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fpagerduty-to-jira-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhythmictech%2Fpagerduty-to-jira-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhythmictech%2Fpagerduty-to-jira-lambda/lists"}