Socket
Socket
Sign inDemoInstall

@shelf/gh-sdk

Package Overview
Dependencies
26
Maintainers
54
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.9.0 to 1.0.1

lib/repos/get-repo-merge-strategies.d.ts

6

lib/index.js

@@ -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;

2

lib/misc/get-orgs.js

@@ -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 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc