@shelf/gh-sdk
Advanced tools
Comparing version 0.9.0 to 1.0.1
@@ -6,5 +6,3 @@ "use strict"; | ||
}); | ||
var _prs = require("./prs"); | ||
Object.keys(_prs).forEach(function (key) { | ||
@@ -20,5 +18,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _repos = require("./repos"); | ||
Object.keys(_repos).forEach(function (key) { | ||
@@ -34,5 +30,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _misc = require("./misc"); | ||
Object.keys(_misc).forEach(function (key) { | ||
@@ -39,0 +33,0 @@ if (key === "default" || key === "__esModule") return; |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.getUserOrgs = getUserOrgs; | ||
var _restClient = require("../rest-client"); | ||
async function getUserOrgs() { | ||
@@ -12,0 +10,0 @@ const gh = (0, _restClient.getClient)(); |
@@ -6,5 +6,3 @@ "use strict"; | ||
}); | ||
var _getOrgs = require("./get-orgs"); | ||
Object.keys(_getOrgs).forEach(function (key) { | ||
@@ -11,0 +9,0 @@ if (key === "default" || key === "__esModule") return; |
import type { RestEndpointMethodTypes } from '@octokit/plugin-rest-endpoint-methods'; | ||
declare type ApprovePRParams = { | ||
type ApprovePRParams = { | ||
owner: string; | ||
@@ -4,0 +4,0 @@ repo: string; |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.approvePR = approvePR; | ||
var _restClient = require("../rest-client"); | ||
async function approvePR(params) { | ||
@@ -12,0 +10,0 @@ const gh = (0, _restClient.getClient)(); |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.createReleasePR = createReleasePR; | ||
var _restClient = require("../rest-client"); | ||
async function createReleasePR({ | ||
@@ -12,0 +10,0 @@ owner, |
@@ -7,3 +7,2 @@ "use strict"; | ||
exports.extractRepoNameFromURL = extractRepoNameFromURL; | ||
function extractRepoNameFromURL(repoURL) { | ||
@@ -10,0 +9,0 @@ try { |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.getPR = getPR; | ||
var _restClient = require("../rest-client"); | ||
async function getPR({ | ||
@@ -12,0 +10,0 @@ repo, |
@@ -6,5 +6,3 @@ "use strict"; | ||
}); | ||
var _approve = require("./approve"); | ||
Object.keys(_approve).forEach(function (key) { | ||
@@ -20,5 +18,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _createReleasePr = require("./create-release-pr"); | ||
Object.keys(_createReleasePr).forEach(function (key) { | ||
@@ -34,5 +30,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _extractRepoName = require("./extract-repo-name"); | ||
Object.keys(_extractRepoName).forEach(function (key) { | ||
@@ -48,5 +42,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _getPr = require("./get-pr"); | ||
Object.keys(_getPr).forEach(function (key) { | ||
@@ -62,5 +54,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _listPrs = require("./list-prs"); | ||
Object.keys(_listPrs).forEach(function (key) { | ||
@@ -76,5 +66,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _merge = require("./merge"); | ||
Object.keys(_merge).forEach(function (key) { | ||
@@ -81,0 +69,0 @@ if (key === "default" || key === "__esModule") return; |
import type { RestEndpointMethodTypes } from '@octokit/plugin-rest-endpoint-methods'; | ||
declare type ListOpenPRsParams = { | ||
type ListOpenPRsParams = { | ||
owner: string; | ||
searchText?: string; | ||
}; | ||
declare type ListPRsParams = { | ||
type ListPRsParams = { | ||
owner: string; | ||
@@ -8,0 +8,0 @@ searchText?: string; |
@@ -8,21 +8,18 @@ "use strict"; | ||
exports.listPrs = listPrs; | ||
var _restClient = require("../rest-client"); | ||
function listPrs(params) { | ||
return getPRs({ ...params, | ||
return getPRs({ | ||
...params, | ||
prStatus: 'open' | ||
}); | ||
} | ||
function listClosedPRs(params) { | ||
return getPRs({ ...params, | ||
return getPRs({ | ||
...params, | ||
prStatus: 'closed' | ||
}); | ||
} | ||
const prsGenerator = async function* (params) { | ||
let pageNumber = 1; | ||
let hasNextPage = true; | ||
while (hasNextPage && pageNumber <= 10) { | ||
@@ -37,7 +34,5 @@ const gh = (0, _restClient.getClient)(); | ||
}); | ||
if (data.items.length < 100) { | ||
hasNextPage = false; | ||
} | ||
pageNumber++; | ||
@@ -47,11 +42,8 @@ yield data.items; | ||
}; | ||
async function getPRs(params) { | ||
const prs = []; | ||
for await (const prsOnePage of prsGenerator(params)) { | ||
prs.push(...prsOnePage); | ||
} | ||
return prs; | ||
} |
import type { RestEndpointMethodTypes } from '@octokit/plugin-rest-endpoint-methods'; | ||
declare type MergePRParams = { | ||
type MergePRParams = { | ||
owner: string; | ||
@@ -4,0 +4,0 @@ repo: string; |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.mergePR = mergePR; | ||
var _restClient = require("../rest-client"); | ||
async function mergePR(params) { | ||
@@ -12,0 +10,0 @@ const gh = (0, _restClient.getClient)(); |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.createReleaseBranch = createReleaseBranch; | ||
var _restClient = require("../rest-client"); | ||
async function createReleaseBranch({ | ||
@@ -12,0 +10,0 @@ owner, |
@@ -7,5 +7,3 @@ "use strict"; | ||
exports.deleteBranch = deleteBranch; | ||
var _restClient = require("../rest-client"); | ||
async function deleteBranch({ | ||
@@ -17,3 +15,2 @@ owner, | ||
const gh = (0, _restClient.getClient)(); | ||
try { | ||
@@ -33,5 +30,4 @@ const { | ||
} | ||
console.error(`Error deleting branch`, error); | ||
} | ||
} |
import type { RestEndpointMethodTypes } from '@octokit/plugin-rest-endpoint-methods'; | ||
import { getRepoBranch } from './get-repo-branches'; | ||
declare type LatestBranchCommit = RestEndpointMethodTypes['repos']['getBranch']['response']['data']['commit'] | undefined; | ||
type LatestBranchCommit = RestEndpointMethodTypes['repos']['getBranch']['response']['data']['commit'] | undefined; | ||
export declare function getLatestBranchCommit({ owner, repo, branch, }: Parameters<typeof getRepoBranch>[0]): Promise<LatestBranchCommit>; | ||
@@ -5,0 +5,0 @@ export declare function getLatestDevelopCommit({ owner, repo, }: { |
@@ -9,5 +9,3 @@ "use strict"; | ||
exports.getLatestDevelopCommitSHA = getLatestDevelopCommitSHA; | ||
var _getRepoBranches = require("./get-repo-branches"); | ||
async function getLatestBranchCommit({ | ||
@@ -25,3 +23,2 @@ owner, | ||
} | ||
function getLatestDevelopCommit({ | ||
@@ -37,3 +34,2 @@ owner, | ||
} | ||
async function getLatestDevelopCommitSHA({ | ||
@@ -40,0 +36,0 @@ owner, |
@@ -9,7 +9,3 @@ "use strict"; | ||
exports.getRepoBranchesNames = getRepoBranchesNames; | ||
var _lodash = require("lodash"); | ||
var _restClient = require("../rest-client"); | ||
async function getRepoBranch({ | ||
@@ -28,3 +24,2 @@ owner, | ||
} | ||
async function getRepoBranches({ | ||
@@ -42,3 +37,2 @@ owner, | ||
} | ||
async function getRepoBranchesNames({ | ||
@@ -52,3 +46,3 @@ owner, | ||
}); | ||
return (0, _lodash.map)(branchesResponse, 'name'); | ||
return (branchesResponse === null || branchesResponse === void 0 ? void 0 : branchesResponse.map(branch => branch === null || branch === void 0 ? void 0 : branch.name)) ?? []; | ||
} |
@@ -5,3 +5,5 @@ export * from './create-release-branch'; | ||
export * from './get-repo-branches'; | ||
export * from './get-repo-merge-strategies'; | ||
export * from './labels'; | ||
export * from './list-org-repos'; | ||
export * from './update-repo-merge-strategies'; |
@@ -6,5 +6,3 @@ "use strict"; | ||
}); | ||
var _createReleaseBranch = require("./create-release-branch"); | ||
Object.keys(_createReleaseBranch).forEach(function (key) { | ||
@@ -20,5 +18,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _deleteBranch = require("./delete-branch"); | ||
Object.keys(_deleteBranch).forEach(function (key) { | ||
@@ -34,5 +30,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _getLatestBranchCommit = require("./get-latest-branch-commit"); | ||
Object.keys(_getLatestBranchCommit).forEach(function (key) { | ||
@@ -48,5 +42,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _getRepoBranches = require("./get-repo-branches"); | ||
Object.keys(_getRepoBranches).forEach(function (key) { | ||
@@ -62,5 +54,14 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _getRepoMergeStrategies = require("./get-repo-merge-strategies"); | ||
Object.keys(_getRepoMergeStrategies).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (key in exports && exports[key] === _getRepoMergeStrategies[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _getRepoMergeStrategies[key]; | ||
} | ||
}); | ||
}); | ||
var _labels = require("./labels"); | ||
Object.keys(_labels).forEach(function (key) { | ||
@@ -76,5 +77,3 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
var _listOrgRepos = require("./list-org-repos"); | ||
Object.keys(_listOrgRepos).forEach(function (key) { | ||
@@ -89,2 +88,13 @@ if (key === "default" || key === "__esModule") return; | ||
}); | ||
}); | ||
var _updateRepoMergeStrategies = require("./update-repo-merge-strategies"); | ||
Object.keys(_updateRepoMergeStrategies).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (key in exports && exports[key] === _updateRepoMergeStrategies[key]) return; | ||
Object.defineProperty(exports, key, { | ||
enumerable: true, | ||
get: function () { | ||
return _updateRepoMergeStrategies[key]; | ||
} | ||
}); | ||
}); |
@@ -9,5 +9,3 @@ "use strict"; | ||
exports.getRepoLabels = getRepoLabels; | ||
var _restClient = require("../rest-client"); | ||
async function getRepoLabels(owner, repo) { | ||
@@ -23,6 +21,4 @@ const client = (0, _restClient.getClient)(); | ||
} | ||
async function createReleaseLabel(owner, repo) { | ||
const client = (0, _restClient.getClient)(); | ||
try { | ||
@@ -39,7 +35,5 @@ await client.issues.createLabel({ | ||
} | ||
throw error; | ||
} | ||
} | ||
async function assignReleaseLabelToPR(owner, repo, pullNumber) { | ||
@@ -46,0 +40,0 @@ const client = (0, _restClient.getClient)(); |
import type { RestEndpointMethodTypes } from '@octokit/plugin-rest-endpoint-methods'; | ||
export declare function listOrgRepos(org: string): Promise<RestEndpointMethodTypes['repos']['listForOrg']['response']['data']>; | ||
type RepoType = RestEndpointMethodTypes['repos']['listForOrg']['parameters']['type']; | ||
type ListOrgReposParams = { | ||
org: string; | ||
type?: RepoType; | ||
skipArchived?: boolean; | ||
}; | ||
export declare function listOrgRepos(params: ListOrgReposParams): Promise<RestEndpointMethodTypes['repos']['listForOrg']['response']['data']>; | ||
export {}; |
@@ -7,12 +7,14 @@ "use strict"; | ||
exports.listOrgRepos = listOrgRepos; | ||
var _restClient = require("../rest-client"); | ||
async function listOrgRepos(org) { | ||
async function listOrgRepos(params) { | ||
const { | ||
org, | ||
type = 'all', | ||
skipArchived = false | ||
} = params; | ||
let page = 1; | ||
let hasMore = false; | ||
const repos = []; | ||
do { | ||
const data = await list(org, page); | ||
const data = await list(org, page, type); | ||
hasMore = data.length === 100; | ||
@@ -22,7 +24,12 @@ page++; | ||
} while (hasMore); | ||
return repos; | ||
return repos.filter(repo => { | ||
if (skipArchived) { | ||
if (repo.archived) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
}); | ||
} | ||
async function list(org, page) { | ||
async function list(org, page, type) { | ||
const gh = (0, _restClient.getClient)(); | ||
@@ -33,3 +40,3 @@ const { | ||
org, | ||
type: 'all', | ||
type, | ||
sort: 'pushed', | ||
@@ -36,0 +43,0 @@ per_page: 100, |
@@ -7,7 +7,4 @@ "use strict"; | ||
exports.getClient = getClient; | ||
var _rest = require("@octokit/rest"); | ||
let client; | ||
function getClient() { | ||
@@ -17,3 +14,2 @@ if (client) { | ||
} | ||
client = new _rest.Octokit({ | ||
@@ -20,0 +16,0 @@ auth: process.env.GITHUB_TOKEN |
{ | ||
"name": "@shelf/gh-sdk", | ||
"version": "0.9.0", | ||
"version": "1.0.1", | ||
"description": "Convenient wrapper for GitHub API for automation tasks", | ||
@@ -46,21 +46,21 @@ "license": "MIT", | ||
"dependencies": { | ||
"@octokit/rest": "18.12.0", | ||
"@octokit/rest": "19.0.5", | ||
"lodash": "4.17.21" | ||
}, | ||
"devDependencies": { | ||
"@babel/cli": "7.18.6", | ||
"@babel/core": "7.18.6", | ||
"@shelf/babel-config": "1.0.2", | ||
"@shelf/eslint-config": "2.18.0", | ||
"@babel/cli": "7.19.3", | ||
"@babel/core": "7.20.5", | ||
"@shelf/babel-config": "1.2.0", | ||
"@shelf/eslint-config": "2.26.0", | ||
"@shelf/prettier-config": "1.0.0", | ||
"@shelf/tsconfig": "0.0.6", | ||
"@types/jest": "28.1.4", | ||
"@types/lodash": "4.14.182", | ||
"@shelf/tsconfig": "0.0.9", | ||
"@types/jest": "29.2.4", | ||
"@types/lodash": "4.14.191", | ||
"@types/node": "16", | ||
"eslint": "8.19.0", | ||
"husky": "8.0.1", | ||
"jest": "28.1.2", | ||
"lint-staged": "13.0.3", | ||
"prettier": "2.7.1", | ||
"typescript": "4.7.4" | ||
"eslint": "8.29.0", | ||
"husky": "8.0.2", | ||
"jest": "29.3.1", | ||
"lint-staged": "13.1.0", | ||
"prettier": "2.8.1", | ||
"typescript": "4.9.4" | ||
}, | ||
@@ -67,0 +67,0 @@ "engines": { |
@@ -14,24 +14,32 @@ # gh-sdk [![CircleCI](https://circleci.com/gh/shelfio/gh-sdk/tree/master.svg?style=svg)](https://circleci.com/gh/shelfio/gh-sdk/tree/master)![](https://img.shields.io/badge/code_style-prettier-ff69b4.svg) | ||
```js | ||
import {approvePR, mergePR, listPrs, getUserOrgs} from '@shelf/gh-sdk'; | ||
import { approvePR, mergePR, listPrs, getUserOrgs } from "@shelf/gh-sdk"; | ||
approvePR({owner: 'shelf', repo: 'api', pr: 3}); | ||
assignReleaseLabelToPR('shelf', 'api', 134); | ||
createReleaseBranch({owner: 'shelf', repo: 'api', version: '1.2.3', sha: 'dev'}); // => ref 'refs/heads/release/v1.2.3` (refs/heads - for git link) | ||
createReleaseLabel('shelf', 'api'); | ||
createReleasePR({owner: 'shelf', repo: 'api', version: '1.2.3', releaseTitle: 'Good stuff'}); // => ref: 'release/v1.2.3`, title: Release v1.2.3: Good stuff | ||
deleteBranch({owner: 'shelf', repo: 'api', ref: 'dev'}); | ||
extractRepoNameFromURL('https://github.com/shelfio/gh-sdk/pulls/5'); // => gh-sdk | ||
getLatestBranchCommit({owner: 'shelf', repo: 'api', branch: 'dev'}); | ||
getLatestDevelopCommit({owner: 'shelf', repo: 'api'}); // {branch: 'develop} as default | ||
getLatestDevelopCommitSHA({owner: 'shelf', repo: 'api'}); // => 'develop-branch-hash-string' | ||
getPR({owner: 'shelf', repo: 'api', pr: 3}); | ||
getRepoBranch({owner: 'shelf', repo: 'api', branch: 'dev'}); | ||
getRepoBranches({owner: 'shelf', repo: 'api'}); // => [, {branch}] | ||
getRepoBranchesNames({owner: 'shelf', repo: 'api'}); // => [, 'branch-ref'] | ||
getRepoLabels('shelf', 'api'); | ||
approvePR({ owner: "shelf", repo: "api", pr: 3 }); | ||
assignReleaseLabelToPR("shelf", "api", 134); | ||
getRepoMergeStrategies("shelf", "api"); | ||
createReleaseBranch({ owner: "shelf", repo: "api", version: "1.2.3", sha: "dev" }); // => ref 'refs/heads/release/v1.2.3` (refs/heads - for git link) | ||
createReleaseLabel("shelf", "api"); | ||
createReleasePR({ owner: "shelf", repo: "api", version: "1.2.3", releaseTitle: "Good stuff" }); // => ref: 'release/v1.2.3`, title: Release v1.2.3: Good stuff | ||
deleteBranch({ owner: "shelf", repo: "api", ref: "dev" }); | ||
extractRepoNameFromURL("https://github.com/shelfio/gh-sdk/pulls/5"); // => gh-sdk | ||
getLatestBranchCommit({ owner: "shelf", repo: "api", branch: "dev" }); | ||
getLatestDevelopCommit({ owner: "shelf", repo: "api" }); // {branch: 'develop} as default | ||
getLatestDevelopCommitSHA({ owner: "shelf", repo: "api" }); // => 'develop-branch-hash-string' | ||
getPR({ owner: "shelf", repo: "api", pr: 3 }); | ||
getRepoBranch({ owner: "shelf", repo: "api", branch: "dev" }); | ||
getRepoBranches({ owner: "shelf", repo: "api" }); // => [, {branch}] | ||
getRepoBranchesNames({ owner: "shelf", repo: "api" }); // => [, 'branch-ref'] | ||
getRepoLabels("shelf", "api"); | ||
getUserOrgs(); | ||
listClosedPRs({owner: 'shelf', searchText: 'renovate'}); | ||
listOrgRepos('shelf'); // => [, {repo}] | ||
listPrs({owner: 'shelf', searchText: 'renovate'}); | ||
mergePR({owner: 'shelf', repo: 'api', pr: 3}); | ||
listClosedPRs({ owner: "shelf", searchText: "renovate" }); | ||
listOrgRepos({ org: "shelfio", type: "sources", skipArchived: true }); // => [, {repo}] | ||
listPrs({ owner: "shelf", searchText: "renovate" }); | ||
mergePR({ owner: "shelf", repo: "api", pr: 3 }); | ||
updateRepoMergeStrategies({ | ||
owner: 'shelfio', | ||
repo: 'api', | ||
allowMergeCommits: false, | ||
allowSquash: false, | ||
allowRebase: true, | ||
}); | ||
``` | ||
@@ -38,0 +46,0 @@ |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
27757
44
758
1
58
0
+ Added@octokit/auth-token@3.0.4(transitive)
+ Added@octokit/core@4.2.4(transitive)
+ Added@octokit/endpoint@7.0.6(transitive)
+ Added@octokit/graphql@5.0.6(transitive)
+ Added@octokit/openapi-types@14.0.018.1.1(transitive)
+ Added@octokit/plugin-paginate-rest@5.0.1(transitive)
+ Added@octokit/plugin-rest-endpoint-methods@6.8.1(transitive)
+ Added@octokit/request@6.2.8(transitive)
+ Added@octokit/request-error@3.0.3(transitive)
+ Added@octokit/rest@19.0.5(transitive)
+ Added@octokit/types@8.2.19.3.2(transitive)
- Removed@octokit/auth-token@2.5.0(transitive)
- Removed@octokit/core@3.6.0(transitive)
- Removed@octokit/endpoint@6.0.12(transitive)
- Removed@octokit/graphql@4.8.0(transitive)
- Removed@octokit/openapi-types@12.11.0(transitive)
- Removed@octokit/plugin-paginate-rest@2.21.3(transitive)
- Removed@octokit/plugin-rest-endpoint-methods@5.16.2(transitive)
- Removed@octokit/request@5.6.3(transitive)
- Removed@octokit/request-error@2.1.0(transitive)
- Removed@octokit/rest@18.12.0(transitive)
- Removed@octokit/types@6.41.0(transitive)
Updated@octokit/rest@19.0.5