diff --git a/.github/workflows/_scratchpad.yml b/.github/workflows/_scratchpad.yml index 4fe73ab6..932fa97a 100644 --- a/.github/workflows/_scratchpad.yml +++ b/.github/workflows/_scratchpad.yml @@ -38,15 +38,28 @@ jobs: env: RN: ${{ matrix.release-notes }} MESSAGE: ${{ matrix.release-notes }} - GITHUB_TOKEN: ${{ secrets.GH_PAT_TOKEN }} DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }} + run: | + notify-discord ${{ matrix.name }} v${{ matrix.version }} + - name: Notify ${{ matrix.name }} on Github Discussion + env: + RN: ${{ matrix.release-notes }} + MESSAGE: ${{ matrix.release-notes }} + GITHUB_TOKEN: ${{ secrets.GH_PAT_TOKEN }} GH_DISCUSSION_TOKEN: ${{ secrets.GH_DISCUSSION_TOKEN }} run: | - # notify-discord ${{ matrix.name }} v${{ matrix.version }} - # notify-gh-discussion ${{ matrix.name }} v${{ matrix.version }} + notify-gh-discussion ${{ matrix.name }} v${{ matrix.version }} - name: Notify ${{ matrix.name }} on Bluesky env: BLUESKY_APP_PWD: ${{ secrets.BLUESKY_APP_PWD }} BLUESKY_APP_IDENTIFIER: ${{ secrets.BLUESKY_APP_IDENTIFIER }} run: | - notify-bluesky ${{ matrix.name }} ${{ matrix.version }} \ No newline at end of file + notify-bluesky ${{ matrix.name }} v${{ matrix.version }} + - name: Notify ${{ matrix.name }} on Twitter + env: + X_API_KEY: ${{ secrets.X_API_KEY }} + X_API_SECRET: ${{ secrets.X_API_SECRET }} + X_ACCESS_TOKEN: ${{ secrets.X_ACCESS_TOKEN }} + X_ACCESS_TOKEN_SECRET: ${{ secrets.X_ACCESS_TOKEN_SECRET }} + run: | + notify-twitter ${{ matrix.name }} ${{ matrix.version }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34205285..73936eec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -298,4 +298,12 @@ jobs: BLUESKY_APP_PWD: ${{ secrets.BLUESKY_APP_PWD }} BLUESKY_APP_IDENTIFIER: ${{ secrets.BLUESKY_APP_IDENTIFIER }} run: | - notify-bluesky ${{ matrix.name }} v${{ matrix.version }} \ No newline at end of file + notify-bluesky ${{ matrix.name }} v${{ matrix.version }} + - name: Notify ${{ matrix.name }} on Twitter + env: + X_API_KEY: ${{ secrets.X_API_KEY }} + X_API_SECRET: ${{ secrets.X_API_SECRET }} + X_ACCESS_TOKEN: ${{ secrets.X_ACCESS_TOKEN }} + X_ACCESS_TOKEN_SECRET: ${{ secrets.X_ACCESS_TOKEN_SECRET }} + run: | + notify-twitter ${{ matrix.name }} ${{ matrix.version }} \ No newline at end of file diff --git a/tools/ci/ci_tools/social/notify_twitter.py b/tools/ci/ci_tools/social/notify_twitter.py index d9df52b8..351b92c4 100644 --- a/tools/ci/ci_tools/social/notify_twitter.py +++ b/tools/ci/ci_tools/social/notify_twitter.py @@ -32,23 +32,21 @@ current_dir = os.path.dirname(os.path.abspath(__file__)) sys.path.append(current_dir) from social_common import get_social_data, SocialData, get_env_var -def send_twitter_message(version: str, data:SocialData): +def send_twitter_message(version: str, data:SocialData, text:str): api_key = get_env_var("X_API_KEY") api_secret = get_env_var("X_API_SECRET") access_token = get_env_var("X_ACCESS_TOKEN") access_token_secret = get_env_var("X_ACCESS_TOKEN_SECRET") - message = get_env_var("MESSAGE") - twitter = OAuth1Session(api_key, api_secret, access_token, access_token_secret) - payload = {"text": "Hello from OAuth 1.0a!"} + payload = {"text": text} response = twitter.post("https://api.twitter.com/2/tweets", json=payload) print(response.status_code) print(response.json()) -if __name__ == "__main__": +def main(): parser = argparse.ArgumentParser(description="Send a Twitter/X notification.") parser.add_argument("app", type=str, help="The application name.") parser.add_argument("version", type=str, help="The application version.") @@ -58,4 +56,8 @@ if __name__ == "__main__": if not data: raise ValueError(f"app: {args.app} is not recognised") - send_twitter_message(args.version, data) \ No newline at end of file + text = f"{args.app} v{args.version} Released\n\n{data.link}\n\n#pyTermTk #TUI #Python #Linux #terminal" + send_twitter_message(args.version, data, text) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/ci/pyproject.toml b/tools/ci/pyproject.toml index 4ec64f88..84c330bc 100644 --- a/tools/ci/pyproject.toml +++ b/tools/ci/pyproject.toml @@ -17,13 +17,15 @@ [project.optional-dependencies] social = [ 'discord.py==2.5.2', - 'requests==2.32.5' + 'requests==2.32.5', + 'requests_oauthlib==2.0.0' ] [project.scripts] release-helper = "ci_tools.release_helper:main" notify-discord = "ci_tools.social.notify_discord:main" notify-bluesky = "ci_tools.social.notify_bluesky:main" + notify-twitter = "ci_tools.social.notify_twitter:main" notify-gh-discussion = "ci_tools.social.notify_github_discussion:main" [tool.setuptools]