{"id":16580829,"url":"https://github.com/zhex/local-bbp","last_synced_at":"2026-05-27T20:31:28.138Z","repository":{"id":246002267,"uuid":"819804334","full_name":"zhex/local-bbp","owner":"zhex","description":"Run the Bitbucket piplines on your local","archived":false,"fork":false,"pushed_at":"2024-07-22T00:10:05.000Z","size":130,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-06T23:11:44.324Z","etag":null,"topics":["bitbucket-pipelines","ci","golang","pipelines"],"latest_commit_sha":null,"homepage":"","language":"Go","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/zhex.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":"2024-06-25T08:28:46.000Z","updated_at":"2025-11-29T13:32:21.000Z","dependencies_parsed_at":"2024-07-22T01:26:52.395Z","dependency_job_id":"4bcac116-839c-4399-9869-8f59f331874f","html_url":"https://github.com/zhex/local-bbp","commit_stats":null,"previous_names":["zhex/local-bbp"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/zhex/local-bbp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhex%2Flocal-bbp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhex%2Flocal-bbp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhex%2Flocal-bbp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhex%2Flocal-bbp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhex","download_url":"https://codeload.github.com/zhex/local-bbp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhex%2Flocal-bbp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33583394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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":["bitbucket-pipelines","ci","golang","pipelines"],"created_at":"2024-10-11T22:27:15.841Z","updated_at":"2026-05-27T20:31:28.117Z","avatar_url":"https://github.com/zhex.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Local-BBP\n\n![GitHub License](https://img.shields.io/github/license/zhex/local-bbp)\n![GitHub Release](https://img.shields.io/github/v/release/zhex/local-bbp)\n![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/zhex/local-bbp)\n\n\nLocal-BBP is an open-source CLI tool written in Go, designed to simulate Bitbucket pipelines on your local machine. This tool allows developers to test and debug their pipeline configurations faster and more efficiently before pushing to Bitbucket.\n\n\n## Why Local-BBP?\n\nAs a developer, I often find that the first few pipeline runs for a new project fail due to configuration issues. This can be incredibly time-consuming and frustrating, as each failure requires a push to Bitbucket, a wait for the pipeline to run, and then reviewing the results to identify and fix issues. With Local-BBP, I can run and debug these pipelines locally, saving time and reducing the number of failed runs in the actual CI environment.\n\n## Supported Features\n\n- [x] Run pipeline\n  - [x] Sequential steps\n  - [x] Parallel steps\n- [x] Custom Step Image\n- [x] Private image repository access\n- [x] Artifacts\n- [x] Smart caches\n- [x] Pipe\n- [x] Services\n  - [x] Sidecars\n  - [x] Default Docker\n  - [x] Custom Docker\n- [x] Secret variables from file\n- [x] Stage\n- [x] Conditional steps\n- [ ] Settings\n  - [x] Default image\n  - [x] Timeout\n  - [ ] Container Size\n- [x] Validate bitbucket-pipelines.yml file\n- [x] Integration marketplace search\n\n## Installation\n\nYou can install the latest version of Local-BBP using the following command:\n\n```bash\ncurl -s https://raw.githubusercontent.com/zhex/local-bbp/main/scripts/install.sh | bash\n```\n\n### Usages\n\nYou need to have Docker installed on your machine to run Local-BBP.\n\nTo simulate your Bitbucket pipeline locally, navigate to the project directory containing your bitbucket-pipelines.yml file and run the following command to list the available pipelines:\n\n```bash\nbbp list\n```\n\nthen run the default pipeline:\n\n```bash\nbbp run\n```\n\nThis command will execute your default pipeline steps as defined in the bitbucket-pipelines.yml file.\n\nYou can also specify a specific pipeline to run using the -n flag:\n\n```bash\nbbp run -n default\n```\n\nWhen first running the command, Local-BBP will init the config file in the `~/.bbp/config.json` also download the Linux docker cli binaries.\n\nexample config file:\n\n```json5\n{\n    // the default workdir in the build container\n    \"workDir\": \"/opt/atlassian/pipelines/agent/build\",\n    \n    // the default image to use in the build container if not specified in the bitbucket-pipelines.yaml file\n    \"defaultImage\": \"atlassian/default-image:4\",\n    \n    // the default output directory for the pipeline results, base on the project directory if relative path is used \n    \"outputDir\": \"bbp\",\n    \n    // the default linux docker version to use in the build container \n    // download automatically from https://download.docker.com/linux/static/stable/\n    \"dockerVersion\": \"19.03.15\",\n    \n    // the default docker image for running the docker daemon for the build container\n    \"defaultDockerImage\": \"docker:27.0.3-dind-alpine3.20\",\n    \n    // the path for the cli to download required tools\n    \"toolDir\": \"/Users/zhex/.bbp/tools\",\n    \n    // default timeout for a single pipeline step (in minutes)\n    \"maxStepTimout\": 120,\n    \n    // default timeout for the whole pipeline (in minutes)\n    \"maxPipeTimout\": 240,\n}\n```\n\nYou can also specify a path to the project directory containing the [bitbucket-pipelines.yml](https://support.atlassian.com/bitbucket-cloud/docs/bitbucket-pipelines-configuration-reference/) file:\n\n```bash\nbbp run -n \"pr/**\" -p /path/to/project\n```\n\nSupport secret variables by providing a path to the secrets file:\n\n```bash\nbbp run -n default -s /path/to/secrets\n```\n\nThe secret file format is the same as dot env file. Sample secrets file:\n\n```dotenv\nMY_SECRET=\"my-secret-value\"\nMY_OTHER_SECRET=\"my-other-secret-value\"\n```\n\nuse the -v flag to view the verbose output for more details:\n\n```bash\nbbp run -n default -v\n```\n\nAlso, you can validate your bitbucket-pipelines.yml file using the following command:\n\n```bash\nbbp validate\n```\n\nThe validation rules are based on the official Bitbucket Pipelines configuration [schema](https://bitbucket.org/atlassianlabs/intellij-bitbucket-references-plugin/raw/master/src/main/resources/schemas/bitbucket-pipelines.schema.json).\n\n## Differences between Local-BBP and Bitbucket Pipelines\n\nLocal-BBP is designed to simulate Bitbucket Pipelines as closely as possible, but there are some differences between the two:\n\n- **Environment**: Local-BBP runs pipelines on your local machine, so it may not have access to the same resources as the Bitbucket Pipelines environment.\n- **Features**: Local-BBP does not support all the features of Bitbucket Pipelines, such as host runners and custom runner size.\n- **Service Access**: In Local-BBP, service names are used as hostnames similar to Docker Compose. In Bitbucket Pipelines, sidecar services are accessed via localhost.\n- **Step Condition**: Bitbucket Pipeline compares all commits between source and target branches in pull-request pipelines,, while in other pipelines, it compares the last commit. Local-BBP includes uncommitted changes for easier development.\n\n## License\n\nLocal-BBP is released under the MIT License. See [LICENSE](LICENSE) for more details.\n\n## Support\n\nFor any issues or questions, please open an issue on our GitHub repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhex%2Flocal-bbp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhex%2Flocal-bbp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhex%2Flocal-bbp/lists"}