Действия Github и учетные данные облачного хранилища Google python - PullRequest
1 голос
/ 05 мая 2020

Я хочу обработать csv с помощью сценария python в действиях github.

Этот csv хранится в GCP.

Итак, я хочу загружать и скачивать файлы из хранилища Google, используя следующий код:

from google.cloud import storage
class gcpConection(object,st):

    def __init__(self):

        self.credentials_path = 'credentials.json'
        self.bucket_name = 'name'

    def download_and_read_files(filename):
        st = storage.Client.from_service_account_json(self.credentials_path)
        bucket = st.get_bucket(self.bucket_name)
        blob_csv = bucket.get_blob(filename)
        blob_csv.download_to_filename(filename)
        df = pd.read_csv(filename)
        return df
    def upload_files(folder,filename):
        st = storage.Client.from_service_account_json(self.credentials_path)
        bucket = st.get_bucket(self.bucket_name)
        blob = bucket.blob('{}/{}'.format(folder,filename))
        blob.upload_from_filename(filename)

Этот код отлично работает на моем компьютере, учетные данные. json хранятся в в той же папке, что и сценарий.

Чтобы запустить его в действиях Github, я не могу загрузить этот файл json, поэтому я решил сохранить этот json как секрет в секретах github.

Я знаю, что этот секрет хранится здесь secrents.gcp_credential, но тогда я не знаю, как изменить код в скрипте, чтобы указать облачному хранилищу Google, чтобы там просматривались учетные данные, примерно так:

self.credentials_path = path/secrents.gcp_credential

Нет, если это правильный способ сделать это. Также у меня есть ключ доступа и секрет, но я вообще не знаю, как это работает.

1 Ответ

1 голос
/ 06 мая 2020

Согласно: "Создание и хранение зашифрованных secrets" :

Secrets - это зашифрованные переменные среды, которые вы создаете в репозитории для использования с GitHub Actions. .. Чтобы сделать секрет доступным для действия, вы должны установить секрет как входную переменную или переменную среды в файле рабочего процесса.

Там вы можете найти как создать зашифрованный secrets:

Чтобы предоставить действие с секретом в качестве входной или переменной среды, вы можете использовать контекст секретов для доступа к секретам, которые вы создали в своем репозитории. Дополнительные сведения см. В разделах «Синтаксис контекста и выражения для действий GitHub» и «Синтаксис рабочего процесса для действий GitHub».

steps:
  - name: Hello world action
    with: # Set the secret as an input
      super_secret: ${{ secrets.SuperSecret }}
    env: # Or as an environment variable
      super_secret: ${{ secrets.SuperSecret }}

Просто имейте в виду, что для secrets существуют некоторые ограничения, например поскольку у вас может быть до 100 секунд, имена должны быть уникальными в репозитории, их размер ограничен 64 КБ.

...