{"id":19330704,"url":"https://github.com/versent/neil_challenge2","last_synced_at":"2026-03-19T09:19:43.534Z","repository":{"id":260194819,"uuid":"880582064","full_name":"Versent/neil_challenge2","owner":"Versent","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-30T01:16:05.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T07:13:04.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/Versent.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T01:15:22.000Z","updated_at":"2024-10-30T01:16:08.000Z","dependencies_parsed_at":"2024-10-30T04:13:48.677Z","dependency_job_id":null,"html_url":"https://github.com/Versent/neil_challenge2","commit_stats":null,"previous_names":["versent/neil_challenge2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Versent/neil_challenge2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fneil_challenge2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fneil_challenge2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fneil_challenge2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fneil_challenge2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Versent","download_url":"https://codeload.github.com/Versent/neil_challenge2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Versent%2Fneil_challenge2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29969243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T11:43:06.159Z","status":"ssl_error","status_checked_at":"2026-03-01T11:43:03.887Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-10T02:37:40.444Z","updated_at":"2026-03-01T12:33:30.225Z","avatar_url":"https://github.com/Versent.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Challenge description:\n\n    Create an S3 bucket in Versent innovation-shared account with the standard security attributes (encryption at rest, encryption at transfer, private access, etc).\n\n    Using GitHub Workflow Actions, create workflow that will push your code to an S3 bucket in Versent innovation-shared account to a specific S3 path (e.g. s3://mybucket-abc123/haris/challenge2.zip).\n\n    Create a CodePipeline pipeline with the following general specifications:\n\n        Source is the zip file you pushed to the S3 bucket.\n\n        It will have three parameters: dev_env, uat_env, prod_env.\n\n        The pipeline will use the combination of the zip file and the parameters to run three stages, each will deploy an SSM parameter with different name, which represents CI/CD stages deployment to different environments, e.g. dev, uat, and prod.\n\n        The name of the SSM parameters  should follow this pattern:\n        /\u003cprefix of your choice\u003e/dev\n        /\u003cprefix of your choice\u003e/uat\n        /\u003cprefix of your choice\u003e/prod\n        With the value from dev_env pipeline parameter will be stored in /\u003cprefix of your choice\u003e/dev SSM parameter, and so on.\n\n        The stages for the CodePipeline pipeline will look like:\n        Source → Deploy to Dev → Deploy to UAT → Deploy to Prod\n        Deploy to Dev will only deploy the SSM Parameter /\u003cprefix of your choice\u003e/dev\n        Deploy to UAT will only deploy the SSM Parameter /\u003cprefix of your choice\u003e/uat\n        Deploy to Prod will only deploy the SSM Parameter /\u003cprefix of your choice\u003e/prod\n\n    Create another GitHub Workflow Actions that can capture the input from user as variables dev_input, uat_input, prod_input , and start the CodePipeline pipeline from the previous step passing these variables for the pipeline variables, with value from dev_input will be used for dev_env, uat_input will be used for uat_env, prod_input will be used for prod_env.\n\n    To create/update the SSM parameter from your CodePipeline you can use any tools that you can think of. CloudFormation with AWS CLI, CloudFormation with sceptre, CloudFormation with CodePipeline deploy action, Terraform, Ansible, or even AWS CLI for SSM. Just make sure if we run it multiple times it will not crash, and the SSM parameters will have the expected value.\n\n    Ensure others can run your GitHub Workflow Actions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversent%2Fneil_challenge2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fversent%2Fneil_challenge2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversent%2Fneil_challenge2/lists"}