Skip to content

Commit

Permalink
chore: release [email protected]
Browse files Browse the repository at this point in the history
  • Loading branch information
lin-stephanie committed Dec 5, 2024
1 parent af33246 commit e43d61c
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 22 deletions.
5 changes: 5 additions & 0 deletions .changeset/beige-hotels-poke.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"astro-loader-github-prs": patch
---

Handle missing GitHub token error
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This monorepo hosts [Astro loaders](https://5-0-0-beta.docs.astro.build/en/refer

Currently available loaders (see individual READMEs for details):

- [astro-loader-github-releases](https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-github-releases): Loads GitHub release data for user-related or specific repositories.
- [astro-loader-github-releases](https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-github-releases): Loads GitHub releases for user-related or specific repositories.
- [astro-loader-github-prs](https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-github-prs): Loads GitHub pull reuqests from a given search string.
- [astro-loader-tweets](https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-tweets): WIP...

Expand Down
11 changes: 6 additions & 5 deletions packages/astro-loader-github-prs/package.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
{
"name": "astro-loader-github-prs",
"version": "1.0.0",
"description": "Aatro loader for loading GitHub pull reuqests from a given GitHub search string.",
"description": "Aatro loader for loading GitHub pull reuqests from a given search string.",
"author": "Stephanie Lin <[email protected]>",
"license": "MIT",
"keywords": [
"withastro",
"astro-loader",
"github",
"search",
"prs",
"pr"
"pull-request",
"pull-requests",
"pr",
"search"
],
"repository": {
"type": "git",
"url": "git+https://github.com/lin-stephanie/astro-loaders.git",
"directory": "packages/astro-loader-github-prs"
},
"homepage": "https://github.com/lin-stephanie/astro-loaders/blob/main/packages/astro-loader-github-prs/README.md",
"homepage": "https://github.com/lin-stephanie/astro-loaders/blob/main/packages/astro-loader-github-prs/",
"bugs": "https://github.com/lin-stephanie/astro-loaders/issues",
"type": "module",
"files": [
Expand Down
15 changes: 7 additions & 8 deletions packages/astro-loader-github-prs/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,27 @@ export const GithubPrsLoaderConfigSchema = z.object({
* The user-defined search string for querying pull requests on GitHub.
* This string will be concatenated with "type:pr" to form the complete search query.
*
* @remarks
* For more information, see:
* For more information:
* - {@link https://docs.github.com/en/graphql/reference/queries#search GitHub GraphQL API - Perform a search across resources}
* - {@link https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests How to search pull requests}
*
* @example
* - `'author:xxx created:>=2024-01-01'`: matches prs written by xxx that were created after 2024.
* - `'author:xxx -user:xxx'`: matches prs written by xxx, but not to their own repositories.
* - 'author:xxx created:>=2024-01-01': matches prs written by xxx that were created after 2024.
* - 'author:xxx -user:xxx': matches prs written by xxx, but not to their own repositories.
*/
search: z.string(),

/**
* You must create a GitHub PAT with at least `repo` scope permissions
* You need to create a GitHub PAT with at least `repo` scope permissions
* to authenticate requests to the GraphQL API.
*
* @remarks This is optional; by default, it reads from the `GITHUB_TOKEN` environment variable.
* This is optional; by default, it reads from the `GITHUB_TOKEN` environment variable.
* You may also configure it directly here (not recommended; if you do, ensure it is not exposed
* in public code repositories).
*
* @see
* - {@link https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic How to create a GitHub PAT (classic).}
* - {@link https://docs.astro.build/en/guides/environment-variables/#setting-environment-variables How to store GitHub PAT in Astro project environment variables.}
* - {@link https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic How to create a GitHub PAT (classic)}
* - {@link https://docs.astro.build/en/guides/environment-variables/#setting-environment-variables How to store GitHub PAT in Astro project environment variables}
*/
githubToken: z.string().default(import.meta.env.GITHUB_TOKEN),
})
Expand Down
25 changes: 17 additions & 8 deletions packages/astro-loader-github-prs/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import type { GetPrsQuery, GetPrsQueryVariables } from './graphql/types.js'
import type { GithubPr } from './schema.js'

/**
* Aatro loader for loading GitHub pull reuqests from a given GitHub search string.
* Aatro loader for loading GitHub pull reuqests from a given search string.
*
* @see https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-github-prs
*/
Expand All @@ -34,16 +34,25 @@ function githubPrsLoader(userConfig: GithubPrsLoaderUserConfig): Loader {
const { search, githubToken } = parsedUserConfig
const prs: GithubPr[] = []
const query = `type:pr ${search}`
const getPrsQuery = readFileSync(
new URL('./graphql/query.graphql', import.meta.url),
'utf8'
logger.info(
`Loading GitHub pull reuqests based on the search string: '${query}'`
)

const token = githubToken || import.meta.env.GITHUB_TOKEN
if (!token) {
throw new AstroError(
'No GitHub token provided. Please provide a `githubToken` or set the `GITHUB_TOKEN` environment variable.',
`How to create a GitHub PAT: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic.
How to store GitHub PAT in Astro project environment variables: https://docs.astro.build/en/guides/environment-variables/#setting-environment-variables`
)
}
const octokit = new Octokit({
auth: githubToken || import.meta.env.GITHUB_TOKEN,
})

logger.info(
`Loading pull reuqests based on the search string: '${query}'.`
const getPrsQuery = readFileSync(
new URL('./graphql/query.graphql', import.meta.url),
'utf8'
)

try {
Expand Down Expand Up @@ -108,7 +117,7 @@ function githubPrsLoader(userConfig: GithubPrsLoaderUserConfig): Loader {
}
} catch (error) {
throw new AstroError(
`Failed to load pull requests: ${(error as Error).message}`
`Failed to load GitHub pull requests: ${(error as Error).message}`
)
}

Expand All @@ -119,7 +128,7 @@ function githubPrsLoader(userConfig: GithubPrsLoaderUserConfig): Loader {
store.set({ id: item.id, data: parsedItem })
}

logger.info('Successfully loaded the latest pull requests.')
logger.info('Successfully loaded GitHub pull requests')
},
}
}
Expand Down

0 comments on commit e43d61c

Please sign in to comment.