Skip to content

GitHub Twittction

Actions

About

Post on twitter after different github events
v2.0.0
Latest
StarΒ (11)

Tags

Β (2)

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

GitHub Twittction is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Post on twitter after different github events
v2.0.0
Latest

Tags

Β (2)

GitHub Twittction is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.