{"id":16209775,"url":"https://github.com/joshdholtz/fastlane-plugin-github_action","last_synced_at":"2025-03-16T11:30:46.922Z","repository":{"id":41340637,"uuid":"264247026","full_name":"joshdholtz/fastlane-plugin-github_action","owner":"joshdholtz","description":"A plugin for setting up fastlane on GitHub Actions","archived":false,"fork":false,"pushed_at":"2023-07-05T15:12:18.000Z","size":46,"stargazers_count":39,"open_issues_count":6,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-27T08:18:58.026Z","etag":null,"topics":["fastlane","fastlane-plugins","github-actions","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/joshdholtz.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}},"created_at":"2020-05-15T16:42:44.000Z","updated_at":"2025-01-29T05:24:12.000Z","dependencies_parsed_at":"2022-09-21T11:11:53.542Z","dependency_job_id":null,"html_url":"https://github.com/joshdholtz/fastlane-plugin-github_action","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshdholtz%2Ffastlane-plugin-github_action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshdholtz%2Ffastlane-plugin-github_action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshdholtz%2Ffastlane-plugin-github_action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshdholtz%2Ffastlane-plugin-github_action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshdholtz","download_url":"https://codeload.github.com/joshdholtz/fastlane-plugin-github_action/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814864,"owners_count":20352037,"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":["fastlane","fastlane-plugins","github-actions","ruby"],"created_at":"2024-10-10T10:32:41.788Z","updated_at":"2025-03-16T11:30:46.585Z","avatar_url":"https://github.com/joshdholtz.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Action plugin for _fastlane_\n\n[![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-github_action)\n[![Gem Version](https://badge.fury.io/rb/fastlane-plugin-github_action.svg)](https://badge.fury.io/rb/fastlane-plugin-github_action)\n\n## About github_action\n\n[GitHub Actions](https://github.com/features/actions) makes it easy to build, test, and deploy your code right from GitHub. However, etting up [_fastlane_](https://github.com/fastlane/fastlane) to work with [match](https://docs.fastlane.tools/actions/match/#match) on GitHub Actions can take bit of juggling and manual work :pensive:\n\nBut `fastlane-plugin-github_action` to the rescue :muscle:\n\nThis plugin will:\n\n### 1. Prompt you if `setup_ci` is not found in your `Fastfile`\nRunning _fastlane_ on a CI requires the environment to be setup properly. Calling the [setup_ci](http://docs.fastlane.tools/actions/setup_ci/#setup_ci) action does that by configuring a new keychain that will be used for code signing with _match_\n\n### 2. Create a Deploy Key on your _match_ repository to be used from your GitHub Action\nA [Deploy Key](https://developer.github.com/v3/guides/managing-deploy-keys/) is needed for GitHub Actions to access your _match_ repository. This action creates a new SSH key and uses the public key for the Deploy Key on your _match_ repository.\n\nThis will only get executed if the `match_org` and `match_repo` options are specified.\n\n### 3. Set the Deploy Key private key in secrets (along with secrets in your [dotenv](https://github.com/bkeepers/dotenv) file(s)\nThe private key created for the Deploy Key is store encrypted in your [repository secrets](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets). The private key is stored under the name `MATCH_DEPLOY_KEY`. \n\nEncrypted secrets will also get set for environment variables from [dotenv](https://github.com/bkeepers/dotenv) files specified by the `dotenv_paths` option.\n\n### 4. Generate a Workflow YAML file to use\nA Workflow YAML file is created at `.github/workflows/fastlane.yml`. This will enable your repository to start running GitHub Actions right away - once committed and pushed :wink:. The Workflow YAML template will add the Deploy Key private key into the GitHub Action by loading it from the `MATCH_DEPLOY_KEY` secret and executing `ssh-add`. All of your other encrypted secrets will also be loaded into environment variables for you as well. \n\nAn example can be [seen here](https://github.com/joshdholtz/test-repo-for-fastlane-plugin-github_action/blob/add-github-action/.github/workflows/fastlane.yml).\n\n## Getting Started\n\nThis project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-github_action`, add it to your project by running:\n\n```bash\nfastlane add_plugin github_action\n```\n\n### Requirements\n\n`fastlane-plugin-github_action` depends on [rbnacl](https://github.com/RubyCrypto/rbnacl) which uses [libsodium](https://github.com/jedisct1/libsodium)\n\nFor macOS, libsodium can be installed with:\n\n```sh\nbrew install libsodium\n```\n\nSee https://github.com/RubyCrypto/rbnacl/wiki/Installing-libsodium for more installation instructions.\n\n## Usage\n\n`fastlane-plugin-github_action` can be execute either direction on the command line with `bundle exec fastlane run github_action` or by adding `github_action` to your `Fastfile`.\n\n### CLI\n\n```sh\nbundle exec fastlane run github_action \\\n  api_token:\"your-github-personal-access-token-with-all-repo-permissions\" \\\n  org:\"your-org\" \\\n  repo:\"your-repo\"\n```\n\nor\n\n```sh\nbundle exec fastlane run github_action \\\n  api_token:\"your-github-personal-access-token-with-all-repo-permissions\" \\\n  org:\"your-org\" \\\n  repo:\"your-repo\" \\\n  match_org:\"your-match-repo-org\" \\\n  match_repo:\"your-match-repo\" \\\n  dotenv_paths:\"fastlane/.env.secret,fastlane/.env.secret2\"\n```\n\n### In `Fastfile`\n\n```ruby\nlane :init_ci do\n  github_action(\n    api_token: \"your-github-personal-access-token-with-all-repo-permissions\",\n    org: \"your-org\",\n    repo: \"your-repo\",\n    match_org: \"your-match-repo-org\", # optional\n    match_repo: \"your-match-repo\", # optional\n    dotenv_paths: [\"fastlane/.env.secret\", \"fastlane/.env.secret2\"] # optional\n  )\nend\n```\n\n### Help\n\nOnce installed, information and help for an action can be printed out with this command:\n\n```bash\nfastlane action github_action # or any action included with this plugin\n```\n\n### Options\n\n| Key | Environment Variable | Description |\n|---|---|---|\n| `server_url` | `FL_GITHUB_API_SERVER_URL` | The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com') |\n| `api_token` | `FL_GITHUB_API_TOKEN` | Personal API Token for GitHub - generate one at https://github.com/settings/tokens |\n| `org` | `FL_GITHUB_ACTIONS_ORG` | Name of organization of the repository for GitHub Actions |\n| `repo` | `FL_GITHUB_ACTIONS_REPO` | Name of repository for GitHub Actions |\n| `match_org` | `FL_GITHUB_ACTIONS_MATCH_ORG` | Name of organization of the match repository |\n| `match_repo` | `FL_GITHUB_ACTIONS_MATCH_REPO` | Name of match repository |\n| `dotenv_paths` | `FL_GITHUB_ACTINOS_DOTENV_PATHS` | Paths of .env files to parse |\n\n\n## Example\n\nCheck out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.\n\n## Run tests for this plugin\n\nTo run both the tests, and code style validation, run\n\n```\nrake\n```\n\nTo automatically fix many of the styling issues, use\n```\nrubocop -a\n```\n\n## Issues and Feedback\n\nFor any other issues and feedback about this plugin, please submit it to this repository.\n\n## Troubleshooting\n\nIf you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.\n\n## Using _fastlane_ Plugins\n\nFor more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).\n\n## About _fastlane_\n\n_fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshdholtz%2Ffastlane-plugin-github_action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshdholtz%2Ffastlane-plugin-github_action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshdholtz%2Ffastlane-plugin-github_action/lists"}