{"id":20655050,"url":"https://github.com/devops-ia/bitbucket-bot","last_synced_at":"2026-04-24T07:33:20.840Z","repository":{"id":251923333,"uuid":"658430328","full_name":"devops-ia/bitbucket-bot","owner":"devops-ia","description":"Bitbucket Bot to integrate Bitbucket's webhook with Google Chat (Spaces)","archived":false,"fork":false,"pushed_at":"2026-04-01T09:53:29.000Z","size":227,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T11:41:34.533Z","etag":null,"topics":["bitbucket","bitbucket-bot","google-chat"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/devopsiaci/bitbucket-bot","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/devops-ia.png","metadata":{"files":{"readme":"README.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":"2023-06-25T18:06:26.000Z","updated_at":"2026-04-01T09:53:31.000Z","dependencies_parsed_at":"2025-12-03T14:00:32.660Z","dependency_job_id":null,"html_url":"https://github.com/devops-ia/bitbucket-bot","commit_stats":null,"previous_names":["devops-ia/bitbucket-bot"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/devops-ia/bitbucket-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ia%2Fbitbucket-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ia%2Fbitbucket-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ia%2Fbitbucket-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ia%2Fbitbucket-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devops-ia","download_url":"https://codeload.github.com/devops-ia/bitbucket-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ia%2Fbitbucket-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32214415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"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":["bitbucket","bitbucket-bot","google-chat"],"created_at":"2024-11-16T18:08:41.572Z","updated_at":"2026-04-24T07:33:20.825Z","avatar_url":"https://github.com/devops-ia.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Bitbucket Bot for Google Chat\n\n## Introduction\n\nThe Bitbucket Bot integrates Bitbucket's webhook events with Google Chat (Spaces). This bot listens for specific events from Bitbucket, such as pull requests (PRs), and sends notifications directly to a Google Chat (Spaces). The bot is designed to streamline your development workflow by providing real-time updates on key activities in your repositories.\n\n## Example\n\nWhen a pull request is opened, the bot sends a notification to your Google Chat space with details about the PR:\n\n![Sample open PR](img/sample-pr.png)\n\n## Quick start!\n\n### Run container\n\n```bash\ndocker run --name \u003ccontainer-name\u003e    \\\n  -p 8080:8080                        \\\n  --bind 0.0.0.0:8080                 \\\n  --log-level=info                    \\\n  -e URL=\u003cENDPOINT-GOOGLE-CHAT-SPACE\u003e \\\n  -e TOKEN=\u003cSECRET-TOKEN\u003e             \\\n  devopsiaci/bitbucket-bot:latest\n```\n\n### Bitbucket Payloads\n\nRefer to the [Bitbucket payload documentation](https://confluence.atlassian.com/bitbucketserver0721/event-payload-1115665959.html?utm_campaign=in-app-help\u0026utm_medium=in-app-help\u0026utm_source=stash#Eventpayload-pullrequest) for details on the data structure of events.\n\n## Request Payload\n\n### Payload example\n\nHere is an example of a pull request payload that the bot processes. Check [samples folder](./samples):\n\n```json\n{\n    \"eventKey\": \"pr:comment:added\",\n    \"date\": \"2022-09-02T09:24:34+0000\",\n    \"actor\": {\n        \"name\": \"sample\",\n        \"emailAddress\": \"mail@example.com\",\n        \"id\": 86045,\n        \"displayName\": \"sample\",\n        \"active\": true,\n        \"slug\": \"sample\",\n        \"type\": \"NORMAL\",\n        \"links\": {\n            \"self\": [\n                {\n                    \"href\": \"https://bitbucket.org/bitbucket/users/sample\"\n                }\n            ]\n        }\n    },\n    ...\n```\n\nOn `samples` folder:\n\n```console\n# request\n$ curl -XPOST -H \"Content-Type: application/json\" -d '@sample_pr_add_comment.json' http://\u003cIP\u003e:\u003cPORT\u003e\\?token\\=\u003cSECRET-TOKEN\u003e\n\nPOST / HTTP/1.1\nHost: \u003cIP\u003e:\u003cPORT\u003e\nUser-Agent: python-requests/2.32.3\nAccept-Encoding: gzip, deflate\nAccept: */*\nConnection: keep-alive\nContent-Type: application/json; charset=UTF-8\nContent-Length: 958\n\n{\"cards\": [{\"header\": {\"title\": \"pr:comment:added | (GFP) REPOSITORY\", \"imageUrl\": \"https://cdn-icons-png.flaticon.com/512/6125/6125001.png\"}, \"sections\": [{\"widgets\": [{\"keyValue\": {\"icon\": \"PERSON\", \"topLabel\": \"author\", \"content\": \"mail@example.com\"}}, {\"keyValue\": {\"iconUrl\": \"https://cdn-icons-png.flaticon.com/512/7201/7201872.png\", \"topLabel\": \"Pull Request\", \"content\": \"test 3\"}}, {\"keyValue\": {\"iconUrl\": \"https://cdn-icons-png.flaticon.com/512/6577/6577243.png\", \"topLabel\": \"ID Pull Request\", \"content\": \"1 (version: 5)\"}}, {\"keyValue\": {\"iconUrl\": \"https://cdn-icons-png.flaticon.com/512/1721/1721936.png\", \"topLabel\": \"Status\", \"content\": \"OPEN\"}}]}, {\"widgets\": [{\"keyValue\": {\"icon\": \"DESCRIPTION\", \"topLabel\": \"Comment by sample\", \"content\": \"Test\"}}]}, {\"widgets\": [{\"buttons\": [{\"textButton\": {\"text\": \"Review PR\", \"onClick\": {\"openLink\": {\"url\": \"https://bitbucket.org/bitbucket/projects/KEY/repos/REPOSITORY/pull-requests/1\"}}}}]}]}]}]}\n\n```\n\n## Tests\n\n### Running Tests\n\nThe project uses `pytest` for testing. To run the tests, navigate to the project directory and execute the following command:\n\n```bash\npytest\n```\n\nThis will run all the tests located in the `tests/` directory. Make sure you have the necessary dependencies installed by running:\n\n```bash\npip install -r requirements-dev.txt\n```\n\n### Writing Tests\n\nTo write new tests, create a new file in the `tests/` directory with the prefix `test_`. For example, to test a new feature in `app.py`, create a file named `test_app.py` and add your test cases there.\n\n## Contributing\n\nPlease read the [CONTRIBUTING.md](CONTRIBUTING.md) file for details on our code of conduct and the process for submitting pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevops-ia%2Fbitbucket-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevops-ia%2Fbitbucket-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevops-ia%2Fbitbucket-bot/lists"}