{"id":28158485,"url":"https://github.com/indeedeng/mariner-issue-collector","last_synced_at":"2025-07-05T02:06:45.711Z","repository":{"id":38774908,"uuid":"299801061","full_name":"indeedeng/Mariner-Issue-Collector","owner":"indeedeng","description":"Mariner Issue Collector helps you identify freshly opened issues across all open source projects you care about. Use Mariner to help you identify contribution opportunities in your open source dependencies! ","archived":false,"fork":false,"pushed_at":"2023-07-14T16:02:18.000Z","size":1046,"stargazers_count":25,"open_issues_count":7,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-30T00:17:57.069Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indeedeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-30T03:38:28.000Z","updated_at":"2025-04-07T15:24:48.000Z","dependencies_parsed_at":"2024-01-14T03:46:49.699Z","dependency_job_id":"895d90d0-70a3-4609-a3a3-84962d06eb86","html_url":"https://github.com/indeedeng/Mariner-Issue-Collector","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/indeedeng/Mariner-Issue-Collector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2FMariner-Issue-Collector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2FMariner-Issue-Collector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2FMariner-Issue-Collector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2FMariner-Issue-Collector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indeedeng","download_url":"https://codeload.github.com/indeedeng/Mariner-Issue-Collector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indeedeng%2FMariner-Issue-Collector/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263648834,"owners_count":23494007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2025-05-15T09:19:40.433Z","updated_at":"2025-07-05T02:06:45.693Z","avatar_url":"https://github.com/indeedeng.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mariner Issue Collector\n\n![OSS Lifecycle](https://img.shields.io/osslifecycle/indeedeng/mariner-issue-collector.svg)\n\nMariner Issue Collector is a live demo that implements the [Mariner](https://github.com/indeedeng/mariner) library. This demo is configured to run automatically as a GitHub Action.\n\nMariner helps you identify recently opened issues in a list of GitHub repositories that you provide. We use Mariner at Indeed to identify beginner-friendly issues that were recently opened in open source projects that we depend on.\n\n## Getting Started\n\nRunning the Mariner Issue Collector requires a few steps.\n\n### Step 1 : Update the list of repos\n\nUpdate the [inputData](./InputFiles/inputData.json) file with repositories and the [issueLabels](./InputFiles/issueLabels.json) file with issue labels you're interested in. We have successfully tested this file with nearly 10,000 repos, which ran in about 15 minutes. \n\nThe inputData.json file should be a JSON object with \"owner/repo\" as key, and a numeric value that represents the \"weight\" of the repository. \n\nThe issueLabels.json file should be a JSON array containing issue labels as strings.\n\nThe numerical weights assigned to each repo in the inputData.json file determine the order in which results are listed. Weight should be assigned according to importance to you (e.g. how often a dependency is used in your organization). Results are returned in descending order with the greatest weight listed first. If all weights are equal the results will be listed in the order they appear in the inputData.json object.\n\n### Step 2 : Set environment variables\n\nAt a minimum, the demo app will expect you to have set a MARINER_GITHUB_TOKEN environment variable, containing an auth token for the GitHub API. Other environment variables, and their default values, are shown below.\n\n```\nMARINER_GITHUB_TOKEN: Your Auth Token\nMARINER_LABELS_FILE_PATH: \"./InputFiles/issueLabels.json\"\nMARINER_INPUT_FILE_PATH: \"./InputFiles/inputData.json\"\nMARINER_OUTPUT_FILE_PATH: \"./OutputFiles/outputData.json\"\nMARINER_MARKDOWN_FILE_PATH: \"./OutputFiles/githubMarkdown.md\"\nMARINER_MAX_ISSUES_AGE: \"30\"\n```\n\nMARINER_MAX_ISSUES_AGE sets a limit on the age of issues to be returned, measured in days. You can change it to reflect your desired scope.\n\n### Step 3 : Run Mariner\n\nStart by downloading dependencies:\n\n```bash\nnpm ci\n```\n\nRun the findIssues.js script:\n\n```bash\nnode findIssues.js\n```\n\nThis will update the [outputData](./OutputFiles/outputData.json) file with any issues that Mariner finds.\n\nThe query will return only the data that you specify in the input files. GitHub will automatically paginate results in sets of 30. Mariner will then walk through the paginated results.\n\nOptionally, generate markdown based on the new set of issues:\n\n```bash\nnode Utilities/generateGitHubMarkdown.js\n```\n\nThis will parse the outputData.json file and update the [githubMarkdown](./OutputFiles/githubMarkdown.md) with a list of issues that can be easily viewed on GitHub.\n\nOr generate markdown for use in Confluence/Jira:\n\n```bash\nnode Utilities/generateConfluenceMarkdown.js\n```\n\nIn Jira, simply copy and paste the contents of [confluenceMarkdown](./OutputFiles/confluenceMarkdown.md) into the text mode of the editor.\n\nAlso, generate static HTML file that shows the new issues:\n\n```bash\nnode Utilities/generateHtml.js\n```\n\nThis will parse the outputData.json file and update the [Issues.html](./OutputFiles/Issues.html) with the list of issues.\n\n## Mariner Issue Collector As A GitHub Action\n\nMariner ships with a default GitHub Action that runs every 8 hours to generate a fresh issue list,\nand commit that issue list back into the GitHub repository.\nAny fork of this repository will automatically include this action,\nas it is triggered by the existence of the [action YAML file](./.github/workflows/main.yml).\n\n## Use Mariner Issue Collector In A Private Repo\n\nTo use the demo app in a private repo, you will need to create a bare clone of the public project.\n\n```\ngit clone --bare https://github.com/indeedeng/Mariner-Issue-Collector\n```\n\nNext, you will need to move into the clone directory and mirror-push to your private repository.\n\n```\ncd Mariner-Issue-Collector.git\ngit push --mirror https://github.com/YourUserName/YourPrivateRepo\n```\n\nYou can then remove the public clone.\n\n```\ncd ..\nrm -rf Mariner-Issue-Collector.git\n```\n\nFinally, clone the private repo on your local machine to begin using.\n\n```\ngit clone https://github.com/YourUserName/YourPrivateRepo\n```\n\n## Getting Help\n\nIf you need help or find bugs, please open an issue.\n\n## How To Contribute\n\nIf you see an open issue that you would like to work on, please make sure the issue has the \"unclaimed\" tag, and that there are no open pull requests for the issue.\n\nIf an issue has the \"unclaimed\" tag, and you would like to claim it, comment on the issue. A maintainer will add the \"claimed\" tag to the issue and indicate to whom it has been assigned.  \n\nIf you want to propose a new feature, please open an issue and tell us about the contribution you'd like to make. \n\n**Regarding Hacktoberfest:** We will only tag pull requests with \"hacktoberfest accepted\" if:\n* The pull request references a claimed issue with the Hacktoberfest label\n* The pull request was submitted by the person who claimed the issue\n\n## Project Maintainers\n\nThis project is primarily maintained by @DuaneOBrien.\n\n## Code of Conduct\nThis project is governed by the [Contributor Covenant v 1.4.1](CODE_OF_CONDUCT.md)\n\n## License\nThis project uses the [MIT](LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findeedeng%2Fmariner-issue-collector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findeedeng%2Fmariner-issue-collector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findeedeng%2Fmariner-issue-collector/lists"}