Skip to content
Latchkey

Pull Request Creation workflow (ashutosh1919/masterPortfolio)

The Pull Request Creation workflow from ashutosh1919/masterPortfolio, explained and optimized by Latchkey.

C

CI health: C - fair

Point runs-on at Latchkey and get run de-duplication, job timeouts, SHA-pinned actions, self-healing for flaky steps, and up to 58% lower cost, applied automatically.

Grade your own workflow free or run it on Latchkey →
Source: ashutosh1919/masterPortfolio.github/workflows/pullRequestsDataFetcher.ymlLicense MITView source

What it does

This is the Pull Request Creation workflow from the ashutosh1919/masterPortfolio repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

The workflow

workflow (.yml)
name: Pull Request Creation

on:
  push:
    branches:
      - all

jobs:
  pullRequestRelease:
    runs-on: ubuntu-latest
    steps:
      - uses: octokit/graphql-action@v2.x
        id: get_pull_requests
        with:
          query: |
            query user(login: "ashutosh1919") {
              pullRequests(last: 100, orderBy: {field: CREATED_AT, direction: DESC}) {
                totalCount
                nodes {
                  title
                  url
                  state
                  mergedBy {
                    avatarUrl
                    url
                    login
                  }
                  createdAt
                  number
                  changedFiles
                  additions
                  deletions
                  baseRepository {
                    name
                    url
                    owner {
                      avatarUrl
                      login
                      url
                    }
                  }
                }
                pageInfo {
                  hasNextPage
                  endCursor
                }
              }
            }
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - run: "echo 'Pull Requests Data: ${{ steps.get_latest_release.outputs.data }}'"

The same workflow, on Latchkey

Removes redundant runs and caps runaway jobs. Added and changed lines are highlighted.

name: Pull Request Creation
 
on:
  push:
    branches:
      - all
 
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
 
jobs:
  pullRequestRelease:
    timeout-minutes: 30
    runs-on: latchkey-small
    steps:
      - uses: octokit/graphql-action@v2.x
        id: get_pull_requests
        with:
          query: |
            query user(login: "ashutosh1919") {
              pullRequests(last: 100, orderBy: {field: CREATED_AT, direction: DESC}) {
                totalCount
                nodes {
                  title
                  url
                  state
                  mergedBy {
                    avatarUrl
                    url
                    login
                  }
                  createdAt
                  number
                  changedFiles
                  additions
                  deletions
                  baseRepository {
                    name
                    url
                    owner {
                      avatarUrl
                      login
                      url
                    }
                  }
                }
                pageInfo {
                  hasNextPage
                  endCursor
                }
              }
            }
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - run: "echo 'Pull Requests Data: ${{ steps.get_latest_release.outputs.data }}'"
 

What changed

1 third-party action is referenced by a movable tag. Pin it to the commit SHA (Latchkey resolves and applies this automatically) so a repointed tag cannot change what runs.

This workflow runs 1 job per trigger. On Latchkey the same minutes cost up to 58% less than GitHub-hosted, with zero queue time.