Skip to content

Conversation

@addbrick
Copy link

@addbrick addbrick commented Mar 15, 2025

This is an attempt to merge in the latest master after updating the open PR we have on the main repo fastlane#20996

eric and others added 30 commits February 27, 2023 21:55
The platform condition is filtered on the client side, so enough builds need
to be returned to find the correct platform.
…tlane#20976)

* [ensure_git_status_clean ] fix unclear param documentation

See also: https://git-scm.com/docs/git-status#Documentation/git-status.txt---ignoredltmodegt

* Fix incorrect test name

* Remove duplicated test

* Fix misleading local variable name

* Fix typo in test names

* [ensure_git_status_clean] fix incorrect "ignored" param handling

* [ensure_git_status_clean] fix incorrect "no" value handling

* [ensure_git_status_clean] add missing invalid values handling

* [ensure_git_status_clean] improve param documentation

* Fix RuboCop line length error
…astlane#20738)

* Adds support for `build_verify_command`

* Updates naming of variable to show the inclusion of `verify` command

* Adds required `platform` option

* Allows passing in an `asset_path` to upload values correctly

* Updates unit tests for `deliver` component

* Fixes failing tests in `itunes_transporter_spec`

* Runs `rubocop -a`

* Uses `**kwargs` for abstract `build_verify_command` method

* Fixes `rubocop` violation

* Removes `altool_compatible_command` argument from `deliver` runner

* Fixes further PR comments

* Reverts changes to temporary path code

---------

Co-authored-by: Pol Piella <[email protected]>
LatestOsVersion#version_for_os can be catched in a deadlock when
used with Xcode 13.3.0 or later while a device is physically connected
to the computer.

In this case, xcodebuild will return a few lines of errors on stderr
which will trigger a deadlock in Open3#open3.  The problem is
mentioned explicitely in the documentation of Open3#open3:

> You should be careful to avoid deadlocks. Since pipes are fixed
> length buffer, #popen3(“prog”) {|i, o, e, t| o.read } deadlocks if
> the program generates many output on stderr. You should be read
> stdout and stderr simultaneously (using thread or IO.select). However
> if you don't need stderr output, #popen2 can be used. If merged
> stdout and stderr output is not a problem, you can use #popen2e.
> If you really needs stdout and stderr output as separate strings,
> you can consider #capture3.

Using Open3#capture2 or Open3#open2 would show the error in the
terminal, but Open3#capture3 allows us to capture only stdout and
hide stderr from the users eyes.
* Remove prices from ESSENTIAL_INCLUDES closes fastlane#21125

* Fix spec

* Fix violations

* Fix stubs
…ane#21088)

* [ci] Only run all mac jobs on master and version bump branches

* Fix main to master
)

* Adding support for self-managed GitLab instances

* Adding gitlab_host option to the match generator

* Fixing rubocop issues
…up if on Intel (fastlane#21284)

* Added arch=x86_64 for scan

* Make as an option

* Only do for iOS
ng tier election to correctly handle nil value
…ne#21279)

* Adding access token prompt for GitLab Secure Files Match

* Removing commented code
… match documentation examples (fastlane#21302)

* Incorporate changes made in fastlane/docs#1196.

* Improve wording and fix typos.
…astlane#21310)

* Fix Style/StringLiterals RuboCap warning

More information about warning:
https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/StringLiterals

* Fix indentation of template Action, reported by Rubocop

https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Layout/IndentationWidth

* Fix Layout/LineLength: Line is too long, reported by Rubocop

More information:
https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Layout/LineLength

* Fix Style/MethodCallWithArgsParentheses reported by Rubocop

* Fix Style/ParenthesesAroundCondition, Style/AndOr and Style/Not

Fixes:
* Style/ParenthesesAroundCondition: Don't use parentheses around the condition of an unless.
* Style/AndOr: Use && instead of and.
* Style/Not: Use ! instead of not.
…esponding `supply` methods) (fastlane#21315)

* [Supply] Listing & downloading generated APKs

Add methods on the Supply client to list and download Universal Generated APKs from the Google Play Console — typically generated and code-signed by Google from the AAB you uploaded e.g. via the `upload_to_play_store`/`supply` action

* [Action] download_universal_apk_from_google_play

Very useful when you use [Play App Signing](https://support.google.com/googleplay/android-developer/answer/9842756) and thus don't necessary have the signing key to produce the APK yourself.
In those cases, you typically only upload an AAB to GPC, then let Google code-sign and generate signed APKs from that AAB.

* Add `download_universal_apk_from_google_play` to `unused_options_spec` exceptions

Because most of the options that are detected as not being used directly by the action are in fact just passed along to Supply::Client.make_from_config
* [spaceship] add update method to ConnectAPI::User

* Apply suggestions from @rogerluan

Co-authored-by: Roger Oba <[email protected]>

* chore: move UserRolse to User and use link in UserInvitation

* Update spaceship/lib/spaceship/connect_api/models/user.rb

* Apply suggestions from code review

Co-authored-by: Iulian Onofrei <[email protected]>

---------

Co-authored-by: Roger Oba <[email protected]>
Co-authored-by: Iulian Onofrei <[email protected]>
…e#21317)

* Fix olympus session request error after skipping 2FA Upgrade

Request to : https://appstoreconnect.apple.com/olympus/v1/session are now rejectec if account is not configured with 2FA.
Skipping this request avoid non 2FA account to get stuck without authentication.

* Fix olympus session request error after skipping 2FA Upgrade

Request to : https://appstoreconnect.apple.com/olympus/v1/session are now rejectec if account is not configured with 2FA.
Skipping this request avoid non 2FA account to get stuck without authentication.
Removing comment for lint
… Xcode 15, and Ruby 3.1 to test envs (fastlane#21465)

* Remove/replace old Xcode versions not supported by CircleCI anymore.

* Add two new macOS environments: Xcode 14 and 15.

* Change to Ruby 3.1 because 3.2 is not available.

* Remove new Xcode versions so it can be added in a separate PR.

* Add missing name and xcode_version.

* Fix specs related to upgrade of OpenSSL version on Ruby 3.1.

* Upgrade http-cookie to 1.0.5 to support Ruby 3.

* Revert "Add missing name and xcode_version."

This reverts commit cf56b93.

* Revert "Remove new Xcode versions so it can be added in a separate PR."

This reverts commit 34741c5.

* Move dependency from development to regular one.

* Sort dependencies alphabetically.

* Update Gemfile.lock after updating gemspec.

* RuboCop: apply `Style/FetchEnvVar` rule throughout codebase.

https://docs.rubocop.org/rubocop/1.56/cops_style.html#stylefetchenvvar

* Update Rubocop from 1.12.1 to 1.56.0 (latest) to support Ruby 3.1.

* Regenerate Rubocop TODO file.

* Revert "RuboCop: apply `Style/FetchEnvVar` rule throughout codebase."

This reverts commit e122484.

* Downgrade Rubocop to keep support to Ruby 2.6.

* Fix all Rubocop linter issues detected in Plugins templates.

* Revert changes to fix dynamic versions used in template.

* Remove outdated comment.

* Use specific Ruby version to see if CircleCI is able to detect them.

* Move rubocop rule to where it's being actually used.

* Code style.

* Fix syntax.

* Massage dependencies versions to resolve compatibility issues.

* Revert version bump to keep support for Ruby 2.

* Fix rspec crashes when running Ruby 3.2 by upgrading `fakefs` gem.

* Move back to Ruby 3.1.

* Revert "Fix rspec crashes when running Ruby 3.2 by upgrading `fakefs` gem."

This reverts commit fda2881.

* Specify full Ruby versions for 2.6 and 2.7.

* Temporarily comment out condition to test other Ruby envs.

* Revert "Temporarily comment out condition to test other Ruby envs."

This reverts commit adac361.

* Revert unintentional changes to dependency versions.

* Revert unintentional changes to dependency versions.
lacostej and others added 28 commits October 4, 2024 12:36
* Detect failing standalone tests

* Add the RPSEC_ARGS to allow the user to add more arguments

* Update doc

* Typo
* [spaceship] New AppleID Auth with SIRP

* Doesn't print things out

* Using new fastlane-sirp gem

* Fixed some lint

* Added feature flag for legacy

* Maybe tests will pass

* Fixed a lot of tests

* This should go all green

* Fix some stuff

* Now all green

* Fix more tests

* One more fix

* Using proper error

* Added debug logs

* Code improvements from PR review
* Version bump to 2.225.0

* Update CHANGELOG.latest.md

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh Holtz <[email protected]>
* Add git_basic_authorization to clone command

* Add param description

* Update description

* Update README

* Fix doc syntax

* fix PR comments

* Fix incorrect method parameter name

Also updates the parameter documentation.

* Make documentation a bit more clearer

* Refactor: Add missing type to the dependencies option

* Allow specifying multiple HTTP headers for git

* Refactor: Move local variable close to its usage

* Refactor: Made command construction more consistent

* Refactor: Made command construction more consistent

* Fix too many arguments crash on Windows

* Refactor: Make condition clearer

* Fix vulnerable git clone command execution

---------

Co-authored-by: Jens Kuhr Hansen <[email protected]>
Co-authored-by: Iulian Onofrei <[email protected]>
…lout (fastlane#28960)

* [Supply] Allow `update_rollout` on releases that are currently in draft

So that one can create a release in draft status first, and then change its status from draft to inProgress at a later time

* [Supply] Ensure we update the `release_status` when promoting a draft release to inProgress with initial rollout

* Fix crash when `only_statuses` is `nil`

* Address feedback from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…e#27460)

* [match] Switch to in_house? from Connect API

* [match][spec] Add missing coverage

* Empty commit to trigger CI
fastlane#29237)

* [fastlane_core] recognize AWS CodeBuild CI service as a CI environment

* [fastlane][setup_ci] Allow CodeBuild along with circle ci to setup output directory path

* Add comment to trigger the circleci checks
* [cert] Allow on non-macos without keychain

* [cert] Update specs

* [cert] verify_block on keychain options

* [cert] Use optional nil instead of empty string

* [cert] Update specs to deterministically test mac? behavior

* [cert] Add & refactor specs

* [cert] Fix specs

* [cert] Fix spec for stub side-effects

* Empty commit to trigger CI

* Apply suggestion

Co-authored-by: Kohki Miki <[email protected]>

* Update fancy one-liner for readability

* Refactor match generator specs with shared context

* Format spaces

* Update specs

---------

Co-authored-by: Kohki Miki <[email protected]>
…ers (fastlane#29484)

* Add tests for all use cases of #update_rollout

* Update implementation to pass tests

* Adjust expectations after reading the API docs

[The API docs](https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/AndroidpublisherV3/TrackRelease.html#user_fraction-instance_method) explicitly mention that the `user_fraction` parameter is only valid when `status` is `inProgress` or `halted`

* Fix & simplify implementation for new expectations

* Typo fix in code comment
)

* Extract parsing methods into dedicated files

Extract parsing of PLIST and Parsing of --legacy xcresulttool output each in their own dedicated file, on preparation for refactoring and introducing new xcresult parsing method for Xcode 16

* Add new XCResult parser + tests

* Clean large attachments and log data from xcresult

To avoid storing useless large data from fixture in git, while it's not used for our test cases

* Fix extracting data when argument child nodes

* Use different <testcase name=…> if using argument

To ensure that tools that parse the generated JUnit would consider those as different test cases, instead of multiple runs of the same test case.

We already have <property name="argument" value="…"> to help us distinguish, but in practice most of the tools that read JUnit XML files will now know about that property or account for it, and only look at the `<testcase classname=…name=…>` attributes to differentiate cases.

* Extract each Trainer::XCResult::* nested class

Into a dedicated file, for easier browsing of the code and smaller files to scroll through.

* Fix JUnitGenerator test

* Move `supports_xcode16_xcresulttool?` to Helper

* Fix `rubocop` violations

* Exclude tests requiring xcresulttool from windows

* Remove unused require

* Skip tests for new XCResult if CI don't support it

* Better report failed xcresulttool calls

* Make tests pass with earlier Xcode

So that even you run the tests on CI with older versions of Xcode (that don't need nor know the `--legacy` flag) would still run and pass those tests

* Improve shell command call

Use Open3 to run the command instead of backticks
 - So that we can capture the error if it happens
 - So that the code is more resilient against special characters
 - So that we avoid the involvement of an intermediate shell (that would have to interpret the string into parameters before passing it to the process, requiring us to `Shellwords.escape` it in the first place… instead of just passing the parameters to the process directly without involving some unnecessary shell escaping + parsing intermediary)

* Commit dummy project used to generate fixture

Even if it's not directly used/referenced as a fixture by the specs themselves, it can still be useful to have it around to make it easier to add more tests in the project then regenerate the `.xcresult` fixture with more test results cases

* Add test containing tricky characters

Both in its name (emojis) and parameters (ASCII characters 0–128)

* Update .xcresult fixture with new data

* ignore `.sqlite3` files from `.xcresult` fixtures

* Escape special chars when generating JUnit XML

* Regenerate JUnit fixtures to match new xcresult

* Update test: add error message with special chars

To ensure that our sanitizing is not just working for test parameters, but also for error messages and similar strings that could be encountered elsewhere in the generated XML.

This not only include the special, non-printable characters with unexpected ASCII values in the custom error message, but also ensure we include `>` and `<=` characters (which will have to be XML-escaped by REXML to be rendered properly)

This also incidentally validates that a `#expect(…)` with a custom error message is properly taken into account when as a custom error message when parsing the `.xcresult` and generating the JUnit XML

* Fix code comment location

* Only commit database.sqlite3 file for new fixture

The `*.xcresult/database.sqlite3` database file contains the same data as what's serialized in the `.xcresult/Data/*` files, and is just an alternate (and more modern and disk-space-optimized) representation of the same info that the latest `xcresulttool` supports

So we might as well commit just the database instead of the whole Data/* folder and its files, not only to make it take less space on disk, but also to make the git diff and logs easier to deal with.

* Attach <properties> to each <testsuite> instead

As apparently JUnit conventions don't allow the root <testsuites> element to contain <properties> elements, only <testsuite> child elements can

h/t @TheMetalCode for noticing in fastlane#29463 (comment)

* Fix documentation style violation

`trainer` -> _trainer_

* Fix rubocop violations

* Update doc comments in .gitignore

* Update doc comment in legacy_xcresult.rb

Co-authored-by: Jason Hagglund <[email protected]>

* Add some mode code comments

Especially to be clearer about the Repetition type

* Rename variable to nicer name

As suggested in https://github.com/fastlane/fastlane/pull/29463/files#r1990796517

---------

Co-authored-by: Jason Hagglund <[email protected]>
* Add keychain_name param to setup_ci action

Before this commit it was impossible to provide a `name` param to the `create_keychain` action which is called by the `setup_ci` action. This commit adds a `keychain_name` param to the `setup_ci` action which will be passed as `name` to the `create_keychain` action.

* Do required setup by moving test

It seems like some more setup was needed for the tests to pass on the CI. By moving the test, the setup should already be done.

* Trim whitespace
* Update testfairy.rb

* Adjust description to fit length limits

---------

Co-authored-by: Olivier Halligon <[email protected]>
Primary local of "English" doesn't work anymore now that it's "English (U.S.) on App Store Connect.

Changed to en-us
Onesignal killed the old user auth keys, they no longer work. Here's a conversation with their support...

Me: where can I create a user authorization key for use with the API?
Me: my key I was using is no longer working

Them: Hi there,
Thank you for reaching out!
​
On the 14th of November 2024, we announced the new rich API key system described above and started deprecating legacy API keys. The legacy user auth keys will be deprecated on the 1st of March 2025, and legacy app REST API keys will be deprecated in Q1 2026.
​https://documentation.onesignal.com/docs/keys-and-ids#migrating-from-legacy-api-keys
1. This is the guide on generating the new rich auth key.
https://documentation.onesignal.com/docs/keys-and-ids#api-keys
​Instead of using "Basic { REST API Key}", the new authentication key would be using this format "Key {Rich_Authentication_Key}". This will replace the REST API key.
​
2. For APIs using the user auth key, it will be replaced with the Organization API key:
​https://documentation.onesignal.com/docs/keys-and-ids#organization-api-key
A sample request via the API can be found here along with other information:
https://documentation.onesignal.com/reference/quick-start-api-guide#rest-api-key
Let us know if you have any additional questions.
Thanks.
…cates (fastlane#29352)

Handle nil expiration_date in valid? method for pending certificates

Commit Description:
This update improves the valid? method in Spaceship::ConnectAPI::Certificate by handling cases where expiration_date is nil or an empty string. This issue occurs when a certificate is in a "Pending Approval" state in the Apple Developer portal, leading to fastlane match failures.

Changes:
Updated valid? to return false if expiration_date is nil or an empty string.
Added test cases to ensure valid? handles:
nil expiration date (pending approval case).
Empty expiration date string.
Expired certificates.
Valid certificates.
This prevents crashes due to Time.parse(nil) and improves stability when fetching certificates.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@addbrick addbrick marked this pull request as ready for review March 15, 2025 02:12
@addbrick addbrick merged commit 79891d5 into brick/pem-login-fix-merge-master-attempt Mar 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.