{"id":13563838,"url":"https://github.com/berty/yolo","last_synced_at":"2025-04-11T12:02:26.884Z","repository":{"id":40235944,"uuid":"230627505","full_name":"berty/yolo","owner":"berty","description":"over-the-air installation and testing of mobile applications (TestFlight alternative)","archived":false,"fork":false,"pushed_at":"2023-03-07T02:23:37.000Z","size":7914,"stargazers_count":103,"open_issues_count":23,"forks_count":16,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-25T08:20:57.438Z","etag":null,"topics":["android","appstore","berty","beta","ci-cd","devtools","ios","mobile","over-the-air","playstore","testflight","testing"],"latest_commit_sha":null,"homepage":"https://yolo.berty.io/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null},"funding":{"github":["berty"],"open_collective":"berty","custom":["https://berty.tech/contribute"]}},"created_at":"2019-12-28T15:25:57.000Z","updated_at":"2025-03-06T11:25:50.000Z","dependencies_parsed_at":"2022-06-27T21:30:06.214Z","dependency_job_id":"255645e8-fa88-4231-b6ac-c79aac909f07","html_url":"https://github.com/berty/yolo","commit_stats":{"total_commits":406,"total_committers":19,"mean_commits":21.36842105263158,"dds":0.6527093596059113,"last_synced_commit":"aec7ff946bfc43db0c227b9ad5ec61aad3dfd00c"},"previous_names":[],"tags_count":169,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Fyolo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Fyolo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Fyolo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Fyolo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berty","download_url":"https://codeload.github.com/berty/yolo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248394331,"owners_count":21096581,"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":["android","appstore","berty","beta","ci-cd","devtools","ios","mobile","over-the-air","playstore","testflight","testing"],"created_at":"2024-08-01T13:01:23.830Z","updated_at":"2025-04-11T12:02:26.845Z","avatar_url":"https://github.com/berty.png","language":"Go","funding_links":["https://github.com/sponsors/berty","https://opencollective.com/berty","https://berty.tech/contribute"],"categories":["Go"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003cbr\u003e\n  \u003cimg src=\"https://assets.berty.tech/files/v2--Yolo_by_Berty.svg\" alt=\"Yolo - The Berty Project\" height=\"150px\"\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eYolo is an over-the-air installation distributor for your mobile applications\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://berty.tech\"\u003e\u003cimg alt=\"Made by Berty Technologies\" src=\"https://assets.berty.tech/files/badge--10.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://crpt.fyi/berty-discord\"\u003e\u003cimg alt=\"discord\" src=\"https://img.shields.io/badge/discord-gray?logo=discord\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/berty\"\u003e\u003cimg alt=\"github\" src=\"https://img.shields.io/badge/@berty-471961?logo=github\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/berty\"\u003e\u003cimg alt=\"twitter\" src=\"https://img.shields.io/twitter/follow/berty?label=%40berty\u0026style=flat\u0026logo=twitter\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://pkg.go.dev/berty.tech/yolo/v2?tab=subdirectories\"\u003e\u003cimg alt=\"go.dev reference\" src=\"https://img.shields.io/badge/go.dev-reference-007d9c?logo=go\u0026logoColor=white\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/berty/yolo/releases\"\u003e\u003cimg alt=\"GitHub release\" src=\"https://img.shields.io/github/v/release/berty/yolo\" /\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003e Multi-platform over-the-air installation aggregator (a TestFlight alternative).\n\n## Philosophy\n\nMobile app development workflows should be as free as possible from corporate ecosystem constraints.\n\n## Introduction\n\nYolo is one-stop realtime feed of ready-to-install releases and tests for your apps. We're using it at [berty](https://github.com/berty) to make releases and test branches ready to download and use on a developer's device within minutes after passing our CI.\n\nWe created Yolo to implement the critical features missing from Apple's TestFlight.\n\n| Need                                                                       | TestFlight                                        | Yolo                                                                                                        |\n| -------------------------------------------------------------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |\n| Generate artifacts for one build for multiple platforms (e.g iOS, Android) | Write manual custom scripts                       | Default CI tool aggregator                                                                                  |\n| Writing documentation                                                      | Write instructions for each platform              | One universal doc                                                                                           |\n| Accessing artifacts across platforms                                       | Use a separate tool per OS                        | Single aggregated feed                                                                                      |\n| Speedy certificate validation                                              | Run from scratch on eachpublication (~30 minutes) | In-house certificate and signature (~1 minute)                                                              |\n| Generate artifacts at any stage of deployment                              | Stable releases only                              | Deeply customizable: Merges to master, pending pull requests, specific tags... anything that passes the CI! |\n\n## Getting started\n\n### Official Berty's instance\n\nNothing to install, using a browser, you can list and download the last builds of applications of the Berty ecosystem.\n\nYou just need to have credentials provided by the Berty team and go to https://yolo.berty.io.\n\n_Note that all the available credentials won't give you access to the same application set._\n\n### Call the official API\n\nUsing the same credentials you can make direct calls to the API, available here: https://yolo.berty.io/api/.\n\nThe API is described in protobuf-format here: https://github.com/berty/yolo/blob/master/api/yolopb.proto.\n\n```sh\n# last build for the berty app for iOS\ncurl -su :TOKEN \"https://yolo.berty.io/api/build-list?project_id=https://github.com/berty/berty\u0026artifact_kinds=1\" | jq '.builds[0]'\n```\n\n```yaml\n{\n  \"id\": \"https://buildkite.com/berty/berty-open/builds/535\",\n  \"created_at\": \"2020-04-29T15:06:33.796Z\",\n  \"state\": \"Passed\",\n  \"message\": \"feat: add multipeer connectivity Transport and add it in libp2p\\n\\nfeat: add multipeer connectivity for mobile devices\\n\\nfix: fix linux compilation failed\\n\\nchore: remove old references to BLE\\n\\nchore: remove xcode project directory\\n\\nchore: goimports passed\\n\\nfeat: pass functional logger to the mc transport\\n\\nchore: improve log message in the mc driver\",\n  \"started_at\": \"2020-04-29T15:45:14Z\",\n  \"finished_at\": \"2020-04-29T15:58:41Z\",\n  \"branch\": \"D4ryl00:feat/multipeer-connectivity-integration\",\n  \"driver\": \"Buildkite\",\n  \"short_id\": \"535\",\n  \"has_artifacts\": [\n    {\n      \"id\": \"buildkite_524ced1e072c6bb74e3bf9556854b339\",\n      \"created_at\": \"2020-04-29T15:06:33.796Z\",\n      \"file_size\": \"38838861\",\n      \"local_path\": \"Berty-Yolo-08a8bb0dee9935ab14e62648c6969cd5dfd9f517.ipa\",\n      \"download_url\": \"https://api.buildkite.com/v2/organizations/berty/pipelines/berty-open/builds/535/jobs/323605e5-72fd-4495-8198-615a68672148/artifacts/16bab990-66ee-4ed5-a9d4-db69704bc0fd/download\",\n      \"mime_type\": \"application/octet-stream\",\n      \"state\": \"Finished\",\n      \"kind\": \"IPA\",\n      \"driver\": \"Buildkite\",\n      \"has_build_id\": \"https://buildkite.com/berty/berty-open/builds/535\",\n      \"dl_artifact_signed_url\": \"/api/artifact-dl/buildkite_524ced1e072c6bb74e3bf9556854b339?sign=REDACTED\",\n      \"plist_signed_url\": \"%2Fapi%2Fplist-gen%2Fbuildkite_524ced1e072c6bb74e3bf9556854b339.plist%3Fsign%3DREDACTED\"\n    }\n  ],\n  \"has_commit_id\": \"08a8bb0dee9935ab14e62648c6969cd5dfd9f517\",\n  \"has_project\": {\n    \"id\": \"https://github.com/berty/berty\",\n    \"created_at\": \"2018-07-16T05:21:19Z\",\n    \"updated_at\": \"2020-04-29T13:13:05Z\",\n    \"driver\": \"GitHub\",\n    \"name\": \"berty\",\n    \"description\": \"Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network\",\n    \"has_owner\": {\n      \"id\": \"https://github.com/berty\",\n      \"name\": \"berty\",\n      \"driver\": \"GitHub\",\n      \"avatar_url\": \"https://avatars1.githubusercontent.com/u/22157871?v=4\",\n      \"kind\": \"Organization\"\n    },\n    \"has_owner_id\": \"https://github.com/berty\"\n  },\n  \"has_project_id\": \"https://github.com/berty/berty\",\n  \"has_mergerequest\": {\n    \"id\": \"https://github.com/berty/berty/pull/1908\",\n    \"created_at\": \"2020-04-23T08:19:28Z\",\n    \"updated_at\": \"2020-04-30T09:54:59Z\",\n    \"title\": \"WIP feat: add the multipeer connectivity transport\",\n    \"message\": \"Add the multipeer connectivity transport of berty v1 to the master branch of berty\\r\\n* [x] add the transport + driver in an internal package\\r\\n* [ ] switch on/off that transport from the front\",\n    \"driver\": \"GitHub\",\n    \"branch\": \"D4ryl00:feat/multipeer-connectivity-integration\",\n    \"state\": \"Opened\",\n    \"commit_url\": \"https://github.com/berty/berty/commit/5face40d919f102d9d0f2b19061bae666f4b940a\",\n    \"short_id\": \"1908\",\n    \"has_project\": {\n      \"id\": \"https://github.com/berty/berty\",\n      \"created_at\": \"2018-07-16T05:21:19Z\",\n      \"updated_at\": \"2020-04-29T13:13:05Z\",\n      \"driver\": \"GitHub\",\n      \"name\": \"berty\",\n      \"description\": \"Berty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network\",\n      \"has_owner_id\": \"https://github.com/berty\"\n    },\n    \"has_project_id\": \"https://github.com/berty/berty\",\n    \"has_author\": {\n      \"id\": \"https://github.com/D4ryl00\",\n      \"name\": \"D4ryl00\",\n      \"driver\": \"GitHub\",\n      \"avatar_url\": \"https://avatars3.githubusercontent.com/u/13605410?v=4\",\n      \"kind\": \"User\"\n    },\n    \"has_author_id\": \"https://github.com/D4ryl00\",\n    \"has_commit_id\": \"08a8bb0dee9935ab14e62648c6969cd5dfd9f517\"\n  },\n  \"has_mergerequest_id\": \"https://github.com/berty/berty/pull/1908\"\n}\n```\n\n## Run your own instance of Yolo\n\nYou will need to get multiple CI tokens to allow Yolo to fetch your last builds.\n\n### Install\n\n`go get -u berty.tech/yolo/v2/go/cmd/yolo`\n\nOr grab the last Docker image available [on the official Docker Registry]().\n\nYou can start from the official deployment configuration available in [./deployments/yolo.berty.io](deployments/yolo.berty.io/docker-compose.yml).\n\n### CLI usage\n\n```console\n$ yolo -h\nUSAGE\n  server [flags] \u003csubcommand\u003e\n\nSUBCOMMANDS\n  server        Start a Yolo Server\n  dump-objects\n  info\n\nFLAGS\n  -v false  increase log verbosity\n```\n\n```console\n$ yolo server -h\nUSAGE\n  server\n\nFLAGS\n  -auth-salt ...             salt used to generate authentication tokens at the end of the URLs\n  -basic-auth-password ...   if set, enables basic authentication\n  -bintray-token ...         Bintray API Token\n  -bintray-username ...      Bintray username\n  -buildkite-token ...       BuildKite API Token\n  -circleci-token ...        CircleCI API Token\n  -cors-allowed-origins ...  CORS allowed origins (*.domain.tld)\n  -db-path :temp:            DB Store path\n  -dev-mode false            enable insecure helpers\n  -github-token ...          GitHub API Token\n  -grpc-bind :9000           gRPC bind address\n  -http-bind :8000           HTTP bind address\n  -max-builds 100            maximum builds to fetch from external services (pagination)\n  -realm Yolo                authentication Realm\n  -request-timeout 5s        request timeout\n  -shutdown-timeout 6s       server shutdown timeout\n  -with-cache false          enable API caching\n```\n\n### Troubleshooting\n\n_(please use [issues](https://github.com/berty/yolo))_\n\n## Development\n\n[TODO]\n\n### Architecture\n\n[TODO]\n\n#### Other Resources\n\n-   UI style and asset specifications on HackMD [here](https://hackmd.io/@berty/H1fZ9D_PU)\n-   Sketch templates [here](https://assets.berty.tech/categories/yolo__v2/)\n\n## Contributing\n\n[![Contribute to Berty](https://assets.berty.tech/files/contribute--small.gif)](https://github.com/berty/community)\n\n🚧 This beta release is currently configured for our internal projects, but we welcome you to fork our repository to customize it for your own use.\n\nIf you want to help out, please see [CONTRIBUTING.md](./CONTRIBUTING.md).\n\nThis repository falls under the Berty [Code of Conduct](https://github.com/berty/community/blob/master/CODE_OF_CONDUCT.md).\n\nYou can contact us on the [`#dev-💻`](https://crpt.fyi/berty-dev-discord) channel on [discord](https://crpt.fyi/berty-discord).\n\n## License\n\nDual-licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) and [MIT](https://opensource.org/licenses/MIT) terms.\n\nSee the [COPYRIGHT](./COPYRIGHT) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberty%2Fyolo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberty%2Fyolo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberty%2Fyolo/lists"}