{"id":21700569,"url":"https://github.com/helaili/hubot-github-tfs","last_synced_at":"2026-02-16T00:32:10.193Z","repository":{"id":78363833,"uuid":"56068107","full_name":"helaili/hubot-github-tfs","owner":"helaili","description":"Hubot Script to interact with TFS","archived":false,"fork":false,"pushed_at":"2016-06-10T12:29:43.000Z","size":80,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-08T16:40:28.740Z","etag":null,"topics":["hubot","hubot-script","tfs"],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/helaili.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-04-12T14:02:35.000Z","updated_at":"2021-11-30T16:23:04.000Z","dependencies_parsed_at":"2023-05-26T14:00:41.220Z","dependency_job_id":null,"html_url":"https://github.com/helaili/hubot-github-tfs","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/helaili/hubot-github-tfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helaili%2Fhubot-github-tfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helaili%2Fhubot-github-tfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helaili%2Fhubot-github-tfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helaili%2Fhubot-github-tfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/helaili","download_url":"https://codeload.github.com/helaili/hubot-github-tfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/helaili%2Fhubot-github-tfs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29494988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T00:16:34.147Z","status":"ssl_error","status_checked_at":"2026-02-16T00:15:26.759Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["hubot","hubot-script","tfs"],"created_at":"2024-11-25T20:14:40.598Z","updated_at":"2026-02-16T00:32:10.174Z","avatar_url":"https://github.com/helaili.png","language":"CoffeeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/helaili/hubot-github-tfs.svg?branch=master)](https://travis-ci.org/helaili/hubot-github-tfs)\n\n# hubot-github-tfs\n\nA Hubot script to integrate GitHub and Microsoft Team Foundation Server (TFS).\nYou can now automatically trigger a TFS build following a push on a pull request and get the build result back.\n\n## Installation\n\n- In hubot project repo, run:\n\n`npm install hubot-github-tfs --save`\n\n- Then add **hubot-github-tfs** to your `external-scripts.json`:\n\n```json\n[\n  \"hubot-github-tfs\"\n]\n```\n\n- Set the following environment variables in the shell where Hubot is running\n\n| Variable | Required/Optional | Comments |\n|----------|---------|----------|\n|HUBOT_TFS_SERVER|required|Ip or DNS name of the TFS server|\n|HUBOT_TFS_USERNAME|required|TFS username|\n|HUBOT_TFS_PASSWORD|required|Password of the TFS user|\n|HUBOT_TFS_GITHUB_PAT|optional|Personal Access Token of the GitHub user with repo:status permission. This will be used to update the pull request status.|\n|HUBOT_TFS_PROTOCOL|optional|default to `https`|\n|HUBOT_TFS_PORT|optional|default to `80` for `http` and `443` for `https`|\n|HUBOT_TFS_URL_PREFIX|optional|default to `/`|\n|HUBOT_TFS_DEFAULT_COLLECTION|optional|default to `defaultcollection`|\n\n- Create a webhook on your GitHub repo for the *Push* event with the following URL :\n```\nhttp://\u003chubot_server\u003e/hubot/github-tfs/build/\u003croom\u003e\n```\n\n- Create a webhook on TFS with the following URL so Hubot can receive the notification back\n```\nhttp://\u003chubot_server\u003e/hubot/github-tfs/build-result/\u003croom\u003e\n```\n\n- Make sure the IIS server running TFS has basic authentication enabled. \n\n## Sample Interactions\n\n\n#### Get some help\n\n```\n**user1**\u003e\u003e hubot tfs-build help\n**hubot**\u003e\u003eHere's what I can do with TFS builds :\ntfs-build list builds for \u003cproject\u003e\ntfs-build list builds for \u003cproject\u003e from \u003ccollection\u003e\ntfs-build queue \u003cproject\u003e with def=\u003cdefinition id\u003e\ntfs-build queue \u003cproject\u003e from \u003ccollection\u003e with def=\u003cdefinition id\u003e branch=\u003cbranch name\u003e\ntfs-build list definitions for \u003cproject\u003e\ntfs-build list definitions for \u003cproject\u003e from \u003ccollection\u003e\ntfs-build rem all\ntfs-build rem about \u003corg\u003e/\u003crepo\u003e\ntfs-build forget about \u003corg\u003e/\u003crepo\u003e\ntfs-build rem \u003corg\u003e/\u003crepo\u003e builds with \u003cproject\u003e/\u003cdefinition id\u003e\ntfs-build rem \u003corg\u003e/\u003crepo\u003e builds with \u003cproject\u003e/\u003cdefinition id\u003e from \u003ccollection\u003e\n```\n\n#### List builds\n```\n**user1**\u003e\u003e hubot tfs-build list builds for SpidersFromMars\n**hubot**\u003e\u003e\n----------------------------------------------------------------------------------------\n| Build       | Status   | Result  | Branch             | Definition                   |\n----------------------------------------------------------------------------------------\n|20160407.2   |completed |succeeded|master              |SpidersFromMars on github.com |\n|20160407.1   |completed |failed   |master              |SpidersFromMars on github.com |\n|20160331.19  |completed |succeeded|master              |SpidersFromMars on Octodemo   |\n|20160331.18  |completed |failed   |master              |SpidersFromMars on Octodemo   |\n|20160331.17  |completed |succeeded|syntaxerror         |SpidersFromMars on Octodemo   |\n|20160331.16  |completed |failed   |synataxerror        |SpidersFromMars on Octodemo   |\n----------------------------------------------------------------------------------------\n\n```\n\n#### List build definitions for a project\n```\n**user1**\u003e\u003e hubot tfs-build list definitions for SpidersFromMars\n**hubot**\u003e\u003e Found 1 results for SpidersFromMars in\n**hubot**\u003e\u003e\n--------------------------------------\n| ID  | Name                         |\n--------------------------------------\n|1    |SpidersFromMars on Octodemo   |\n--------------------------------------\n```\n\n#### Remind me which build definition is used to automatically trigger the build of a repository\n```\n**user1**\u003e\u003e hubot tfs-build rem about OctoCheese/SpidersFromMars\n**hubot**\u003e\u003e OctoCheese/SpidersFromMars builds with defaultcollection/SpidersFromMars/1\n```\n\n#### Automatically build in TFS following a push in GitHub\n```\n**user1**\u003e\u003e hubot tfs-build rem OctoCheese/SpidersFromMars builds with SpidersFromMars/1\n**hubot**\u003e\u003e Saved build setting for SpidersFromMars. Now building with defaultcollection/SpidersFromMars/1\n```\n*Note* : The build definition id ```1``` was retrieved with the ```list definitions``` command\n\nWhenever a push happens on this repo, Hubot will comment in the room specified in the webhook URL and trigger the registered build.\n\n```\n**hubot**\u003e\u003e @helaili just pushed code on OctoCheese/SpidersFromMars/testTFS. Requesting a TFS build with defaultcollection/SpidersFromMars/1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelaili%2Fhubot-github-tfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelaili%2Fhubot-github-tfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelaili%2Fhubot-github-tfs/lists"}