Skip to content

Enable GitAuto to ask back when it is assigned to an issue to understand the issue better #27

Enable GitAuto to ask back when it is assigned to an issue to understand the issue better

Enable GitAuto to ask back when it is assigned to an issue to understand the issue better #27

Workflow file for this run

name: Post SNS
on:
pull_request:
types: [closed]
branches:
- main
jobs:
post-sns:
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'sns')
runs-on: ubuntu-latest
steps:
# https://github.com/actions/checkout
- uses: actions/checkout@v4
# https://github.com/actions/setup-node
- uses: actions/setup-node@v4
with:
node-version: '20' # Updated to latest LTS version
# https://github.com/plhery/node-twitter-api-v2
# https://github.com/linkedin-developers/linkedin-api-js-client#linkedin-api-javascript-client
- name: Install dependencies
run: |
npm install twitter-api-v2
npm install linkedin-api-client
# https://github.com/actions/github-script
- name: Post to X
uses: actions/github-script@v7
with:
script: |
const { TwitterApi } = require('twitter-api-v2');
const client = new TwitterApi({
appKey: process.env.TWITTER_API_KEY,
appSecret: process.env.TWITTER_API_SECRET,
accessToken: process.env.TWITTER_ACCESS_TOKEN,
accessSecret: process.env.TWITTER_ACCESS_TOKEN_SECRET,
});
const tweet = `🚀 New release: ${context.payload.pull_request.title}\n\n${context.payload.pull_request.html_url}`;
// https://developer.x.com/en/docs/x-api/tweets/manage-tweets/api-reference/post-tweets
await client.v2.tweet(tweet);
env:
TWITTER_API_KEY: ${{ secrets.TWITTER_API_KEY }}
TWITTER_API_SECRET: ${{ secrets.TWITTER_API_SECRET }}
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
- name: Post to LinkedIn
uses: actions/github-script@v7
with:
script: |
const { RestliClient } = require('linkedin-api-client');
const restliClient = new RestliClient();
// Create post using Posts API
// https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api?view=li-lms-2024-11&viewFallbackFrom=li-lms-unversioned&tabs=http
const post = await restliClient.create({
resourcePath: '/posts',
entity: {
author: 'urn:li:organization:100932100',
commentary: `🚀 New release: ${context.payload.pull_request.title}`,
visibility: 'PUBLIC',
distribution: {
feedDistribution: 'MAIN_FEED',
targetEntities: [],
thirdPartyDistributionChannels: []
},
content: {
// https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/advertising-targeting/version/article-ads-integrations?view=li-lms-2024-11&tabs=http#workflow
article: {
source: context.payload.pull_request.html_url,
title: context.payload.pull_request.title,
description: `Check out our latest release on GitHub!`
}
},
lifecycleState: 'PUBLISHED',
isReshareDisabledByAuthor: false
},
accessToken: process.env.LINKEDIN_ACCESS_TOKEN
});
env:
LINKEDIN_ACCESS_TOKEN: ${{ secrets.LINKEDIN_ACCESS_TOKEN }}