Skip to content
hash

GitHub Action

GitHub Twittction

v2.0.0 Latest version

GitHub Twittction

hash

GitHub Twittction

Post on twitter after different github events

Installation

Copy and paste the following snippet into your .yml file.

              

- name: GitHub Twittction

uses: m1ner79/Github-Twittction@v2.0.0

Learn more about this action in m1ner79/Github-Twittction

Choose a version

Github Twittction logo

Github Twittction

Overview

This action supports every github event. Currently the app publish default messages to twitter when one of these GitHub events will trigger:

  • push
  • pull_request
  • release

Here you can see default messages: Default messages

Motivation

I am using this project to hone my coding skills. I have some but they are not the greatest. I believe that with help of my brother/mentor 😍, this project could be a stepping stone towards my new career.

What do you need?

❗ For this paragraph I would like to thank https://github.com/gr2m/twitter-together. Amazing job ✨ I learned a lot πŸ“ˆ

Create a twitter app with your shared twitter account and store the credentials as TWITTER_API_KEY, TWITTER_API_SECRET_KEY, TWITTER_ACCESS_TOKEN and TWITTER_ACCESS_TOKEN_SECRET in your repository’s secrets settings.

πŸ’₯ Hopefully in the future people will be copying my code πŸ™

Example usage

❗ Make sure to replace {VERSION} with the version of the action that you wish to use.

push event

name: 'testing workflow'
# Trigger on push
  push:
    branches:
      - master
jobs:
  test:
    name: posting_on_twitter
    runs-on: ubuntu-latest
    steps:
      - name: tweety
        uses: m1ner79/Github-Twittction@{VERSION}
        with:
            twitter_status: "ℍ𝕖π•ͺ π•ͺ𝕠𝕦! πŸ‘‹ π•Žπ•– ${{ github.event.repository.owner.name}} 𝕙𝕒𝕧𝕖 𝕒 π•Ÿπ•–π•¨ π•”π• π•žπ•žπ•šπ•₯ π•šπ•Ÿ π•₯𝕙𝕖 π•žπ•’π•€π•₯𝕖𝕣 π•“π•£π•’π•Ÿπ•”π•™ πŸ₯³ \n 𝕀π•₯𝕀 π•Ÿπ•’π•žπ•– π•šπ•€ ${{ github.event.commits[0].message }} 😱 \n β„‚π•™π•–π•”π•œ π•šπ•₯ 𝕠𝕦π•₯ 𝕙𝕖𝕣𝕖 πŸ‘‡ \n ${{ github.event.commits[0].url }}"
            twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }} 
            twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }} 
            twitter_access_token_key: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} 
            twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} 

pull_request event

name: 'testing workflow'
# Trigger on pull_request
on: 
  pull_request:
    types:
      - opened
jobs:
  test:
    name: posting_on_twitter
    runs-on: ubuntu-latest
    steps:
      - name: tweety
        uses: m1ner79/Github-Twittction@{VERSION}
        with:
            twitter_status: "πŸ…†πŸ„΄ πŸ„²πŸ„°πŸ„½ πŸ…‚πŸ„΄πŸ„΄ πŸ„° πŸ„ΏπŸ…„πŸ„»πŸ„»_πŸ…πŸ„΄πŸ…€πŸ…„πŸ„΄πŸ…‚πŸ…ƒ ${{github.event.pull_request.title}} πŸ„²πŸ…πŸ„΄πŸ„°πŸ…ƒπŸ„΄πŸ„³ πŸ„±πŸ…ˆ ${{github.event.pull_request.head.repo.full_name}} πŸ„²πŸ„»πŸ„ΈπŸ„²πŸ„Ί πŸ„·πŸ„΄πŸ…πŸ„΄ ${{github.event.pull_request.html_url}} πŸ„°πŸ„½πŸ„³ πŸ…‚πŸ„΄πŸ„΄ πŸ„ΈπŸ…ƒ πŸ…ˆπŸ„ΎπŸ…„πŸ…πŸ…‚πŸ„΄πŸ„»πŸ„΅"
            twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }} 
            twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }} 
            twitter_access_token_key: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} 
            twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} 

release event

name: 'testing workflow'
# Trigger on release
on: 
  release:
    types: 
      - published
jobs:
  test:
    name: posting_on_twitter
    runs-on: ubuntu-latest
    steps:
      - name: tweety
        uses: m1ner79/Github-Twittction@{VERSION}
        with:
            twitter_status: "β“β“žβ“žβ“šβ“’ β“›β“˜β“šβ“” ⓐ ⓝⓔⓦ ⓑⓔⓛⓔⓐⓒⓔ ${{github.event.release.tag_name}} β“˜β“’ β“˜β“ ${{github.event.repository.full_name}}β€―.β“‚β“žβ“‘β“” β““β“”β“£β“β“˜β“›β“’ ⓐⓑⓔ ⓐβ“₯β“β“˜β“›β“β“‘β“›β“” β“—β“”β“‘β“” ${{github.event.release.html_url}}"
            twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }} 
            twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }} 
            twitter_access_token_key: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} 
            twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} 

Without custom message

name: 'testing workflow'
# Trigger on push
on: 
  push:
    branches:
      - master
jobs:
  test:
    name: posting_on_twitter
    runs-on: ubuntu-latest
    steps:
      - name: tweety
        uses: m1ner79/Github-Twittction@{VERSION}
        with:
            # twitter_status: is deactivated so you will see one of our default messages
            # twitter_status: "ℍ𝕖π•ͺ π•ͺ𝕠𝕦! πŸ‘‹ π•Žπ•– ${{ github.event.repository.owner.name}} 𝕙𝕒𝕧𝕖 𝕒 π•Ÿπ•–π•¨ π•”π• π•žπ•žπ•šπ•₯ π•šπ•Ÿ π•₯𝕙𝕖 π•žπ•’π•€π•₯𝕖𝕣 π•“π•£π•’π•Ÿπ•”π•™ πŸ₯³ \n 𝕀π•₯𝕀 π•Ÿπ•’π•žπ•– π•šπ•€ ${{ github.event.commits[0].message }} 😱 \n β„‚π•™π•–π•”π•œ π•šπ•₯ 𝕠𝕦π•₯ 𝕙𝕖𝕣𝕖 πŸ‘‡ \n ${{ github.event.commits[0].url }}"
            twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }} 
            twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }} 
            twitter_access_token_key: ${{ secrets.TWITTER_ACCESS_TOKEN_KEY }} 
            twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} 

Default messages

push default message:
`${payload.pusher.name} just created a commit to ${payload.repository.full_name}. More details are available here: ${payload.commits[0].url}`

pull_request default message:
`${payload.pull_request.head.repo.full_name} just created a pull request: ${payload.pull_request.title}. More info is available here: ${payload.pull_request.html_url}`;

release default message:
`A new release ${payload.release.tag_name} is in ${payload.repository.full_name}. More details are available here ${payload.release.html_url}`;

Custom message

To create a custom twitter post I used these two websites:

Go nuts and make it as sparkly as you like (just remember about twitter character limitations https://developer.twitter.com/en/docs/basics/counting-characters).

Contributing

Contributions are more than welcome 🀝.

License

MIT