Skip to content

add action that opens the PRs for us #32

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .github/workflows/create-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Create a PR

on:
workflow_dispatch:
inputs:
account:
type: string
default: NODEJS_ORG
action:
type: choice
default: auto
options: [auto, post, repost, reply, quote-post]
description: Type of action you want to perform (you can skip it except for "reply").
postURL:
type: string
description: URL of the POST you'd like to retweet/quote-tweet/reply
required: false
richText:
type: string
description: Content of the post
required: false
prTitle:
type: string
description: Title of the PR and commit message
required: true
prBody:
type: string
description: Body of the PR
required: false

permissions:
contents: write
pull-requests: write

jobs:
process-json:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Guess action
if: inputs.action == 'auto'
id: guess-action
run: |
if [ -n "$POST_URL" ] && [ -n "$RICH_TEXT" ]; then
echo "action=quote-post" >> "$GITHUB_OUTPUT"
elif [ -n "$RICH_TEXT" ]; then
echo "action=post" >> "$GITHUB_OUTPUT"
elif [ -n "$POST_URL" ]; then
echo "action=repost" >> "$GITHUB_OUTPUT"
fi
env:
POST_URL: ${{ inputs.postURL }}
RICH_TEXT: ${{ inputs.richText }}

- name: Write JSON file
run: |
RICH_TEXT_DEFINITION=
if [ -n "$RICH_TEXT" ]; then
printf "%s" "$RICH_TEXT" > records/new/rich.txt
RICH_TEXT_DEFINITION=', richTextFile: "./rich.txt"'
fi

URL_FIELD_DEFINITION=
if [ "$ACTION" = "reply" ]; then
URL_FIELD_DEFINITION=', replyURL: env.URL'
elif [ "$ACTION" = "quote-post" ] || [ "$ACTION" = "repost" ]; then
URL_FIELD_DEFINITION=', repostURL: env.URL'
fi

echo '{}' | jq "{ action: env.ACTION, account: env.ACCOUNT $RICH_TEXT_DEFINITION $URL_FIELD_DEFINITION }" > records/new/new.json
cat records/new/new.json
[ -z "$RICH_TEXT" ] || cat records/new/rich.txt
env:
ACCOUNT: ${{ inputs.account }}
ACTION: ${{ steps.guess-action.outputs.action || inputs.action }}
RICH_TEXT: ${{ inputs.richText }}
URL: ${{ inputs.postURL }}

- name: Create Pull Request
run: |
git config set user.name "$GITHUB_ACTOR"
git config set user.email "[email protected]"
BRANCH_NAME="action/$(node -p 'crypto.randomUUID()')"
git add records/new
git commit -m "$PR_TITLE"
git push origin "HEAD:refs/heads/$BRANCH_NAME"
gh pr create --draft --head "$BRANCH_NAME" --title "$PR_TITLE" --body "$PR_BODY" --assignee "$GITHUB_ACTOR"
env:
GITHUB_TOKEN: ${{ github.token }}
PR_TITLE: ${{ inputs.prTitle }}
PR_BODY: ${{ inputs.prBody }}
2 changes: 2 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
pull_request:
types:
- opened
- ready_for_review
- reopened
- synchronize

jobs:
Expand Down
Loading