एडुआर्डो Aquiles के अनुसार, यदि आप HTTP NTLM प्रमाणीकरण (TeamCity 8.x NTLM HTTP Authentication) का समर्थन करने के लिए अपने TeamCity सर्वर को, आप /ntlmLogin.html यूआरएल से एक सत्र कुकी (TCSESSIONID) मिलता है और का उपयोग करें कि बाकी एपीआई के खिलाफ प्रमाणित करने के लिए कर सकते हैं।
मुझे बस निर्माण की पिन की स्थिति प्राप्त करने के समान कुछ करना पड़ा है।
function Get-TeamCityNtlmAuthCookie()
{
param([string] $serverUrl)
$url = "$serverUrl/ntlmLogin.html";
$cookies = new-object System.Net.CookieContainer;
$request = [System.Net.WebRequest]::Create($url);
$request.CookieContainer = $cookies;
$request.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials;
$request.PreAuthenticate = $true;
$response = $request.GetResponse();
return $cookies;
}
function Get-TeamCityBuildPinnedState()
{
param([string] $serverUrl, [string] $buildTypeId)
# get a session cookie to use with the rest api
$cookies = Get-TeamCityNtlmAuthCookie $serverUrl;
# query the rest api using the session cookie for authentication
$url = "$serverUrl/httpAuth/app/rest/builds/id:$buildTypeId/pin/";
$request = [System.Net.WebRequest]::Create($url);
$request.CookieContainer = $cookies;
$response = $request.GetResponse();
$stream = $response.GetResponseStream();
$reader = new-object System.IO.StreamReader($stream);
$text = $reader.ReadToEnd();
$reader.Close();
return [bool]::Parse($text);
}
$myServerUrl = "http://myTeamCityServer";
$myBuildId = "6";
$pinned = Get-TeamCityBuildPinnedState $myServerUrl $myBuildId;
write-host $pinned;
नोट:: यहाँ PowerShell मैं प्रयोग किया जाता है मुझे यकीन है कि अगर यह आधिकारिक तौर पर जेटब्रेन्स द्वारा समर्थित है नहीं कर रहा हूँ, तो आपको पता चल सकता है कि यह TeamCity के भविष्य के संस्करण में टूट जाता है, लेकिन यह अभी संस्करण 8.0.2 के खिलाफ काम करता है (27482 का निर्माण)।
आप उन्हें ताजा कैसे रखते हैं? – abourget
हम कुकी को ताज़ा कैसे रखते हैं? हम टीसी के साथ कोई दीर्घकालिक कनेक्शन नहीं कर रहे थे, इसलिए हमें इस बिंदु पर कभी नहीं मिला कि कुकी अब मान्य नहीं है। लेकिन अगर हमें करना पड़ा, तो हमें एक चेक करना होगा, और 401 के मामले में, हम फिर से प्रमाण पत्र भेजेंगे। बीटीडब्ल्यू, मैं टीमसिटी के साथ 2 साल से काम नहीं कर रहा हूं, इसलिए मुझे नहीं पता कि समाधान अभी भी लागू होता है या नहीं। –