text:
dashboard/config: add chromeos-5.10 support

To add the ChromeOS 5.10 support.

Please add the config itself as well.
It's useful to commit stock config first:
https://github.com/google/syzkaller/commit/9e17e0cd2c1c11023201de3c60257815d5775dc6#diff-06d986602d36289612eb80d5051e54bfb56ac4ffc42a75ff5fb400fd99a49073
and then our changes on top as a separate commit so that it's visible what has changed:
https://github.com/google/syzkaller/commit/76b4dcc777ca842ee42225411c5c9d5ac3e91b8a#diff-06d986602d36289612eb80d5051e54bfb56ac4ffc42a75ff5fb400fd99a49073

@dvyukov , done.
Currently is it just a copy of the 5.4 settings.

source: gharchive/pull-request

authors: dvyukov tarasmadan


text:
[Question Schema] Test cases can be exhaustedly listed out

Since the test cases, which are quite few and rather simple, are shown on screen with their correct answers once failed, challengers can list out all test cases as predicates in their codes and 'cheat'.

So, first off, for consistency's sake, please provide repro steps from a clean copy and a screenshot of the error in progress.

Second, we have discussed this a few times with the team and there are a few different schools of thought, here:

If a student wants to cheat, they are really just hurting themselves, since it's a prep tool. This is a similar mindset to the idea that Cracking the Coding Interview / Programming Interviews Exposed do have solutions in the book, so you could read them that way if you wanted to, though you're costing yourself the educational experience.
On the other hand, it is possible to build new correctness tests pretty easily by generating random inputs and then running the solution code over those inputs. This would allow us to very easily create an exhaustive list of test cases such that no student would ever really want to enumerate over all of them.

What are your thoughts?

Repo steps:

Open "app.html".

Navigate to Question 2, which has three tasks in total.

Do code as follows then click "Run", which makes the Judge report a test failure:

Put a specific predicate for dealing with this test case. The code now passes the first test, but fails on another one:

In such way challengers are able to enumerate over all test cases created by engineers.

Try out all cases and put them all in predicates. Now the code is able to finish Task One:

Proposal:

Either generate some random test cases or
Hide some test cases from challengers

Even if you add randomized test cases, until you do some sort of encryption , obfuscation, or other protection on the test cases, "enterprising" users can still simply go into the questions and change/disable them. In both cases, I'm not actually sure why they're bothering to use the app at all.
Hiding test cases seems unproductive. Nothing is more frustrating than failing and receiving no directional feedback. I'd only consider this acceptable if every test case was accompanied by an associated "hint". While it may be more thematic to have the interviewer give you a stony-faced silent stare when you're bombing, I'm skeptical it has any real value while preparing for an interview.
That said, if it's going to be used as a teaching aid for a grade in class, it might be useful to provide check sums for the question files that are distributed separately from the main project. Perhaps calculate them every push?

We talked about this in a team meeting, and decided not to take action on this. TIE is intended to be a formative tool, and preventing cheating is not one of its goals.

source: gharchive/issue

authors: BenjaminHolland eyurko seanlip xchenan

repo: google/tie

license_type: permissive

license_source: bigquery


text:
Implement NullUUID

In order to allow uuid.UUID to work with the standard sql package to represent a UUID value that can be NULL in the database I suggest to implement a NullUUID the same way as
it's done in http://github.com/satori/go.uuid [1]
[1] https://pkg.go.dev/github.com/satori/go.uuid@v1.2.0?tab=doc#NullUUID

Looking at the code it appears that NullUUID can actually be implemented outside of the uuid package itself.  Have you considered making a simple package that provides this type?

Ha! Didn't think about this obvious solution.
Still it would be nice to implement it in here to make it more idiomatic.
Instead of importing a separate package and calling a type e.g. null.UUID we could use the very same package that defines the uuid.UUID and use the type as uuid.Null.
I'd be happy to submit a PR basing the work on satori's implementation.

This issue seems to be fixed, am I wrong?

Should be able to close this one

Just as I've stumbled across this personally as well, there is a generic sql.Null[T].
And it's fairly straightforward to implement a Null[T] (that handles JSON (un-)marshalling correctly too) or NullUUID yourself.
I don't know if this would be idiomatic to have in the uuid package as it's about db logic/mapping. I'd prefer to have this A) in a separate package or B) the db package.

Looks like #76 solved this and this change got released in 1.3.0: https://github.com/google/uuid/releases/tag/v1.3.0 🎉

authors: Alcas1 agravelot jensilo pborman pmalekn

repo: google/uuid


text:
Element ratio lock and padding lock not persistent

Bug Description
When I unselect an element and select it again (or reload the editor), I notice that the lock is enabled again.
Expected Behaviour
When I disable padding lock, I expect this to be a persistent setting.
When I disable aspect ratio lock, I expect this to be a persistent setting.
Steps to Reproduce

Create new text element
Disable padding lock
Add some horizontal padding, but no vertical one
Element updates as expected
(Continue editing other elements)
Edit text element again
Change horizontal padding
Notice how vertical padding now suddenly changes again

Screenshots

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria
QA Instructions

/cc @miina

I wonder if this is something that should this be persistent between reloads as well e.g. as in #825? Or would this be per element persistent until the editor is reloaded?

I think the padding specifically is more of a function of the current values. If horizontal === vertical, then the initial state of the lock should be on. Otherwise, it should be off.

/cc @pbakaus it looks like my suggestion was a bad one. What do we want then here? Do we want lock state to be persisted in the data model? Or just always start on/off?

@dvoytenko just for posterity, the answer is we persist.

@pbakaus @dvoytenko We need to confirm the behavior when multiple elements selected.
When we have multiple element selected with different lock ratio value, we assume it as true and based on that calculate the size and padding.
@dvoytenko suggested that we need to have separate calculation on each element lock ratio value.
My question is if we need to separate the each calculation based on each element lock ratio for size and padding. And in that case what would be the status of lock ratio toggle?
Should it be disabled status?
/cc @samitron7

@dvoytenko suggested that we need to have separate calculation on each element lock ratio value.

I also chimed in on the other thread and for posterity: I think both options are very possible. But I actually leaning toward your initial intuition now, and use the common lock ratio. What's most important though: whichever way we go, we should stay consistent. So, assuming a multiple selection with different lock rations and changing the width, I see two options:

Use per-element ratio and update height in one element, but not in the other. That means the width will show the common value (e.g. "100") and the height will be "multiple values".
Use the common ratio. E.g. if the common ratio is "locked", we update height in both elements. But then we should also set ratio to "locked" for both elements in the data model.

This way we preserve the consistency. The width, height, and lock are all as they were last updated.
And again, I'm leaning to the second option at this time.

authors: dvoytenko miina ndev1991 pbakaus swissspidy

repo: google/web-stories-wp

license_source: github-api


text:
Performance: Page Preview Thumbnails rendering

Feature Description
Explore rendering page preview thumbnails as images.

Alternatives Considered
SVG rendering was initially considered but didn't seem to bring significant performance improvements, see the comparison graph.

Additional Context
Thumbnails rendering is creating visible performance issues, especially noticeable for large / asset-dense stories.
This issue initially includes exploration for image rendering for thumbnails instead of rendering all the nodes via React for all the thumbnails. As a result of this issue, a performance comparison should be created for:

the current React rendering logic
the SVG rendering for thumbnails
image rendering for thumbnails

In case of success, a follow-up issue will be created to implement the image rendering for thumbnails fully, and elsewhere it could be useful (Text Sets / Page Templates).

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

There is a document comparing performance results rendering the page thumbnails currently vs SVG rendering vs image rendering

Implementation Brief

Use the library for image creation
Display all thumbnails as images except for the thumbnail currently active
Test the performance based on that

Note: no need to create the logic for actively renewing the images while editing a story within this issue.

Closing with the conclusion of image rendering being the best option.
The first follow-up issue will be for Text Sets where the lagging is very noticeable.


text:
Add flag for whether the overflow menu is used or not for action buttons

It would be nice to have the option of manually specifying whether or not an overflow menu should be used for the action buttons. This would allow the option to always show the action buttons as icons (such as in the case where there's only one or two buttons) instead of having an unnecessary overflow button when not in full-screen mode.

Example changes:
From b86823bd7f8c2811670b4e42b2c0c298f596c3c5 Mon Sep 17 00:00:00 2001
From: Philip Peng <phpeng@microsoft.com>
Date: Mon, 9 Mar 2015 17:31:19 -0700
Subject: [PATCH] Add flag for whether the overflow menu is used for action
 buttons or not

---
 .../layeredvideo/PlaybackControlLayer.java         | 24 +++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/googlemediaframework/src/main/java/com/google/android/libraries/mediaframework/layeredvideo/PlaybackControlLayer.java b/googlemediaframework/src/main/java/com/google/android/libraries/mediaframework/layeredvideo/PlaybackControlLayer.java
index 6c1504f..eb3c9a4 100644
--- a/googlemediaframework/src/main/java/com/google/android/libraries/mediaframework/layeredvideo/PlaybackControlLayer.java
+++ b/googlemediaframework/src/main/java/com/google/android/libraries/mediaframework/layeredvideo/PlaybackControlLayer.java
@@ -330,6 +330,11 @@ public class PlaybackControlLayer implements Layer, PlayerControlCallback {
   private LinearLayout actionButtonsContainer;

   /**
+   * Whether or not to use an overflow menu for the action buttons.
+   */
+  private boolean useOverflowMenuForActionButtons;
+
+  /**
    * Displays the play icon when the video is playing, or the pause icon when the video is playing.
    */
   private ImageButton pausePlayButton;
@@ -400,6 +405,7 @@ public class PlaybackControlLayer implements Layer, PlayerControlCallback {
     this.canSeek = true;
     this.fullscreenCallback = fullscreenCallback;
     this.shouldBePlaying = false;
+    this.useOverflowMenuForActionButtons = true;
     actionButtons = new ArrayList<ImageButton>();
   }

@@ -832,6 +838,22 @@ public class PlaybackControlLayer implements Layer, PlayerControlCallback {
   }

   /**
+   * Returns whether the player is using an overflow menu for action buttons.
+   */
+  public boolean isUsingOverflowMenuForActionButtons() {
+    return useOverflowMenuForActionButtons;
+  }
+
+  /**
+   * Make the player use or not use an overflow menu for action buttons.
+   * @param shouldUseOverflowMenu If true, the player will use an overflow menu. If false, the player
+   *                              will show all action buttons directly.
+   */
+  public void setUseOverflowMenuForActionButtons(boolean shouldUseOverflowMenu) {
+    useOverflowMenuForActionButtons = shouldUseOverflowMenu;
+  }
+
+  /**
    * Perform binding to UI, setup of event handlers and initialization of values.
    */
   private void setupView() {
@@ -960,7 +982,7 @@ public class PlaybackControlLayer implements Layer, PlayerControlCallback {
   public void updateActionButtons() {
     actionButtonsContainer.removeAllViews();

-    if (isFullscreen) {
+    if (isFullscreen || useOverflowMenuForActionButtons) {
       for (ImageButton imageButton : actionButtons) {
         actionButtonsContainer.addView(imageButton);
       }
--
1.9.5.msysgit.0


text:
Problem finding sources from source maps

Environment details

OS: macOS High Sierra 10.13.6
Node.js version: v8.10.0
npm version: 5.6.0
@google-cloud/debug-agent version: 3.0.0

Description
I'm having trouble getting the debugger to work locally on 3.0.0. The root problem is that I can't configure the paths correctly.
I have the following file structure:
/repo_root/code/rest/src/company/file.ts
/repo_root/code/rest/build/company/file.js
/repo_root/code/rest/build/company/file.js.map
The program's cwd is /repo_root/code/rest
I implemented a very naive pathResolver which returns the absolute path of the file.
(scriptPath: string, knownFiles: string[], resolved: string[]) => {
        return knownFiles.filter(f => f.endsWith(scriptPath));
}

When debugging the problem, I noticed that the method SourceMapper.mappingInfo was returning the line -1 and that the source file passed to the source map consumer for code/rest/src/company/rest.ts was ../../code/rest/src/company/rest.ts. That's because the source path is calculated as
path.relative(path.dirname(entry.mapFile), inputPath).replace(/\\/g, '/')

Where entry.mapFile is build/company/file.js but inputPath is code/rest/src/company/rest.ts. The mapFile is supposed to be relative to the cwd (repo_root/code/rest) but the inputPath is supposed to be relative to the project root. However, sin both are relative paths, the source path ends up being wrong (../../code/rest/src/company/rest.ts, which I think is relative to the sourcemap file).
Replacing /code/rest with an empty string (i.e. ../../src/company/rest.ts) in the source path makes everything work. The source map consumer entry even has an _absoluteSources property with value [ '../../src/company/rest.ts' ], which si the correct path relative to the source map.
So, I'm not sure if this is some configuration I'm missing or a bug with how the source path is calculated

This looks like a bug in the sourcemapper to me.  Thanks for reporting it.

This issue has been resolved in version 3.0.1.

repo: googleapis/cloud-debug-nodejs


text:
Synthesis failed for FirebaseDynamicLinks

Hello! Autosynth couldn't regenerate FirebaseDynamicLinks. :broken_heart:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth-firebasedynamiclinks'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/firebase_dynamic_links/synth.metadata', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Failed executing git clean -fdx:

warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/reviews.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/edits.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/orders.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/purchases.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/inappproducts.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/api/internalappsharingartifacts.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/connection.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/bundles_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/deobfuscation_file.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/bundle.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/image.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/apk_binary.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/listing.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/page_info.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_purchases_defer_request.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/testers.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/track.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/in_app_product.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/season.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/app_details.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/apks_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/review_reply_result.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/tracks_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_purchases_defer_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_purchase.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/product_purchase.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/product_purchases_acknowledge_request.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_cancel_survey_result.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/timestamp.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/deobfuscation_files_upload_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/images_upload_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_price_change.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_deferral_info.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/subscription_purchases_acknowledge_request.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/reviews_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/voided_purchase.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/images_delete_all_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/price.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/reviews_reply_request.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/prorate.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/externally_hosted_apk_uses_permission.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/developer_comment.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/images_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/voided_purchases_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/review.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/expansion_file.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/token_pagination.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/apk.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/localized_text.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/country_targeting.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/month_day.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/apks_add_externally_hosted_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/reviews_reply_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/expansion_files_upload_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/externally_hosted_apk.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/apks_add_externally_hosted_request.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/track_release.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/device_metadata.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/in_app_product_listing.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/app_edit.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/internal_app_sharing_artifact.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/inappproducts_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/user_comment.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/listings_list_response.ex: Permission denied
warning: failed to remove android_publisher/lib/google_api/android_publisher/v3/model/comment.ex: Permission denied

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 87, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 79, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 32, in <module>
    shell.run(["git", "clean", "-fdx"], cwd=repository / "clients")
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'clean', '-fdx']' returned non-zero exit status 1.
synthtool > Wrote metadata to clients/firebase_dynamic_links/synth.metadata.

Synthesis failed

Google internal developers can see the full log here.

Autosynth is still having trouble generating FirebaseDynamicLinks. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth-firebasedynamiclinks'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/firebase_dynamic_links/synth.metadata', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Failed executing git reset --hard master:

error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/api/amp_urls.ex': Permission denied
error: unable to create file clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/connection.ex: Permission denied
error: unable to create file clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/deserializer.ex: Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/amp_url.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/amp_url_error.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/batch_get_amp_urls_request.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/batch_get_amp_urls_response.ex': Permission denied
error: unable to create file clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/request_builder.ex: Permission denied
fatal: Could not reset index file to revision 'master'.

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 87, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 79, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 32, in <module>
    repository = git.clone(repository_url, depth=1)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/sources/git.py", line 70, in clone
    shell.run(["git", "reset", "--hard", committish], cwd=str(dest))
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'reset', '--hard', 'master']' returned non-zero exit status 128.
synthtool > Wrote metadata to clients/firebase_dynamic_links/synth.metadata.

Synthesis failed

Google internal developers can see the full log here.

Autosynth is still having trouble generating FirebaseDynamicLinks. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth-firebasedynamiclinks'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/firebase_dynamic_links/synth.metadata', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Failed executing git reset --hard master:

error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/api/amp_urls.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/connection.ex': Permission denied
error: unable to create file clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/deserializer.ex: Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/amp_url.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/amp_url_error.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/batch_get_amp_urls_request.ex': Permission denied
error: unable to unlink old 'clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/model/batch_get_amp_urls_response.ex': Permission denied
error: unable to create file clients/accelerated_mobile_page_url/lib/google_api/accelerated_mobile_page_url/v1/request_builder.ex: Permission denied
fatal: Could not reset index file to revision 'master'.

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 87, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 79, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 32, in <module>
    repository = git.clone(repository_url, depth=1)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/sources/git.py", line 70, in clone
    shell.run(["git", "reset", "--hard", committish], cwd=str(dest))
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'reset', '--hard', 'master']' returned non-zero exit status 128.
synthtool > Wrote metadata to clients/firebase_dynamic_links/synth.metadata.

Synthesis failed

Google internal developers can see the full log here.

Autosynth is still having trouble generating FirebaseDynamicLinks. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth-firebasedynamiclinks'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/firebase_dynamic_links/synth.metadata', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Failed executing git reset --hard master:

error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/accounts.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/billing_info.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/budget.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/creatives.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/marketplacedeals.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/marketplacenotes.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/marketplaceprivateauction.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/performance_report.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/pretargeting_config.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/products.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/proposals.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/api/pubprofiles.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/connection.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/deserializer.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/account.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/account_bidder_location.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/accounts_list.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/add_order_deals_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/add_order_deals_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/add_order_notes_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/add_order_notes_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/billing_info.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/billing_info_list.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/budget.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/buyer.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/contact_information.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/create_orders_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/create_orders_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_contexts.ex: Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_contexts_1.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_corrections.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_deal_ids.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_deal_ids_deal_statuses.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_disapproval_reasons.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_filtering_reasons.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_filtering_reasons_reasons.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_native_ad.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_native_ad_app_icon.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_native_ad_image.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_native_ad_logo.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creative_serving_restrictions.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/creatives_list.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_serving_metadata.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_serving_metadata_deal_pause_status.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms_guaranteed_fixed_price_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms_guaranteed_fixed_price_terms_billing_info.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms_non_guaranteed_auction_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms_non_guaranteed_fixed_price_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/deal_terms_rubicon_non_guaranteed_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/delete_order_deals_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/delete_order_deals_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/delivery_control.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/delivery_control_frequency_cap.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/dimension.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/dimension_dimension_value.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/edit_all_order_deals_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/edit_all_order_deals_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/get_offers_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/get_order_deals_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/get_order_notes_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/get_orders_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/get_publisher_profiles_by_account_id_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/marketplace_deal.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/marketplace_deal_party.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/marketplace_label.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/marketplace_note.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/performance_report.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/performance_report_list.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/pretargeting_config.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/pretargeting_config_dimensions.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/pretargeting_config_excluded_placements.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/pretargeting_config_list.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/pretargeting_config_video_player_sizes.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/price.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/price_per_buyer.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/private_data.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/product.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/proposal.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/publisher_profile_api_proto.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/publisher_provided_forecast.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/seller.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/shared_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_creative_size.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_day_part_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_day_part_targeting_day_part.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_demog_age_criteria.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_demog_gender_criteria.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/targeting_value_size.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/model/update_private_auction_proposal_request.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v14/request_builder.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/api/accounts.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/api/bidders.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/connection.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/deserializer.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/absolute_date_range.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/accept_proposal_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/ad_size.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/ad_technology_providers.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/add_deal_association_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/add_note_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/app_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/auction_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/bid_metrics_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/bid_response_without_bids_status_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/buyer.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/callout_status_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/cancel_negotiation_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/client.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/client_user.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/client_user_invitation.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/complete_setup_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/contact_information.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/correction.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative_deal_association.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative_restrictions.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative_size.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative_specification.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/creative_status_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/criteria_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/day_part.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/day_part_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/deal.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/deal_pause_status.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/deal_serving_metadata.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/deal_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/delivery_control.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/disapproval.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/empty.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/filter_set.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/filtered_bid_creative_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/filtered_bid_detail_row.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/filtering_stats.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/first_party_mobile_application_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/frequency_cap.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/guaranteed_fixed_price_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/html_content.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/image.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/impression_metrics_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/inventory_size_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_bid_metrics_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_bid_response_errors_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_bid_responses_without_bids_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_client_user_invitations_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_client_users_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_clients_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_creative_status_breakdown_by_creative_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_creative_status_breakdown_by_detail_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_creatives_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_deal_associations_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_filter_sets_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_filtered_bid_requests_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_filtered_bids_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_impression_metrics_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_losing_bids_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_non_billable_winning_bids_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_products_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_proposals_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/list_publisher_profiles_response.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/location_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/marketplace_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/metric_value.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/mobile_application_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/money.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/native_content.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/non_billable_winning_bid_status_row.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/non_guaranteed_auction_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/non_guaranteed_fixed_price_terms.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/note.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/operating_system_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/pause_proposal_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/placement_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/platform_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/price.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/price_per_buyer.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/private_data.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/product.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/proposal.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/publisher_profile.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/realtime_time_range.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/reason.ex: Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/relative_date_range.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/remove_deal_association_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/resume_proposal_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/row_dimensions.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/security_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/seller.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/serving_context.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/serving_restriction.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/size.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/stop_watching_creative_request.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/targeting_criteria.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/targeting_value.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/technology_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/time_interval.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/time_of_day.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/url_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/video_content.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/video_targeting.ex': Permission denied
error: unable to unlink old 'clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/model/watch_creative_request.ex': Permission denied
error: unable to create file clients/ad_exchange_buyer/lib/google_api/ad_exchange_buyer/v2beta1/request_builder.ex: Permission denied
fatal: Could not reset index file to revision 'master'.

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 87, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 79, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 32, in <module>
    repository = git.clone(repository_url, depth=1)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/sources/git.py", line 70, in clone
    shell.run(["git", "reset", "--hard", committish], cwd=str(dest))
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'reset', '--hard', 'master']' returned non-zero exit status 128.
synthtool > Wrote metadata to clients/firebase_dynamic_links/synth.metadata.

Synthesis failed

Google internal developers can see the full log here.

Autosynth is still having trouble generating FirebaseDynamicLinks. :sob:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to branch 'autosynth-firebasedynamiclinks'
Running synthtool
['/tmpfs/src/git/autosynth/env/bin/python3', '-m', 'synthtool', '--metadata', 'clients/firebase_dynamic_links/synth.metadata', 'synth.py', '--']
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/chingor13/elixir-google-api.git.
synthtool > Failed executing git reset --hard master:

error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/api/sites.ex': Permission denied
error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/api/violating_sites.ex': Permission denied
error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/connection.ex': Permission denied
error: unable to create file clients/ad_experience_report/lib/google_api/ad_experience_report/v1/deserializer.ex: Permission denied
error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/model/platform_summary.ex': Permission denied
error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/model/site_summary_response.ex': Permission denied
error: unable to unlink old 'clients/ad_experience_report/lib/google_api/ad_experience_report/v1/model/violating_sites_response.ex': Permission denied
error: unable to create file clients/ad_experience_report/lib/google_api/ad_experience_report/v1/request_builder.ex: Permission denied
fatal: Could not reset index file to revision 'master'.

Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 87, in <module>
    main()
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/__main__.py", line 79, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
  File "/tmpfs/src/git/autosynth/working_repo/synth.py", line 33, in <module>
    repository = git.clone(repository_url, depth=1)
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/sources/git.py", line 70, in clone
    shell.run(["git", "reset", "--hard", committish], cwd=str(dest))
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/git/autosynth/env/lib/python3.6/site-packages/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.1/lib/python3.6/subprocess.py", line 418, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'reset', '--hard', 'master']' returned non-zero exit status 128.
synthtool > Wrote metadata to clients/firebase_dynamic_links/synth.metadata.

Synthesis failed

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:

repo: googleapis/elixir-google-api


text:
Documentation for people v1 API create_contact has unused kwarg parent

I am trying to create a contact, but I am getting the following error message.
Exception Class: TypeError
Exception Message: Got an unexpected keyword argument "parent"
Lib version: 1.2
import httplib2
from apiclient.discovery import build
from oauth2client.file import Storage

storage = Storage('session.dat')
credentials = storage.get()

http = httplib2.Http()
credentials.authorize(http)

created_contacts = list()

new_contact = {
    'names': [
        {
            'displayName': 'Test Contact',
            'givenName': 'Test Contact',
            'displayNameLastFirst': 'Test Contact'
        }
    ],
    'phoneNumbers': [
        {
            'value': '+55 11 99999-9999',
            'canonicalForm': '+55 11 99999-9999'
        }
    ]
}

contact_info = build(serviceName='people', version='v1', http=http) \
    .people() \
    .createContact(parent='people/me', body=new_contact) \
    .execute()

@edilson-silva
Oddly parent is listed as a kwarg but there is no more information about it in the generated docs.  It also isn't in the REST documentation. That may be a bug in the documentation generator. Can you try removing parent?
This is unrelated to the question, but please use a different library for credentials storage as oauth2client is deprecated.

I experience the same issue unfortunately.

@bertin0 can you try sending a request without parent?

contact_info = build(serviceName='people', version='v1', http=http) \
    .people() \
    .createContact(body=new_contact) \
    .execute()

I just checked and it seems to work. Thanks for the workaround. (Why didn't I think about this?)

Thanks for reporting back! It looks like this is a documentation bug.

repo: googleapis/google-api-python-client


text:
feat: ComputeEngineCredential supports specifying scopes

The existing behavior of ComputeEngineCredentials is to not provide the ?scopes parameter in its access token request to the metadata server.  This is workable on GCE, which has the concept of a scope lock / default scopes applied to the VM.  However, neither new AppEngine nor GKE Workload Identity have this concept; they just return a hardcoded set of default scopes if no
specific scopes are requested.  This makes usage of some Google APIs impossible using the Java client libraries.
This change adds scope support to ComputeEngineCredentials.  It's optional, so the current behavior will stay the default.
However, if the user specifies scopes on the builder or using createScoped, then those scopes will be passed to the metadata server.

@chingor13 This is the patch we discussed.

cc @salrashid123

@elharo I opened #458 .  I have some follow up work to confirm that this works the same way in the AppEngine flex environment.

Addressed in #514

repo: googleapis/google-auth-library-java


text:
feat: add more DataType tests

Part of #1096
This PR adds DataType integration tests for all the non-aggregate
spanner value types that. I'll add the array and struct types in a
follow up PR.

This change is

Codecov Report

Merging #1097 into master will decrease coverage by 0.17%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1097      +/-   ##
==========================================
- Coverage   92.99%   92.82%   -0.18%
==========================================
  Files         164      165       +1
  Lines       12151    12183      +32
==========================================
+ Hits        11300    11309       +9
- Misses        851      874      +23

Impacted Files
Coverage Δ

...ogle/cloud/spanner/testing/database_environment.cc
92% <ø> (ø)
:arrow_up:

...r/integration_tests/data_types_integration_test.cc
100% <100%> (ø)
:arrow_up:

.../spanner/benchmarks/multiple_rows_cpu_benchmark.cc
69.9% <0%> (-4.16%)
:arrow_down:

google/cloud/spanner/internal/spanner_stub.cc
68.13% <0%> (-1.1%)
:arrow_down:

google/cloud/spanner/samples/samples.cc
77.36% <0%> (-0.3%)
:arrow_down:

google/cloud/spanner/database_admin_connection.h
100% <0%> (ø)

google/cloud/spanner/internal/polling_loop.h
94.59% <0%> (+2.7%)
:arrow_up:

google/cloud/spanner/internal/retry_loop.h
100% <0%> (+4.54%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0945dec...5b01dfa. Read the comment docs.

authors: codecov-io devjgm

repo: googleapis/google-cloud-cpp-spanner


text:
Restore HMAC key integration tests.

I am about to disable the integration tests against production because the feature is not working and that causes the tests to fail.
Well, some parts of the feature work. One can create and list HMAC keys, but then to delete them they need to be deactivated, and we cannot do that. And since there is a limit of 5 keys per service account, the next build fails with "cannot create HMAC keys".
This is related to #2435 because we would not need to do this (at the cost of leaked resources) if we created a new account for each run of the tests.

Waiting for the fixes on the server side probably around 2019-05-03.

Restored in #2798 but I think I need to fix #2435 too.

repo: googleapis/google-cloud-cpp


text:
prefixes in ListObjectReponse

What component of google-cloud-cpp is this feature request for?
storage
Is your feature request related to a problem? Please describe.
I am implementing a GetChildren function will work in a directory-like mode.
Describe the solution you'd like
I would like to have access to prefixes in the reponse.
Additional context
If this is not possible, Is there any way I could access to the raw reponse instead of ListObjectsReader

I think we completely missed prefixes 😞
The C++ object to process the response (internal::ListObjectsResponse) does not have prefixes either, so either way we would need to make changes.
I think the "Right Thing":tm: here is to add a new function to Client that returns an iterator over the prefixes. Maybe something like:
class Client { public:
  ListObjectPrefixesReader ListMatchingPrefixes(std::string bucket_name, ...);
};

ListObjectPrefixesReader would be a single pass input range of std::string, and the call could always use a suitable Fields() value to discard the data it will not use.
The downside is that you need two sets of RPCs: (1) to discover the prefixes that match and (2) to discover the objects that match.  OTOH, prefixes are very different from object names and/or object metadata, so maybe it makes sense to have completely different APIs?
As an alternative we could create a function called ListObjectNamesAndPrefixes and return a single pass input range of std::string and Kind (wrapped in a struct or pair) where Kind would tell you if the string represents a prefix or a real object name.
Or thinking about it some more, maybe absl::variant<std::string, ObjectMetadata> is an alternative here... that is super hard to use though.

As an alternative we could create a function called ListObjectNamesAndPrefixes and return a single pass input range of std::string and Kind (wrapped in a struct or pair) where Kind would tell you if the string represents a prefix or a real object name.

I think this makes sense because if someone wants prefixes, they usually need the name of the object only. I could work on this features but I may need some instructions, What do you think ?

Sorry for the delay, we had a quick back and forth on this internally.  It seems we settled on this:
using ListObjectsAndPrefixesReader =
    internal::PaginationRange<
        absl::variant<std::string, ObjectMetadata>,
        internal::ListObjectsRequest,
        internal::ListObjectsResponse>;

class Client { public:
  ListObjectsAndPrefixesReader ListObjectsAndPrefixes(/* same arguments as ListObjects */);
};

This is a bit ugly, but supports users that may want to get metadata and prefixes. It is trivial to convert those to std::pair<std::string, bool> and with a suitable gcs::Fields() argument you can get the server to return only the name in the items.
As to the implementation.  There are several things you would need to change:

We would need to modify the testbench to return prefixes, so we can run integration tests end-to-end.
We would need to modify ListObjectsResponse to add the prefixes field, and populate it when parsing the JSON (and gRPC?) result.
storage::internal::PaginationRange needs larger changes, currently it assumes the response contains a items field of type std::vector<T>, but we now need to merge prefixes and items into a single vector of absl::variant<>.

Probably it would be time to refactor this class to use  google::cloud::PaginationRange<> which has a function to extract the current page from the response.
This function should merge the prefixes and object metadata items and sort them.

After those changes the implementation of ListObjectsAndPrefixes() is easy, it needs:

At least a simple integration test
At least one example

Close by #4494


text:
feature(generator): accept commit hash from command line arg

This change is

Currently, the generator uses the googleapis commit hash to generate html links for doxygen markup. This PR adds a mechanism to specify that hash per invocation of the generator.


text:
StorageClient.CopyObjectAsync has an unfortunate signature

From StorageObject.CopyObject.cs:
        /// <summary>
        /// Creates a copy of an object synchronously, potentially to a different bucket. This method uses the
        /// <c>rewriteObject</c> underlying API operation for more flexibility and reliability.
        /// </summary>
        /// <param name="sourceBucket">The name of the bucket containing the object to copy. Must not be null.</param>
        /// <param name="sourceObjectName">The name of the object to copy within the bucket. Must not be null.</param>
        /// <param name="destinationBucket">The name of the bucket to copy the object to. Must not be null.</param>
        /// <param name="destinationObjectName">The name of the object within the destination bucket. Must not be null.</param>
        /// <param name="options">Additional options for the copy operation. May be null, in which case appropriate
        /// defaults will be used.</param>
        /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
        /// <returns>A task representing the asynchronous operation, with a result returning the
        /// <see cref="Object"/> representation of the new storage object resulting from the copy.</returns>
        public virtual Task<Object> CopyObjectAsync(
            string sourceBucket,
            string sourceObjectName,
            string destinationBucket = null,
            string destinationObjectName = null,
            CopyObjectOptions options = null,
            CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

We default destinationBucket and destinationObjectName to null, despite null not being a valid value for those parameters.
We probably can't fix this until the next major version, unfortunately - anything we do is likely to lead to ambiguity. I wanted to record this now, but we can probably close the issue once we've worked out what we'll do and how we'll remember to do it...

Assigning to @jskeet as per internal discussion with the wider team.

authors: amanda-tarafa jskeet

repo: googleapis/google-cloud-dotnet


text:
Release Google.Cloud.ServiceDirectory.V1Beta1 version 2.0.0-beta05

Changes in this release:
New features

Change netstandard2.1 target to netstandard2.0 (commit 82bea85)

Created release for Google.Cloud.ServiceDirectory.V1Beta1-2.0.0-beta05

authors: jskeet yoshi-automation


text:
Release @google-cloud/asset v0.1.1

This pull request was generated using releasetool.

Release is at https://github.com/googleapis/nodejs-asset/releases/tag/v0.1.1

repo: googleapis/nodejs-asset


text:
getSignedUrl()'s error message is not good.

Environment details

OS: macOS 10.13.6 / Google App Engine Standard Environment
Node.js version: 10.5.0 / 8.x.x
npm version: 6.1.0 / x.x.x
@google-cloud/storage version: 1.7.0

Steps to reproduce
getSignedUrl() is need options like this.
const getSignedUrl = async file => {
  const signedUrl = await file.getSignedUrl({
    action: "read",
    expires: Date.now() + 3600000
  });

  return signedUrl;
};

If you don't set options like this, return error message.
const getSignedUrl = async file => {
  const signedUrl = await file.getSignedUrl();

  return signedUrl;
};

/srv/node_modules/@google-cloud/storage/src/file.js:1818
    callback(null, signedUrl);
    ^

TypeError: callback is not a function
    at /srv/node_modules/@google-cloud/storage/src/file.js:1818:5
    at Request._callback (/srv/node_modules/google-auto-auth/index.js:362:9)
    at Request.self.callback (/srv/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (/srv/node_modules/request/request.js:1157:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (/srv/node_modules/request/request.js:1079:12)
    at Object.onceWrapper (events.js:313:30)

So I think that this client should return error message like getSignedUrl() need options (action, expires).

Thanks for the suggestion, and sorry this tripped you up. If you're interested, a PR that does something like...
if (!config) {
  throw new Error('A configuration object is required.');
}

...would be great!

@stephenplusplus OK, I will create PR👍

Nice, thanks!

repo: googleapis/nodejs-storage


text:
Storage: add support getServiceAccount method

Feature request to add support for projects.serviceAccount
The request gets the GCS managed service account that is used by GCS PubSub notifications and CMEK to allow GCS to access to PubSub and a KMS key respectively.
Examples of existing implementations:

PHP
Java
Python
Ruby

This is the request for Nodejs @JustinBeckwith

Updated description with additional implementation examples for Python and Ruby.

@stephenplusplus can you take a look at this?

PR sent! #331

authors: JustinBeckwith frankyn stephenplusplus


text:
file.download() takes too long if file does not exist

Blocked

[x] https://github.com/fhinkel/teeny-request/issues/39
[x] Release teeny-request
[x] Update nodejs-common dependency
[x] Release nodejs-common

Environment details

OS: Ubuntu 16.04.5 LTS
Node.js version: 9.5.0
npm version: 5.7.0
@google-cloud/storage version: 2.5.0

Steps to reproduce
const {Storage} = require('@google-cloud/storage');
const process = require('process');
const storage = new Storage({autoRetry: false});
const hrstart = process.hrtime();
const bucketName = 'my-app.appspot.com';
const bucket = storage.bucket(bucketName);
bucket.file('does_not_exist')
  .download()
  .catch(() => {
    const hrend = process.hrtime(hrstart);
    console.info('Execution time (hr): %ds %dms', hrend[0], hrend[1] / 1000000);
  });

The result I get locally is Execution time (hr): 9s 79.380959ms. I thing there might be an issue with dependencies teeny-request or node-fetch.

Thank you for the report. And your hunch is correct-- it is due to some logic inside of teeny-request. I have opened an issue here: https://github.com/fhinkel/teeny-request/issues/39

@sokolandia this should be good to go now! The update was made upstream, so a fresh install of @google-cloud/storage will pick up the changes. Thank you again for catching this issue!

Sorry-- this issue is resolved on master, but we need a release to put it out: #719

authors: sokolandia stephenplusplus


text:
Label Detection only returns labels few times with service key and gcs path

I'm using the Label Detection feature for my project. At first I was providing Google Signed URLs for images stored in my Google Storage bucket but this led to issues where majority of the time there were no labels returned and the error message:

Did not find Labels due to possible error: The URL does not appear to be accessible by us. Please double check or download the content and pass it in.

I read the note regarding HTTP/HTTPS URLs and then provided a path to the storage object with my bucket name and a service key as part of the options objects for the vision client. Yet I still see issues where sending the API a request this way still results in only receiving labels very few times. Majority of the requests result in the

unable to open file gs://{bucketname}/{file_path}

even though some requests do return succesfully with the provided service key which has full(read/write) access to the bucket.
Using  "@google-cloud/vision": "^0.25.0"
I've provided the following snippet:
const options = {keyFilename: keyFilename};
const client = new vision.ImageAnnotatorClient(options);

let request = {image:{source:{imageUri: uri}}};

client.labelDetection(request).then(function (result)

Hi @ksangha1 which API version are you trying to use (v1, v1beta1, etc.)? We have tests for label detection that are working well enough. My best guess with the details provided is that there is likely a permissions issue with your bucket.

I'm using v1 and the service key i provide for the options object has Read/Write permissions for the bucket. I thought it was a permissions issue earlier but a few times the request with the uri for the images stored in that bucket are successfully returning labels but majority of the time same bucket stored image being sent as a request results in no labels and the unable to open file error.

Very delayed response.
For images stored in GCS, you need to use gcs_image_uri in ImageSource
https://cloud.google.com/vision/docs/reference/rpc/google.cloud.vision.v1p4beta1#imagesource

authors: callmehiphop ksangha1 nnegrey

repo: googleapis/nodejs-vision


text:
Better line breaking in discovery samples

For example:
resp, err := sheetsService.Spreadsheets.Get(spreadsheetId).Ranges(ranges...).IncludeGridData(includeGridData).Context(ctx).Do()

I'm claiming wontfix, feel free to change if either of you disagree.

Reclassifying as P3, per https://github.com/googleapis/toolkit/issues/655#issuecomment-288473547

authors: saicheems tcoffee-google

repo: googleapis/toolkit