Product
Socket Now Supports uv.lock Files
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
all-contributors-for-repository
Advanced tools
Generates an allcontributors list for an existing repository.
Generates an allcontributors list for an existing repository.
✨ See this tool in action with all-contributors-auto-action! ✨
npm i all-contributors-for-repository
import { getAllContributorsForRepository } from "all-contributors-for-repository";
const contributors = await getAllContributorsForRepository({
owner: "JoshuaKGoldberg",
repo: "template-typescript-node-package",
});
/*
{
john_reilly: [ 'bug', 'code' ],
joshuakgoldberg: [ 'maintenance', 'tool' ],
}
*/
Warning This tool only sees contributions that can be detected from the last 500 events in GitHub's API. Don't forget to manually add in other forms of contributions!
The types of contributions detected from the GitHub API are:
bug
: anybody who filed an issue labeled as accepting PRs and a bug (see Options)doc
: authors of merged PRs that address issues labeled as accepting PRs and docs (see Options)maintenance
: adding labels to issues and PRs, and merging PRsreview
: submitting a review for a PRtool
: authors of merged PRs that address issues labeled as accepting PRs and tooling (see Options)Additionally, based on PR conventional commit titles in the Angular convention, for all PR authors and co-authors:
build
and ci
: will be treated as an :infra:
contributiondocs
: will be treated as an :doc:
contributiontest
: will be treated as an :test:
contribution:code:
contributions💡 Given that list of contributors, you might want to run
all-contributors add
on each contributor & contribution type.
import { $ } from "execa"; for (const [contributor, contributions] of Object.entries(contributors)) { const contributionTypes = Object.keys(contributions).join(","); await $`npx all-contributors add ${contributor} ${contributionTypes}`; }
The exported getAllContributorsForRepository
function takes in an object with two required properties:
owner
(string
): The owner of the repository to query, such as "JoshuaKGoldberg"
.repository
(string
): The name of the repository to query, such as "all-contributors-for-repository"
.It additionally allows for the following optional options.
auth
(string
): GitHub auth token to query the API with, if necessary for private repositories and/or to avoid rate limiting.ignoredLogins
(string[]
): Usernames to ignore commits from, such as bot and bot-like users.
"allcontributors"
, "allcontributors[bot]"
, "dependabot"
, "dependabot[bot]"
, "renovate"
, "renovate[bot]"
labelAcceptingPrs
(string
): Label to indicate an issue is accepting pull requests.labelTypeBug
(string
): Label to indicate an issue is for a bug.labelTypeDocs
(string
): Label to indicate an issue is for documentation.labelTypeTool
(string
): Label to indicate an issue is for tooling.import { getAllContributorsForRepository } from "all-contributors-for-repository";
getAllContributorsForRepository({
auth: "abc123",
ignoredLogins: ["MyBotLikeUser"],
labelAcceptingPrs: "help wanted",
labelTypeBug: "bug",
labelTypeDocs: "docs",
labelTypeTool: "tool",
});
See .github/CONTRIBUTING.md
, then .github/DEVELOPMENT.md
.
Thanks! 💖
Josh Goldberg 🔧 🐛 💻 🚧 👀 📖 |
💙 This package is based on @JoshuaKGoldberg's template-typescript-node-package.
FAQs
Generates an allcontributors list for an existing repository. 🤝
We found that all-contributors-for-repository demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.