github-collaborator-manager | A tool to manage GitHub repo collaborators with files
kandi X-RAY | github-collaborator-manager Summary
kandi X-RAY | github-collaborator-manager Summary
github-collaborator-manager is a Python library. github-collaborator-manager has no bugs, it has no vulnerabilities, it has build file available, it has a Strong Copyleft License and it has low support. You can download it from GitHub.
GitHub Collaborator Manager (GCM) allows you to create a file in each of your private repos which lists the collaborators that that repo should have. These collaborator files can list either GitHub users, or other repos which have collaborator files in them so that you can set a repo to have the same collaborators as another repo. Each time a collaborator file is updated, AWS Lambda updates the GitHub settings for that repo (and all dependent repos) to reflect the added or removed collaborators.
GitHub Collaborator Manager (GCM) allows you to create a file in each of your private repos which lists the collaborators that that repo should have. These collaborator files can list either GitHub users, or other repos which have collaborator files in them so that you can set a repo to have the same collaborators as another repo. Each time a collaborator file is updated, AWS Lambda updates the GitHub settings for that repo (and all dependent repos) to reflect the added or removed collaborators.
Support
Quality
Security
License
Reuse
Support
github-collaborator-manager has a low active ecosystem.
It has 78 star(s) with 5 fork(s). There are 5 watchers for this library.
It had no major release in the last 6 months.
There are 3 open issues and 1 have been closed. There are no pull requests.
It has a neutral sentiment in the developer community.
The latest version of github-collaborator-manager is current.
Quality
github-collaborator-manager has 0 bugs and 0 code smells.
Security
github-collaborator-manager has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
github-collaborator-manager code analysis shows 0 unresolved vulnerabilities.
There are 0 security hotspots that need review.
License
github-collaborator-manager is licensed under the AGPL-3.0 License. This license is Strong Copyleft.
Strong Copyleft licenses enforce sharing, and you can use them when creating open source projects.
Reuse
github-collaborator-manager releases are not available. You will need to build from source code and install.
Build file is available. You can build the component from source.
Installation instructions, examples and code snippets are available.
github-collaborator-manager saves you 85 person hours of effort in developing the same functionality from scratch.
It has 219 lines of code, 6 functions and 2 files.
It has low code complexity. Code complexity directly impacts maintainability of the code.
Top functions reviewed by kandi - BETA
kandi has reviewed github-collaborator-manager and discovered the below as its top functions. This is intended to give you an instant insight into github-collaborator-manager implemented functionality, and help decide if they suit your requirements.
- Fetch a list of collaborators .
- Returns a list of the collaborators for the given repo .
- Process AWS Lambda Event .
- Get the collaborator file associated with a repository .
- Validate and return the owner and repo name .
- Convert seconds to timestamps .
Get all kandi verified functions for this library.
github-collaborator-manager Key Features
No Key Features are available at this moment for github-collaborator-manager.
github-collaborator-manager Examples and Code Snippets
No Code Snippets are available at this moment for github-collaborator-manager.
Community Discussions
No Community Discussions are available at this moment for github-collaborator-manager.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install github-collaborator-manager
Provision a GitHub personal token with repo scope permissions.
Provision a GitHub personal token with repo scope permissions.
Create a config.yaml with GitHub personal token. The file would look like this: github_token: 0123456789abcdef0123456789abcdef01234567
Zip up github_collaborator_manager, it's dependencies and the config.yaml tmpdir=`mktemp -d` pip install agithub PyYAML python-dateutil --target "$tmpdir" cwd=`pwd` pushd "$tmpdir" zip -r "${cwd}/github_collaborator_manager.zip" * popd rm -rf "$tmpdir" zip --junk-paths github_collaborator_manager.zip github_collaborator_manager/__init__.py chmod 644 github_collaborator_manager/config.yaml;zip --junk-paths github_collaborator_manager.zip github_collaborator_manager/config.yaml;chmod 600 github_collaborator_manager/config.yaml
Create an AWS IAM role to be used by a AWS Lambda function with LambdaBasicExecution echo '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["lambda.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}' | aws iam create-role --role-name github-collaborator-manager --assume-role-policy-document file:///dev/stdin aws iam attach-role-policy --role-name github-collaborator-manager --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Deploy the zip artifact to Lambda role_arn="`aws iam get-role --role-name github-collaborator-manager --output text --query 'Role.Arn'`" lambda_arn="`aws lambda create-function --function-name github-collaborator-manager --runtime python2.7 --timeout 30 --role $role_arn --handler __init__.lambda_handler --zip-file fileb://github_collaborator_manager.zip --query 'FunctionArn' --output text`" echo "Created Lambda function $lambda_arn"
Create SNS Topic topic_arn=`aws sns create-topic --name GithubWebhookTopic --output text --query 'TopicArn'` aws sns create-topic --name GithubWebhookTopic --output table --query '{"Sns topic":TopicArn}' a=(${topic_arn//:/ });echo "Sns region : ${a[3]}"
Update Lambda function resource policy to grant SNS rights to invoke it aws lambda add-permission --function-name github-collaborator-manager --statement-id GiveSNSPermissionToInvokeFunction --action lambda:InvokeFunction --principal sns.amazonaws.com --source-arn $topic_arn
Subscribe the Lambda function to the SNS topic aws sns subscribe --topic-arn $topic_arn --protocol lambda --notification-endpoint $lambda_arn
Create IAM User to be used by GitHub aws iam create-user --user-name github-sns-publisher echo "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Action\": [\"sns:Publish\"],\"Resource\": [\"${topic_arn}\"],\"Effect\": \"Allow\"}]}" | aws iam put-user-policy --user-name github-sns-publisher --policy-name PublishToSNS --policy-document file:///dev/stdin aws iam create-access-key --user-name github-sns-publisher --output table --query 'AccessKey.{"Aws Key":AccessKeyId, "Aws secret":SecretAccessKey}'
Provision a GitHub personal token with repo scope permissions.
Create a config.yaml with GitHub personal token. The file would look like this: github_token: 0123456789abcdef0123456789abcdef01234567
Zip up github_collaborator_manager, it's dependencies and the config.yaml tmpdir=`mktemp -d` pip install agithub PyYAML python-dateutil --target "$tmpdir" cwd=`pwd` pushd "$tmpdir" zip -r "${cwd}/github_collaborator_manager.zip" * popd rm -rf "$tmpdir" zip --junk-paths github_collaborator_manager.zip github_collaborator_manager/__init__.py chmod 644 github_collaborator_manager/config.yaml;zip --junk-paths github_collaborator_manager.zip github_collaborator_manager/config.yaml;chmod 600 github_collaborator_manager/config.yaml
Create an AWS IAM role to be used by a AWS Lambda function with LambdaBasicExecution echo '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["lambda.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}' | aws iam create-role --role-name github-collaborator-manager --assume-role-policy-document file:///dev/stdin aws iam attach-role-policy --role-name github-collaborator-manager --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Deploy the zip artifact to Lambda role_arn="`aws iam get-role --role-name github-collaborator-manager --output text --query 'Role.Arn'`" lambda_arn="`aws lambda create-function --function-name github-collaborator-manager --runtime python2.7 --timeout 30 --role $role_arn --handler __init__.lambda_handler --zip-file fileb://github_collaborator_manager.zip --query 'FunctionArn' --output text`" echo "Created Lambda function $lambda_arn"
Create SNS Topic topic_arn=`aws sns create-topic --name GithubWebhookTopic --output text --query 'TopicArn'` aws sns create-topic --name GithubWebhookTopic --output table --query '{"Sns topic":TopicArn}' a=(${topic_arn//:/ });echo "Sns region : ${a[3]}"
Update Lambda function resource policy to grant SNS rights to invoke it aws lambda add-permission --function-name github-collaborator-manager --statement-id GiveSNSPermissionToInvokeFunction --action lambda:InvokeFunction --principal sns.amazonaws.com --source-arn $topic_arn
Subscribe the Lambda function to the SNS topic aws sns subscribe --topic-arn $topic_arn --protocol lambda --notification-endpoint $lambda_arn
Create IAM User to be used by GitHub aws iam create-user --user-name github-sns-publisher echo "{\"Version\": \"2012-10-17\",\"Statement\": [{\"Action\": [\"sns:Publish\"],\"Resource\": [\"${topic_arn}\"],\"Effect\": \"Allow\"}]}" | aws iam put-user-policy --user-name github-sns-publisher --policy-name PublishToSNS --policy-document file:///dev/stdin aws iam create-access-key --user-name github-sns-publisher --output table --query 'AccessKey.{"Aws Key":AccessKeyId, "Aws secret":SecretAccessKey}'
Support
For any new features, suggestions and bugs create an issue on GitHub.
If you have any questions check and ask questions on community page Stack Overflow .
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page