{"id":31753740,"url":"https://github.com/servicenow/securityresearch","last_synced_at":"2025-10-09T17:54:02.721Z","repository":{"id":292185568,"uuid":"836441217","full_name":"ServiceNow/SecurityResearch","owner":"ServiceNow","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-08T15:27:14.000Z","size":123,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-08T15:38:30.150Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/ServiceNow.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,"zenodo":null}},"created_at":"2024-07-31T21:23:19.000Z","updated_at":"2025-05-08T15:27:17.000Z","dependencies_parsed_at":"2025-05-08T15:51:15.164Z","dependency_job_id":null,"html_url":"https://github.com/ServiceNow/SecurityResearch","commit_stats":null,"previous_names":["servicenow/securityresearch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ServiceNow/SecurityResearch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ServiceNow%2FSecurityResearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ServiceNow%2FSecurityResearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ServiceNow%2FSecurityResearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ServiceNow%2FSecurityResearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ServiceNow","download_url":"https://codeload.github.com/ServiceNow/SecurityResearch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ServiceNow%2FSecurityResearch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001805,"owners_count":26083197,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-10-09T17:54:00.190Z","updated_at":"2025-10-09T17:54:02.714Z","avatar_url":"https://github.com/ServiceNow.png","language":"Java","readme":"# Security Research\n\nThis repo contains the code/data from multiple projects produced by the Security Research team at ServiceNow. The associated blog posts of these project can be found [here](https://securitylab.servicenow.com/research/).\n\n## Adding Projects\n\nEach project added should be in its own directory. If the project being added is contained within its own git repo and all files within the repo can be published publicly, use `git subtree` to add the project to this repo. This allows any changes to the project be easily pushed to this repo in the future. Otherwise, manually create the directory and copy the files over to this repo.\n\n```bash\n## Add a new project to this repo using subtree\n\n# Add the project repo as a remote for this repo\ngit remote add -f [remote-name] [git@remote-path.git]\n# Add the project at [remote-name] [remote-branch] to this repo under the folder [folder-name]\n# This is will only include files from [remote-name] [remote-branch], no commits will be copied over\n# To credit someone else as author of the squash commit, prefix the git subtree command with GIT_AUTHOR_NAME=\"Firstname Lastname\" GIT_AUTHOR_EMAIL=\"firstname.lastname@servicenow.com\"\ngit subtree add --prefix [folder-name] [remote-name] [remote-branch] --squash\n\n## Update an existing project in this repo that was added using subtree\n\n# Grab the new data from [remote-name] [remote-branch]\ngit fetch [remote-name] [remote-branch]\n# Merge the project at [remote-name] [remote-branch] to this repo under the folder [folder-name]\n# This is will only include files from [remote-name] [remote-branch], no commits will be copied over\n# To credit someone else as author of the squash commit, prefix the git subtree command with GIT_AUTHOR_NAME=\"Firstname Lastname\" GIT_AUTHOR_EMAIL=\"firstname.lastname@servicenow.com\"\ngit subtree pull --prefix [folder-name] [remote-name] [remote-branch] --squash\n```\n\n## (Normal User) Publishing to the Public Repo\n\n1. Clone the internal repo using: \n    ```\n    git clone [internal-repo-path]\n    ```\n2. Make the necessary modifications to the `main` local branch that was just cloned.\n3. Add and commit all modifications to the `main` local branch. This may have been done already if you used the subtree commands above.\n    ```\n    git add -A; git commit -m \"bla\"\n    ```\n4. Push all modifications to the `main` remote branch.\n    ```\n    git push\n    ```\n5. Ask an admin to merge the main branch into the publish branch and push the changes to the external repo.\n\n## (Admin) Publishing to the Public Repo\n1. Clone the internal repo using: \n    ```\n    git clone [internal-repo-path]\n    ```\n2. Checkout the publish branch.\n    ```\n    git checkout publish\n    ```\n3. Merge the commits from main into the publish branch and push the changes up to the internal repo.\n    ```\n    # To credit someone else as author of the squash commit, prefix the git merge command with GIT_AUTHOR_NAME=\"Firstname Lastname\" GIT_AUTHOR_EMAIL=\"firstname.lastname@servicenow.com\"\n    git merge main --strategy-option theirs --squash\n    git commit -m \"merging changes\"\n    git push\n    ```\n4. Add the external repo as a remote and fetch its branches.\n    ```\n    git remote add publish git@github.com:ServiceNow/SecurityResearch.git\n    git fetch publish\n    ```\n5. Push the publish branch to the external repo's main branch.\n    ```\n    git push publish publish:main\n    ```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fservicenow%2Fsecurityresearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fservicenow%2Fsecurityresearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fservicenow%2Fsecurityresearch/lists"}