{"id":18889764,"url":"https://github.com/scottlogic/gitlab-cla-bot","last_synced_at":"2026-02-25T09:30:21.332Z","repository":{"id":42290877,"uuid":"234272802","full_name":"ScottLogic/gitlab-cla-bot","owner":"ScottLogic","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-24T01:31:33.000Z","size":1160,"stargazers_count":1,"open_issues_count":33,"forks_count":1,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-12-31T06:12:07.674Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ScottLogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-16T08:35:51.000Z","updated_at":"2020-03-23T14:50:16.000Z","dependencies_parsed_at":"2023-01-31T17:16:35.542Z","dependency_job_id":null,"html_url":"https://github.com/ScottLogic/gitlab-cla-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Fgitlab-cla-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Fgitlab-cla-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Fgitlab-cla-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ScottLogic%2Fgitlab-cla-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ScottLogic","download_url":"https://codeload.github.com/ScottLogic/gitlab-cla-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239861126,"owners_count":19709162,"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":[],"created_at":"2024-11-08T07:50:49.323Z","updated_at":"2026-02-25T09:30:21.270Z","avatar_url":"https://github.com/ScottLogic.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gitlab-cla-bot\n\nPre-requisites:\n- AWS account\n- gitlab repo \u0026 access to it\n\nSet-up:\n- Get a personal access token for the repo you wish to run against\n- Set the variable `gitlabToken` in index.js to your gitlab personal access token\n- install and run the AWS sdk locally to create a node_modules in src\n\nTo deploy manually\n- zip the contents of src\n- create a lambda in the AWS console\n- upload your zip file as lambda content\n- create an open API gateway, set it to receive POST requests, and note down the endpoint given\n\nTo deploy using serverless:\n- install serverless (available via npm and choco)\n- set up an appropriate IAM user (see below) in your AWS account and obtain a key and secret\n- set up AWS credentials locally with \n`serverless config credentials --provider aws --key AKIAIOSFODNN7EXAMPLE --secret wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`\nSee the guide at https://serverless.com/framework/docs/providers/aws/guide/credentials/ for more detail and alternative ways to do this\n- Run serverless deploy and note down the endpoint given\n- Logs can be found in AWS Lambda -\u003e Monitoring\n\nTo hook into Gitlab:\n- Go to Settings-\u003eIntegrations in Gitlab\n- Add a new webhook triggered by `Comments` and `Merge request events`. Hook URL should be the endpoint you've noted down. Untick security options\n- Click Test-\u003e`Note events` or `Merge requests events`\n- Result should appear at the top of the page: ![Gitlab success message](./gitlab-success-message.PNG)\n- Add a `.clabot` file in the root of the project with a whitelist of the gitlab usernames that are cla-signed:\n```\n{\n  \"contributors\": [\"\u003cgitlab-username\u003e\"]\n}\n```\n- Create a merge request or make a comment including the text \"@gitlab-cla-bot check\" on a merge request and the bot should respond.\n\nIAM user permissions required (see https://github.com/serverless/serverless/issues/1674):\n- \"cloudformation:CreateStack\",\n- \"cloudformation:DescribeStacks\",\n- \"cloudformation:DescribeStackResources\",\n- \"cloudformation:UpdateStack\",\n- \"cloudformation:ListStacks\",\n- \"iam:GetRole\",\n- \"lambda:UpdateFunctionCode\",\n- \"lambda:UpdateFunctionConfig\",\n- \"lambda:GetFunctionConfiguration\",\n- \"lambda:AddPermission\",\n- \"s3:DeleteObject\",\n- \"s3:GetObject\",\n- \"s3:ListBucket\",\n- \"s3:PutObject\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Fgitlab-cla-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottlogic%2Fgitlab-cla-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottlogic%2Fgitlab-cla-bot/lists"}