{"id":15763432,"url":"https://github.com/nicklegan/github-org-repo-collaborator-action","last_synced_at":"2025-04-21T04:31:42.976Z","repository":{"id":38187818,"uuid":"484120743","full_name":"nicklegan/github-org-repo-collaborator-action","owner":"nicklegan","description":"A GitHub Action to generate a report which contains repository collaborator details for a GitHub organization.","archived":false,"fork":false,"pushed_at":"2023-04-01T16:58:01.000Z","size":71,"stargazers_count":1,"open_issues_count":5,"forks_count":6,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-04T09:16:09.039Z","etag":null,"topics":["actions","collaborators","github-enterprise","organization","report"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":false,"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/nicklegan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":".github/code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-21T16:12:12.000Z","updated_at":"2024-06-23T22:34:48.000Z","dependencies_parsed_at":"2024-10-04T11:41:59.892Z","dependency_job_id":"3408d1c7-9cf3-498d-bd3a-eadf83e0964e","html_url":"https://github.com/nicklegan/github-org-repo-collaborator-action","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"64659fb57648f5b896a819320af99bc8c6d3bb55"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklegan%2Fgithub-org-repo-collaborator-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklegan%2Fgithub-org-repo-collaborator-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklegan%2Fgithub-org-repo-collaborator-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicklegan%2Fgithub-org-repo-collaborator-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicklegan","download_url":"https://codeload.github.com/nicklegan/github-org-repo-collaborator-action/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223849432,"owners_count":17213640,"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":["actions","collaborators","github-enterprise","organization","report"],"created_at":"2024-10-04T11:41:57.024Z","updated_at":"2025-04-21T04:31:42.969Z","avatar_url":"https://github.com/nicklegan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Organization Repository Collaborator Action\n\n\u003e A GitHub Action to generate a report which contains repository collaborator details for a GitHub organization.\n\n## Usage\n\nThe example [workflow](https://docs.github.com/actions/reference/workflow-syntax-for-github-actions) below runs on a weekly [schedule](https://docs.github.com/actions/reference/events-that-trigger-workflows#scheduled-events) and can also be executed manually using a [workflow_dispatch](https://docs.github.com/actions/reference/events-that-trigger-workflows#manual-events) event.\n\n```yml\nname: Repo Collaborator Action\n\non:\n  workflow_dispatch:\n  schedule:\n    # Runs on every Sunday at 00:00 UTC\n    #\n    #        ┌────────────── minute\n    #        │ ┌──────────── hour\n    #        │ │ ┌────────── day (month)\n    #        │ │ │ ┌──────── month\n    #        │ │ │ │ ┌────── day (week)\n    - cron: '0 0 * * 0'\n\njobs:\n  github-collaborator-report:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n\n      - name: Get repo collaborator report\n        uses: nicklegan/github-org-repo-collaborator-action@v2.0.1\n        with:\n          token: ${{ secrets.ORG_TOKEN }}\n        # org: ''\n        # affil: 'ALL'\n        # permission: 'ADMIN'\n        # days: '90'\n        # json: 'FALSE'\n        # appid: ${{ secrets.APPID }}\n        # privatekey: ${{ secrets.PRIVATEKEY }}\n        # installationid: ${{ secrets.INSTALLATIONID }}\n```\n\n## GitHub secrets\n\n| Name                 | Value                                                             | Required |\n| :------------------- | :---------------------------------------------------------------- | :------- |\n| `ORG_TOKEN`          | A `user:email`, `repo`, `admin:org`scoped [Personal Access Token] | `true`   |\n| `ACTIONS_STEP_DEBUG` | `true` [Enables diagnostic logging]                               | `false`  |\n\n[personal access token]: https://github.com/settings/tokens/new?scopes=admin:org,repo,user:email\u0026description=Repo+Collaborator+Action 'Personal Access Token'\n[enables diagnostic logging]: https://docs.github.com/en/actions/managing-workflow-runs/enabling-debug-logging#enabling-runner-diagnostic-logging 'Enabling runner diagnostic logging'\n\n:bulb: Disable [token expiration](https://github.blog/changelog/2021-07-26-expiration-options-for-personal-access-tokens/) to avoid failed workflow runs when running on a schedule.\n\n:bulb: If the organization has SAML SSO enabled, make sure the personal access token is [authorized](https://docs.github.com/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on) to access the organization.\n\n## Action inputs\n\nIf the organization name in the workflow is left blank, the Action will generate a report for the organization the workflow is located in.\n\n| Name              | Description                                                         | Default                     | Options        | Required |\n| :---------------- | :------------------------------------------------------------------ | :-------------------------- | :------------- | :------- |\n| `org`             | Organization different than the default workflow context            |                             | [workflow.yml] | `false`  |\n| `permission`      | Permission to query for (ADMIN, MAINTAIN, WRITE, TRIAGE, READ, ALL) | `ADMIN`                     | [workflow.yml] | `false`  |\n| `affil`           | Collaborator type to query for (ALL, DIRECT, OUTSIDE)               | `ALL`                       | [workflow.yml] | `false`  |\n| `days`            | Amount of days to look back for contributions                       | `90`                        | [workflow.yml] | `false`  |\n| `json`            | Export an additional report in JSON format                          | `FALSE`                     | [workflow.yml] | `false`  |\n| `committer-name`  | The name of the committer that will appear in the Git history       | `github-actions`            | [action.yml]   | `false`  |\n| `committer-email` | The committer email that will appear in the Git history             | `github-actions@github.com` | [action.yml]   | `false`  |\n\n[workflow.yml]: #Usage 'Usage'\n[action.yml]: action.yml 'action.yml'\n\n## CSV layout\n\n| Column               | Description                                                                         |\n| :------------------- | :---------------------------------------------------------------------------------- |\n| Repository           | Repository the user is a collaborator of                                            |\n| Repo Visibility      | Private, public or internal repository visibility                                   |\n| Username             | GitHub username                                                                     |\n| Full name            | GitHub profile name                                                                 |\n| SSO email            | GitHub NameID email (only available if org SSO setting is enabled)                  |\n| Verified email       | GitHub verified domain email                                                        |\n| Public email         | GitHub account email                                                                |\n| Repo permission      | Repository permissions for the user                                                 |\n| Organization role    | Whether the user is a member, admin (org owner) or outside collaborator             |\n| Active contributions | If the user made contributions during the set interval                              |\n| Total contributions  | Total number of organization contributions made by the user during the set interval |\n| User created         | Date the user account was created                                                   |\n| User updated         | Date the user account settings were last updated                                    |\n| Organization         | Organization the repo belongs to                                                    |\n\n:bulb: A CSV report file will be saved in the repository reports folder using the following naming format: **`organization`-`affil`-`permission`-report.csv**.\n\n## GitHub App authentication\n\nAs an option you can use GitHub App authentication to generate the report.\n\n[Register](https://docs.github.com/developers/apps/building-github-apps/creating-a-github-app) a new organization/personal owned GitHub App with the below permissions:\n\n| GitHub App Permission                     | Access           |\n| :---------------------------------------- | :--------------- |\n| `Organization Permissions:Administration` | `read`           |\n| `Organization Permissions:Members`        | `read`           |\n| `Repository Permissions:Contents`         | `read and write` |\n| `User Permissions:Email addresses`        | `read`           |\n\nAfter registration install the GitHub App to your organization. Store the below App values as secrets.\n\n### GitHub App secrets\n\n| Name             | Value                             | Required |\n| :--------------- | :-------------------------------- | :------- |\n| `APPID`          | GitHub App ID number              | `true`   |\n| `PRIVATEKEY`     | Content of private key .pem file  | `true`   |\n| `INSTALLATIONID` | GitHub App installation ID number | `true`   |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicklegan%2Fgithub-org-repo-collaborator-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicklegan%2Fgithub-org-repo-collaborator-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicklegan%2Fgithub-org-repo-collaborator-action/lists"}