рдЕрдХреНрд╕рд░, рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЪреЗрдХ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдпрдорд┐рдд рдЬрд╛рдВрдЪ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреБрдЫ рдЬрд╛рдВрдЪ рдкреАрдЖрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреА рдЪрд┐рдВрддрд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЕрдиреНрдп - рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдЬреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирддреА рд╣реИрдВред
рдпрджрд┐ рдирд┐рдпрдорд┐рдд рдЬрд╛рдВрдЪ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЙрдиреНрд╣реЗрдВ рднреВрд▓рдирд╛ рдпрд╛ рд░реЛрдХрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рджрд┐рдирдЪрд░реНрдпрд╛ рдЙрдмрд╛рдК рд╣реИред
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдореЗрдВ рдХрд╕реНрдЯрдо рдорд░реНрдЬ рдиреАрддрд┐рдпрд╛рдВ, рд╕рдореАрдХреНрд╖рдХреЛрдВ рдХреА рдирд┐рдпреБрдХреНрддрд┐, рд╕реНрд╡реАрдХреГрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдорд░реНрдЬ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рд╕рдм рдХреЛрдб рдкрд░ рдЪрд░реНрдЪрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдкреВрд░рд┐рдд рд╣реИред
рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдмрд╛рд╣рд░реА рдкреНрд▓рдЧ-рдЗрди рдиреАрддрд┐рдпрд╛рдВ рд╣реИрдВред
рд╣рдо рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ (рдФрд░ рдХреЛрдб рджреЗрдЦреЗрдВ)
рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдЕрдиреБрд░реЛрдз рдЕрдиреБрд░реЛрдз рдХрд╝рд╛рдиреВрди
рдкреАрдЖрд░ рд╕реНрдерд┐рддрд┐ рд╕рдВрджрд░реНрдн рдХреЗ рднреАрддрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЭрдВрдбреЗ рд╣реИрдВред рд╕рдВрджрд░реНрдн - рд╕рдВрджрд░реНрдн рдФрд░ "рд╢реИрд▓реА" рдХреЗ рдирд╛рдо рдХрд╛ рдПрдХ рдЕрдиреВрдард╛ рд╕рдВрдпреЛрдЬрдиред рд╢реИрд▓реА рдЖрдорддреМрд░ рдкрд░ рдкреНрд░рддрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╣реИ рдЬреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рд╕реНрдерд┐рддрд┐ 1: рд╢реИрд▓реА = 'рдореЗрд░реА рдиреАрддрд┐', рдирд╛рдо = 'рдЪреЗрдХ -1'
рд╕реНрдерд┐рддрд┐ 2: рд╢реИрд▓реА = 'рдореЗрд░реА рдиреАрддрд┐', рдирд╛рдо = 'рдЪреЗрдХ -2'
рд╕реНрдерд┐рддрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓реЗрддреА рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ, рд╣рдо рджреЛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдВрдЧреЗ: рд╕рдлрд▓ рдФрд░ рдЕрд╕рдлрд▓ред
рд╕реНрдЯреЗрдЪреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд░рдВрдЪ рдкреЙрд▓рд┐рд╕реА рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЪрдпрдирд┐рдд рдЭрдВрдбреЗ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╕рдлрд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЙрд╕реА рддрд░рд╣, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рдВрд▓рдЧреНрди рдЯрд┐рдХрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрджрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рд╢рд╛рдЦрд╛ рдиреАрддрд┐ рдХреЗ рд╕рдВрдкрд╛рджрди рдкрд░ рдЬрд╛рдПрдВред рд╡рд┐рджреЗрд╢ рдиреАрддрд┐ рдЬреЛрдбрд╝реЗрдВред

рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИ, рддреЛ рдпрд╣ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
рддрд▓ рдкрд░, рдЖрдк рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реАрд░реНрд╖рдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЪреЗрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреГрд╖реНрда рдкрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕реНрдЯреЗрдЯрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:

рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдХреЛ рдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди рд╕реНрдерд┐рддрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдПрдХ рдиреАрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдмреНрд▓реЙрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рдмрдВрдзрди
PR рд╕реНрдЯреЗрдЯрд╕ рдХреЛ REST API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдореИрдирд┐рдкреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреАрдЖрд░ рдЪреЗрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реАрдзреЗ рдЙрдирдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдирдИ рд╕реНрдерд┐рддрд┐ рдорд╛рди рдмрдирд╛рдПрдБ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдФрд░ рд╕рдВрджрд░реНрдн рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрд╕ рдкрд╛рда рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦрддрд╛ рд╣реИред рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ URL рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреАрдЖрд░ рдлреЙрд░реНрдо рдкрд░ рд╕реНрдерд┐рддрд┐ рд▓реЗрдмрд▓ рдПрдХ рд▓рд┐рдВрдХ рдмрди рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд┐рддрд┐ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдирдП PR рд╕реНрдерд┐рддрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЕрдВрддрд┐рдо рдЬреЛрдбрд╝рд╛ рд╕реНрдерд┐рддрд┐ рдорд╛рди рд╕рдХреНрд░рд┐рдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ UI рд╕реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд┐рдЫрд▓реА рддрд╕реНрд╡реАрд░ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП, рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реВрдЪреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛ рд╕рдХрддреА рд╣реИ:
{ "value": [ { "id": 1, "state": "failed", "description": "PR title format", "context": "@{name=check-title; genre=my-pr-policy}", "creationDate": "2018-11-06T18:35:57.0324172Z", "updatedDate": "2018-11-06T18:35:57.0324172Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 2, "state": "failed", "description": "Build for last update", "context": "@{name=check-build; genre=my-pr-policy}", "creationDate": "2018-11-06T18:35:57.5167963Z", "updatedDate": "2018-11-06T18:35:57.5167963Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 3, "state": "succeeded", "description": "No offset from develop", "context": "@{name=check-offset; genre=my-pr-policy}", "creationDate": "2018-11-06T18:35:57.782379Z", "updatedDate": "2018-11-06T18:35:57.782379Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 4, "state": "succeeded", "description": "PR title format", "context": "@{name=check-title; genre=my-pr-policy}", "creationDate": "2018-11-06T18:46:37.2627154Z", "updatedDate": "2018-11-06T18:46:37.2627154Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 5, "state": "succeeded", "description": "Build for last update", "context": "@{name=check-build; genre=my-pr-policy}", "creationDate": "2018-11-06T18:51:33.7920543Z", "updatedDate": "2018-11-06T18:51:33.7920543Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 6, "state": "failed", "description": "PR title format", "context": "@{name=check-title; genre=my-pr-policy}", "creationDate": "2018-11-06T18:53:44.3075889Z", "updatedDate": "2018-11-06T18:53:44.3075889Z", "createdBy": "Masked value", "targetUrl": null }, { "id": 7, "state": "failed", "description": "Title format is not correct", "context": "@{name=check-title; genre=my-pr-policy}", "creationDate": "2018-11-06T19:26:11.3019433Z", "updatedDate": "2018-11-06T19:26:11.3019433Z", "createdBy": "Masked value", "targetUrl": null } ], "count": 7 }
рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реВрдЪреА рдореЗрдВ рдЪрдпрдирд┐рдд рдПрдХ рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрджреНрдпрддрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдВрдд рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рдбрд┐рд▓реАрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреАрдЖрд░ рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
- рдЙрд╕реА рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рд╕реНрдерд┐рддрд┐ рд░рд┐рдХреЙрд░реНрдб рдвреВрдВрдвреЗрдВ
- рдпрджрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд╛рди, рд╡рд┐рд╡рд░рдг рдФрд░ рд▓рд┐рдВрдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
- рдЕрдиреНрдпрдерд╛, рдПрдХ рдирдпрд╛ рд╕реНрдЯреЗрдЯрд╕ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рдЖрдкрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдЗрд╕реЗ рдмрд╣реБрдд рдмрдврд╝рд╛рдХрд░ред
function Set-PullRequestStatus { param( [Parameter (Mandatory = $true)] [string] $pullRequestId, [Parameter (Mandatory = $true)] [string] $state, [Parameter (Mandatory = $true)] [string] $description, [Parameter (Mandatory = $true)] [string] $contextName, [Parameter (Mandatory = $false)] [string] $contextGenre, [Parameter (Mandatory = $false)] [string] $targetUrl, [Parameter (Mandatory = $true)] [object] $context ) $b = @{ state = $state; description = $description; context = @{ name = $contextName; genre = $contextGenre; }; targetUrl = $targetUrl; } $body = ConvertTo-Json $b # # Get current list of statuses # $endpoint = (Get-ProjectBaseURL) + "/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/statuses?api-version=4.1-preview.1" $res = Get-AzureRequestReqults -URI $endpoint -context ($context + @{pullRequestId = $pullRequestId}) # # Try to find a status for a given context genre and name. Start looking from the last one. If found - check if it has same values. # $i = $res.count $foundSameStatus = $false while ($i -GT 0) { $r = $res.value[$i-1] if (($r.context.name -EQ $contextName) -AND ($r.context.genre -EQ $contextGenre)) { $foundSameStatus = ($r.state -EQ $state) -AND ($r.description -EQ $description) -AND ($r.targetUrl -EQ $targetUrl) break } $i-- } $res = $r # # If same status / values was not found - add new record. # if (-not $foundSameStatus) { $endpoint = (Get-ProjectBaseURL) + "/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/statuses?api-version=4.1-preview.1" $res = Get-AzureRequestReqults -URI $endpoint -context ($context + @{pullRequestId = $pullRequestId}) -method POST -query $body } return @{status = $res; status_changed = $(-not $foundSameStatus)} }
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ
рд╣рдордиреЗ рдПрдХреАрдХрд░рдг рд╢рд╛рдЦрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдкрдирд╛рдпрд╛ рд╣реИред рд╣рдо рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдкрд░ рдЕрдзрд┐рдХрддрдо рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдХрд╕реНрдЯрдо рдиреАрддрд┐рдпреЛрдВ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдХреБрдЫ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо PR рд╕реНрдЯреЗрдЯрд╕ рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ:
- рд╕рднреА рдкреАрдЖрд░ рдХреЛ рдПрдХ рд╣реА рд╢реИрд▓реА рдореЗрдВ рд╕рдЬрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдЬреЛ рдкрд╣рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ рдкреАрдЖрд░ рд╣реЗрдбрд░ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИред рд╣рдо рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВред
- рдкреАрдЖрд░ рд╢рд╛рдЦрд╛ рдХреЛ рдЙрд╕ рд╢рд╛рдЦрд╛ рдХреЗ рдкреАрдЫреЗ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
- рдпрджрд┐, рдкреАрдЖрд░ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рднреА рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╢рд╛рдЦрд╛ рдХреА рдПрдХ рд╕рдлрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╣реИред
- рдЗрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░реАрдХреНрд╖рдг рдмреЗрдВрдЪ рдкрд░ рднреЗрдЬрд╛ рдЧрдпрд╛ рдФрд░ рдСрдЯреЛ рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд┐рдП рдЧрдПред
рд╕реВрдЪреАрдмрджреНрдз рд╢рд░реНрддреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рднреА рдРрд╕рд╛ рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рджрд┐рдирдЪрд░реНрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдо рдЪреЗрдХ рдХреЗ рд╕реЗрдЯ рдХреЛ рдкреВрд░рдХ рдФрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рдореЗрд╢рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢рд╛рд▓ рдкреНрд▓рд╕ - рд╡реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╣реИрдВ, рдФрд░ рд╣рдореЗрд╢рд╛ рджреГрд╖реНрдЯрд┐ рдореЗрдВ - рдкреАрдЖрд░ рдкреЗрдЬ рдкрд░ред рдЙрдиреНрд╣реЗрдВ рдЕрдм рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрди рдиреАрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рд╣рдо рдиреАрддрд┐ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╡рд┐рдХреА рдкреГрд╖реНрдареЛрдВ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рдХрд╛ рддрдХрдиреАрдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреЙрд▓рд┐рд╕реА рд▓реЙрдЬрд┐рдХ рдХреЛ рдкреЙрд╡рд░рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп cmdlets рдФрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рдХрд╛рд░рдг, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдмрд╣реБрдд рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИред рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдФрд░ рдЪрд░ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ - рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред
рд╡реИрд╕реЗ, рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЛрд░ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж - рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо (рдореИрдХрдУрдПрд╕ рдкрд░ рдЯреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП) рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд░ рджреЛ рдШрдВрдЯреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ VSTS рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБред рд╢рд╛рдпрдж рд╣рдо рд╢реЗрдбрдпреВрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд╛рдлреА рдзреАрдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдПрдЬрд╝реНрдпреЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡реЗрдм рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдПрд╕рдЯреАрдПрд╕ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЪреЗрдХ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдПрдорд╡реАрдкреА) рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЬрд╛рдБрдЪ рдХреА рдХреНрд╖рдорддрд╛ рдЕрднреА рддрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред
VSTS REST API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреЛ рдЪреЗрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдЗрди рдиреАрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ GitHub рдкрд░ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдЧрд╛ред