diff --git a/.gitattributes b/.gitattributes index e98a4d1b3..63ede231b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,4 @@ /style export-ignore /tests export-ignore /UPGRADING.md export-ignore +/phpstan.neon.dist export-ignore diff --git a/.github/actions/docs/entrypoint.sh b/.github/actions/docs/entrypoint.sh deleted file mode 100755 index 203f98e62..000000000 --- a/.github/actions/docs/entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -l - -apt-get update -apt-get install -y git wget -git reset --hard HEAD - -# Create the directories -mkdir .docs -mkdir .cache - -wget https://github.com/jdpedrie/Sami/releases/download/v4.3.0/sami.phar - -# Run the docs generation command -php sami.phar update .github/actions/docs/sami.php -chmod -R 0777 . diff --git a/.github/actions/docs/sami.php b/.github/actions/docs/sami.php deleted file mode 100644 index b607837df..000000000 --- a/.github/actions/docs/sami.php +++ /dev/null @@ -1,29 +0,0 @@ -files() - ->name('*.php') - ->exclude('vendor') - ->exclude('tests') - ->in($projectRoot); - -$versions = GitVersionCollection::create($projectRoot) - ->addFromTags(function($tag) { - return 0 === strpos($tag, 'v2.') && false === strpos($tag, 'RC'); - }) - ->add('master', 'master branch'); - -return new Sami($iterator, [ - 'title' => 'Google APIs Client Library for PHP API Reference', - 'build_dir' => $projectRoot . '/.docs/%version%', - 'cache_dir' => $projectRoot . '/.cache/%version%', - 'remote_repository' => new GitHubRemoteRepository('googleapis/google-api-php-client', $projectRoot), - 'versions' => $versions -]); diff --git a/.github/conventional-commit-lint.yaml b/.github/conventional-commit-lint.yaml new file mode 100644 index 000000000..0c96b611f --- /dev/null +++ b/.github/conventional-commit-lint.yaml @@ -0,0 +1,2 @@ +always_check_pr_title: true + diff --git a/.github/release-please.yml b/.github/release-please.yml new file mode 100644 index 000000000..0a6e0cc27 --- /dev/null +++ b/.github/release-please.yml @@ -0,0 +1,3 @@ +releaseType: simple +handleGHRelease: true +primaryBranch: main diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml new file mode 100644 index 000000000..ed17d0705 --- /dev/null +++ b/.github/release-trigger.yml @@ -0,0 +1,2 @@ +enabled: true +multiScmName: google-api-php-client diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 6e411b4c9..a4444366a 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -5,15 +5,13 @@ branchProtectionRules: - pattern: master isAdminEnforced: true requiredStatusCheckContexts: - - 'PHP 5.6 Unit Test' - - 'PHP 5.6 --prefer-lowest Unit Test' - - 'PHP 7.0 Unit Test' - - 'PHP 7.1 Unit Test' - - 'PHP 7.2 Unit Test' - - 'PHP 7.3 Unit Test' - - 'PHP 7.4 Unit Test' - 'PHP 8.0 Unit Test' - 'PHP 8.0 --prefer-lowest Unit Test' + - 'PHP 8.1 Unit Test' + - 'PHP 8.2 Unit Test' + - 'PHP 8.3 Unit Test' + - 'PHP 8.4' + - 'PHP 8.4 --prefer-lowest Unit Test' - 'PHP Style Check' - 'cla/google' requiredApprovingReviewCount: 1 diff --git a/.github/workflows/asset-release.yml b/.github/workflows/asset-release.yml index 6f86fdecf..24a459254 100644 --- a/.github/workflows/asset-release.yml +++ b/.github/workflows/asset-release.yml @@ -3,6 +3,7 @@ name: Add Release Assets on: release: types: [published] + workflow_dispatch: jobs: asset: @@ -10,7 +11,7 @@ jobs: strategy: matrix: operating-system: [ ubuntu-latest ] - php: [ "5.6", "7.0", "7.4", "8.0" ] + php: [ "8.1", "8.3" ] name: Upload Release Assets steps: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 63244a80a..5d09dabb0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,34 +1,26 @@ name: Generate Documentation on: push: - branches: - - master tags: - "*" + workflow_dispatch: + inputs: + tag: + description: 'Tag to generate documentation for' + required: false + pull_request: + +permissions: + contents: write jobs: docs: - name: "Generate Project Documentation" - runs-on: ubuntu-16.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* - - name: Install Dependencies - uses: nick-invision/retry@v1 - with: - timeout_minutes: 10 - max_attempts: 3 - command: composer install - - name: Generate and Push Documentation - uses: docker://php:7.3-cli - env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - with: - entrypoint: ./.github/actions/docs/entrypoint.sh - - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@releases/v3 - with: - ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} - BRANCH: gh-pages - FOLDER: .docs + name: "Generate and Deploy Documentation" + uses: GoogleCloudPlatform/php-tools/.github/workflows/doctum.yml@main + with: + title: "Google Cloud PHP Client" + default_version: ${{ inputs.tag || github.head_ref || github.ref_name }} + exclude_file: aliases.php + tag_pattern: "v2.*" + dry_run: ${{ github.event_name == 'pull_request' }} + diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 398d5dec8..ade84792a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,7 +2,7 @@ name: Test Suite on: push: branches: - - master + - main pull_request: jobs: @@ -11,15 +11,13 @@ jobs: strategy: fail-fast: false matrix: - php: [ "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1" ] + php: [ "8.1", "8.2", "8.3", "8.4" ] composer-flags: [""] include: - - php: "5.6" - composer-flags: "--prefer-lowest " - - php: "8.0" - composer-flags: "--prefer-lowest " - php: "8.1" composer-flags: "--prefer-lowest " + - php: "8.4" + composer-flags: "--prefer-lowest " name: PHP ${{ matrix.php }} ${{ matrix.composer-flags }}Unit Test steps: - uses: actions/checkout@v2 @@ -28,20 +26,11 @@ jobs: with: php-version: ${{ matrix.php }} - name: Install Dependencies - uses: nick-invision/retry@v1 + uses: nick-invision/retry@v2 with: timeout_minutes: 10 max_attempts: 3 command: composer update ${{ matrix.composer-flags }} - - if: ${{ matrix.php == '8.0' || ( matrix.composer-flags == '--prefer-lowest' && matrix.php != '8.1' ) }} - name: Update guzzlehttp/ringphp dependency - run: composer update guzzlehttp/ringphp - - if: ${{ matrix.php == '8.1' }} - name: Update guzzlehttp/ringphp dependency - run: composer update guzzlehttp/ringphp --ignore-platform-reqs - - if: ${{ matrix.php == '8.1' }} - name: Update phpunit/phpunit dependency - run: composer update phpunit/phpunit phpspec/prophecy-phpunit --with-dependencies --ignore-platform-reqs - name: Run Script run: vendor/bin/phpunit @@ -53,12 +42,27 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: "7.3" + php-version: "8.1" - name: Install Dependencies - uses: nick-invision/retry@v1 + uses: nick-invision/retry@v2 with: timeout_minutes: 10 max_attempts: 3 command: composer install - name: Run Script - run: vendor/bin/phpcs src --standard=phpcs.xml.dist -np + run: vendor/bin/phpcs src tests examples --standard=phpcs.xml.dist -nps + staticanalysis: + runs-on: ubuntu-latest + name: PHPStan Static Analysis + steps: + - uses: actions/checkout@v2 + - name: Install PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + - name: Run Script + run: | + composer install + composer global require phpstan/phpstan + ~/.composer/vendor/bin/phpstan analyse + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..a0418c111 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,130 @@ +# Changelog + +## [2.18.4](https://github.com/googleapis/google-api-php-client/compare/v2.18.3...v2.18.4) (2025-09-29) + + +### Bug Fixes + +* Ensure credentials can be of type FetchAuthTokenInterface ([#2684](https://github.com/googleapis/google-api-php-client/issues/2684)) ([ed70802](https://github.com/googleapis/google-api-php-client/commit/ed70802cc4886ef1f513a2c0b56a8a972db5e7ab)) + +## [2.18.3](https://github.com/googleapis/google-api-php-client/compare/v2.18.2...v2.18.3) (2025-04-08) + + +### Bug Fixes + +* Convert Finder lazy iterator to array before deletion ([#2663](https://github.com/googleapis/google-api-php-client/issues/2663)) ([c699405](https://github.com/googleapis/google-api-php-client/commit/c6994051af1568359c97d267d9ef34ccbda31387)) + +## [2.18.2](https://github.com/googleapis/google-api-php-client/compare/v2.18.1...v2.18.2) (2024-12-16) + + +### Bug Fixes + +* Correct type for jwt constructor arg ([#2648](https://github.com/googleapis/google-api-php-client/issues/2648)) ([31a9861](https://github.com/googleapis/google-api-php-client/commit/31a9861af02a8e9070b395f05caed7ffce0ef8be)) + +## [2.18.1](https://github.com/googleapis/google-api-php-client/compare/v2.18.0...v2.18.1) (2024-11-24) + + +### Bug Fixes + +* Implicitly marking parameter as nullable is deprecated ([#2638](https://github.com/googleapis/google-api-php-client/issues/2638)) ([de57db2](https://github.com/googleapis/google-api-php-client/commit/de57db2fdc0d56de1abbf778b28b77c3347eb3fd)) + +## [2.18.0](https://github.com/googleapis/google-api-php-client/compare/v2.17.0...v2.18.0) (2024-10-16) + + +### Features + +* **docs:** Use doctum shared workflow for reference docs ([#2618](https://github.com/googleapis/google-api-php-client/issues/2618)) ([242e2cb](https://github.com/googleapis/google-api-php-client/commit/242e2cb09ad5b25b047a862b4d521037e74cae29)) + + +### Bug Fixes + +* Explicit token caching issue ([#2358](https://github.com/googleapis/google-api-php-client/issues/2358)) ([dc13e5e](https://github.com/googleapis/google-api-php-client/commit/dc13e5e3f517148d3c66d151a5ab133b7840d8fb)) + +## [2.17.0](https://github.com/googleapis/google-api-php-client/compare/v2.16.0...v2.17.0) (2024-07-10) + + +### Features + +* Add logger to client constructor config ([#2606](https://github.com/googleapis/google-api-php-client/issues/2606)) ([1f47133](https://github.com/googleapis/google-api-php-client/commit/1f4713329d71111a317cda8ef8603fa1bdc88858)) +* Add the protected apiVersion property ([#2588](https://github.com/googleapis/google-api-php-client/issues/2588)) ([7e79f3d](https://github.com/googleapis/google-api-php-client/commit/7e79f3d7be4811f760e19cc4a2c558e04196ec1d)) + +## [2.16.0](https://github.com/googleapis/google-api-php-client/compare/v2.15.4...v2.16.0) (2024-04-24) + + +### Features + +* Add universe domain support ([#2563](https://github.com/googleapis/google-api-php-client/issues/2563)) ([35895de](https://github.com/googleapis/google-api-php-client/commit/35895ded90b507074b3430a94a5790ddd01f39f0)) + +## [2.15.4](https://github.com/googleapis/google-api-php-client/compare/v2.15.3...v2.15.4) (2024-03-06) + + +### Bug Fixes + +* Updates phpseclib because of a security issue ([#2574](https://github.com/googleapis/google-api-php-client/issues/2574)) ([633d41f](https://github.com/googleapis/google-api-php-client/commit/633d41f1b65fdb71a83bf747f7a3ad9857f6d02a)) + +## [2.15.3](https://github.com/googleapis/google-api-php-client/compare/v2.15.2...v2.15.3) (2024-01-04) + + +### Bug Fixes + +* Guzzle dependency version ([#2546](https://github.com/googleapis/google-api-php-client/issues/2546)) ([c270f28](https://github.com/googleapis/google-api-php-client/commit/c270f28b00594a151a887edd3cfd205594a1256a)) + +## [2.15.2](https://github.com/googleapis/google-api-php-client/compare/v2.15.1...v2.15.2) (2024-01-03) + + +### Bug Fixes + +* Disallow vulnerable guzzle versions ([#2536](https://github.com/googleapis/google-api-php-client/issues/2536)) ([d1830ed](https://github.com/googleapis/google-api-php-client/commit/d1830ede17114a4951ab9e60b3b9bcd9393b8668)) +* Php 8.3 deprecated get_class method call without argument ([#2509](https://github.com/googleapis/google-api-php-client/issues/2509)) ([8c66021](https://github.com/googleapis/google-api-php-client/commit/8c6602119b631e1a9da4dbe219af18d51c8dab8e)) +* Phpseclib security vulnerability ([#2524](https://github.com/googleapis/google-api-php-client/issues/2524)) ([73705c2](https://github.com/googleapis/google-api-php-client/commit/73705c2a65bfc01fa6d7717b7f401b8288fe0587)) + +## [2.15.1](https://github.com/googleapis/google-api-php-client/compare/v2.15.0...v2.15.1) (2023-09-12) + + +### Bug Fixes + +* Upgrade min phpseclib version ([#2499](https://github.com/googleapis/google-api-php-client/issues/2499)) ([8e7fae2](https://github.com/googleapis/google-api-php-client/commit/8e7fae2b79cfc1b72026347abf6314d91442a018)) + +## [2.15.0](https://github.com/googleapis/google-api-php-client/compare/v2.14.0...v2.15.0) (2023-05-18) + + +### Features + +* Add pkce support and upgrade examples ([#2438](https://github.com/googleapis/google-api-php-client/issues/2438)) ([bded223](https://github.com/googleapis/google-api-php-client/commit/bded223ece445a6130cde82417b20180b1d6698a)) +* Drop support for 7.3 and below ([#2431](https://github.com/googleapis/google-api-php-client/issues/2431)) ([c765b37](https://github.com/googleapis/google-api-php-client/commit/c765b379e95ab272b6a87aa802d9f5507eaeb2e7)) + +## [2.14.0](https://github.com/googleapis/google-api-php-client/compare/v2.13.2...v2.14.0) (2023-05-11) + + +### Features + +* User-supplied query params for auth url ([#2432](https://github.com/googleapis/google-api-php-client/issues/2432)) ([74a7d7b](https://github.com/googleapis/google-api-php-client/commit/74a7d7b838acb08afc02b449f338fbe6577cb03c)) + +## [2.13.2](https://github.com/googleapis/google-api-php-client/compare/v2.13.1...v2.13.2) (2023-03-23) + + +### Bug Fixes + +* Calling class_exists with null in Google\Model ([#2405](https://github.com/googleapis/google-api-php-client/issues/2405)) ([5ed4edc](https://github.com/googleapis/google-api-php-client/commit/5ed4edc9315110a715e9763d27ee6761e1aaa00a)) + +## [2.13.1](https://github.com/googleapis/google-api-php-client/compare/v2.13.0...v2.13.1) (2023-03-13) + + +### Bug Fixes + +* Allow dynamic properties on model classes ([#2408](https://github.com/googleapis/google-api-php-client/issues/2408)) ([11080d5](https://github.com/googleapis/google-api-php-client/commit/11080d5e85a040751a13aca8131f93c7d910db11)) + +## [2.13.0](https://github.com/googleapis/google-api-php-client/compare/v2.12.6...v2.13.0) (2022-12-19) + + +### Features + +* Make auth http client config extends from default client config ([#2348](https://github.com/googleapis/google-api-php-client/issues/2348)) ([2640250](https://github.com/googleapis/google-api-php-client/commit/2640250c7bab479f378972733dcc0a3e9b2e14f8)) + + +### Bug Fixes + +* Don't send content-type header if no post body exists ([#2288](https://github.com/googleapis/google-api-php-client/issues/2288)) ([654c0e2](https://github.com/googleapis/google-api-php-client/commit/654c0e29ab78aba8bfef52fd3d06a3b2b39c4e0d)) +* Ensure new redirect_uri propogates to OAuth2 class ([#2282](https://github.com/googleapis/google-api-php-client/issues/2282)) ([a69131b](https://github.com/googleapis/google-api-php-client/commit/a69131b6488735d112a529a278cfc8b875e18647)) +* Lint errors ([#2315](https://github.com/googleapis/google-api-php-client/issues/2315)) ([88cc63c](https://github.com/googleapis/google-api-php-client/commit/88cc63c38b0cf88629f66fdf8ba6006f6c6d5a2c)) +* Update accounts.google.com authorization URI ([#2275](https://github.com/googleapis/google-api-php-client/issues/2275)) ([b2624d2](https://github.com/googleapis/google-api-php-client/commit/b2624d21fce894126b9975a872cf5cda8038b254)) diff --git a/README.md b/README.md index 0f9e0cde0..7bac1824f 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,18 @@ # Google APIs Client Library for PHP # +**NOTE**: please check to see if the package you'd like to install is available in our +list of [Google cloud packages](https://cloud.google.com/php/docs/reference) first, as +these are the recommended libraries. +
Here is the data from your Id Token:
@@ -106,4 +107,4 @@