feat(publisher-gcs): add Google Cloud Storage publisher by mahnunchik · Pull Request #2100 · electron/forge · GitHub
Skip to content

feat(publisher-gcs): add Google Cloud Storage publisher#2100

Merged
erickzhao merged 9 commits into
electron:mainfrom
mahnunchik:gcs
Nov 16, 2023
Merged

feat(publisher-gcs): add Google Cloud Storage publisher#2100
erickzhao merged 9 commits into
electron:mainfrom
mahnunchik:gcs

Conversation

@mahnunchik

Copy link
Copy Markdown
Contributor

Continue of #1752

@codecov

codecov Bot commented Dec 18, 2020

Copy link
Copy Markdown

@mahnunchik

Copy link
Copy Markdown
Contributor Author

Hi @malept could you please review this PR.

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@malept 😢

@mahnunchik

Copy link
Copy Markdown
Contributor Author

Hi @malept when my PR may be accepted?

Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated

@patgpt patgpt left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A review was required.

@erickzhao erickzhao self-requested a review August 11, 2022 19:29
@mahnunchik

Copy link
Copy Markdown
Contributor Author

@erickzhao What about Google Cloud Storage publisher? I really need it for my workflow

Comment thread .github/CODEOWNERS Outdated
Comment thread packages/publisher/gcs/package.json Outdated
Comment thread packages/publisher/gcs/package.json Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
@mahnunchik

Copy link
Copy Markdown
Contributor Author

@MarshallOfSound @erickzhao @BlackHole1 I've decided to rebase on top of current main and squash to single commit.

@mahnunchik

Copy link
Copy Markdown
Contributor Author

Should I rebase PR again?

@erickzhao erickzhao changed the title feat(publisher-gcs): implemented Google Cloud Storage publisher feat(publisher-gcs): add Google Cloud Storage publisher Dec 21, 2022
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/PublisherGCS.ts
Comment thread packages/publisher/gcs/src/PublisherGCS.ts Outdated
Comment thread packages/publisher/gcs/src/Config.ts Outdated
Comment on lines +9 to +30
keyFilename?: string;
/**
* The Google Cloud project ID.
*
* Defaults to the value in the `GOOGLE_CLOUD_PROJECT` environment variable.
* */
projectId?: string;
/**
* The email for your Google service account, *required* when using a PEM/PKCS #12-formatted
* file in the [[keyFilename]] option.
*
* Defaults to the value in the `GOOGLE_CLOUD_CLIENT_EMAIL` environment variable.
*/
clientEmail?: string;
/**
* The private key for your Google service account.
*
* Defaults to the value in the `GOOGLE_CLOUD_PRIVATE_KEY` environment variable.
*/
privateKey?: string;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comment: For these auth-related options, can we put them in a separate auth object?

@erickzhao erickzhao Oct 20, 2023

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the previous comment in this chain is still a valid concern. It might be cleaner to put all auth-related private key config options under an auth property.

Comment thread packages/publisher/gcs/src/Config.ts
@mahnunchik

Copy link
Copy Markdown
Contributor Author

@erickzhao I was able to rebase PR on top of current main by fighting the dependency hell... I make GCS publisher looks like S3 publisher and ported changes from it.

Could you please help me to ship GCS publisher before main have many new changes?

@nikashitsa

Copy link
Copy Markdown

Useful feature for me also.

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@erickzhao could I ask for a review of this PR?

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@erickzhao I've rebase PR on top of current changes. Could you please tell me what should I do to have this PR merged?

@mahnunchik

Copy link
Copy Markdown
Contributor Author

I'm using this publisher for a years, published by my package name. Could we make this PR merged?

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@MarshallOfSound @erickzhao I need this publisher in the application. What can I do to get the PR accepted?

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@MarshallOfSound @erikian @erickzhao ping

@erikian erikian requested a review from a team October 18, 2023 00:03
@BlackHole1

BlackHole1 commented Oct 18, 2023

Copy link
Copy Markdown
Member

Hi @mahnunchik . I saw @erickzhao commented on some issues. If they have been resolved, you can click the “Resolve conversation” button. If you have any questions regarding the issues, you can comment below. This will help other maintainers with the code review.

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@BlackHole1 @erickzhao All open conversations was commented by me. GCS publisher is based on S3 publisher, I think both should be close as possible.

@erickzhao erickzhao self-requested a review October 20, 2023 20:47

@erickzhao erickzhao left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left two minor comments. Also, our policy is generally to only let maintainers commit lockfile changes. Can you also revert yarn.lock here @mahnunchik?

Comment thread packages/publisher/gcs/package.json Outdated
Comment thread packages/publisher/gcs/src/Config.ts Outdated
Comment on lines +9 to +30
keyFilename?: string;
/**
* The Google Cloud project ID.
*
* Defaults to the value in the `GOOGLE_CLOUD_PROJECT` environment variable.
* */
projectId?: string;
/**
* The email for your Google service account, *required* when using a PEM/PKCS #12-formatted
* file in the [[keyFilename]] option.
*
* Defaults to the value in the `GOOGLE_CLOUD_CLIENT_EMAIL` environment variable.
*/
clientEmail?: string;
/**
* The private key for your Google service account.
*
* Defaults to the value in the `GOOGLE_CLOUD_PRIVATE_KEY` environment variable.
*/
privateKey?: string;

@erickzhao erickzhao Oct 20, 2023

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the previous comment in this chain is still a valid concern. It might be cleaner to put all auth-related private key config options under an auth property.

@erickzhao erickzhao self-requested a review November 1, 2023 21:53
@erickzhao erickzhao self-assigned this Nov 1, 2023
@erickzhao

Copy link
Copy Markdown
Member

Here are the tweaks I propose: all the auth-related Storage constructor options should be nested in their own property:

mahnunchik#364

This way we aren't limiting ourselves to a subset of the credential options available via the @google-cloud/storage module, and it's less confusing to have all these options available at the top-level publisher config.

@mahnunchik

Copy link
Copy Markdown
Contributor Author

@erickzhao Thank you for your help! Implementation has become much simpler and clearer.

Should I close conversations above? I think everything is fixed now.

This should be a transient dep via `@google-cloud/storage`
@erickzhao

Copy link
Copy Markdown
Member

I think everything is fixed! We're planning on releasing a new Forge version within the next week, so hopefully this can make its way in.

@erickzhao

Copy link
Copy Markdown
Member

@erickzhao erickzhao merged commit 601314e into electron:main Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants