【问题标题】:GitHub workflow for automating Python script with secrets not working用于自动化 Python 脚本的 GitHub 工作流程,其中的秘密不起作用
【发布时间】:2021-02-07 08:59:18
【问题描述】:

以下是我的 Python 脚本,它将喜欢的推文中的链接添加到 Pocket:

from dotenv import load_dotenv
load_dotenv()
import os
import re
import tweepy
from pocket import Pocket

#Twitter keys
consumer_key = os.environ.get('API_key')
consumer_secret = os.environ.get('API_secretkey')

#Pocket keys
p_consumer_key = os.environ.get('Pocket_consumer_key')
p_access_token = os.environ.get('Pocket_access_token')

#authenticate and call twitter api
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
api = tweepy.API(auth, parser=tweepy.parsers.JSONParser())

p = Pocket(consumer_key=p_consumer_key, access_token=p_access_token)

#gets JSON of liked tweets 
fav = api.favorites('importhuman', count=100, tweet_mode='extended')

links = []
for status in fav:
    url_list = status['entities']['urls']
    if url_list != []:
        for item in url_list:
            link = item['expanded_url']
            if link not in links:
                if re.search("//twitter.com/", link) is None:
                    links.append(link)
                    p.add(link)

我正在尝试自动执行此脚本,使其每 5 分钟运行一次,为此我正在尝试设计一个 GitHub 工作流,但到目前为止它还没有工作。

name: run-five-minutes

on:
  schedule:
    - cron: '*/5 * * * *'

jobs:
  build: 
    runs-on: ubuntu-latest
    steps: 
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with: 
          python-version: '3.x'
      - run: pip install -r requirements.txt
        env: 
          API_key: ${{ secrets.API_KEY }}
          API_secretkey: ${{ secrets.API_SECRETKEY }}
          Pocket_consumer_key: ${{ secrets.POCKET_CONSUMER_KEY }}
          Pocket_access_token: ${{ secrets.POCKET_ACCESS_TOKEN }}
      - run: python3 app.py 

requirements.txt 文件包含 python-dotenv、tweepy 和 pocket。任何帮助将不胜感激。

【问题讨论】:

  • “不工作”是什么意思?根本没有被调用?
  • 对迟到的回复表示歉意。我的意思是它没有按应有的每 5 分钟定期调用一次(也就是说,我没有日志),并且当它被调用时,它是一次不成功的运行。不过我终于想通了。

标签: python twitter yaml github-actions pocket


【解决方案1】:

我想通了。问题是我在脚本运行之前在环境中设置了机密,因此它无法访问机密。我刚刚切换了顺序,它可以工作。

所以,而不是

- run: pip install -r requirements.txt
  env: 
      API_key: ${{ secrets.API_KEY }}
      API_secretkey: ${{ secrets.API_SECRETKEY }}
      Pocket_consumer_key: ${{ secrets.POCKET_CONSUMER_KEY }}
      Pocket_access_token: ${{ secrets.POCKET_ACCESS_TOKEN }}
- run: python3 app.py 

我这样做了:

- run: pip install -r requirements.txt
- run: python3 app.py 
  env: 
      API_key: ${{ secrets.API_KEY }}
      API_secretkey: ${{ secrets.API_SECRETKEY }}
      Pocket_consumer_key: ${{ secrets.POCKET_CONSUMER_KEY }}
      Pocket_access_token: ${{ secrets.POCKET_ACCESS_TOKEN }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2020-07-05
    • 2023-01-16
    • 2023-04-05
    • 2014-10-23
    • 1970-01-01
    • 2022-11-09
    相关资源
    最近更新 更多